深度学习笔记(2):1.11 权重初始化

权重初始化对神经网络的训练至关重要,防止梯度爆炸和消失。通常,权重的方差设置为1/n[L-1],但在ReLU激活函数下,更合适的是2/n[L-1]。此外,tanh激活函数的方差建议为1/n[L-1],或2/(n[L-1]+n[L])。初始化时结合数据标准化,有助于优化网络性能。调整权重初始化的超参数虽有一定作用,但相对其他超参数调优的影响较小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.11   权重初始化

经过1.10节的分析,我们知道过大或过小的权重设置可能会带来梯度爆炸或消失的问题,严重影响我们计算神经网络的速度,加大神经网络的训练难度。那么应该如何初始化权重呢?如下图所示:

我们用单个神经元举例, 这里同样不考虑b的情况(b=0),这时Z=W1X1+W2X2+...+WnXn,当n很大时,我们希望能够存在较小的Wi,以避免Z过大。面对这个问题,我们的直观想法是希望W的取值能够与n成反比,我们可以通过限制W的方差来限制W的大小。最简单的思路就是,我们假设W的方差是1/n,如上图所示,与n成反比。

基于这种思路,我们可以在初始化时使用图中命令随机生成W,np.random.randn(shape)保证我们随机生成同样维度的矩阵,且其元素均满足0-1的均匀分布,而np.sqrt(1/n[L-1])是指1/n[L-1]的开方。我们知道,第L层的Z值是由第L层的W和第(L-1)层的X求解而得,所以这里影响第L层W的方差的n是指上一层的节点数。0-1均匀分布的方差我们知道是1/12,乘上np.sqrt(1/n[L-1]),我们知道W[L]方差变为1/12*(1/n[L-1]),与我们的期望值成正比,且与n[L-1]成反比,达到我们的要求。

方差设为1/n是我们对于这类问题的直觉,但实际证明,当我们采用的激活函数是ReLU时,这时将W方差设为2/n[L-1]更加合理,除此之外,我们还可以在方差设定上做一些其他的优化,比如有一些学者提出对于激活函数tanh我们可以将方差设定为1/n[L-1],还有学者提出将方差设定为2/(n[L-1]+n[L])。

tip:

除了限制初始权重方差,不要忘记对数据做标准化处理,虽然这样做不会解决问题但确实可以降低梯度爆炸和消失问题,因为这样做给W设置了合理值,以致梯度没有爆炸或消失过快,因为我们知道W不能比1大太多,也

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值