本文为《数学之美》,隐马尔可夫模型这一章的读书笔记。
隐马尔可夫模型最初应用在通信领域,继而推广到语音和语言处理中,成为自然语言处理和通信的桥梁。同时也是机器学习的主要工具,作为工具时同时需要,训练算法(保姆韦尔奇算法)和解码算法(维比特算法)。
S (Signal)
O (Observation)
1 隐马尔可夫模型
马尔可夫假设:随机过程中的各个状态
S
t
S_{t}
St的概率分布只和前一个状态
S
t
−
1
S_{t-1}
St−1有关,即
P
(
S
t
∣
S
1
,
S
2
,
.
.
.
,
S
t
−
1
)
\textit{P} \left (S_{t}|S_{1},S_{2},...,S_{t-1} \right )
P(St∣S1,S2,...,St−1) =
P
(
S
t
∣
S
t
−
1
)
\textit{P}\left (S_{t}|S_{t-1} \right )\,
P(St∣St−1)
马尔可夫链(马尔可夫过程):符合这个假设的随机过程。
隐马尔可夫模型:任意时刻的状态
S
t
S_{t}
St是不可见的,所以无法推测状态转移(m2-m3or m4)概率,但是每次假设都有一个与
S
t
S_{t}
St相关且仅与
S
t
S_{t}
St相关的
O
t
O_{t}
Ot,这种称为独立输出假设。如下,这个模型就称为隐马尔可夫模型。
于是,要识别的句子为
S
1
,
S
2
,
S
3
S_{1},S_{2},S_{3}
S1,S2,S3,已知输出o,来判断输入的s的概率。
利用贝叶斯转化为
分母为已知的数,所以等同于
根据5.5带入5.2
然后再求解5.1的最大值,需要用到为比特算法。
1 隐马尔可夫模型的训练
训练模型主要是得到模型的参数,
转移概率:
P
(
S
t
∣
S
t
−
1
)
\textit{P}\left (S_{t}|S_{t-1} \right )\,
P(St∣St−1)
生成概率:
P
(
O
t
∣
S
t
)
\textit{P}\left (O_{t}|S_{t} \right )\,
P(Ot∣St)
有监督的训练,直接人工去标记好概率。
无监督的训练,(鲍姆韦尔奇算法)
利用观测到的值去倒推更新模型的参数,一直迭代更新,直到模型的质量不再有明显的提高为止,就得到了模型的参数,但是这种方法容易陷入局部最优。