论文阅读和分析:HMM-BASED HANDWRITTEN SYMBOL RECOGNITION USING ON-LINE AND OFF-LINE FEATURES

HMER论文系列
1、论文阅读和分析:When Counting Meets HMER Counting-Aware Network for HMER_KPer_Yang的博客-CSDN博客
2、论文阅读和分析:Syntax-Aware Network for Handwritten Mathematical Expression Recognition_KPer_Yang的博客-CSDN博客
3、论文阅读和分析:A Tree-Structured Decoder for Image-to-Markup Generation_KPer_Yang的博客-CSDN博客
4、 论文阅读和分析:Watch, attend and parse An end-to-end neural network based approach to HMER_KPer_Yang的博客-CSDN博客
5、 论文阅读和分析:Multi-Scale Attention with Dense Encoder for Handwritten Mathematical Expression Recognition_KPer_Yang的博客-CSDN博客
6、 论文阅读和分析:Mathematical formula recognition using graph grammar_KPer_Yang的博客-CSDN博客
7、 论文阅读和分析:Hybrid Mathematical Symbol Recognition using Support Vector Machines_KPer_Yang的博客-CSDN博客
8、论文阅读和分析:HMM-BASED HANDWRITTEN SYMBOL RECOGNITION USING ON-LINE AND OFF-LINE FEATURES_KPer_Yang的博客-CSDN博客

内容:读论文,同时复习HMM

主要贡献:

1、提出使用HMM模型架构进行字符识别;

复习HMM模型

下面HMM引用:[GitHub - SmirkCao/Lihang: Statistical learning methods, 统计学习方法(第2版)李航] [笔记, 代码, notebook, 参考文献, Errata, lihang]

马尔可夫链

随机过程有两个维度的不确定性。马尔可夫为了简化问题,提出了一种简化的假设,即随机过程中各个状态 s t s_t st的概率分布,只与它的前一个状态 s t − 1 s_{t-1} st1有关, 即 P ( s t ∣ s 1 , s 2 , s 3 , … , s t − 1 ) = P ( s t ∣ s t − 1 ) P(s_t|s_1, s_2, s_3, \dots,s_{t-1})=P(s_t|s_{t-1}) P(sts1,s2,s3,,st1)=P(stst1)

这个假设后来被称为马尔可夫假设,而符合这个假设的随机过程则称为马尔可夫过程,也称为马尔可夫链

数学之美,吴军

P ( s t ∣ s 1 , s 2 , s 3 , … , s t − 1 ) = P ( s t ∣ s t − 1 ) P(s_t|s_1, s_2, s_3, \dots,s_{t-1})=P(s_t|s_{t-1}) P(sts1,s2,s3,,st1)=P(stst1)

时间和状态取值都是离散的马尔可夫过程也称为马尔可夫链。

隐含马尔可夫模型
P ( s 1 , s 2 , s 3 , … , o 1 , o 2 , o 3 , …   ) = ∏ t P ( s t ∣ s t − 1 ) ⋅ P ( o t ∣ s t ) P(s_1,s_2,s_3,\dots,o_1,o_2,o_3,\dots)=\prod_tP(s_t|s_{t-1})\cdot P(o_t|s_t) P(s1,s2,s3,,o1,o2,o3,)=tP(stst1)P(otst)

隐含的是状态 s s s

隐含马尔可夫模型由初始概率分布(向量 π \pi π), 状态转移概率分布(矩阵 A A A)以及观测概率分布(矩阵 B B B)确定.

隐马尔可夫模型 λ \lambda λ 可以用三元符号表示, 即
λ = ( A , B , π ) \lambda = (A, B, \pi) λ=(A,B,π)

其中 A , B , π A,B,\pi A,B,π称为模型三要素。

具体实现的过程中,如果观测的概率分布是定的,那么 B B B就是确定的。在hhmlearn中,实现了三种概率分布的HMM模型:MultinominalHMM,GaussianHMM,GMMHMM。还可以定义不同的emission probabilities,生成不同的HMM模型。

两个基本假设

  1. 齐次马尔科夫假设(状态)
    P ( i t ∣ i t − 1 , o t − 1 , … , i 1 , o 1 ) = P ( i t ∣ i t − 1 ) , t = 1 , 2 , … , T P(i_t|i_{t-1},o_{t-1},\dots,i_1,o_1) = P(i_t|i_{t-1}), t=1,2,\dots,T P(itit1,ot1,,i1,o1)=P(itit1),t=1,2,,T
    注意书里这部分的描述

    假设隐藏的马尔可夫链在任意时刻 t t t的状态 → i t \rightarrow i_t it

    只依赖于其前一时刻的状态 → i t − 1 \rightarrow i_{t-1} it1

    与其他时刻的状态 → i t − 1 , … , i 1 \rightarrow i_{t-1, \dots, i_1} it1,,i1

    及观测无关 → o t − 1 , … , o 1 \rightarrow o_{t-1},\dots,o_1 ot1,,o1

    也与时刻 t t t无关 → t = 1 , 2 , … , T \rightarrow t=1,2,\dots,T t=1,2,,T

  2. 观测独立性假设(观测)
    P ( o t ∣ i T , o T , i T − 1 , o T − 1 , … , i t + 1 , o t + 1 , i t , i t − 1 , o t − 1 , … , i 1 , o 1 ) = P ( o t ∣ i t ) P(o_t|i_T,o_T,i_{T-1},o_{T-1},\dots,i_{t+1},o_{t+1},i_t,i_{t-1},o_{t-1},\dots,i_1,o_1)=P(o_t|i_t) P(otiT,oT,iT1,oT1,,it+1,ot+1,it,it1,ot1,,i1,o1)=P(otit)
    书里这部分描述如下

    假设任意时刻 t t t的观测 → o t \rightarrow o_t ot

    只依赖于该时刻的马尔可夫链的状态 → i t \rightarrow i_t it

    与其他观测 → o T , o T − 1 , … , o t + 1 , o t − 1 , … , o 1 \rightarrow o_T,o_{T-1},\dots,o_{t+1},o_{t-1},\dots,o_1 oT,oT1,,ot+1,ot1,,o1

    及状态无关 → i T , i T − 1 , … , i t + 1 , i t − 1 , … , i 1 \rightarrow i_T,i_{T-1},\dots,i_{t+1},i_{t-1},\dots,i_1 iT,iT1,,it+1,it1,,i1

注:用知乎一张图就说的很明白:

引用:HMM隐马尔可夫模型的例子、原理、计算和应用 - 知乎 (zhihu.com)

在这里插入图片描述

概率计算算法:前向概率与后向概率

给定马尔可夫模型 λ \lambda λ, 定义到时刻 t t t部分观测序列为 o 1 , o 2 , … , o t o_1, o_2, \dots ,o_t o1,o2,,ot, 且状态 q i q_i qi的概率为前向概率, 记作
α t ( i ) = P ( o 1 , o 2 , … , o t , i t = q i ∣ λ ) \alpha_t(i)=P(o_1,o_2,\dots,o_t,i_t=q_i|\lambda) αt(i)=P(o1,o2,,ot,it=qiλ)
给定马尔可夫模型 λ \lambda λ, 定义到时刻 t t t状态为 q i q_i qi的条件下, 从 t + 1 t+1 t+1 T T T的部分观测序列为 o t + 1 , o t + 2 , … , o T o_{t+1}, o_{t+2}, \dots ,o_T ot+1,ot+2,,oT的概率为后向概率, 记作
β t ( i ) = P ( o t + 1 , o t + 2 , … , o T ∣ i t = q i , λ ) \beta_t(i)=P(o_{t+1},o_{t+2},\dots,o_T|i_t=q_i, \lambda) βt(i)=P(ot+1,ot+2,,oTit=qi,λ)
关于 α 和 β 这两个公式 , 仔细看下 , 细心理解 . \color{red} 关于\alpha 和\beta 这两个公式, 仔细看下, 细心理解. 关于αβ这两个公式,仔细看下,细心理解. 前向概率从前往后递推, 后向概率从后向前递推。

前向算法

输入: λ , O \lambda , O λ,O

输出: P ( O ∣ λ ) P(O|\lambda) P(Oλ)

  1. 初值
    α 1 ( i ) = π i b i ( o 1 ) , i = 1 , 2 , … , N \alpha_1(i)=\pi_ib_i(o_1), i=1,2,\dots,N α1(i)=πibi(o1),i=1,2,,N
    观测值 o 1 o_1 o1, i i i的含义是对应状态 q i q_i qi

    这里 α \alpha α N N N维向量, 和状态集合 Q Q Q的大小 N N N有关系. α \alpha α是个联合概率.

  2. 递推
    α t + 1 ( i ) = [ ∑ j = 1 N α t ( j ) a j i ] b i ( o t + 1 ) ,   i = 1 , 2 , … , N ,   t = 1 , 2 , … , T − 1 \color{red}\alpha_{t+1}(i) = \left[\sum\limits_{j=1}^N\alpha_t(j)a_{ji}\right]b_i(o_{t+1})\color{black}, \ i=1,2,\dots,N, \ t = 1,2,\dots,T-1 αt+1(i)=[j=1Nαt(j)aji]bi(ot+1), i=1,2,,N, t=1,2,,T1
    转移矩阵 A A A维度 N × N N\times N N×N, 观测矩阵 B B B维度 N × M N\times M N×M, 具体的观测值 o o o可以表示成one-hot形式, 维度 M × 1 M\times1 M×1, 所以 α \alpha α的维度是 α = α A B o = 1 × N × N × N × N × M × M × N = 1 × N \alpha = \alpha ABo=1\times N\times N\times N \times N\times M \times M\times N=1\times N α=αABo=1×N×N×N×N×M×M×N=1×N

  3. 终止
    P ( O ∣ λ ) = ∑ i = 1 N α T ( i ) = ∑ i = 1 N α T ( i ) β T ( i ) P(O|\lambda)=\sum\limits_{i=1}^N\alpha_T(i)=\color{red}\sum\limits_{i=1}^N\alpha_T(i)\beta_T(i) P(Oλ)=i=1NαT(i)=i=1NαT(i)βT(i)
    注意, 这里 O → ( o 1 , o 2 , o 3 , … , o t ) O\rightarrow (o_1, o_2, o_3,\dots, o_t) O(o1,o2,o3,,ot), α i \alpha_i αi见前面前向概率的定义 P ( o 1 , o 2 , … , o t , i t = q i ∣ λ ) P(o_1,o_2,\dots,o_t,i_t=q_i|\lambda) P(o1,o2,,ot,it=qiλ), 所以, 对 i i i求和能把联合概率中的 I I I消掉.

    前向算法的关键是其局部计算前向概率, 然后利用路径结构将前向概率"递推"到全局.减少计算量的原因在于每一次计算直接引用前一时刻的计算结果, 避免重复计算.

前向算法计算 P ( O ∣ λ ) P(O|\lambda) P(Oλ)的复杂度是 O ( N 2 T ) O(N^2T) O(N2T)阶的,直接计算的复杂度是 O ( T N T ) O(TN^T) O(TNT)阶,所以 T = 2 T=2 T=2时候并没什么改善。

红色部分为后补充了 β T ( i ) \beta_T(i) βT(i)项,这项为1,此处注意和后面的后向概率对比。

后向算法

输入: λ , O \lambda , O λ,O
输出: P ( O ∣ λ ) P(O|\lambda) P(Oλ)

  1. 终值

β T ( i ) = 1 , i = 1 , 2 , … , N \beta_T(i)=1, i=1,2,\dots,N βT(i)=1,i=1,2,,N

t = T t=T t=T时刻, 观测序列已经确定.

  1. 递推

β t ( i ) = ∑ j = 1 N a i j b j ( o t + 1 ) β t + 1 ( j ) , i = 1 , 2 , … , N , t = T − 1 , T − 2 , … , 1 \color{red}\beta_t(i)=\sum\limits_{j=1}^Na_{ij}b_j(o_{t+1})\beta_{t+1}(j)\color{black}, i=1,2,\dots,N, t=T-1, T-2,\dots,1 βt(i)=j=1Naijbj(ot+1)βt+1(j),i=1,2,,N,t=T1,T2,,1

从后往前推
β = A B o β = N × N × N × M × M × N × N × 1 = N × 1 \beta = ABo\beta = N \times N \times N \times M \times M \times N \times N \times 1 = N \times 1 β=ABoβ=N×N×N×M×M×N×N×1=N×1

P ( O ∣ λ ) = ∑ i = 1 N π i b i ( o 1 ) β 1 ( i ) = ∑ i = 1 α 1 ( i ) β 1 ( i ) P(O|\lambda)=\sum\limits_{i=1}^N\pi_ib_i(o_1)\beta_1(i)=\color{red}\sum\limits_{i=1}\alpha_1(i)\beta_1(i) P(Oλ)=i=1Nπibi(o1)β1(i)=i=1α1(i)β1(i)

  • 这里需要注意下,按照后向算法, β \beta β在递推过程中会越来越小,如果层数较多,怕是 P ( O ∣ λ ) P(O|\lambda) P(Oλ)会消失
  • 另外一个要注意的点 o t + 1 β t + 1 \color{red}o_{t+1}\beta_{t+1} ot+1βt+1
  • 注意,红色部分为后补充,结合前面的前向概率最后的红色部分一起理解。

小结

求解的都是观测序列概率
观测序列概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)统一写成
P ( O ∣ λ ) = ∑ i = 1 N ∑ j = 1 N α t ( i ) a i j b j ( o t + 1 β t + 1 ( j ) ) ,   t = 1 , 2 , … , T − 1 P(O|\lambda)=\sum_{i=1}^N\sum_{j=1}^N\alpha_t(i)a_{ij}b_j(o_{t+1}\beta_{t+1}(j)),\ t=1,2,\dots,T-1 P(Oλ)=i=1Nj=1Nαt(i)aijbj(ot+1βt+1(j)), t=1,2,,T1

P ( O ∣ λ ) = α A B o β P(O|\lambda) = \alpha ABo\beta P(Oλ)=αABoβ

其实前向和后向不是为了求整个序列 O O O的概率,是为了求中间的某个点 t t t,前向后向主要是有这个关系:
α t ( i ) β t ( i ) = P ( i t = q i , O ∣ λ ) \alpha_t(i)\beta_t(i)=P(i_t=q_i,O|\lambda) αt(i)βt(i)=P(it=qi,Oλ)
t = 1 t=1 t=1或者 t = T − 1 t=T-1 t=T1的时候,单独用后向和前向就可以求得 P ( O ∣ λ ) P(O|\lambda) P(Oλ),分别利用前向和后向算法均可以求解 P ( O ∣ λ ) P(O|\lambda) P(Oλ),结果一致。

利用上述关系可以得到下面一些概率和期望,这些概率和期望的表达式在后面估计模型参数的时候有应用。

概率与期望

  1. 输入模型 λ \lambda λ与观测 O O O,输出在时刻 t t t处于状态 q i q_i qi的概率 γ t ( i ) \gamma_t(i) γt(i)
  2. 输入模型 λ \lambda λ与观测 O O O,输出在时刻 t t t处于状态 q i q_i qi且在时刻 t + 1 t+1 t+1处于状态 q j q_j qj的概率 ξ t ( i , j ) \xi_t(i,j) ξt(i,j)
  3. 在观测 O O O下状态 i i i出现的期望值
  4. 在观测 O O O下状态 i i i转移的期望值
  5. 在观测 O O O下状态 i i i转移到状态 j j j的期望值

模型架构

使用三个HMM模型进行分类

在这里插入图片描述

{ x o } \{x_o\} { xo}:在线特征; { x v } \{x_v\} { xv}:离线特征; { x h } \{x_h\} { xh}:离线特征;

注:这篇论文的特征基本是参考其他另外两篇的,只是做了HMM的多层架构进行集成,特征方法在另外两篇论文再学习。

参考:

1、《HMM-BASED HANDWRITTEN SYMBOL RECOGNITION USING ON-LINE AND OFF-LINE FEATURES》
2、HMM隐马尔可夫模型的例子、原理、计算和应用 - 知乎 (zhihu.com)

猜你喜欢

转载自blog.csdn.net/KPer_Yang/article/details/129742740
今日推荐