HMM、CTC、RNN-T訓練是所有alignment的尋找方法

周霖發表於2020-11-26

1.1 LAS產生label的計算

  LAS是可以看做能夠直接計算給定一段acoustic feature時輸出token sequences的概率,即\(p(Y|X)\),LAS每次給定一個acoustic feature就會產生一個token 的概率,將所有的概率乘起來就是token sequences的概率。其實在訓練的時候,並不是在每一步都找概率最大的,這樣會陷入區域性最優,一般會用到beam search來尋找一個最優的概率。在圖中,\(\hat{Y}\)表示的是正確的token sequence ,訓練的目標就是要找到一個\(\theta\),使得給定一段acoustic features時,輸出\(\hat{Y}\)的概率最大。在測試的時候,就是根據訓練找到的$$在給定acoustic features時,找出概率最大的token sequence,就是語音識別的結果。

1.2 CTC和RNN-T的計算

  CTC和RNN-T都需要alignment,所以不能像LAS那樣直接計算。。其概率是窮舉所有的alignment,將所有的alignment的概率加起來,就是token sequence的概率。所以會碰見的幾個問題如下圖:image.png

  • 怎麼計算所有可能的alignment
  • 怎麼將所有可能的alignment加起來
  • 怎麼訓練\(\theta\)

1.2.1 所有的alignment

  HMM中是對token進行重複,CTC是引入了\(\phi\),可以插在任何地方,但是其個數和token重複個數的和要等於acoustic features的個數,RNN-T也引入了\(\phi\),但是其是作為一個acoustic feature結束,下一個acoustic features開始的間隔,因此,\(\phi\)的個數就等於acoustic features的個數。

  • HMM
    一個token可以重複\(t_{i}\)次,但是所有token重複次數的和要等於acoustic features的長度T,即圖中灰色部分所描述的公式。表中橫軸代表acoustic features,縱軸代表token。從左上角開始一直走到右下角,中間每一步只能有兩個方向:向右走或者是向右下走。但是終點一定要是右下角才算是合法的路徑。從起點開始一直走到終點的所有合法路徑就是所有可能的alignment。下圖就是一個非法路徑

  • CTC
    CTC在最後合併token的規則是:(1)首先合併重複項(2)去掉token.例如:a a \(\phi\) \(\phi\) r \(\phi\) r\(\phi\) s s s \(\phi\)s,經過第一步的結果是:a\(\phi\)r\(\phi\)r\(\phi\)s\(\phi\) s,經過第二步的結果是a r r s s 。下面的合法路徑的選擇都是基於這個規則下。

      CTC中的\(\phi\)可以插在任何地方,開頭,token之間或者結尾。但是\(\phi\)的個數加上token的個數要等於acoustic features的個數。其中\(\phi\)的個數可以為0,但是每一個token的個數不能為0。
    1234

  CTC和HMM不同,在CTC進行的過程中,縱軸是在開頭,結尾和每一個token之間都插入一個\(\phi\),其合法路徑的規則有3個要求
  (1)其初始的起點可以有兩個,即\(x^1\)處的狀態可以使\(\phi\)或者是第一個token,這裡是C;
  (2)其最後的終點也有兩個狀態,即\(x^6\)處的狀態可以是\(\phi\)或者是最後一個token,這裡是t
  (3)當中間狀態是token時,且下一個token與之不重複時,其下一步的狀態可以有3個,向右走--下一步還是當前的token,向右下方走--下一步就是\(\phi\),跨越\(\phi\)向右下方走(走馬步)--下一步就是下一個token,【見圖3】
  (4) 當中間狀態為\(\phi\)時,下一步只能有2種情況,向右走或者向右下方走。【見圖2、圖3】
  (5) 當中間狀態是token時,且下一個token與之重複時,其下一步的狀態只能是2個,向右走--下一步還是當前的token,向右下方走--下一步就是\(\phi\)【見圖4】,如果走馬步,就會在合併的時候丟失掉一個token,所以不能跨越\(\phi\)
下圖舉例列出了兩條合法路徑:

  • RNN-T
      在RNN-T的過程中,最後一個token後至少有一個\(\phi\),因為他是作為一個acoustic feature和另一個acoustic feature的間隔,當一個單詞說完,它肯定要出現\(\phi\),不然下一段acoustic features沒辦法進來。而在token之間則可以有也可以沒有。  向右走表示,插入\(\phi\),可以理解為當前的acoustic feature沒有任何東西,什麼都沒有輸出的,我先插入一個\(\phi\),你再給我下一個acoustic feature。向下走就表示輸出一個token,理解為當前的acoustic feature輸出一個token。由於最後一個必須是\(\phi\),所以終點在右下角還右邊一格。
      RNN-T一個acoustic feature可以識別出很多token(參見上面的RNN-T的介紹),所以可能第一個acoustic features就把想要的東西全部都輸出了,後面全部插入\(\phi\)即可。下圖顯示了一條非法路徑

1.2.2 HMM、CTC、RNN-T的路徑方式比較


  HMM的合法路徑只能是複製自己和到達下一個token,CTC的合法路徑是複製自己或者到\(\phi\)或者到下一個token,RNN-T的合法路徑是到達下一個token或者插入\(\phi\)

相關文章