beam search解碼原理(斯坦福 2014 論文解讀)

論文:https://arxiv.org/pdf/1408.2873.pdf
題目:First-Pass Large Vocabulary Continuous Speech Recognition using Bi-Directional Recurrent DNNs

摘要

我們提出一種僅使用神經網絡和語言模型來完成大詞彙量連續語音識別的第一步的方法。 深度神經網絡聲學模型現在在基於HMM的語音識別系統中很普遍,但是構建這樣的系統是一項複雜的,針對特定領域的任務。 最近的工作證明了通過直接預測音頻中的文字文本來丟棄HMM序列建模框架的可行性。 本文通過兩種方式擴展了這種方法。 首先,我們證明簡單的遞歸神經網絡體系結構可以實現較高的準確性。 其次,我們提出並評估了一種改進的前綴搜索解碼算法。 這種解碼方法可以使用語言模型進行第一步語音識別,而基於HMM的系統的繁瑣基礎結構完全不需要這種語言模型。 實驗在《華爾街日報》語料庫上證明了其相當有競爭力的單詞錯誤率,以及雙向網絡重複的重要性。

1.介紹

現代大詞彙量連續語音識別(LVCSR)系統很複雜,很難修改。 這種複雜性的大部分源於將單詞建模爲具有隱馬爾可夫模型(HMM)的亞語音狀態序列的範例。 基於HMM的系統需要精心設計的訓練方法,以連續構造更復雜的HMM識別器。 建立,理解和修改基於HMM的LVCSR系統的總體困難限制了語音識別的進展,並將其與相關領域的許多進步相隔離。
最近,Graves&Jaitly(2014)展示了一種無HMM的方法來訓練語音識別器,該方法使用神經網絡直接預測給出語音發音的文本字符。這種方法放棄了現代基於HMM的LVCSR系統中存在的許多假設,而是將語音識別視爲直接序列轉換問題。該方法使用連接器時間分類(CTC)損失函數訓練神經網絡,該函數通過有效地求和所有可能的輸入-輸出序列比對來最大化輸出序列的可能性。作者使用CTC,能夠在《華爾街日報》 LVCSR語料庫上訓練神經網絡,以預測字符誤碼率(CER)低於10%的測試話語的字符序列。這些結果本身令人印象深刻,但就字錯誤率(WER)而言,這些結果仍無法與現有的基於HMM的系統競爭。語音識別中良好的單詞級的性能通常在很大程度上取決於語言模型,以在可能的單詞序列上提供先驗概率。
爲了在解碼過程中整合語言模型信息,Graves&Jaitly(2014)使用其經過CTC訓練的神經網絡對由基於HMM的最新系統生成的晶格或n最佳假設列表進行評分。 這引入了潛在的混淆因素,因爲n最佳列表會很大程度上限制可能的轉錄集。 另外,它導致整個系統仍然依靠HMM語音識別基礎結構來獲得最終結果。 相反,我們提出的首遍解碼結果使用神經網絡和語言模型從頭開始解碼,而不是對現有假設進行重新排序。

我們描述了一種解碼算法,該算法將語言模型與CTC訓練的神經網絡直接集成在一起,以搜索可能的單詞序列空間。 我們的首遍解碼算法使受CTC訓練的模型可以從語言模型中受益,而無需依賴現有的基於HMM的系統來生成詞格。 這消除了對以HMM爲中心的語音識別工具包的持久依賴,並使我們僅使用神經網絡和n-gram語言模型就可以獲得相當有競爭力的WER結果。
深度神經網絡(DNN)是用於語音識別的最廣泛使用的神經網絡體系結構(Hinton et al.,2012)。 DNN是用於分類和迴歸問題的相當通用的體系結構。 在基於HMM的LVCSR系統中,DNN通過在給定時間點的聲學輸入的情況下預測HMM的隱藏狀態來充當聲學模型。 但是,在這種HMM-DNN系統中,有關輸出序列的時間推理是在HMM而不是神經網絡中進行的。 神經網絡的CTC訓練迫使網絡對輸出序列依賴性進行建模,而不是獨立於其他時間框架進行推理。 爲了更好地處理這種時間依賴性,以前使用CTC的工作使用了長期短期記憶(LSTM)網絡。 LSTM是一種神經網絡體系結構,最初旨在防止S型DNN或時間遞歸深度神經網絡(RDNN)消失的梯度問題(Hochreiter&Schmidhuber,1997)。
我們的工作使用RDNN代替LSTM作爲神經網絡體系結構。 RDNN總體上更簡單,因爲後續層之間只有密集的權重矩陣連接。 這種更簡單的體系結構更適合圖形處理單元(GPU)計算,從而可以大大減少培訓時間。 最近的工作表明,利用整流器非線性,DNN可以在DNN-HMM系統中很好地發揮作用,而在優化過程中不會出現梯度消失的問題(Dahl等人,2013; Zeiller等人,2013; Maas等人,2013)。 這使我們寄希望於具有整流器非線性的RDNN能夠與專門設計用於避免梯度消失的LSTM媲美。

2.模型

我們使用CTC損失函數訓練神經網絡,以給定聲學特徵作爲輸入來對字母序列進行最大似然訓練。 我們將單個發聲作爲由聲學特徵矩陣X和單詞轉錄W組成的訓練示例。CTC目標函數使對數概率log p(W; X)最大化。 我們在這裏保留了損失函數的完整說明,因爲我們的公式完全遵循之前使用CTC預測話語轉錄特徵的工作(Graves&Jaitly,2014; Graves等,2006)。

2.1深度神經網絡

固定損失函數之後,我們接下來必須定義如何計算p(c | xt),即在給定音頻特徵xt在時間t時輸出字符c的預測分佈。 儘管可以使用許多函數逼近器,但我們選擇DNN作爲最基本的模型。 DNN使用一系列隱藏層,然後是輸出層來計算分佈p(c | xt)。 給定輸入向量xt,則第一個隱藏層激活是計算爲的向量,
h (1) = σ(W(1)T xt + b (1)).
矩陣W(1)和向量b(1)是該層的權重矩陣和偏差向量。 函數σ(·)是逐點非線性。 我們使用整流器非線性,因此選擇σ(z)= max(z,0)。DNN可以具有任意多個隱藏層。 在第一個隱藏層之後,第i層的隱藏激活h(i)計算爲:
h (i) = σ(W(i)T h (i−1) + b (i) ).
爲了在一組可能的字符上獲得適當的分佈,網絡的最後一層是形式爲softmax的輸出層,
其中W(s)k是輸出權重矩陣W(s)的第k列,b(s)k是標量偏差項。 給定一個訓練示例,我們可以爲DNN的所有參數計算次梯度,從而利用基於梯度的優化技術。 請注意,在DNN-HMM模型中通常使用相同的DNN公式來預測senones而不是字符的分佈。

2.2循環神經網絡

轉錄W具有DNN可能無法充分捕獲的許多時間相關性。 在每個時間步t處,DNN僅使用輸入特徵xt計算其輸出,而忽略先前的隱藏表示形式和輸出分佈。 爲了更好地建模問題中存在的時間依賴性,我們使用RDNN。 在RDNN中,我們選擇一個隱藏層j具有時間遞歸權重矩陣W(f),然後計算該層的隱藏激活爲
在這裏插入圖片描述
注意,我們現在在時間步t對層j的隱藏激活向量進行區分h(j)t,因爲它現在取決於時間t − 1上層j的激活向量。
在使用RDNN時,我們發現使用整流器非線性的修改版本很重要。 修改後的函數選擇σ(z)= min(max(z,0),20),該值會裁剪較大的激活值,以防止網絡訓練期間發散。 將最大允許激活設置爲20會導致限幅整流器在除最極端情況以外的所有情況下均充當正常整流器功能。
除了這些更改之外,RDNN的計算與2.1中描述的DNN的計算相同。 像DNN一樣,我們可以使用有時稱爲反向傳播的方法爲RDNN計算子梯度。 在我們的實驗中,我們總是在整個時間範圍內完全計算梯度,而不是截斷以獲得近似的次梯度。

2.3 雙向循環神經網絡

前向循環連接反映了音頻輸入的時間特性,而BRDNN可能是更強大的序列轉導模型,它可以同時保持向前和向後的狀態。 當進行每個預測時,這樣的模型可以整合來自輸入特徵的整個時間範圍的信息。 通過再次選擇時間遞歸層j,我們將RDNN擴展爲BRDNN。 BRDNN創建向前和向後的中間隱藏表示,分別稱爲h(f)t和h(b)t。 我們使用時間權重矩陣W(f)和W(b)分別將h(f)t在時間上向前傳播和h(b)t在時間上向後傳播。 我們通過方程式更新前進和後退分量,
在這裏插入圖片描述
請注意,遞歸的前向和後向隱藏表示完全彼此獨立地計算。 與RDNN一樣,我們使用修改後的非線性函數σ(z)= min(max(z,0),20)。 爲了獲得該層的最終表示h(j)t,我們將兩個時間遞歸分量相加,
h (j) t = h (f) t + h (b) t .

除了對遞歸層的更改之外,BRDNN還使用與RDNN相同的公式來計算其輸出。 至於其他模型,我們可以直接爲BRDNN計算一個子梯度,以執行基於梯度的優化。

3.解碼

假設輸入的長度爲T,則對於t = 1,神經網絡的輸出將爲p(c; xt),t=1,…,T。 同樣,p(c; xt)是在給定音頻輸入xt的情況下,包括空白符號的字母表全集中可能字符的分佈。 爲了從神經網絡的輸出中恢復字符串,作爲第一近似,我們在每個時間步長採用argmax。 令S =(s1,…,sT)爲字符序列,其中st = argmaxc∈Σp(c; xt)。 通過摺疊重複字符並去除空白,可將序列S映射到字母表。 這給出了可以使用CER和WER對參考轉錄進行評分的序列。
這種第一近似值缺乏包含詞典或語言模型約束的能力。 我們提出了一種通用算法,該算法能夠納入這些約束。 將X作爲時間T的聲音輸入,我們尋求一個轉錄W,該轉錄使概率最大,
pnet(W; X)plm(W).
這裏,轉錄的總體概率被建模爲兩個因素的乘積:網絡給定的pnet和語言模型事先給定的plm。 在實踐中,當由n-gram語言模型給出時,先前的plm(W)過於受限,因此我們降低了權重,並將單詞插入罰分(或加分)包括爲
pnet(W; X)plm(W) α |W| β .
Alogrithm 1嘗試找到一個使上面等式最大化的字串W。該算法爲每個前綴pb(ℓ; x1:t)和pnb(ℓ; x1:t)維護兩個獨立的概率。 在給定音頻輸入X的前t個時間步長的情況下,這分別是前綴ℓ以空白結尾或不以空白結尾的概率。
集合Aprev和Anext分別在上一個時間步和下一個時間步維護一個活動前綴列表。 請注意,Aprev的大小永遠不會大於光束寬度k。 前綴的總概率是單詞插入項與空白和非空白結尾概率之和的乘積,
p(ℓ; x1:t) = (pb(ℓ; x1:t) + pnb(ℓ; x1:t))|W(ℓ)| β ,
其中W(ℓ)是序列ℓ中的一組單詞。 當採用Anext的k個最可能的前綴時,我們使用上面等式給出的概率對每個前綴進行排序。
變量ℓend是標籤序列ℓ中的最後一個字符。 函數W(·)將ℓ轉換爲字符串,在每個空格字符處分割序列並截斷最後一個空格後面的所有字符。
每當算法建議在ℓ上添加空格字符時,我們都通過包括概率p(W(ℓ+)| W(ℓ))來合併詞典或語言模型約束。 如果將W(ℓ+)的最後一個單詞放在詞典中,則將p(W(ℓ+)| W(ℓ))設置爲1,否則將其設置爲0,則該概率就成爲了一種約束,迫使所有字符串僅包含詞典中的單詞。 此外,p(W(ℓ+)| W(ℓ))可以通過僅考慮W(ℓ)中的最後n-1個單詞來表示n元語法模型。

4.實驗

算法1

前綴波束搜索:該算法將前一組前綴Aprev初始化爲空字符串。 對於當前在Aprev中使用的每個時間步長和每個前綴ℓ,我們建議在字母Σ之前添加一個字符。 如果字符爲空白,則不擴展前綴。 如果字符是空格,我們將合併語言模型約束。 否則,我們擴展前綴併合併網絡的輸出。 所有新的活動前綴都添加到Anext。 然後,我們將Aprev設置爲僅包含Anext的k個最可能的前綴。 輸出是最可能的轉錄本1,儘管可以很容易地將其擴展以返回n個最佳列表。
在這裏插入圖片描述
我們在81小時的《華爾街日報》(WSJ)新聞文章口述語料庫(在LDC目錄中以LDC94S13B和LDC93S6B提供)中評估了我們的方法。我們的培訓內容來自包含37,318種發音的81個小時的演講。將LDC發佈的語料庫轉換成訓練和測試子集的基本準備工作遵循的是Kaldi語音識別工具包的s5配方(Povey等,2011)。但是,我們沒有將用於準備成績單以訓練HMM系統的大部分文本標準化應用。取而代之的是,我們只是簡單地刪除不必要的成績單,例如詞彙重音,保留抄錄的單詞片段和首字母縮寫標點符號。我們可以放心地放棄很多這種規範化,因爲我們的方法不依賴於詞典或發音詞典,而詞典或發音詞典會引起問題,尤其是對於單詞片段。我們的語言模型是WSJ語料庫發佈的標準模型,沒有進行詞法擴展。我們將“ dev93”評估子集用作開發集,並在“ eval92”評估子集上報告了最終測試集的性能。兩個子集使用相同的20k單詞詞彙。用於解碼的語言模型僅限於相同的20k單詞詞彙。
輸入的音頻被轉換爲具有23個頻率段的log-Mel濾波器組功能。 連接+/- 10幀的上下文窗口以形成大小爲483的最終輸入向量。我們沒有執行其他特徵預處理或特徵空間說話者自適應。 我們的輸出字母表包括32個類,即空白符號“”,26個字母,3個標點符號(撇號,. 和-)以及用於噪聲和空格的標記。
表1:使用CTC損失功能訓練的BDRNN的單詞錯誤率(WER)和字符錯誤率(CER)結果。 作爲基線(無LM),我們通過在每個時間步選擇最可能的標籤並執行CTC培訓中執行的標準摺疊來進行解碼。 我們使用基線與字典約束和二元語言模型經過修改的前綴搜索解碼器進行比較。
在這裏插入圖片描述

4.1語言模型第一步解碼

我們訓練了具有5個隱藏層(共1824個隱藏單元)的BRDNN,總共有20.9M個自由參數。網絡的第三個隱藏層具有循環連接。網絡中的權重是根據權重矩陣的輸入和輸出層大小縮放的均勻隨機分佈進行初始化的(Glorot等,2011)。如Sutskever等人所述,我們使用Nesterov加速梯度優化算法。 (2013),初始學習率爲10−5,最大動量爲0.95。每次完全通過訓練集後,我們將學習率除以1.2,以確保總體學習率隨時間降低。我們通過訓練集對網絡進行了總共20次訓練,使用我們的Python GPU實現大約需要96個小時。對於使用前綴搜索的解碼,我們使用200的波束大小並使用保留集進行交叉驗證,以找到參數α和β的良好設置。表1列出了使用該受訓BRDNN進行解碼的多種方法的單詞和字符錯誤率。
但沒有任何語言限制的情況下,CER相當低,WER仍然很高。 這與我們的觀察結果一致,即當一個單詞看起來大多正確但不符合高度不規則的英語拼字法時,在字符級別會發生許多錯誤。 在可能的字符序列上使用20k單詞詞彙作爲前綴的前綴搜索解碼可顯着改善WER,但對CER的更改相對較小。 再次比較no LM和字典LM方法的CER,這表明沒有LM時,字符大部分是正確的,但分佈在許多單詞上,從而增加了WER。 當我們使用二元流LM解碼時,CER和WER都會發生較大的相對下降。 bigram LM模型的性能表明,受CTC訓練的系統無需依賴現有語音系統生成的點陣或n最佳列表即可獲得有競爭力的錯誤率。

4.2循環連接的影響

先前使用DNN-HMM系統進行的實驗發現,DNN聲學模型中的重複連接帶來的好處很小。 很自然地想知道遞歸,尤其是雙向遞歸是否是我們體系結構的重要方面。 爲了評估循環連接的影響,我們比較了DNN,RDNN和BRDNN模型的訓練和測試CER,同時大致控制了模型中自由參數的總數。 表2顯示了每種架構類型的結果。
遞歸模型的兩種變體都顯示出與非遞歸DNN模型相比,測試集CER有了實質性的改進。 請注意,我們報告的DNN總參數僅爲16.8M,該性能小於RDNN和BRDNN模型中使用的參數總數。 我們發現較大的DNN在測試集上的表現較差,這表明DNN可能更傾向於過度適合該任務。 儘管BRDNN的參數少於RDNN,但它在訓練和測試集上的表現都更好。 同樣,這表明體系結構本身可以提高性能,而不是自由參數的總數。 相反,由於雙向遞歸和單次遞歸之間的間隔相對於非遞歸DNN小,因此使用單個遞歸網絡進行在線語音識別可能是可行的,而不會過度損害性能。
表2:無遞歸深度神經網絡(DNN),具有正向時間連接的遞歸深度神經網絡(RDNN)和雙向遞歸深度神經網絡(BRDNN)的訓練和測試集字符錯誤率(CER)結果。 所有模型都有5個隱藏層。 DNN和RDNN在每個隱藏層中均具有2,048個隱藏單元,而BRDNN每個隱藏層中均具有1,824個隱藏單元,以使其自由參數總數與其他模型相似。 對於所有模型,我們在每個時間步長選擇最可能的字符,然後應用CTC摺疊以獲得字符級別的筆錄假設。
在這裏插入圖片描述

5.結論

我們提出了一種解碼算法,該算法可通過帶有CTC訓練的神經網絡的語言模型實現首遍LVCSR。 這種解碼方法消除了對先前工作中基於HMM的系統的持久依賴。 此外,首遍解碼演示了CTC訓練系統的功能,而沒有通過提供的網格修剪搜索空間帶來的潛在影響的混雜因素。 儘管我們的結果並沒有超過WSJ語料庫上最好的基於HMM的系統,但它們證明了基於CTC的語音識別系統的前景。
我們使用BRDNN進行的實驗進一步簡化了創建基於CTC的語音識別系統所需的基礎架構。 BRDNN總體上來說不如LSTM複雜,並且可以相對容易地使其在GPU上運行,因爲大型矩陣乘法主導着計算。 但是,我們的實驗表明,循環連接對於良好的性能至關重要。 雙向遞歸不僅可以幫助單向遞歸,而且在需要低延遲在線語音識別的情況下可以犧牲掉。 結合以前基於CTC的LVCSR的工作,我們相信,在沒有基於HMM的基礎架構複雜的情況下,高質量LVCSR的發展方向令人振奮。

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