如何解决梯度消失和梯度爆炸? |
您所在的位置:网站首页 › bn解决梯度消失 › 如何解决梯度消失和梯度爆炸? |
何为梯度消失,梯度爆炸?
目前优化神经网络的方法都是基于反向传播的思想,即根据损失函数计算的误差通过梯度反向传播的方式,指导深度网络权值的更新优化。这样做是有一定原因的,首先,深层网络由许多非线性层堆叠而来,每一层非线性层都可以视为是一个非线性函数 f(x) f ( x ) (非线性来自于非线性激活函数),因此整个深度网络可以视为是一个复合的非线性多元函数 : F(x)=fn(...f3(f2(f1(x)∗w1+b)∗w2+b)...) F ( x ) = f n ( . . . f 3 ( f 2 ( f 1 ( x ) ∗ w 1 + b ) ∗ w 2 + b ) . . . ) 我们最终的目的是希望这个多元函数可以很好的完成输入到输出之间的映射。梯度消失与梯度爆炸其实是一种情况。例如,下图以三个隐层的单神经元网络为例: sigmoid 函数的导数曲线如下图所示: 常用的用于解决梯度消失和梯度爆炸的方法如下所示: 使用 ReLU、LReLU、ELU、maxout 等激活函数 sigmoid函数的梯度随着x的增大或减小和消失,而ReLU不会。使用批规范化 通过规范化操作将输出信号 x x 规范化到均值为0,方差为1保证网络的稳定性.从上述分析分可以看到,反向传播式子中有ww的存在,所以 w w 的大小影响了梯度的消失和爆炸,Batch Normalization 就是通过对每一层的输出规范为均值和方差一致的方法,消除了ww带来的放大缩小的影响,进而解决梯度消失和爆炸的问题。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |