# HY機器學習#6: (Transformer) https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/seq2seq_v9.pdf Sequence to Sequence model (Seq2Seq) 輸出輸入長度都不定(輸出長度由機器決定) # 主要應用 語音辨識、語音翻譯(有些語言沒有文字,無法先辨識成文字,就需要直接聽語音之後翻譯)、聊天機器人 很多語言處理(NLP)的問題,常可以歸納成Question Answering的問題,針對一串訊號輸出想要對應的結果,也就是Seq2Seq問題(但若能針對問題客製化的話更好) 例如針對評論輸出正反面、文法解析輸出樹狀結構、multi-label classification(決定類別數量不固定,可視為Sequence)、物件偵測(框出圖中數量不固定的物件) ![](https://i.imgur.com/y53jEa9.png) ![](https://i.imgur.com/C0RgnrY.png) ![](https://i.imgur.com/Y3hMWzL.png) # 流程 input->encoder->decoder->output ## Encoder ### 原始論文的流程: 會經過self-attention以及fully-connected兩個過程,此稱為一個block,實際上會經過數個block self-attention以及fully-connected都各自需要residual(將結果加上原來的自己)+layer normalization(將結果扣掉平均再除以標準差)兩個流程 (Encoder流程) ![](https://i.imgur.com/JNyBPmC.png) (流程圖) ![](https://i.imgur.com/zmC4gnw.png) ### 其他可能的Encoder流程設計 ![](https://i.imgur.com/zdzzoEp.png) ## Autoregressive(AT) Decoder 向量長度=輸出的種類個數(例如中文字總字數),用one-hat表示 Encoder輸入+begin字元(表示要開始的一個字) 經由decoder輸出a(one-hat) (decoder之後經過softmax取最大值作為結果) a連同前面的輸入 經由decoder輸出b ab連同前面的輸入 經由decoder輸出c ..... 輸出是一個一個產生的 直到輸出到End字元(通常會跟begin同一個字)才結束(輸出的字數由機器決定) Non-Autoregressive(NAT) Decoder https://www.youtube.com/watch?v=jvyKmU4OM3c&feature=youtu.be 一次輸入所有值,輸出所有結果(平行輸出) 字數的部份用某一個classify訓練得到;或設上限但若其中含有End字串,則此字串之後不計 優點:長度可控制(調整上限可以控制輸出語音的速度)、平行處理 缺點:表現較差(Multi-Modality問題) ![](https://i.imgur.com/AvCLSuR.png) ## Cross Attention- Encorder到Decorder ![](https://i.imgur.com/vDIaxWz.png) Encoder的輸出經由轉換得到k1 k2... Decoder則經過Mask的Self-Attention(只學習比自己還要之前的資料即可)再經過轉換得到q,q再跟前面的k1計算attention分數 qxki再normailization(softmax)得到ai',ai再跟vi(ai經過轉換)相乘相加做加權,就可以得到v,v之後會再fully connected ![](https://i.imgur.com/V6C1LdZ.png) 這裡用的方法是把Encoder訓練多次之後最終答案,跟多層Decoder互動,但對應的方法可能可以很多種 ![](https://i.imgur.com/cIjqxzo.png) ## Training 將所有輸出跟正確答案做Cross Entropy再相加,需要最小化Cross Entropy Decoder在訓練時的輸入會是正確答案(Teacher Forcing) ![](https://i.imgur.com/yoW7pJI.png) * Schedule Samping: 將Decoder的輸入偶爾給予錯的答案 ![](https://i.imgur.com/pn3HyEI.png) # Tips ## Copy Mechanism 有時候輸出會需要複製輸入的某些內容(例如摘要或是聊天機器人) Pointer Network https://youtu.be/VdOyqNQ9aww Incorporating Copying Mechanism in Sequence-toSequence Learning https://arxiv.org/abs/1603.06393 ## Guided Attention 有些情況的產出應該要跟輸入順序一樣(例如語音合成或語音辨識),就需要給機器這些限制 Monotonic Attention Location-aware attention ## Beam Search 若只針對當下得到最好的結果往下跑,稱為Greedy Research 但這樣不一定是最好的,窮舉所有路徑不切實際 此時可以用Beam Search這個方法 此法有時候可能效果不太好 (Sentense Completion 無固定答案可能會比較差,這個時候加入雜訊可能會比較好) The Curious Case of Neural Text Degeneration https://arxiv.org/abs/1904.09751 ![](https://i.imgur.com/KUZCuGD.png) ###### tags: `機器學習` `李宏毅`