神经网络的参数为什么不能初始化为全零

训练神经网络时,随机初始化权重非常重要。对于Logistic回归,可以将权重初始化为零,但如果将神经网络的各参数全部初始化为0,再使用梯度下降法,这样将会完全无效。

如图所示,这是一个简单的两层神经网络(输入层是第0层),如果将所有的w矩阵和b向量都初始为全0

则矩阵  是    

将偏置项b初始化为0实际上是可行的,但把W初始化成全零就成问题了,它的问题在于给神经网络输入任何的样本,隐藏层的两个单元都是相同的值,由于每个激活单元的计算公式如下,([i]表示第i层,w表示权重矩阵,x表示训练样本,b表示偏置项向量,a表示激活后的值)

由于w[1]是全0矩阵(维度是2x2),所以

然后在相同的激活函数作用后,得

所以这两个隐藏单元其实在进行相同的计算,它们在做一样的事情。

又因为w[2]也是全0的矩阵(维度是1x2),所以

现在的Loss function(损失函数)为

那么对a求导

为了便于说明问题,这里假设输出层的激活函数是sigmoid函数,即

g(z)代表激活函数作用在z之后的值,所以g(z)=a,所以

那么由链式求导法则知

所以

由于,所以,根据前面的推导,可知dw[2]的两个分量也是相同的,那么梯度下降更新一次 ,所以

又因为,那么da的两个分量也是相同的,

所以dz[1]的两个分量是相同的

再向前计算一次导数

u,v只是变量记号,结果表明每个单元的节点的权重是一样的,即权重矩阵的每一行是相同的。

一直这样迭代下去,神经网络的每一次正向和反向传播,隐藏层的每个激活单元其实都在计算同样的东西,其实也就是一个"对称网络",这种网络无法学习到什么有趣的东西,因为每个隐藏层的激活单元都在计算同样的东西,那么隐藏层其实相当于只有一个单元,所以这个神经网络其实可以简化为logistic回归,因此神经网络的W参数矩阵不能随机初始化为0。

 

 

 

 

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值