王 璐,潘文林
(云南民族大學 數(shù)學與計算機科學學院,昆明 650500)
任何語音識別的實際應用,高準確率都是必要條件.目前,廣泛使用小規(guī)模語料庫來保證高準確率.但對于少數(shù)族群的語言和方言,語料采集困難多、成本高,難以構(gòu)造大型語料庫.如果使用少量語料即可達到高準確率,將大大降低自動語音識別(automatic speech recognition, ASR)的應用成本,并得以推廣到少數(shù)族群語言.因此,基于小規(guī)模語料庫的語音識別已成為目前挑戰(zhàn)性的研究問題.
現(xiàn)有的模型學習能力弱,而人類能基于經(jīng)驗快速掌握新事物[1].如高性能的ASR模型需要上萬小時的語料[2],AlphaZero需要上百萬次對弈學習[3],DQN及其變種算法[4]在Atari 2 600 基準中需要1 800萬幀才能達到人類平均水平[5].可見,要大規(guī)模推廣ASR應用,必然要提升機器學習模型的學習能力,降低數(shù)據(jù)需求和訓練時間.
元學習(meta learning)是模仿人類利用已有經(jīng)驗快速學習新知識的新興機器學習研究領域,在強化學習、圖像識別領域顯著地提升了模型學習能力[6].我們認為:將元學習方法用于ASR模型,可能會提升ASR模型的學習能力,有助于解決小規(guī)模語料語音識別這一挑戰(zhàn)性問題.ASR的基礎是孤立詞識別,因此,本文以提升孤立詞識別模型的學習能力為研究目標.
ASR模型常用循環(huán)神經(jīng)網(wǎng)絡(recurrent neural network,RNN).典型方法如LiGRU-Dropout[7]、Light GRU[8]、LSTM-CNN[9]、Deep Speech 2[2]、BiLSTMs-ResNet[10]等等,其中雙向RNN取得了良好效果.Attention機制使模型可以同時識別和對齊[11-12],在各類ASR基線任務上表現(xiàn)良好[13-14].除RNN,基于CNN、LAS + Spec Augment[15]、tdnn+chain[16-17]等其它方法也在基線任務中取得良好效果.
目前常用的基線(baseline)數(shù)據(jù)集有:LibriS-peech test-clean,詞錯誤率(word error rate,WER)最低為 2.5%[15];LibriSpeech test-other,詞錯誤率最低為5.8%[15];TIMIT,錯誤率(percentage error)最低為14.2%[7];Switchboard + Hub500,錯誤率最低為5.5%[10];WSJ eval92,錯誤率最低為:2.32%[17];CHIME real錯誤率最低為11.4%[18].此外,常用的中文基線數(shù)據(jù)集有RASC863[19]和THCHS-30[20].
ASR工程技術已基本成熟.國內(nèi)已實現(xiàn)了漢語及其部分方言[21]、藏、彝、蒙[22]等語言的商用語音識別.國外,Google支持英、俄、西班牙、德、日、法等120 種語言和方言的語音識別.
然而ASR尚未廣泛應用.中國有97個漢語方言片[23],語言數(shù)量超過130種[24].世界上的語言數(shù)量超過5 000種.未能廣泛應用的原因之一是高精度ASR依賴于大型語料庫,如文獻[2]中使用了11 940 h的英語語料和9 400 h的普通話語料,文獻[25]中使用了約18 000 h的英語語料.
是否能使用更少的語料實現(xiàn)語音識別呢?此前已有一些低資源(非大語料)語音識別的相關研究.如Chan等人的研究表明低資源語音識別中CNN的表現(xiàn)較好[26],Cai等提出SPM(Stochastic Pooling Maxout)方法[27]用于低資源語音識別.Yu等[28]使用DBLSTM+CTC模型對呂蘇語、土家語上取得了不錯的識別精度,此外Yu等[29]還建立端到端的遷移學習模型以提升土家語的識別率,并表明少數(shù)族群的語料庫構(gòu)建更困難.
大型語料庫構(gòu)建成本高,而小型語料庫則難以達到高準確率.小規(guī)模語料庫語音識別這一挑戰(zhàn)性問題是廣泛推廣ASR的關鍵.
元學習(meta learning),或?qū)W習學習(learning to learn),是一門系統(tǒng)地觀察不同機器學習方法如何在廣泛的學習任務中執(zhí)行的科學,然后從獲得的經(jīng)驗或元數(shù)據(jù)中學習.從而比其他方法更快速地學習新任務[30].元學習本是認知心理學中非正式古老概念,近年才成為機器學習的正式概念.
元學習更多地關注提升神經(jīng)網(wǎng)絡的學習能力.對于神經(jīng)網(wǎng)絡,其擬合能力已被證明,如Cybenko等[31]針對前饋神經(jīng)網(wǎng)絡證明通用近似定理、Haykin等[32]針對循環(huán)神經(jīng)網(wǎng)絡證明通用近似定理等等.根據(jù)通用近似定理,兩層的前饋神經(jīng)網(wǎng)絡可以近似任意有界閉集上的任意連續(xù)函數(shù),一個完全連接的循環(huán)網(wǎng)絡是任何非線性動力系統(tǒng)的近似器[33]. 但這些通用近似定理并沒有給出如何找到這樣的網(wǎng)絡以及如何快速達到最佳性能.
元學習是一個廣泛的概念,不同的研究方向使用的方法理論不同,如基于模型的方法大多可以針對性基于通用近似定理證明,但一些非神經(jīng)網(wǎng)絡新模型只有較為嚴謹?shù)膶嶒炞C明.基于優(yōu)化的研究通?;谔荻认陆档葍?yōu)化算法,因此如MAML等算法可以簡單地看作梯度優(yōu)化算法的變種,而MAML具體地性能提升難以計算(算法性能還依賴于模型、數(shù)據(jù)與超參數(shù)).由于神經(jīng)網(wǎng)絡的可解釋性是經(jīng)典科研難題且機器學習領域研究日新月異,因此相關研究一般需要可復現(xiàn)的實驗證明,而嚴謹?shù)睦碚撟C明則往往在其廣泛應用后才開始研究.
目前,元學習已在機器人學習[40]、機器視覺[38]等領域有所應用.如小樣本學習的常用基線任務Mini-ImageNet 1-Shot Learning正確率已達62.86%[41-42](小樣本學習中,常用N-shotK-way來指代N樣本K分類問題,如1-shot意為每類僅提供1個訓練樣本,稱為單樣本學習或一次學習).
一種元學習問題的定義[34]:
θ*=arg minθED~p(D)[lθ(D)].
(1)
即:通過優(yōu)化參數(shù)θ來降低數(shù)據(jù)集分布p(D)中的期望學習成本.
元學習實驗一般分為2步:元學習和學習,其等價描述為元訓練和元測試.元訓練為學習不同任務中包含的元知識,元測試為在其他任務上測試元學習算法的能力.
與傳統(tǒng)機器學習相比,元學習將一個數(shù)據(jù)集看作一個任務(樣本).任務中用于元訓練的集合稱為支撐集(support set).用于元測試(meta test)的集合稱為查詢集(query set).訓練集與測試集由多個任務組成.
與遷移學習相比,元學習通常傾向于研究多任務中的共性,而遷移學習通常傾向于研究一項任務到另一任務的遷移.
可見文獻中尚無對元學習語音識別的研究.要將某一元學習方法用于語音識別,首先要驗證元學習方法是否對其有效,即:對于語音信號和模型,某一方法能否提升語音識別模型的學習速度與泛化精度.
基于優(yōu)化的元學習方法最有可能提升語音識別模型性能,其代表性算法為MAML.本文選用了MAML的一階近似算法Reptile,它所需的計算量較少.
Reptile算法由OpenAI提出[43],是MAML算法[6]的一階近似,算法思想如下:
(2)
其元訓練過程為迭代式(2)以從不同任務中學習元知識,得到的參數(shù)θ*作為元測試中模型的初始參數(shù),用以評估該算法效果.對比用的基線算法為最廣泛應用的神經(jīng)網(wǎng)絡參數(shù)初始化方法:隨機初始化.
從基于優(yōu)化的角度來看,當訓練集、測試集為相同任務時,Reptile可以看作梯度下降算法的變種,其優(yōu)化能力由經(jīng)典梯度優(yōu)化算法保證,當訓練集、測試集為不同任務時,其學習目標為學習元知識.
Reptile的算法思想可以描述為:尋找一組參數(shù),它到所有任務上最優(yōu)參數(shù)的距離最短.
優(yōu)化目標:單樣本孤立詞二分類問題.單樣本學習是最能衡量學習能力的問題,孤立詞識別(分類)是語音識別中最基本的問題,二分類是分類中最基本的問題.因此,要衡量某一元學習方法是否能提升語音識別模型的學習能力,最典型的實驗就是單樣本孤立詞二分類問題.值得一提的是:連續(xù)語音識別問題中模型較為復雜,影響因素多,可見文獻中尚無可用的小樣本連續(xù)語音識別方案.
對比目標:針對同一數(shù)據(jù)集,在同一超參數(shù)、模型下訓練,對比使用θ*與當前通用方法初始化參數(shù)的優(yōu)化效果,若使用θ*可以取得更好的優(yōu)化過程與結(jié)果,則說明使用Reptile算法得出的模型學習能力更強.
數(shù)據(jù)集:佤語是典型的由于語料庫較小而無法實現(xiàn)ASR的語言之一,在佤語語料上進行實驗以說明Reptile等元學習方法可以提升佤語語音識別模型的學習能力.此外,還使用了TIMIT英語語料庫再次實驗,更充分地說明該算法在語音識別上的通用性.
模型:對于二分類孤立詞識別問題,小型神經(jīng)網(wǎng)絡應該可以取得較好效果.
性能比較:訓練模型到驗證損失不再下降,測試正確率越高、驗證損失越低,代表泛化性能越強.
學習速度比較.達到最高泛化精度的訓練輪數(shù),輪數(shù)越小則其學習速度越快.
此外,正確率與損失曲線越平滑,在不同數(shù)據(jù)下變化越小,說明模型穩(wěn)定性越好.
3.2.1 佤語孤立詞數(shù)據(jù)集
對于每個任務,隨機取1個樣本作支撐集,20個樣本作查詢集,部分類別的詞不足20個,則取訓練樣本外的全部.
3.2.2 TIMIT孤立詞數(shù)據(jù)集
對于每個任務,隨機取1個樣本作支撐集, 20個樣本作查詢集,不足同上法.
四層卷積+一層全連接.其中每個卷積層由64個步長2的3×3卷積核構(gòu)成,對卷積結(jié)果進行批量正則化后,使用Relu函數(shù)激活.全連接層由1個神經(jīng)元構(gòu)成,激活函數(shù)為Sigmoid.模型輸入為語譜圖(大小為3×64×64).
3.4.1 元訓練
用于TIMIT語料庫的超參數(shù)設置如下:迭代次數(shù)iter=354,m=5,k=21,α=1,U=SGD(lr=0.01).每類樣本數(shù)N=1,即1-shot2-way任務.用此參數(shù)迭代公式(2) 相應獲得模型參數(shù)θ*.
用于佤語語料庫的超參數(shù)設置如下:迭代次數(shù)iter=1 000,m=5,k=15,α=1,U=SGD(lr=0.01).每類樣本數(shù)N=1,即1-shot2-way任務.用此參數(shù)迭代公式(2)獲得相應模型參數(shù)θ*.
使用網(wǎng)格搜索或群體智能搜索來尋找超參數(shù)通常能夠獲得更好的泛化精度.如果能在較為任意的超參數(shù)下仍能取得較好地實驗效果,更能反應Reptile算法的適用性與易用性.因此,上述超參數(shù)為任意給出,只經(jīng)過簡單調(diào)優(yōu).
3.4.2 元測試
分別使用Reptile獲得的參數(shù)θ*與隨機初始化的參數(shù)訓練模型.隨機參數(shù)初始化方法為random uniform,偏置為全零初始化.
隨機抽取任務測試10次,每次都使用相同的任務、模型、超參數(shù).
3.5.1 TIMIT孤立詞數(shù)據(jù)集的實驗結(jié)果
圖中的陰影部分為隨機10次實驗的數(shù)據(jù)分布.可以明顯看出多次實驗中Reptile方法收斂快、測試正確率更高.在300輪訓練后,Random方法開始過擬合(測試損失增加).相比于佤語數(shù)據(jù)集,TIMIT更早地開始過擬合,這可能是由于TIMIT發(fā)音人更多(630人)造成的.
此外,Reptile方法的曲線更平滑,說明Reptile方法獲得參數(shù)的損失函數(shù)空間更平滑,更易優(yōu)化.
3.5.2 佤語孤立詞數(shù)據(jù)集的實驗結(jié)果
模型性能:對于同一模型,使用Reptile方法的測試正確率為93.75%,損失更小,實驗中未發(fā)生過擬合.而隨機初始化的模型性能更差,并在600輪處開始過擬合.
學習速度:Reptile方法使模型收斂的速度更快.僅2輪正確率就達到了90%,30輪達到93%,并在170輪后穩(wěn)定于93.75%附近.而隨機初始化則需要近200輪,且正確率由波動,400輪后穩(wěn)定于89.5%附近.
相比于圍棋中理想、完美的信息,現(xiàn)實世界如語音識別領域要處理的信息通常不具備這一條件.要廣泛地應用語音識別,就要在小規(guī)模語料庫上達到高準確率.本文認為,研究基于元學習的語音識別,是解決小規(guī)模語料庫的語音識別這一挑戰(zhàn)性研究問題的有效途徑.本文在單樣本孤立詞語音識別任務上,首次使用元學習方法Reptile提升了模型學習能力,模型從多個不同的小規(guī)模任務上習得元知識,使模型對目標任務的收斂速度與泛化精度得到了提高.