Cousera - Machine Learning - 课程笔记 - Week 5

2018年9月版本

Week 5

代价函数(k元分类)

  • J ( Θ ) = − 1 m [ ∑ i = 1 m ∑ k = 1 K y k ( i ) log ⁡ ( h Θ ( x ( i ) ) ) k + ( 1 − y k ( i ) ) log ⁡ ( 1 − ( h Θ ( x ( i ) ) ) k ) ] + λ 2 m ∑ l = 1 L − 1 ∑ i = 1 s l ∑ j = 1 s l + 1 ( Θ j i ( l ) ) 2 J(\Theta) = -\frac{1}{m}[\sum\limits_{i=1}^{m} \sum_{k=1}^{K} y_k^{(i)} \log (h_{\Theta}(x^{(i)}))_k+(1-y_k^{(i)}) \log (1-(h_{\Theta}(x^{(i)}))_k)]+ \frac {\lambda}{2m}\sum\limits_{l=1}^{L-1} \sum\limits_{i=1}^{s_l} \sum\limits_{j=1}^{s_{l+1}}(\Theta_{ji}^{(l)})^2 J(Θ)=m1[i=1mk=1Kyk(i)log(hΘ(x(i)))k+(1yk(i))log(1(hΘ(x(i)))k)]+2mλl=1L1i=1slj=1sl+1(Θji(l))2
  • h Θ ( x ) ∈ R K ,    ( h Θ ( x ) ) i = i t h    o u t p u t h_{\Theta}(x) \in R^K,\;(h_{\Theta}(x))_i=i^{th}\;output hΘ(x)RK,(hΘ(x))i=ithoutput
  • 注意正规项,为了能够更多地去除偏置项对代价函数的影响,只取1,1到结束的全部值,零行零列均被忽略

反向传播算法

  • 寻找最小 J ( Θ ) J(\Theta) J(Θ)
  • 需要计算 J ( Θ ) J(\Theta) J(Θ)KaTeX parse error: Undefined control sequence: \part at position 7: \frac{\̲p̲a̲r̲t̲}{\part\Theta_{…
  • 算法过程
    • 训练集 ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , … , ( x ( m ) , y ( m ) ) {(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),\ldots,(x^{(m)},y^{(m)})} (x(1),y(1)),(x(2),y(2)),,(x(m),y(m))
    • Δ i j ( l ) = 0 \Delta_{ij}^{(l)}=0 Δij(l)=0,用于累加KaTeX parse error: Undefined control sequence: \part at position 7: \frac{\̲p̲a̲r̲t̲}{\part\Theta^{…
    • t = 1    t o    m t=1 \;to\; m t=1tom
      • a ( 1 ) = x ( t ) a^{(1)}=x^{(t)} a(1)=x(t)
      • 正向传播计算 a ( l ) a^{(l)} a(l)
      • 利用 y ( t ) y^{(t)} y(t),计算 δ ( L ) = a ( L ) − y ( t ) \delta^{(L)}=a^{(L)}-y^{(t)} δ(L)=a(L)y(t)
      • 计算所有的 δ ( L − 1 ) , δ ( L − 2 ) , … , δ ( 2 ) \delta^{(L-1)},\delta^{(L-2)},\ldots,\delta^{(2)} δ(L1),δ(L2),,δ(2) δ ( l ) = ( ( Θ ( l ) ) T δ ( l + 1 ) ) . ∗ a ( l ) . ∗ ( 1 − a ( l ) ) \delta^{(l)}=((\Theta^{(l)})^T\delta^{(l+1)}).*a^{(l)}.*(1-a^{(l)}) δ(l)=((Θ(l))Tδ(l+1)).a(l).(1a(l))
      • Δ i j ( l ) : = Δ i j ( l ) + a j ( l ) δ i ( l + 1 ) \Delta^{(l)}_{ij}:=\Delta^{(l)}_{ij}+a^{(l)}_j\delta^{(l+1)}_i Δij(l):=Δij(l)+aj(l)δi(l+1),向量形式为 Δ ( l ) : = Δ ( l ) + δ ( l + 1 ) ( a ( l ) ) T \Delta^{(l)}:=\Delta^{(l)}+\delta^{(l+1)}(a^{(l)})^T Δ(l):=Δ(l)+δ(l+1)(a(l))T
    • D i j ( l ) : = 1 m ( Δ i j ( l ) + λ Θ i j ( l ) )    i f    j ≠ 0 D^{(l)}_{ij}:=\frac{1}{m}(\Delta^{(l)}_{ij}+\lambda\Theta^{(l)}_{ij})\; if\; j \ne0 Dij(l):=m1(Δij(l)+λΘij(l))ifj=0
    • D i j ( l ) : = 1 m Δ i j ( l )    i f    j = 0 D^{(l)}_{ij}:=\frac{1}{m}\Delta^{(l)}_{ij}\; if\; j = 0 Dij(l):=m1Δij(l)ifj=0
    • KaTeX parse error: Undefined control sequence: \part at position 7: \frac{\̲p̲a̲r̲t̲}{\part \Theta^…
  • KaTeX parse error: Undefined control sequence: \part at position 23: …{(l)}_j=-\frac{\̲p̲a̲r̲t̲}{\part z^{(l)}…

反向传播算法实践

向量展开 Unrolling Parameters

  • 优化函数的接口需要,我们需要将矩阵形式的参数展开成一个列向量

  • 对于优化函数fminunc,需要一个初始参数向量,此时需要将参数进行展开

  • 同时,优化函数需要返回梯度值,在计算完梯度值后,同样需要展开返回

梯度检查 Gradient Checkling

  • 取双边计算导数 f ( x + ϵ ) − f ( x − ϵ ) 2 ϵ \frac{f(x+\epsilon)-f(x-\epsilon)}{2\epsilon} 2ϵf(x+ϵ)f(xϵ)来近似代表实际导数,从而检查梯度正确性

随机初始化 Random Initialization

  • 全零参数造成“对称现象”
  • 所有参数随机(结果在0和1之间),然后乘2倍ε再减一个ε,结果转化为-ε到+ε之间

神经网络总结

  1. 选择一种神经网络架构,即层数、每层单元数等
    • 特征数量决定了输入层神经元个数
    • 分类的类别总数决定了输出层神经元个数(注意多元分类的结果书写形式)
    • 默认只是用一个隐藏层,如果超过一层,每层应当个数相同
    • 越多越好
  2. 随机初始化权重,要求非常小,接近于零
  3. 实现正向传播,以获得 h Θ ( x ( i ) ) h_{\Theta}(x^{(i)}) hΘ(x(i))
  4. 实现代价函数 J ( Θ ) J(\Theta) J(Θ)的计算
  5. 实现反向传播,计算偏导数KaTeX parse error: Undefined control sequence: \part at position 7: \frac{\̲p̲a̲r̲t̲}{\part \Theta^…
  6. 使用梯度检查检查上述方式得到的偏导数的正确性
  7. 使用梯度下降或其他高级的优化方法,最小化代价函数值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值