資源描述:
《lstm+ctc詳解》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、LSTM+CTC詳解隨著智能硬件的普及,語音交互請求會越來越多。2011年之后,深度學(xué)習(xí)技術(shù)引入到語音識別之后,大家也一直再問一個(gè)問題,深度學(xué)習(xí)技術(shù)還能像剛提出時(shí)候那樣,持續(xù)大幅度提升現(xiàn)在的語音識別技術(shù)嗎?語音技術(shù)能夠從小規(guī)模的使用轉(zhuǎn)向全面產(chǎn)業(yè)化成熟嗎?如果全面產(chǎn)業(yè)化成熟,意味著會有越來越多的語音處理需求,但百度語音技術(shù)部的負(fù)責(zé)人賈磊說,如果線上50%的搜索都由語音完成,而機(jī)器耗費(fèi)還和過去一樣,那么沒有公司能承擔(dān)起這樣的機(jī)器耗費(fèi)。語音搜索的未來會怎樣?技術(shù)能持續(xù)發(fā)展嗎?技術(shù)的發(fā)展能否優(yōu)化成本結(jié)構(gòu),同時(shí)又保障
2、用戶體驗(yàn)?賈磊演講全文【賈磊】我簡單介紹一下長短時(shí)記憶模型。這個(gè)模型的優(yōu)勢就在于,在傳統(tǒng)的網(wǎng)絡(luò)中引入三個(gè)門:輸入門,輸出門和遺忘門,分別代表對信息長期、遠(yuǎn)期和近期的記憶和控制。相對于我們傳統(tǒng)的CNN和DNN模型,它的好處是能夠記錄軌跡的變化。這個(gè)模型已經(jīng)提出來很久了,本身并不是近期的創(chuàng)新,但要把它應(yīng)用在工業(yè)里,是有很多困難和現(xiàn)實(shí)問題的。為了把模型應(yīng)用在產(chǎn)品上,我們提出了一套CNN+7DNN+2LSTM的結(jié)構(gòu)。我當(dāng)時(shí)提出這個(gè)結(jié)構(gòu),是專門在西北工業(yè)大學(xué)匯報(bào)過的,Google當(dāng)時(shí)沒有論文。Google當(dāng)初提出2層
3、LSTM,在我們的驗(yàn)證中,如果是對于狀態(tài)建模,那么需要比較Deep的模型,因?yàn)檫@是比較短的瞬時(shí)狀態(tài),它的軌跡并不清晰。那么如果采取這種深層結(jié)構(gòu),兩三輪的迭代,數(shù)據(jù)就可以獲得收斂,有很好的這個(gè)效果。而如果只用2層的LSTM,隨著數(shù)據(jù)量的增加,這個(gè)提升會很慢。而且最終的收益,這個(gè)模型的效果好。Google最后的論文也證明了這一點(diǎn),這樣的模型結(jié)構(gòu),對于狀態(tài)建模是比較好的。然后我們在LSTM的模型上,主要解決了海量數(shù)據(jù)的訓(xùn)練和效率問題。因?yàn)長STM不是今天的重點(diǎn),今天主要講CTC,和語音識別對傳統(tǒng)框架的改變。因此我
4、就跳過這一部分。LSTM的訓(xùn)練是有困難的,因?yàn)楹苋菀装l(fā)散。這是一個(gè)重要的技術(shù),Google提出的LSTMP,它在傳統(tǒng)的LSTM模型之上,引入了一個(gè)反饋層。這個(gè)反饋層對工業(yè)界彌足珍貴,因?yàn)檫@個(gè)反饋層會使運(yùn)算的計(jì)算量大幅下降,它可以把反饋的,比如說你這個(gè)神經(jīng)元節(jié)點(diǎn)是1024,他反饋的可以采用256,這樣整個(gè)計(jì)算量會大幅壓縮。因此我向大家推薦這個(gè)技術(shù),基本上應(yīng)該是工業(yè)界和學(xué)術(shù)界的最新技術(shù),除了產(chǎn)品效果之外,這個(gè)的精度更高,我對這個(gè)的猜想是因?yàn)長STM的輸出層很大,它有兩萬多個(gè)節(jié)點(diǎn),在狀態(tài)建模的時(shí)候。因此為了和外部
5、的匹配,通常的就是C代表的LSTM的記憶單元,這個(gè)單元的維度會比較高,一般采用的是1024,也可以采用2048。當(dāng)采用1024的時(shí)候,其實(shí)整個(gè)網(wǎng)絡(luò)已經(jīng)非常復(fù)雜了。這個(gè)屬于反饋層,可以把參數(shù)大幅的壓低,從而導(dǎo)致你可以魯棒穩(wěn)定的去訓(xùn)練這個(gè)網(wǎng)絡(luò)。那么有人反映,帶有反饋層之后訓(xùn)練會不穩(wěn)定。我的感覺是這種反饋即使有不穩(wěn)定,大家要去鉆研,因?yàn)樗潜夭豢缮俚摹9I(yè)產(chǎn)品中如果不帶這個(gè)反饋,計(jì)算量是難以承受的。這是Google對LSTM的貢獻(xiàn),我向大家推薦這個(gè)技術(shù)。然后講BPTT算法,BPTT算法是最基本的訓(xùn)練神經(jīng)網(wǎng)絡(luò)的算法
6、,就是誤差反向傳播。對于R模型或者LSTM模型它是有軌跡的,因此它是根據(jù)軌跡的誤差反向傳播。它有兩種方法。第一種方法是逐幀遞推的,一幀推下一幀,再下一幀誤差規(guī)避以后再向前傳。第二種是所有的誤差同步向前傳,傳固定的步數(shù)。這兩種算法其實(shí)在BPTT的理論都是存在的。后面這種實(shí)際上就是把誤差截?cái)?,不讓誤差從頭傳到尾。第一種就是直接從頭傳到尾。兩種基本的算法,大家可以了解一下基本的理論。這是我們多層的LSTM的結(jié)構(gòu),下面是我們的CNN層,上面是我們的DNN全連接層,這是我們的LSTM兩層。這個(gè)節(jié)點(diǎn)是采用了1024,這
7、個(gè)維數(shù)的大小,線上的工業(yè)產(chǎn)品是可以用的。所以大家的研究可以照著這個(gè)去做,如果你的體積過大或者過小,對于工業(yè)而言可能就是研究跟現(xiàn)實(shí)之間就會有不匹配。這解釋了網(wǎng)絡(luò)能夠提升系統(tǒng)的根本原因:第一,多層結(jié)構(gòu)對神經(jīng)網(wǎng)絡(luò)而言總是有價(jià)值的,因?yàn)槎鄬右馕吨斎氲臄_動在輸出總數(shù)會衰減。這個(gè)我覺得微軟的于老師是有一篇論文去講這個(gè)。第二個(gè)狀態(tài)建模,狀態(tài)的軌跡并不是很清晰,很短、很sharp的一個(gè)建模單元。這個(gè)時(shí)候如果完全采用LSTM去建模的話,造成的結(jié)果就是LSTM是軌跡比較強(qiáng),但是它跟瞬態(tài)的模擬能力不夠,因此結(jié)合瞬態(tài)跟軌跡這樣的
8、一個(gè)模型結(jié)構(gòu),在我們現(xiàn)實(shí)產(chǎn)品中發(fā)現(xiàn)是穩(wěn)定的,而且總是有好的效果。那我們和雙層的LSTM做對比,谷歌當(dāng)年剛開始提出雙層的LSTM勝過CNN,有這樣一篇論文,大家可以去找,我們做了實(shí)驗(yàn),實(shí)際上我們達(dá)到的是negative的結(jié)果。在2000小時(shí)中,跟谷歌的實(shí)驗(yàn)一樣,對等。雙層LSTM的效果勝過了傳統(tǒng)的CNN技術(shù)。但如果把數(shù)據(jù)量增加到一萬小時(shí)的時(shí)候,這種十層的CNN會勝過雙層的LSTM,節(jié)點(diǎn)是1024,大家可以做實(shí)驗(yàn)看看