-
输入输出
- X = [ x 1 , . . . , x T ] X=[x_1, ..., x_T] X=[x1,...,xT],T个输入向量
- Y = [ y 1 , . . . , y n ] Y=[y_1, ...,y_n] Y=[y1,...,yn],n个输出标签
-
思路:输入输出长度不一致,穷举所有的可能对齐方式, 最大化 P ( Y ∣ X ) = ∑ h ∈ a l i g n ( Y ) P ( h ∣ X ) P(Y|X)=\sum_{h\in align(Y)}P(h|X) P(Y∣X)=∑h∈align(Y)P(h∣X)
-
表示:引入空白字符blank,简记为b,允许字符重复,将输出序列对齐至长度T
- 规整序列:Ground Truth,即上文中的 Y Y Y,不包含重复字符和空白字符
- CTC序列:对齐后的长度为T的序列,有多种可能
- 根据空白字符b分隔输出序列,同时合并重复的元素以确定最终结果
-
计算
-
Y表示可能的对齐路径,在间隔中插入n + 1个空白字符b,共2n + 1个字符以表示所有可能的输出,表示为状态向量 Y ∗ = [ b , y 1 , b , . . . , b , y n , b ] = [ y 1 ∗ , . . . , y 2 n + 1 ∗ ] Y^{*}=[b,y_1,b,...,b,y_n,b]=[y^*_1,...,y^*_{2n+1}] Y∗=[b,y1,b,...,b,yn,b]=[y1∗,...,y2n+1∗],向量中每个元素对应一标签
-
定义三种操作:dup,insert和next
- dup:重复当前字符
- next:跳转到下一个字符
- insert:非blank字符跳转到下一非blank字符
-
前向概率
-
α ( t , i ) \alpha(t, i) α(t,i)表示从前向后,t时刻对应 y i ∗ y_i^* yi∗状态的概率
-
空白字符
- 情况一: y i ∗ = b y_i^*=b yi∗=b,由next或dup得到, α ( t , i ) = ( α ( t − 1 , i ) + α ( t − 1 , i − 1 ) ) P ( y i ∗ ∣ x t ) \alpha(t,i)=(\alpha(t-1, i) + \alpha(t-1, i - 1) )P(y_{i}^{*}|x_{t}) α(t,i)=(α(t−1,i)+α(t−1,i−1))P(yi∗∣xt)
-
非空白字符
-
情况二:由next或dup得到, y i ∗ = y i − 2 ∗ y_i^*=y_{i-2}^* yi∗=yi
-
-
-
-
CTC(1)
最新推荐文章于 2021-10-20 18:15:49 发布