解析深度学习神经网络权重初始化

以全连接模型为例:输入数据为a[784]的数组,模型共2层神经元,第一层100个,第二层即输出层为10个神经元,则第一层的权重有[784,100]个,截距有[100]个,第二层有[100,10]个权重,截距[10]个,代码用W1表示第一层权重矩阵,B1表示截距行向量,W2表示第二层权重矩阵,B2表示截距行向量,设置每次输入101批数据,则输入数据矩阵为[101,784],用X表示,输入标签为[101,10],用Y表示。
形状如下:
X: [101,784],每一行为一批数据
Y:[101,10]
W1: [784,100], 每一列为单个神经元的权重
B1: [100]
W2: [100,10]
B2[10]
第一层输出:
FC1=relu(XW1+B1),B1进行了行广播
FC1: [101,100]
第二层输出:
FC2=softmax(FC1
W2+B2)
FC2: [101,10]
loss=FC2-Y
1.权重初始化为0:
分析:FC2: [101,10]的行向量全部一样,W(t+1)=W-k▲,▲为矩阵中每个元素的偏导数,这样进行梯度下降优化,权重矩阵最终稳定为均匀分布,且loss无法降下去,实际效果如下:
在这里插入图片描述

2,权重给随机值
分析,数值分散,无法收敛,损失降不下去,分布直方图如下
在这里插入图片描述

3.权重在0附近的小范围内给随机值。
如果神经层数较少,效果还不错(-0.1到0.1),如果层数较多,到后面层数的神经元输出逼近偏移值,与全0初始化类似,数值没有差异性,无法收敛,最后稳定成均匀分布,在2层神经元时,效果如下:
在这里插入图片描述
范围公式(-1/sqart(n),1/sqart(n))

3,权重在较大值附近的小范围内随机
分析,初始值较大,由于激活函数的斜率在-1到1之间,初始值过大(90到100),对应偏导数逼近0,无法收敛,效果如下。
在这里插入图片描述
初始化(100到100.01)效果如下:
在这里插入图片描述

4,无限定标准正态分布
效果可以,但由于范围不限定,会有少部分权重初始化值很大,偏导数趋近0,最好的是截断正态分布,标准差与激活函数有关,tanh或者sigmoid的标准差给1/sqrt(n),relu用sqrt(2/n)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值