赞
踩
概念:前馈(feedforward)也可以称为前向,从信号流向来理解就是输入信号进入网络后,信号流动是单向的,即信号从前一层流向后一层,一直到输出层。其中任意两层之间的连接并没有反馈(feedback),亦即信号没有从后一层又返回到前一层。
下图为输入为1和-1的时候经过一系列复杂的运算得到的结果,最终输出为0.62和0.83:
下图为输入为0和0的时候经过一系列复杂的运算得到的结果,最终输出为0.51和0.85:
上图中的每一层的连接都相当于一个函数
y
=
w
1
∗
x
1
+
w
2
∗
x
2
+
b
y=w_1*x_1+w_2*x_2+b
y=w1∗x1+w2∗x2+b,其中,[
w
1
,
w
2
w_1,w_2
w1,w2]为权重,
b
b
b为偏差,得到的函数值
y
y
y再经过Sigmoid Function(激活函数)转化,然后成为下一层的输入(最后一层为输出)。
一个神经网络如果权重和偏差都知道的话就可以看成一个函数,其输入是一个向量,对应的输出也是一个向量。
输入层(Input Layer):1层
隐藏层(Hidden Layer):N层
输出层(Output Layer):1层
随着层数变多,错误率降低,随之运算量增大。
而矩阵计算(Matrix Operation)能使得我们的运算的速度以及效率高很多,因为可以使用GPU加速。
看起来整个神经网络运算就相当于一连串的矩阵运算。
从结构上看每一层的计算都是一样的,也就是用计算机进行并行矩阵运算。
把隐藏层通过特征提取来替代原来的特征工程,这样在最后一个隐藏层输出的就是一组新的特征(相当于黑箱操作)。而对于输出层,其实是把前面的隐藏层的输出当做输入(经过特征提取得到的一组最好的特征)然后通过一个多分类器(可以是softmax函数)得到最后的输出。
接下来就是在function set里面找到一组函数能最小化这个总体损失L,或者是找一组神经网络的参数 θ \theta θ,来最小化总体损失L。
从这一小部分中去看,把计算梯度 ∂ l ∂ w \frac{\partial l}{\partial w} ∂w∂l分成两个部分:
根据求微分原理,forward pass的运算规律就是:
∂
z
∂
w
1
=
x
1
∂
z
∂
w
2
=
x
2
\frac{\partial z}{\partial w_1} = x_1 \\ \frac{\partial z}{\partial w_2} = x_2
∂w1∂z=x1∂w2∂z=x2
这里使用链式法则(Chain Rule):
可以想象从另外一个角度看这个事情:现在有另外一个神经元,把forward的过程逆向过来,其中
σ
′
(
z
)
{\sigma}'(z)
σ′(z)是常数,因为它在向前传播的时候就已经确定了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。