台湾大学李宏毅深度学习1

  1. 深度学习的三个步骤

    • Neural Network(神经网络):我们经常设计神经网络,并且让机器从数据中寻找参数。
    • Cost function(成本函数):用来判断一组参数是好还是不好
    • Optimization(最优化):找到最好的函数
  2. Fully connected layer(全连接层):

    • 第i-1和第i层之间两两相连。第l-1层的第1个神经与第l层的第2个神经相连,得到的是 w 21 l w^l_ {21} w21l。上边l表示连接的是第l-1层和第l层。下标21表示连接的是第l层的第2个神经,到第l-1层的第1个神经。注意这里下标是反的
    • 最后每两个相连的层之间形成一个w数组。这个数组的行数是第l层的神经个数,列数是第l-1层的神经个数。
    • 每一层的神经元的表示 a i l a^l_i ail表示在第l层的第i个字符。如果是 a l a^l al则表示第l层的所有神经元,形成一个vector。
    • z i l z^l_i zil:第l层的第i个神经的活动输入。 z l z^l zl表示第l层的所有输入。
      z i l z^l_i zil = w i 1 l w^l_{i1} wi1l a 1 l − 1 a^{l-1}_1 a1l1 + w i 2 l w^l_{i2} wi2l a 2 l − 1 a^{l-1}_2 a2l1+…… b i l b^l_i bil
      其中 b i l b^l_i bil代表的是第l层的第i个神经元的常数。
    • 那么考虑 a l a^l al a l − 1 a^{l-1} al1之间的关系。
      z 1 l z^l_1 z1l= w 11 l w^l_{11} w11l a 1 l − 1 a^{l-1}_1 a1l1 + w 12 l w^l_{12} w12l a 2 l − 1 a^{l-1}_2 a2l1+……+ b 1 l b^l_1 b1l
      z 2 l z^l_2 z2l= w 21 l w^l_{21} w21l a 1 l − 1 a^{l-1}_1 a1l1 + w 22 l w^l_{22} w22l a 2 l − 1 a^{l-1}_2 a2l1+……+ b 2 l b^l_2 b2l
      z i l z^l_i zil= w i 1 l w^l_{i1} wi1l a 1 l − 1 a^{l-1}_1 a1l1 + w i 2 l w^l_{i2} wi2l a 2 l − 1 a^{l-1}_2 a2l1+……+ b i l b^l_i bil
      那么上面的式子可以用矩阵表示
      [ z 1 l z 2 l ⋮ z i l ⋮ ] \left[ \begin{matrix} z^l_1 \\ z^l_2 \\ \vdots \\ z^l_i \\ \vdots \end{matrix} \right] z1lz2lzil
      也就是 Z l Z^l Zl = W l W^l Wl a l − 1 a^{l-1} al1+ b l b^l bl
    • 当知道了 a l − 1 a^{l-1} al1 z l z^l zl之间的关系,如果也知道 z l z^l zl a l a^l al之间的关系,我们就可以得到 a l − 1 a^{l-1} al1 a l a^l al之间的关系。
      那么z与a的关系,假设l层的函数是 σ \sigma σ()。那么 a i l a^l_i ail = σ \sigma σ( z i l z^l_i zil) 。还可以 a l a^l al = σ \sigma σ( z l z^l zl)
    • 那么根据第5条和第6条两条式子,我们可以知道 a l − 1 a^{l-1} al1 a l a^l al之间的关系: a l a^l al = σ \sigma σ( W l a l − 1 W^la^{l-1} Wlal1+ b l b^l bl)
  3. Recurrent structure(周期性结构):用同一个函数不断去简化网络。

    • 有一个 h ‘ h^` h,y= f ( h , x ) f(h,x) f(h,x) 这个函数有两个参数,同时又两个返回值。
    • 则如果 h 0 h_0 h0 x 1 x_1 x1是第一个参数,得到的输出是 h 1 h_1 h1 y 1 y_1 y1= f ( h 0 , x 1 ) f(h_0,x_1) f(h0,x1) 。继续重复这个过程, h 2 h_2 h2 y 2 y_2 y2= f ( h 1 , x 2 ) f(h_1,x_2) f(h1,x2)。就是用 f ( ) f() f()这个函数不断去简化网络。但是这里有一个重点** h i h^i hi h i − 1 h^{i-1} hi1**
    • Deep RNN:
      h ‘ h^` h,y= f 1 ( h , x ) f_1(h,x) f1(h,x)
      b ‘ b^` b,c= f 2 ( b , y ) f_2(b,y) f2(b,y)
      这里注意上下两条的y是同一个y。
      在这里插入图片描述
    • Bidirectional RNN:
      h ‘ , a = f 1 ( h , x ) h^`,a=f_1(h,x) h,a=f1(h,x)
      b ‘ , c = f 2 ( b , x ) b^`,c=f_2(b,x) b,c=f2(b,x)
      y = f 3 ( a , c ) y=f_3(a,c) y=f3(a,c)
      在这里插入图片描述
    • Pyramidal RNN(循环神经网络):每一层把下一层的好几个block的输出作为自己的输入,那么就可以减少sequence的长度。
      在这里插入图片描述
    • Naive RNN: h ‘ , y = f ( h , x ) h^`,y=f(h,x) hy=f(h,x)
      h ‘ = σ ( w h h + w i x ) h^`=\sigma(w^h h+w^ix) h=σ(whh+wix)
      y = σ ( w 0 h ‘ ) y=\sigma(w^0h^`) y=σ(w0h)
  4. LSTM(长短时记忆网络):
    在这里插入图片描述

    • c t c^t ct c t − 1 c^{t-1} ct1之间是相加的关系,也就是 c t c^t ct是变化很慢的。
    • h t h^t ht h t − 1 h^{t-1} ht1之间差别很大,也就是 c t c^t ct是变化很快的。
    • 运算过程:
      在这里插入图片描述
      这里把 x t x^t xt h t − 1 h^{t-1} ht1看成是并在一起,再乘上w(一个矩阵)
      c t c^t ct y t y^t yt h t h^t ht的得到过程是:
      在这里插入图片描述
  5. GRU(Gated Recurrent Unit):
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值