Notation

  • 表示第i筆 training data 的sequence中,第 t 個element
  • 表示 x sequence的長度
  • 第i筆training data 的 x sequence長度
  • 表示 y sequence長度

x: Harry Potter and Hermione Granger invented a new spell.

    • : one hot encoding in my dictionary with a huge amount of word.
    • if not in dictionary, then use a fake word that represents "UNK", means unknown.

Recurrent Neural Network Model

Recurrent Neural Networks

Simplified RNN notation

  • ,g(x)通常是tanh或ReLu

    • 可以表示為
    • 因此若 a的shape是(100,1), 的 shape 為 (10000,1),則 shape of
      • : (100,100)
      • : (100,10000)
      • : (100,10100)
  • ,g(x)通常是 sigmoid

    • 可以表示為 沒什麼差別,估計為了之後表示方便才這麼寫
  • 可以簡化成

    • 此時
    • = 原式

額 我發現這篇中文筆記 寫的好多了, 索性不寫ㄌ

補充中文筆記2


還是補充一下好了

Backpropagation through time

Different types of RNNs

types of RNNs and examples

  • One to many: sequence generation / music generation
  • Many to one: sequence classification / sentiment classification
  • Many to many (with the same size): name-entity recognition
  • Many to many (with different size): machine translation

Language model and sequence generation

RNN model (sequence generation)

  • 前一刻的y (即 ) 會被當成這個時刻的 input (即 )

這樣的 model 可以做到

  • 給定前段字詞 sequence,預測後面字詞出現的機率
  • 直接預測某組字詞 sequence 出現的機率
    • 利用條件機率即可,

Sampling novel sequences

上一節 訓練完一個Sequence generation的 RNN,我們要怎麼從 model 中採樣出一個 sequence 呢

Vanishing gradients with RNNs

RNN 可能有 梯度消失 & 梯度爆炸 的問題

梯度爆炸很容易可以發現,因為參數可能變 NaN,原因為 numerical overflow

  • 可以用 gradient clipping 解決

梯度消失較難解決,接下來會介紹 GRU,有效對付gradient vanishing問題,能將資訊記的更為長久。

Gated Recurrent Unit (GRU)

RNN unit

GRU (simplified)

Notation: why use these symbol or alphabet

  • :

    • (Gamma) for Gate
    • for memory cell, 目前在 GRU,,然而到了 LSTM 這兩個值會不一樣,因此現在先分開寫
    • for update, when to update c
    • for relevant, 前一個 的相關性
  • : 值為0則記住之前的,1則忘記之前的,更新新的記憶

Formula

    • 是要用來取代 的候選 (?)

GRU 最重要的概念

    • 同時也是圖中左方紫色區塊的運算內容
    • 可以防止 gradient vanishing,因為即使 很小,小到接近0,那麼 就會幾乎將 保存起來,也間接防止了梯度消失(?)。
    • 注意 * 是 element-wise 的運算子。
    • 也是一個 vector,因此他其實代表了 這個 vector 中,哪些元素需要被更新,哪些不用。

Full GRU

  • : 不懂為啥要加這項,不是可以讓 自動學出來嗎?
    • 它代表的是 之間的關係,應該類似上方提到的 也是 element-wise 的關係

Long Short-Term Memory

與 GRU 不同的地方是:

  • 不再與 相等,而是 的 element-wise 乘積
  • 決定 的 gate 不再只有 一個,而是 共同決定
  • update gate 應該有個別稱叫 input gate (吧

不只受 影響,還受到 影響,則我們稱為 peep hole connection

- 有個技術細節:{% math %}c{% endmath %} 是一個 vector,而 c 的第 n 個 element 只會去影響 {% math %}\Gamma{% endmath %} 的第 n 個 element

LSTM & GRU 比較

  • GRU 相對簡單,更容易建構出較大的網路
  • GRU 計算速度較快
  • LSTM 更強大而有效 (好籠統@@)
  • 要在 GRU 或 LSTM 中選一個,建議先用用看 LSTM

Bidirectional RNN (BRNN)

Deep RNNs

  • 左方是簡化版的 deep RNN,右方較詳細
  • : 第 層的第 個element
  • 3層的recurrent layer 就夠多了,因為時間軸上的層數是非常多的(雖然我們無法直接看出來

results matching ""

    No results matching ""