1.为什么使用梯度下降来优化神经网络参数?
深度网络可以视为是一个复合的非线性多元函数,我们的最终目的是希望这个非线性函数很好的完成输入到输出的映射,也就是让损失函数取得最小值。所以最终问题变成了一个寻找函数最小值的问题,在数学上,很容易就想到使用梯度下降来解决。
2.梯度消失和梯度爆炸的原因
假设存在一个网络结构:

表达式为:

若对w1求梯度,根据链式法则,得到的解为:

若使用激活函数为sigmod,则其导数为:

如果我们使用标准化初始w,每个层次都是0-1之间的小数,激活函数也是0-1之间的数,连乘之后结果会变得很小,称之为梯度消失。
如果我们初始化w为很大的数,w大到乘以激活函数的导数都大于1,那么连乘之后导致求导结果很大,形成梯度爆炸。
3.如何解决梯度消失、梯度爆炸
1)通过添加正则项,避免梯度爆炸
2)使用LSTM等自循环和门控制机制,避免梯度消失
3)优化激活函数,譬如sigmod改成relu,避免梯度消失。