博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
神经网络(13)--具体实现:random initialization
阅读量:4681 次
发布时间:2019-06-09

本文共 751 字,大约阅读时间需要 2 分钟。

Θ应初始化为什么值

当我们是用logistic regression算法时,将θ初始化为0是可以的;但是如果在神经网络里面,将θ初始化为0是不可行的

若将Θ初始化为0的后果-the problem of symmetry ways

当Θ初始化为0后,蓝色线上的两个weights是相等的,红色线上的两个weights也是相等的,绿色线上的两个weights也是相等的,这样a1(2)=a2(2),同样δ1(2)2(2),然后对的两个蓝色线上的Θ求导后值也相等,即经过一次update后,a1(2)仍然与a2(2)相等.假设我们有很多个hidden units,则它们的值都是相等的,这样对于output layer来说,是等同于同一个feature的,会引起很大的冗余,引起的问题称为the problem of symmetry ways。

Θ应如何初始化-symmetry breaking

 

rand(10,11)创建一个10*11的矩阵,其中每个数都是在0到1之间的随机数,这个里面的EPSILON与我们之前讲的做gradient checking时的EPSILON是没有关系的,这里用EPSILON表示只是表示一个很接近于0的初始值。


总结

  1. 通过将Θ初始化为随机的接近于0的随机数矩阵来break symmetry(对称)。
  2. 先通过gradient check来检查back propagation(这个后面是用来计算导数的)是否正确,如若正确,则初始化Θ,通过gradient descent或者advanced algorithmn来寻找使cost function的值最小的Θ的值。

 

转载于:https://www.cnblogs.com/yan2015/p/5026350.html

你可能感兴趣的文章
内部类之非静态内部类补充
查看>>
用户画像展示
查看>>
LeetCode题解-----Sliding Window Maximum
查看>>
【USACO 5.4.1】Canada Tour
查看>>
(转)SharePoint对象模式获取“用户或用户组”栏的值
查看>>
学习笔记2014/4/15
查看>>
pyqt pyinstaller使用说明
查看>>
C#中StreamReader读取中文出现乱码
查看>>
引用堆中的对象
查看>>
用CSS开启硬件加速来提高网站性能(转)
查看>>
使用BufferedReader的时候出现的问题
查看>>
加快页面加载速度的方法
查看>>
Oozie协作框架
查看>>
linux安装图形界面
查看>>
Android广播发送失败
查看>>
博弈论之入门小结
查看>>
使用checked关键字处理“溢出”错误
查看>>
L1-Day57
查看>>
angular路由配置用法
查看>>
effective c++ 条款19:设计class犹如设计type
查看>>