博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
吴恩达机器学习之神经网络篇——随机初始化
阅读量:3959 次
发布时间:2019-05-24

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

随机初始化

对于梯度下降/高级优化算法,必须初始化 Θ \Theta Θ.

optTheta = fminunc(@costFunction, initialTheta, options)

实现fminunc,要设置initialTheta.

Consider gradient descent

设置 initialTheta = zeros(n,1)?

在这里插入图片描述

phenomenon: 每次更新后,两个隐藏单元依然以相同的函数作为输入来计算。

result: 只能学习一种特征。

Random initialization

目的: 解决对称性问题

方法: 将 Θ i j ( l ) \Theta_{ij}^{(l)} Θij(l)初始化为 [ − ϵ , ϵ ] [-\epsilon,\epsilon] [ϵ,ϵ]之间的一个随机值,即 − ϵ ≤ Θ i j ( l ) ≤ ϵ -\epsilon\le\Theta_{ij}^{(l)}\le\epsilon ϵΘij(l)ϵ.
Note:这里的 ϵ \epsilon ϵ不同于梯度检验中的 ϵ \epsilon ϵ
例如:

Theta1 = rand(10,11)*(2*INIT_EPSILON) - INIT_EPSILON;Theta2 = rand(1,11)*(2*INIT_EPSILON) - INIT_EPSILON;

训练神经网络的步骤:

  1. 将权重初始化为一个接近0的范围在 − ϵ -\epsilon ϵ ϵ \epsilon ϵ之间的数;
  2. 然后进行反向传播;
  3. 进行梯度检验;
  4. 最后使用梯度下降/其他高级优化算法来最小化代价函数 J ( Θ ) J(\Theta) J(Θ).

  1. After each update, parameters corresponding to inputs going into each of two hidden units are identical

  2. 为了Symmetry breaking打破对称性

转载地址:http://dumzi.baihongyu.com/

你可能感兴趣的文章
golang 开源项目
查看>>
ubntu 开发服务进程
查看>>
linux 常用命令以及技巧
查看>>
记录1年免费亚马逊AWS云服务器申请方法过程及使用技巧
查看>>
golang文章
查看>>
一些特殊的符号
查看>>
shell脚本的exit问题(退出脚本还是退出终端)
查看>>
linux export命令参数及用法详解--linux设置环境变量命令
查看>>
Shell单引号,双引号,反引号,反斜杠
查看>>
Qt中内存泄露和退出崩溃的问题
查看>>
常见颜色
查看>>
Source Insight 经典教程
查看>>
快速打开菜单附件中的工具
查看>>
Windows系统进程间通信
查看>>
linux exec的用法
查看>>
C语言中如何使用宏
查看>>
Http与RPC通信协议的比较
查看>>
Source Insight的对齐问题
查看>>
ubuntu设置开机默认进入字符界面方法
查看>>
chrome 快捷键
查看>>