【DeepCV】模型参数的初始化方式

Backto DeepCV

模型选好了,在训练之前,那么多的 w w w b b b 该如何初始化呢?trial & error,试错中前行

全部置为 0

超级省事,但是 absolutely wrong!所有参数都是 0 ,还是所有的神经元步调完全一致,怎么训练,怎么梯度下降?

随机初始化为近 0 值

哎,这还靠谱些。比如指定, w ∼ N ( 0 , 1 ) w \sim N(0,1) wN(0,1), N ( 0 , 1 ) N(0,1) N(0,1) 是均值为0,方差为1 的高斯分布或正太分布(差别不大)。

校准方差

上面的建议不错,但是神经元output的方差正比于input的个数。这个影响还是蛮大的,需要校准一下。

# calibrating the variances with 1/sqrt(n)
w = np.random.randn(n) / sqrt(n) 

对于使用 ReLU 作为激活函数的形式,建议采用

# current recommendation
w = np.random.randn(n) * sqrt(2.0/n) 

至于为什么ReLU 中是这样,移步 Kaiming He 大神的论文.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值