最近在學習語音識別的知識,發現李宏毅老師今年也出了相應的視頻,相應的課件可以從下面的位置獲取: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,見下圖右側。
經過上面的處理以後,我們得到了一系列的,然後,做softmax處理,得到,使得他們的和爲1。再將其與做dot-production,即
其中,產生的將會用於後續decoder的輸入,也被稱爲Context Vector。
Spell
有了以後,就可以通過self-attention,生成,再做transform+softmax,生成token的distribution,其中,最大的就是預測的結果
有了以後,可以重複上面的過程,生成
進一步計算出,有了以後,配合之前預測的c,生成,然後,預測出新的輸出a。
一直到最後的
當然,上面所說的步驟,都是建立在decoder的參數是已經確定下來的基礎上,並且,在過程中,會使用到beam search的技術,這個可以參見下面一篇文章的介紹。
接下來,我們就來介紹訓練過程
Train
todo
token表示爲one-hot vector,訓練的目標就是將cross entropy loss越小越好。
訓練過程中,與使用過程中有一個不一樣的地方:**後續的預測使用真實的結果(ground truth),而不是預測的結果。**這個過程叫teacher forcing.
Decoder中是如何使用attention的,有下面兩種。
LAS的侷限