單個(gè)樣本的Loss定義:
訓(xùn)練集上CTC Loss定義:
利用極大似然定義整體的損失瘦穆,取log后匙瘪,轉(zhuǎn)化為將所有樣本的loss求和qu'dui'shu:
CTC目標(biāo)函數(shù)
給定語音序列 x卧檐,標(biāo)簽序列 z,對于所有滿足能映射到序列z的解碼路徑强挫,可用 前向-后向 算法求解:
α(t, u)·β(t, u)含義
對t時(shí)刻鸽素,輸出標(biāo)簽‘u’的所有路徑π的概率求和(s.t. 但是路徑π必須滿足映射后為z)。
先計(jì)算單條路徑的概率举哟,然后對滿足的所有路徑概率求和
P( z | x )
因此對所有輸出字符u進(jìn)行遍歷思劳,即為給定x輸出z的概率。
因此得到單個(gè)樣本的Loss:
CTC反向傳播
對單個(gè)樣本來說:
1. 對網(wǎng)絡(luò)輸出y的偏導(dǎo):
因?yàn)槲覀円紤] t時(shí)刻 輸出 標(biāo)簽k 的所有路徑妨猩,因此要引入前向-后向算法【見 formula 2】潜叛,于是有:
同時(shí),因?yàn)闃?biāo)簽k在序列z'中可能會出現(xiàn)多次壶硅,因此定義B(z, k)={ u: z'u = k }威兜,那么就得到了p( z | x )對輸出y的偏導(dǎo):【實(shí)際上就是對所有輸出標(biāo)簽k的位置計(jì)算損失,為了進(jìn)行對齊】
最終單個(gè)樣本對于網(wǎng)絡(luò)輸出y的偏導(dǎo)為:
2. 對輸出層的偏導(dǎo):
其中k’為遍歷所有輸出單元庐椒,網(wǎng)絡(luò)輸出y是輸出層通過softmax得到的椒舵,即:
對Softmax求偏導(dǎo),如下:【注意softmax要對 k = k' 和 k ≠ k 分別討論】
將兩種情況進(jìn)行綜合扼睬,于是上式的δkk'就是下式:
因此逮栅,得到網(wǎng)絡(luò)輸出y對輸出層a的偏導(dǎo)悴势,最終傳到輸出層的梯度為: