目录
反向传播
正向传播:把数据输入到神经网络,这些数据会沿着神经网络进行正向传递,传递的过程中,会一层层的感知机进行操作,最后得出结果。
反向传播:当一个神经网络还未训练好的时候,它的判断结果是有偏差的,传递偏差的信息,将这些偏差传递到各个参数上,根据参数对偏差的贡献大小,相应的承担修改责任。
梯度方向:指向上升最快的那个方向,当取反的时候就是减小最快的方向。梯度可以将它当作一个向量的概念,来进行分解。
梯度的数学表达如下图所示。
当从z轴向下俯视函数f的图像时,函数f在x轴的切线斜率加上函数f在y轴的切线斜率指向的一个方向恰好是变化最大的一个方向,即梯度的方向。
梯度传播
从神经网络中单独拿出一个感知机,感知机由三部分组成, w,b两个系数,把前面感知机的输出值作为后面感知机的输入值,通过w,b两个系数进行线性运算后得出来的就是这个z值。方括号上的L代表这个是第几层,下方的下标i代表的是第L层第i个。算出来的z值是不能直接输出的,通过激活函数进行计算,得出的a值就是感知机向外输出的值。
利用矩阵写出第l层的感知机输出a[l]
y上面的的k代表的是训练数据集里面的第几号数据,其中x是代表的是训练的数据集。y代表的是给训练的数据集打上的标签。这个神经网络在输出层只有一个输出节点,只能判断一个分类问题。当输出层有多个节点时,可以判断多个分类问题。
当想进行反向传播的时候, 先对J求梯度,求梯度之后,它的变量只有ai,即这个梯度的分量一定是J对ai的偏导。
对J求梯度展开后的样子。
此时J对W求的偏导,展开的公式如下所示。
其中向量是有自己的分量,对于分量的偏导。
感知机的w进行迭代。
接下来得出一个新的损失函数,损失函数就是那个偏差值。这个偏差值是由第L层的神经网络带来的,这个偏差值是由后面的L-1层负责承担。
此时进行下一轮的反向传播。
此时的L+1层是上次反向传播的L层,在这一轮反向传播是把L+1层全部的偏差全部反向给L层,让L层进行相应的调整。
此时神经网络第一轮的更新迭代完成了。
总结
对于反向传播,其实就是一直在寻找最好的参数Θ,通过调整参数,来让输出值最达到合理的范围内。
同时还有一点所有的输出节点包括在一个函数里,这个函数才是损失函数,无论输出有多少维,损失函数都只有一个,通过这个函数求出梯度,进而对网络中的所有权重进行一次更新。
文章出处登录后可见!