[課程筆記] 機器學習2021(李弘毅) L13. Transformer (下)

Decoder - Autoregressive (AT)

Decoder 種類 

  • Autoregressive (AT)
  • Non-autoregressive (NAT)

AT 運作流程 (以語音辨識為例)

  • 輸入一個代表開始的特殊符號
    • 輸入這個符號給 Decoder 後,Decoder 接下來會輸出句子的第一個字
    • 常見的符號有 <BEGIN>, <SOS> (start of sentence) 等
  • Decoder 產生輸出
    • Decoder 輸出一組向量 (向量維度=所有可能輸出的數量)
    • 向量經過 softmax 後,得到輸出漢字的機率分布
    • 從機率分布中,取出機率最大的漢字作為輸出
  • 產生下一組輸出
    • 將 Decoder 的輸出漢字,輸入 Decoder
    • 重複前面的過程,Decoder 輸出機率最大的漢字
  • 輸出一個代表結束的特殊符號
    • 輸出這個符號後, Decoder 就會結束運作
    • 常見的符號有 <END>, <EOS> (end of sentence) 等

幾個問題點

  • Decoder 在運作時,其實也會使用 encoder 的輸出,此處先省略不說明
  • 候選輸出有多種粒度選擇,以英文 NLP 來說,分別有 character, subword, word
  • Error propagation: 一連串的輸出過程中可能發生錯誤,造成後續的錯誤

Decoder - Non-Autoregressive (NAT)

NAT 與 AT 的比較

  • AT - 以RNN為例,輸出是逐個循序生成
  • NAT - 以Transformer 為代表,輸出是一次同時產生
  • NAT 決定輸出長度的方式比較特別,有以下幾種
    • 使用另一個模型,根據 encoder 的輸出,預測 decoder 輸出長度
    • 直接去除終止符號後面的輸出
  • NAT 的優勢與劣勢
    • NAT 運算能有效的平行化
    • NAT 能控制輸出的長度
    • 表現上通常是 AT 優於 NAT

Transformer 介紹

Encoder 與 Decoder 的比較

  • 若省略 Decoder 一部分 (灰色遮擋處),兩者都是 Attention + Feed forward
  • Decoder 最後加了 softmax 使輸出帶有機率分布特性
  • Multi-Head Attention 多了 Mask 

Masked Multi-Head Attention 的作用

  • 一般的 Self-attention
    • 計算序列輸出的每個值時,所有輸入都會參與計算
    • E.g. 
      • 計算輸出值時,會使用所有的輸入 (a1, a2, a3, a4)
  • Masked Self-attention 
    • 計算序列輸出的每個值時,都只使用當前位置前方的輸入
    • E.g. 
      • 計算輸出值 b1 時,只使用 a1 作為輸入
      • 計算輸出值 b2 時,只使用 b1, b2 作為輸入
  • 會使用 Masked Self-attention,是因為當 Decoder 產生輸出時,是逐個循序產生的。所以在產生當前輸出時,無法參考未來的輸出作為輸入。

Cross-Attention

  • 與 Self-Attnetion 的差別在於:
    • Self-Attnetion 只發生在一個模塊內部 (Encoder 與 Decoder 模塊都有)
    • Cross Attention 發生在 Encoder 與 Decoder 之間
  • 運作流程
    • 首先使用 Decoder 自身的輸出,透過 Masked self-attention 計算得到 q
    • 使用 q 與 Encoder 產生的 k, v ,透過 Cross attention 計算,得到模塊的輸出

  • Cross Attention 的多種變化
    • 在 Transformer 的原始設計中,Decoder 只使用了 Encoder 最後一層輸出
    • 事實上,兩個模塊之間的互動可以發生在不同層之間

Training

  • 每個輸出都可以看成是分類問題,所以最小化一個 cross-entropy loss 即可
  • Teacher forcing
    • 使用了 Gorund-true 而不是 Decoder 的輸出,來做為 Decoder 輸入
    • 目的是為了避免前面提到的 error prapagation (一步錯、步步錯)
    • 有個問題點是,訓練過程變得跟推論時不同

Tips for Training

  • Copy Mechanism
    • Copy 原本輸入的一部分作為輸出
    • 應用案例: Chat-bot, Summarization

  •  Guided Attention
    • 在某些情況下,Attention 太過彈性,導致輸出結果不盡人意
      • 以 TTS 為例,發財產生的缺少了第一個音節
    • 因此透過給 Attention 加上一些限制,強迫讓其結果不至於太奇怪
      • 可能是: 強迫每個字一定要有輸出
      • 可能是: 強迫 Attention 的權重峰值,落在相對應的位置

  • Decoder 產生序列輸出的幾種方法
    • Greedy:
      • 只選擇當前機率最大的結果
      • 難以得到最佳解
    • Brutal force:
      • 計算所有可能輸出的機率,最後挑選機率最大的
      • 可得到最佳解,但是計算量太大,難以實現
    • Beam Search:
      • 保留幾個最佳的候選結果作後續計算,最後挑選機率最大的
      • 近似最佳解,計算量也可接受
    • Sampling: 
      • 根據輸出的概率,取樣得到輸出
      • 輸出帶有隨機性
    • Beam Search、Sampling 各有適合的應用場景
      • Beam Search: 答案明確的任務,像是語音辨識
      • Sampling: 需要隨機性的任務,像是文本創作、TTS

Optimization Evaluation Metrics?

  •  Cross-Entropy & BLEU
    • 模型的訓練損失與評估,使用的是不同的 metric
      • 損失: Cross-Entropy loss
      • 評估: BLEU
      • 可能造成模型優化的方向,不是以最大化 BLEU 為主
    • BLEU 本身難以用做訓練損失,因為其計算複雜、無法微分
    • 使用 RL 可以克服這個問題
  • Exposure Bias
    • 是由 Teacher forcing 中,訓練與推論不一致所產生
    • 解決的辦法是在 teacher forcing 中加入一些錯誤 (此法被稱為 Schedule Sampling)
    • Schedule Sampling 最早被用於 RNN,當用於 transformer 時會降低其平行化的能力,因此有其他修改版本

参考

  1. ​李弘毅老師 -【機器學習2021】Transformer (下)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值