机器学习笔记:梯度消失

Posted UQI-LIUWJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习笔记:梯度消失相关的知识,希望对你有一定的参考价值。

1 梯度消失

1.1 直观理解

        以sigmoid激活函数为例,如果我们使用sigmoid作为激活函数的话,很大的一个input的变化,经过了sigmoid之后的output变化会小很多。

       这样经过很多层sigmoid之后,最后的输出变化会很小很小。

         那么进行反向传播的时候,最后的损失函数传递到约远离输出的地方,值越小,那这些远离输出地方的参数更新得也就越慢

1.2 从反向传播的式子理解

  

 

        红框框住的是激活函数的导数,tanh和sigmoid的导数均小于1,这会导致训练深模型的时候出问题。

 1.2.1 SVD分解

李宏毅线性代数笔记13:SVD分解_UQI-LIUWJ的博客-CSDN博客

令A表示激活函数,那么Ax就是经过激活函数之后的x 

我们需要比较||Ax||和||x||

根据SVD,我们有: 其中U和V是正交矩阵,奇异值σ1>σ2>...>σn>0

李宏毅线性代数11: 正交(Orthogonality)_UQI-LIUWJ的博客-CSDN博客 中,我们说过,正交矩阵是norm-preserving的,所以

我们令||x||=c,假设A是满秩的,我们有:

(正交基的线性组合)

 而 

所以

 

 而我们之前有了

所以,即

等号成立当且仅当,即

 

 如果我们有很多个最大奇异值小于1的矩阵,那么最终的乘积会很小很小 ,这就导致了梯度消失

 而tanh和sigmoid正满足这一特征,所以最终会导致梯度下降

2 几种梯度消失的解决方法

  • 不同的激活函数,使得梯度=1
  • 使用类似于Adam这样的优化函数,自适应地放缩梯度
  • RNN中的LSTM等

 3 梯度爆炸

在前面,我们有:

所以从另一个角度讲,也有 

 如果那么多个A相乘得到的结果将会很大很大,这就导致了梯度爆炸 

 

 

 

以上是关于机器学习笔记:梯度消失的主要内容,如果未能解决你的问题,请参考以下文章

吴恩达机器学习课程笔记:多元梯度下降法

ng机器学习视频笔记(十五) ——大数据机器学习(随机梯度下降与map reduce)

神经网络和深度学习笔记 - 第五章 深度神经网络学习过程中的梯度消失问题

吴恩达机器学习学习笔记——梯度下降

吴恩达机器学习学习笔记——2.7第一个学习算法=线性回归+梯度下降

机器学习笔记:梯度下降