ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

视频讲解|为什么神经网络参数不能全部初始化为全0

2020-11-23 15:50:31  阅读:149  来源: 互联网

标签:初始化 结点 传播 神经网络 反向 讲解 参数


为什么神经网络参数不能全部初始化为全0

自解说,6分钟左右。如有wifi请务必听着自解说观看~(流量较多,务必WiFi~)

最近试了一个小实验,发现当神经网络参数全部初始化为全0的时候(这样最省力嘛),效果并不好,后来和请教了ybb并且网上查阅了一些资料,记录一下自己的笔记和总结,欢迎大家指错交流~

还是原来的写作风格,通过一个具体例子,在讲例子的过程中,通俗解释要讲的知识点。见下!

假设我们现在需要初始化的神经网络如下所示:

视频讲解|为什么神经网络参数不能全部初始化为全0

我们初始化权值为
视频讲解|为什么神经网络参数不能全部初始化为全0
视频讲解|为什么神经网络参数不能全部初始化为全0视频讲解|为什么神经网络参数不能全部初始化为全0
其中W1代表输入层到隐藏层的权值矩阵,W2代表隐藏层到输出层的权值矩阵。
假设网络的输入为[x1,x2,x3],然后通过网络的正向传播,可以得出:
视频讲解|为什么神经网络参数不能全部初始化为全0
视频讲解|为什么神经网络参数不能全部初始化为全0
由于
我们可以知道:
视频讲解|为什么神经网络参数不能全部初始化为全0
从上面可以知道,此时隐藏层的值是相同的,然后经过激活函数f后,得到的a4,a5仍然是相同的,如下:
视频讲解|为什么神经网络参数不能全部初始化为全0

最终网络的输出为:
视频讲解|为什么神经网络参数不能全部初始化为全0
此时,假设我们的真实输出为y,则均方误差损失函数可以表示为:
视频讲解|为什么神经网络参数不能全部初始化为全0
到了这里,此时又应该到我们伟大的BP反向传播算法出场了!我们需要反向更新权值,它使得预测的输出值与真实值越来越靠近。
这里假设我们的读者已经知道了BP反向传播的过程,可以参看通俗理解神经网络BP反向传播算法
可以知道,通过反向传播后,结点4,5的梯度改变是一样的,假设都是,那么此时结点4与结点6之间的参数,与结点5与结点6之间的参数变为了,如下:
视频讲解|为什么神经网络参数不能全部初始化为全0
由上式可以看出,新的参数相同了!!!!
同理可以得出输入层与隐藏层之间的参数更新都是一样的,得出更新之后的参数
视频讲解|为什么神经网络参数不能全部初始化为全0
都是相同的!然后不管进行多少轮正向传播以及反向传播,每俩层之间的参数都是一样的。
换句话说,本来我们希望不同的结点学习到不同的参数,但是由于参数相同以及输出值都一样,不同的结点根本无法学到不同的特征!这样就失去了网络学习特征的意义了。
隐藏层与其它层多个结点,其实仅仅相当于一个结点!!如下图表示:
视频讲解|为什么神经网络参数不能全部初始化为全0

这样总结来看:w初始化全为0,很可能直接导致模型失效,无法收敛。
因此可以对w初始化为随机值解决(在cnn中,w的随机化,也是为了使得同一层的多个filter,初始w不同,可以学到不同的特征,如果都是0或某个值,由于计算方式相同,可能达不到学习不同特征的目的)

推荐阅读文章:

通俗理解神经网络BP反向传播算法
隐马尔科夫模型-基本模型与三个基本问题
带你搞懂朴素贝叶斯分类算法

全是通俗易懂的硬货!只需置顶~欢迎关注交流~

视频讲解|为什么神经网络参数不能全部初始化为全0

标签:初始化,结点,传播,神经网络,反向,讲解,参数
来源: https://blog.51cto.com/15009309/2553595

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有