最近看李沐老师的动手学深度学习,有很多收获,因此将老师讲课内容稍作总结,以便以后翻阅学习
数值稳定性
数值稳定性是神经网络模型一个非常重要的内容,模型不稳定一般与梯度消失和梯度爆炸有关。梯度消失时,模型会停止训练,梯度爆炸时,参数会变得特别大。
为了保持数值的稳定,我们需要选择合适的参数初始化方案和合理的非线性激活函数。
梯度的计算
一个d层的神经网络,每一层用 l l l表示,则 h ( l ) \boldsymbol{h}^{(l)} h(l)表示第 l l l层的输出, h ( l − 1 ) \boldsymbol{h}^{(l-1)} h(l−1)表示第 l l l层的输入( h ( 0 ) = x \boldsymbol{h}^{(0)}=\boldsymbol{x} h(0)=x),则
h ( l ) = f l ( h l − 1 ) \boldsymbol{h}^{(l)}=f_{l}(\boldsymbol{h}^{l-1}) h(l)=fl(hl−1) y = l ○ f d ○ . . . ○ f 1 ( x ) y=l○f_{d}○...○f_{1}(x) y=l○fd○...○f1(x)(这里y包含了损失函数,不是模型的输出)
∂ l ∂ W l = ∂ l ∂ h d ∂ h d ∂ h d − 1 . . . ∂ h l + 1 ∂