李宏毅《Speech Recognition》學習筆記2 - LAS

最近在學習語音識別的知識,發現李宏毅老師今年也出了相應的視頻,相應的課件可以從下面的位置獲取:http://speech.ee.ntu.edu.tw/~tlkagk/courses_DLHLP20.html

Youtube視頻:
https://youtu.be/AIKu43goh-8
https://youtu.be/BdUeBa6NbXA
https://youtu.be/CGuLuBaLIeI
課件:
http://speech.ee.ntu.edu.tw/~tlkagk/courses/DLHLP20/ASR%20%28v12%29.pdf

Listen, Attend, and Spell (LAS)

在這裏插入圖片描述

Framework

Listen

在這裏插入圖片描述

Encoder的實現方式一:RNN

單向、雙向 RNN都可以
在這裏插入圖片描述
Encoder的實現方式二:CNN
在這裏插入圖片描述
Encoder的實現方式三:Self-attention
在這裏插入圖片描述
Self-attention的介紹:https://www.youtube.com/watch?v=ugWDIIOHtPA

提升訓練效率

Down Sampling有助提升訓練的效率

下面是對RNN的down sampling
在這裏插入圖片描述
下面是對CNN和self-attention的down sampling
truncated self-attention,是通過控制attention的寬帶來實現。
在這裏插入圖片描述

Attention

Attention的工作類似seq-to-seq,輸入是Encoder的輸出和關鍵詞z,通過函數match進行處理,得到輸出。下圖的右側是常用的match function,也就是dot-product attaction。W是transform函數。
在這裏插入圖片描述
另一種match function,見下圖右側。
在這裏插入圖片描述
經過上面的處理以後,我們得到了一系列的α01,α02,α03,...\alpha_0^1,\alpha_0^2,\alpha_0^3,...,然後,做softmax處理,得到α^01,α^02,α^03,...\hat{\alpha}_0^1,\hat{\alpha}_0^2,\hat{\alpha}_0^3,...,使得他們的和爲1。再將其與hih^i做dot-production,即c0=α^0ihic^{0}=\sum \hat{\alpha}_{0}^{i} h^{i}
在這裏插入圖片描述
其中,產生的c0c^{0}將會用於後續decoder的輸入,也被稱爲Context Vector。

Spell

有了c0c^0以後,就可以通過self-attention,生成z1z^1,再做transform+softmax,生成token的distribution,其中,最大的就是預測的結果cc
在這裏插入圖片描述
有了z1z^1以後,可以重複上面的z0z^0過程,生成α11,α12,α13,...\alpha_1^1,\alpha_1^2,\alpha_1^3,...
在這裏插入圖片描述
進一步計算出c1c^1,有了c1c^1以後,配合之前預測的c,生成z1z^1,然後,預測出新的輸出a。
在這裏插入圖片描述
一直到最後的
在這裏插入圖片描述
當然,上面所說的步驟,都是建立在decoder的參數是已經確定下來的基礎上,並且,在過程中,會使用到beam search的技術,這個可以參見下面一篇文章的介紹。

接下來,我們就來介紹訓練過程

Train

todo

token表示爲one-hot vector,訓練的目標就是將cross entropy loss越小越好。
在這裏插入圖片描述
訓練過程中,與使用過程中有一個不一樣的地方:**後續的預測使用真實的結果(ground truth),而不是預測的結果。**這個過程叫teacher forcing.
在這裏插入圖片描述
Decoder中是如何使用attention的,有下面兩種。
在這裏插入圖片描述
LAS的侷限
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章