神经网络权(BP)值初始化相同权值的影响

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gao158190523/article/details/74602610

权值初始化问题

在对神经网络权值初始化时,大家都会选择将其随机初始,如果全赋值为相同数,则会破坏不对称,不应该这样。但如果我们偏要初始化一样,那么会发生什么呢?
从传递公式上,可以明确,前向传播中,每层的神经网络节点输出值都一样【权值初始化为0比较特殊,我在下文中会对这种情况做详细分析】(这里有个前提:BP网络为全连接,且加入了激活函数,激活函数为sigmod函数),那反向传递时,其权值偏导值应该也是相同的,那么就可以得出:会使每层节点对前一层的所有权值全部相同!但层与层的权值会不相同,做了下实验,将权值全部置为1,偏置置为0,实验结果也证实了这点,如下:


这里写图片描述
这里写图片描述

此外,权值初始化相同,会让收敛速度变得非常慢!如果权值全初始化为0,则无法更新权值,这是由于前向传播中,所有节点输出值均相同,由于此处使用了sigmod激活函数,所以此处所有神经节点输出都为1/2,如下图所示:

这里写图片描述

而在反向传播每个节点输出值对损失函数的偏导时,涉及到对权值相乘后的求和,该项永远为0,故所乘的结果也必然为0,公式如下:

这里写图片描述

这样在计算权值对算是函数的偏导时,其偏导必然为0,公式如下:

这里写图片描述

所有权值偏导都为0,那么就不要指望使用梯度下降法能更新权值了,自然神经网络的训练也就无法进行下去了。相关公式如过不熟悉,可以参考我前面的文章。

猜你喜欢

转载自blog.csdn.net/gao158190523/article/details/74602610