語音識別CTC演算法中,最後一個公式如何推導?
01-08
論文為 Alex Grave的Connectionist Temporal Classification: Labelling Unsegmented
Sequence Data with Recurrent Neural Networks 。鏈接為
http://www.cs.toronto.edu/~graves/icml_2006.pdf
式子左邊為最大似然目標函數O對於輸出層輸入的偏導數,右邊為輸出層的真實輸出ytk與後面那一坨預測輸出的差值,文章將這個式子描述為網路在backword propagation中的錯誤信號,我理解就是梯度。
如果有人看過這篇論文的話,求問這個等式如何推導出來的?
坐等大神
剛剛真的去推了一遍 XD
首先把符號整理一下:- 整個推導過程中,涉及的時間下標都是,所以這個就省略不寫了。
- 最後的結果中,是戴帽子的,它們跟不戴帽子的差一個係數。但結果中的求和式(相當於在分子上)里的戴帽子,分母上的展開后里面的也戴帽子,於是帽子就可以抵消了。
- 去掉帽子後,跟上文 (14) 式中的(以下簡記作)就變成了同一個式子。
我們把求和號外面分母上的兩個拿一個到求和號裡面,讓它跟的表達式更像一些。
(其實這個麻煩就是因為的定義包括了時刻,如果像 HMM 里那樣把定義成從時刻開始的累乘,求和號裡面就不用除以了)然後定義,於是有,。然後我們來處理。文章中說是 unnormalized output,我推測它應該是這個意思:。
由此式容易求得,其中當時取 1,其它時候取 0。下面推導 (16) 式:
這正是原文中的 (16) 式。
這個結果似乎可以直觀理解。(實際上是)是僅觀察時刻輸出層時,輸出符號的概率;是從整體上看,所有路徑中,在時刻輸出符號的那些所佔的概率比例。當網路參數取最優值時,梯度等於 0,即,也就是說這兩個東西應該相等,也就是局部和整體一致(?)。好久沒看了,剛才看 @王贇 Maigo 對ctc中的錯誤寫了一篇文章,拿出來再過一遍,還算比較好理解,具體實現的話估計還有很多細節需要注意。有錯誤還望大神指出,有些地方理解的不是很透
推薦閱讀:
※同是兩小時的錄音,能否對比哪個交談更多?能否數據化對比?
※為什麼一般語音識別系統要選擇25毫秒或25.6毫秒為一個標準幀長?
※前向後向演算法和baum-welch演算法區別是什麼?
※準備學習研究一下語音識別 請問有哪些值得推薦的書籍 論文 及開源庫?
※政府監控私人電話,記錄的主要是哪些信息?
TAG:語音識別 |