假设输入是两个维度的坐标数据(x_axis,y_axis),输出是四个维度的矩阵。
在我们的例子中,输入层是坐标值,例如(1,1),这是一个包含两个元素的数组,也可以看作是一个$12$的矩阵。输入层的元素维度与输入量的特征息息相关,如果输入的是一张$3232$像素的灰度图像,那么输入层的维度就是$32*32$。
连接输入层和隐藏层的是 $W_1$ 和 $b_1$。由 $X$ 计算得到 $H$ 十分简单,就是矩阵运算:$H=X*W_1+b_1$
如上式中所示,在设定隐藏层为50维(也可以理解成50个神经元)之后,矩阵 $H$ 的大小为(1*50)的矩阵。
连接隐藏层和输出层的是 $W_2$ 和 $b_2$。同样是通过矩阵运算进行的:$Y=H*W_2+b_2$
通过上述两个线性方程的计算,我们就能得到最终的输出 $Y$ 了,但是如果你还对线性代数的计算有印象的话,应该会知道:一系列线性方程的运算最终都可以用一个线性方程表示。也就是说,上述两个式子联立后可以用一个线性方程表达。对于两次神经网络是这样,就算网络深度加到100层,也依然是这样。这样的话神经网络就失去了意义。
所以这里要对网络注入灵魂:激活函数 。简而言之,激活函数是为矩阵运算的结果添加非线性的。
神经元是一个装着 0-1 之间小数的“容器”,称为“激活值”,而他连接的边则是权重值,另外还有偏置值: