DL神经网络权值初始化

前言

深度学习中参数的初始化也有很多trick,这些trick却对训练结果起到了至关重要的作用,
本文介绍一个权值初始化的策略。

介绍

针对神经网络权值初始化许多的方法,其中最常用的方法是用随机数进行初始化。
用代码表示就是W=randn(D,H),其中randn从均值为0,标准差为1的单位高斯分布中采样,因此神经节点
在初始化时有一个随机的方向。

这种初始化有一个问题就是,每个神经元节点输出值的方差会随着神经元节点输入样本的数量而增加。下面用公式说明这个问题。

Var(s)=Var(inwixi)=inVar(wixi)=in[E(wi)]2Var(xi)+[E(xi)]2Var(wi)+Var(xi)Var(wi)=inVar(xi)Var(wi)=(nVar(w))var(x)(1)(2)(3)(4)(5)(1)Var(s)=Var(∑inwixi)(2)=∑inVar(wixi)(3)=∑in[E(wi)]2Var(xi)+[E(xi)]2Var(wi)+Var(xi)Var(wi)(4)=∑inVar(xi)Var(wi)(5)=(nVar(w))var(x)

其中第3步到第4步我们假设输入值均值为0,即 E[xi]=E[wi]=0E[xi]=E[wi]=0
当然一般而言输入值均值不会为0,例如采样ReLU作为激活函数的话均值恒大于0。
第4到第5步我们假设所有 wi,xiwi,xi是独立同分布的。
每一步的推导都是根据方差相关性质得出。
其中第2步到第3步需要解释一下:

Var(XY)=E(X2Y2)E2(XY)=E(X2)E(Y2)(E(X)E(Y))2=(E2(X2)+Var(X))(E2(Y2)+Var(Y))E2(X)E2(Y)=E2(X)Var(Y)+E2(Y)Var(X)+Var(X)Var(Y)(6)(7)(8)(9)(6)Var(XY)=E(X2Y2)−E2(XY)(7)=E(X2)E(Y2)−(E(X)E(Y))2(8)=(E2(X2)+Var(X))∗(E2(Y2)+Var(Y))−E2(X)E2(Y)(9)=E2(X)Var(Y)+E2(Y)Var(X)+Var(X)Var(Y)

从上面可以看出,如果我们希望ssxx有相同的方差那么ww在初始化是应该乘以1/n

1/n,即W=randn(D,H)/sqrt(n)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在深度学习中,神经网络的权重初始化方法对模型的收敛速度和性能有着至关重要的影响。一个好的权重初始化方法可以帮助解决梯度消失和梯度爆炸的问题,并且有利于模型的性能和收敛速度。 在当前的深度学习中,隐藏层常使用ReLU作为激活函数,并且常用的权重初始化方法是He initialization。这种初始化方法通过根据ReLU的特性,将权重初始化为均值为0,标准差为sqrt(2/n)的高斯分布,其中n是上一层神经元的数量。这种方法在实践中显示出比Xavier initialization更好的效果。 当然,除了He initialization之外,还有其他几种常用的权重初始化方法,如Xavier initialization和正交初始化等。这些方法根据不同的特性和需求,在不同的情况下可能会有更好的效果。 总之,权重初始化是深度学习中的重要步骤之一,它对模型的性能和收敛速度有着重要的影响,而He initialization是当前深度学习中常用的神经网络权重初始化方法之一。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [深度学习中神经网络的几种权重初始化方法](https://blog.csdn.net/Harrytsz/article/details/120840148)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值