NLP复习

发布 : 2021-10-26 分类 : 复习 浏览 :

评估问题

给定观察序列(输出符号的集合)和模型,如何计算给定模型下此观察序列的概率 $P(O | \lambda)$

前向算法、后向算法、前向-后向算法

前向算法

前向变量:HMM在时间 t 输出序列 O1…Ot,并且位于状态 i 的概率 $\alpha_t(i) = P(O_1O_2…O_t, q_t = S_i |\lambda)$

就是当给出模型参数的时候,计算一个观测序列和第 t 时刻为状态 $S_i$ 的联合概率,是一个递推的过程

初始状态下与模型无关,模型是在求后来状态时用上的。所以给定 O1…OT:

看了这个图就明白了:

前向算法

可参考这篇博客.

  • 后向概率:给定HMM模型 $\lambda$,在时刻 t 状态为 $S_i$ 的条件下,从 t+1 到 T 的部分观测序列的概率

解码问题

给定观察序列和模型,如何计算状态序列使得该状态序列能最好地解释这个观察序列:$Q^* = argmax_Q{P(Q | O, \lambda)}$

就是说,给定N个状态q1…qN,要找它们的一个排列使得给定顺序的M个输出组成的序列在模型下被最好解释。

即,对于每一个输出Oi,可以有N个可能的状态。

因此,复杂度是 $N^M$.

要用好一点的算法:Viterbi

基于Viterbi变量的动态规划算法

Viterbi变量:在时间 t 沿状态序列 q1…qt 且 qt = Si 产生出O1…Ot的最大概率

Viterbi 变量说明的是,从初始状态到 t 时刻的状态 Si 的所有路径中,必有一条路径,能够使得你观察到 O1O2…Ot 序列的概率最大,也即这条路径最好的解释了 O1O2…Ot 序列的出现。

这一部分看书吧,参照李航《统计学习方法》。

学习问题

给定观察序列,如何调节模型参数使得 $P(O | \lambda)$ 最大

如果产生观察序列O的状态序列已知,则可以使用最大似然估计来计算HMM的参数

期望值最大化算法(Expectation-Maximization, EM)

搭配

参考这篇博客

本文作者 : preccrep
原文链接 : https://preccrep.github.io/2021/10/26/NLP%E5%A4%8D%E4%B9%A0/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
留下足迹

博客已萌萌哒运行(●'◡'●)ノ♥
Theme - BMW | Made With 💗 | Powered by GodBMW