正向传播和反向传播
Posted ZhangJiQun&MXP
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正向传播和反向传播相关的知识,希望对你有一定的参考价值。
为什么使用梯度下降来优化神经网络参数?
反向传播(用于优化神网参数):根据损失函数计算的误差通过反向传播的方式,指导深度网络参数的更新优化。
采取反向传播的原因:首先,深层网络由许多线性层和非线性层堆叠而来,每一层非线性层都可以视为是一个非线性函数(非线性来自于非线性激活函数),因此整个深度网络可以视为是一个复合的非线性多元函数。
我们最终的目的是希望这个非线性函数很好的完成输入到输出之间的映射,也就是找到让损失函数取得极小值。所以最终的问题就变成了一个寻找函数最小值的问题,在数学上,很自然的就会想到使用梯度下降来解决。
梯度消失、爆炸会带来哪些影响
举个例子,对于一个含有三层隐藏层的简单神经网络来说,当梯度消失发生时,接近于输出层的隐藏层由于其梯度相对正常,所以权值更新时也就相对正常,但是当越靠近输入层时,由于梯度消失现象,会导致靠近输入层的隐藏层权值更新缓慢或者更新停滞。这就导致在训练时,只等价于后面几层的浅层网络的学习。
产生的原因
梯度消失和梯度爆炸本质上是一样的,都是因为网络层数太深而引发的梯度反向传播中的连乘效应。
解决办法
解决梯度消失、爆炸主要有以下几种方案:
换用Relu、LeakyRelu、Elu等激活函数
ReLu:让激活函数的导数为1
以上是关于正向传播和反向传播的主要内容,如果未能解决你的问题,请参考以下文章
TensorFlow从0到1之TensorFlow实现反向传播算法(21)
TensorFlow从0到1之TensorFlow实现反向传播算法(21)