1、CTC ( Connectionist Temporal Classification)
网络结构
参考地址: CTC白话参考地址
其中CTC-loss 部分使用到了动态规划的思想。
大目标是:
m i n ∑ B ( π ) = z ∏ t = 1 T y π t t m i n ∑ B ( π ) = z ∑ t = 1 T l o g ( y π t t ) min \sum_{B(\pi)=z } {\prod_{t=1}^{T} y_{\pi_t}^{t}} \\ min \sum_{B(\pi)=z } {\sum_{t=1}^{T} log(y_{\pi_t}^{t})} minB(π)=z∑t=1∏TyπttminB(π)=z∑t=1∑Tlog(yπtt)
其中 T T T表示总帧数。 y π t t y_{\pi_t}^{t} yπtt表示模型预测的第t帧,因素为 π t \pi_t πt的概率值。
dp[i][j]: 表示第考虑到i帧,压缩路径满足
z
=
(
n
,
i
,
h
,
a
,
o
)
z=(n,i,h,a,o)
z=(n,i,h,a,o)的前j个时的,所有路径总概率和。记为:
∑
B
(
π
)
=
z
∏
t
=
1
i
y
π
t
t
\sum_{B(\pi)=z } {\prod_{t=1}^{i} y_{\pi_t}^{t}}
B(π)=z∑t=1∏iyπtt
所以状态转移方程为:
d
p
[
i
]
[
j
]
=
d
p
[
i
−
1
]
[
j
]
∗
y
z
j
+
d
p
[
i
]
[
j
−
1
]
∗
y
z
j
dp[i][j] = dp[i-1][j] * y_{z_j} + dp[i][j-1] * y_{z_j}
dp[i][j]=dp[i−1][j]∗yzj+dp[i][j−1]∗yzj