权重初始化

1.Xaiver初始化

1.1 目标

    每一层输出的方差应该尽量相等,每一层的梯度的方差也应该保持相同。那么,每一层的权重应该满足哪种条件。

1.2 结论

    权重的方差应该满足: iVar[Wi]=2nin+nout ∀ i , V a r [ W i ] = 2 n i n + n o u t 。其中, nin n i n 表示输入维度( n=channel×kernelh×kernelw n = c h a n n e l × k e r n e l h × k e r n e l w ), nout n o u t 表示输出维度。
    设计一个用于初始化参数的概率分布,这里使用均匀分布进行参数初始化。假设随机变量服从范围为 [a,b] [ a , b ] 的均匀分布,那么它的方差为: σ=(ba)212 σ = ( b − a ) 2 12 。可以求得,最终把参数初始化成 WU[6nin+nout,6nin+nout] W → U [ − 6 n i n + n o u t , 6 n i n + n o u t ] 范围内的均匀分布。

2.MSRA初始化

2.1 目标

    和Xavier初始化方法类似,只不过Xavier初始化方法假设激活函数是线性的,显然我们目前常用的ReLU和PReLU并不满足这一条件。

2.2 结论

    MSRA初始化是高斯分布: WG[0,4nin+nout] W → G [ 0 , 4 n i n + n o u t ]

3.应用

3.1结论

  1. sigmoid激活函数 + 均值0,方差1的高斯分布的权重初始化。
  2. ReLU激活函数 + xavier权重初始化/MSRA权重初始化。
  3. PReLU激活函数 + xavier权重初始化/MSRA权重初始化。

3.2 理由

    sigmoid函数能够控制数据的幅度,在深层模型中,保证数据幅度不会太大。但sigmoid存在梯度消失问题,反向传播上有劣势。
    ReLU函数不能控制数据的幅度,在深层模型中,数据的幅度有可能产生一定的不平衡,最终会影响模型的表现。但ReLU在反向传播方面可以把梯度传给后面的参数,优化效果更好。通过Xavier和MSRA的权重初始化,可以解决数值范围不稳定的问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值