谈谈神经网络权重为什么不能初始化为0

Posted hejunlin1992

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谈谈神经网络权重为什么不能初始化为0相关的知识,希望对你有一定的参考价值。

 

当我们在训练一个神经网络的时候,参数的随机初始化是非常重要的,对于逻辑回归来说,把参数初始化为0是很ok的。但是对于一个神经网络,如果我们将权重或者是所有参数初始化为0,梯度下降算法将不会起到任何作用。

 

1.为什么逻辑回归参数初始化为0是ok的?

下图所示,是logistic回归的图解:

技术图片

 

 

假设我们用梯度下降法来更新我们的模型参数。

logistic回归模型的前向传播:

技术图片

 

 

logistic回归模型的反向传播:

技术图片

 

 

参数更新公式:

技术图片

 

 技术图片

 

 

2.为什么神经网络的权重或所有参数初始化为0,梯度下降不再work?

为了说明这个问题,我们以一个简单的神经网络为例,该神经网络只有1层隐藏层,包含2个神经元,其具体的神经网络的结构图如下图所示:

神经网络的前向传播

技术图片

 

 

其中,技术图片

 

 

神经网络的反向传播所能用到的导数公式:

技术图片

 

 技术图片

 

 技术图片

 

 

根据上述的详细公式,我们分析一下3种情况:

 

l  模型所有权重w初始化为0,所有偏置b初始化为0

l  模型所有权重w初始化为0,所有偏置b随机初始化

l  模型所有的权重w随机初始化,所有偏置b初始化为0

 

2.1 模型所有权重w初始化为0,所有偏置b初始化为0

技术图片

 

 

技术图片

 

 

2.2 模型所有权重w初始化为0,所有偏置b随机初始化

技术图片

 

 

2.3 模型所有的权重w随机初始化,所有偏置b初始化为0

技术图片

 

 

 

结论:在训练神经网络的时候,权重初始化要谨慎,不能初始化为0

 

 

转载自:https://zhuanlan.zhihu.com/p/75879624

 

以上是关于谈谈神经网络权重为什么不能初始化为0的主要内容,如果未能解决你的问题,请参考以下文章

为啥要将神经网络的权重初始化为随机数? [关闭]

权重初始化的常见方法

机器学习--感知器数据分类算法步骤(慕课网-实现简单的神经网络)

深度学习训练技巧---权重初始化

神经网络不学习,收敛于一个输出

ReLU 可以处理负输入吗?