深层网络由许多非线性层堆叠而来,每一层非线性层都可以视为是一个非线性函数 f ( x ) f(x)f(x)(非线性来自于非线性激活函数),最终的目的是希望这个多元函数可以很好的完成输入到输出之间的映射,整个深度网络可以视为是一个复合的非线性多元函数:
F(x)=fn(...f3(f2(f1(x)∗θ1+b)∗θ2+b)...)
梯度消失爆炸的解决方案主要包括以下几个部分:
- 预训练加微调
- 梯度剪切、权重正则(针对梯度爆炸)
- 使用不同的激活函数 - 使用batchnorm
- 使用残差结构 - 使用LSTM网络
梯度消失经常出现,产生的原因有:一是在深层网络中,二是采用了不合适的激活函数
梯度消失、爆炸的解决方案
方案1-预训练加微调
方案2-梯度剪切、正则
梯度剪切这个方案主要是针对梯度爆炸提出的,其思想是设置一个梯度剪切阈值,然后更新梯度的时候,如果梯度超过这个阈值,那么就将其强制限制在这个范围之内。这可以防止梯度爆炸。另外一种解决梯度爆炸的手段是采用权重正则化(weithts regularization)比较常见的是l1正则和l2正则。