單個樣本的Loss定義:
訓練集上CTC Loss定義:
利用極大似然定義整體的損失,取log后,轉化為將所有樣本的loss求和qu'dui'shu:
CTC目標函數
給定語音序列 x,標簽序列 z,對于所有滿足能映射到序列z的解碼路徑,可用 前向-后向 算法求解:
α(t, u)·β(t, u)含義
對t時刻,輸出標簽‘u’的所有路徑π的概率求和(s.t. 但是路徑π必須滿足映射后為z)。
formula 1
先計算單條路徑的概率,然后對滿足的所有路徑概率求和
formula 2
P( z | x )
因此對所有輸出字符u進行遍歷,即為給定x輸出z的概率。
因此得到單個樣本的Loss:
CTC反向傳播
對單個樣本來說:
1. 對網絡輸出y的偏導:
因為我們要考慮 t時刻 輸出 標簽k 的所有路徑,因此要引入前向-后向算法【見 formula 2】,于是有:
同時,因為標簽k在序列z'中可能會出現多次,因此定義B(z, k)={ u: z'u = k },那么就得到了p( z | x )對輸出y的偏導:【實際上就是對所有輸出標簽k的位置計算損失,為了進行對齊】
最終單個樣本對于網絡輸出y的偏導為:
2. 對輸出層的偏導:
其中k’為遍歷所有輸出單元,網絡輸出y是輸出層通過softmax得到的,即:
對Softmax求偏導,如下:【注意softmax要對 k = k' 和 k ≠ k 分別討論】
將兩種情況進行綜合,于是上式的δkk'就是下式:
因此,得到網絡輸出y對輸出層a的偏導,最終傳到輸出層的梯度為: