动手学深度学习笔记---4.5 数值稳定性与模型初始化

文章讨论了深度神经网络中由于梯度爆炸和梯度消失现象导致的数值稳定性问题,以及如何通过模型初始化和选择合适的激活函数来缓解这些问题。特别地,提到了Xavier初始化方法和ReLU激活函数在保持梯度稳定方面的优势。

一、数值稳定性

由于链式法则的存在,在神经网络中进行反向传播时,深层的神经网络会使得梯度值在反向传播时出现梯度爆炸或梯度消失的问题。

以多层感知机为例,对于隐藏层hth^tht,存在激活函数σ\sigmaσ,该层的输入为ht−1h^{t-1}ht1满足如下:

ht=ft(ht−1)=σ(Wtht−1)h^t=f_t(h^{t-1})=\sigma(W^th^{t-1})ht=ft(ht1)=σ(Wtht1)

对上述进行求导,σ\sigmaσ激活函数求导后,对所得向量对角化,变为对角矩阵:

∂ht∂ht−1=diag(σ′(Wtht−1))Wt\frac{\partial h^t}{\partial h^{t-1}}=diag(\sigma'(W^th^{t-1}))W^tht1ht=diag(σ(Wtht1))Wt

假设hth^thtnnn维向量,ht−1h^{t-1}ht1mmm维向量,则权重矩阵WtW^tWt维度必须为(n∗m)(n*m)(nm)
hth^ththt−1h^{t-1}ht1求导,采用分子布局,所得结果应该为n∗mn*mnm维矩阵(雅可比矩阵)
又因为WtW^tWtn∗mn*mnm维矩阵,Wt⋅ht−1W^t \cdot h^{t-1}Wtht1nnn维向量,为了使得结果满足n∗mn*mnm维矩阵
因此需要对向量Wt⋅ht−1W^t \cdot h^{t-1}Wtht1进行对角化,转为n∗nn*nnn维对角矩阵,即(n∗n)∗(n∗m)=(n∗m)(n*n)*(n*m)=(n*m)(nn)(nm)=(nm)

在整个反向传播过程中,会出现梯度累乘:

∏i=td−1∂hi+1∂hi=∏i=td−1diag(σ′(Wihi−1))Wi\prod_{i=t}^{d-1}\frac{\partial h^{i+1}}{\partial h^i}=\prod_{i=t}^{d-1}diag(\sigma'(W^ih^{i-1}))W^ii=td1hih

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aaaaaki

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值