DNN反向传播具体推导过程(2)

版权声明:本文为博主原创文章,引用时请附上链接。 https://blog.csdn.net/abc13526222160/article/details/85345553

介绍了DNN的网络是如何的从前向后的把数据传递过去的,但是只有这个过程还不够,我们还需要想办法对所有参数进行一个梯度的更新,才能使得网络能够慢慢的学习到新的东西。在神经网络中有一种通用的方法来更新参数,叫做反向更新BP

1、DNN反向更新过程

根据前面的前向传播的过程我们得到了一个传播公式,其中σ是激活函数,对具体的函数不做要求,可以是线性激活函数,也可以是非线性激活函数

                                                                                 a ^ { l } = \sigma \left( z ^ { l } \right) = \sigma \left( W ^ { l } a ^ { l - 1 } + b ^ { l } \right)   

我们假设DNN的损失函数是MSE,其中a^{^{L}}是输出层的输出(单样本):

                                                                     J ( W , b , x , y )= \frac { 1 } { 2 } \left\| a ^ { L } - y \right\| _ { 2 } ^ { 2 }  

由于梯度下降法有批量(Batch),小批量(mini-Batch),随机三个变种,为了简化描述,这里我们以最基本的批量梯度下降法为例来描述反向传播算法。实际上在业界使用最多的是mini-Batch的梯度下降法。不过区别仅仅在于迭代时训练样本的选择而已。                                                     

猜你喜欢

转载自blog.csdn.net/abc13526222160/article/details/85345553