iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 26
4

要介紹 Attention 機制,就不能錯過這篇經典:Google 在 NIPS2017 上發表的論文《Attention Is All You Need》。本篇將透過這篇論文來理解 Attention 機制的原理與應用。

  • Attention 機制要解決什麼樣的問題?
    在序列化建模,如語言建模( language modeling)或機器翻譯 (machine translation)上,RNN、LSTM 和 GRU 是被確立為此領域中的最先進技術。不過由於序列化的運算限制仍然一直存在,因此提出一個基於 attention 機制的 Transformer 的神經網絡,允許訓練時可平行化處理的部分、提高訓練效率,且論文提到在8個 P100 GPU 上訓練了12個小時後即達到 state-of-the-art 的結果。

  • 模型架構
    https://ithelp.ithome.com.tw/upload/images/20181101/20112540ADUiUofJDo.png

    Transformer 建立於 encoder-decoder 的架構之上:

    1. encoder (左半邊)
      由 N = 6 的相同 layer 所組成,每一層有 2 個子層(sublayer)分別是:

      • multi-head self-attention mechanism(自我注意力機制)
      • position-wise fully connected network(全連接層)
    2. decoder (右半邊)
      同樣是由 N = 6 的相同 layer 所組成,每一層有 3 個子層:

      • muti-head attention:將 encoder 層的輸出(output)作為輸入(input)。
      • masked multi-head self-attention:用遮罩(mask)的機制,讓位置 i 的字詞只能 attend 到自己以前的字詞(小於位置 i ),不能向後偷看(大於位置 i )。
        https://ithelp.ithome.com.tw/upload/images/20181110/20112540cdM9rOANzc.png
      • fully connected feed forward

    encoder 和 decoder 皆以殘差連接(Residual Connection)的方式此加深網路,並透過 Layer Normalization 加速收斂。

  • 總結
    Transformer 的動機在於解決 RNNs 以下問題:

    1. 序列運算(Sequential computation)難以平行化
    2. RNNs 仍然需要attention機制來解決長距離依賴的問題,相距越遠的字詞會越難找到彼此的資訊
    3. 過長的 RNN 架構可能會造成的梯度消失

    論文表示在翻譯任務上,Transformer 在訓練上比 RNN 或 CNN 更快,在 English-to-German 和 English-to-French 的翻譯達到新的技術水平,並提到後續希望擴展到文本以外的處理,例如音頻、圖像或是影片。

[魔法陣系列] Recurrent Neural Network(RNN)之術式解析 文末提到要介紹 attention 機制,終於交差囉,感到開心~


上一篇
[魔法陣系列] Deep Q Network(DQN)之術式解析
下一篇
[實戰系列] 使用 Keras 搭建一個 DQN 魔法陣(模型)
系列文
英雄集結:深度學習的魔法使們31

尚未有邦友留言

立即登入留言