让模型自己学出它的数
到目前为止我们都假设已知 π、A 和 B。真实数据里并非如此,只有观测。Baum-Welch 算法从数据中学出这些数,它是期望最大化(EM)的一个例子,靠重复两步工作。E 步:用当前的数和前向-后向算法算出每一天每个隐含状态以及每次状态切换有多大可能。M 步:通过计数重新估计这些数,只是用这些概率代替整数计数。
πi←γ1(i),Aij←∑t=1T−1γt(i)∑t=1T−1ξt(i,j),Bj(k)←∑tγt(j)∑tγt(j)[ot=k](1) 这里 γt(i) 是第 t 天处于状态 i 的平滑概率,ξt(i,j) 是第 t 天到第 t+1 天从 i 转到 j 的平滑概率。所以新的 Aij 就是 i→j 转移的期望次数除以停留在 i 的期望天数。有两点值得知道:数据的对数似然在 EM 每一轮之间绝不会下降,所以改进停止时就可以收手;但 EM 只会爬到最近的峰,可能停在局部极大值,不同的初始值可能给出不同的答案。实践中会尝试多个起点,保留最好的。
对 小、大、大 的一轮沿用上一个主题,三天里平静的平滑概率为
(0.430, 0.118, 0.097)。平静天数的期望为
0.645。平静的新初始概率为
0.430。只有第一天是小波动,所以平静下出现小波动的新概率为
0.430/0.645=0.667。平静到平静的转移期望次数为
0.179,转移之前停留在平静的期望天数为
0.430+0.118=0.548,所以新的
ACC=0.179/0.548=0.327。三天数据只是示意,真实运行会在成千上万天上重复这一步,直到对数似然不再改进。
- E 步:用当前的数通过前向-后向算出 γ 和 ξ。
- M 步:把 π、A、B 重新估计为期望计数除以期望总数。
- 对数似然绝不下降,但 EM 可能停在局部极大:多试几个起点。
实验:评分内容
- 平静日的期望天数10 分
- 新的发射概率15 分
- 新的初始概率10 分
- 新的转移概率15 分
- EM 保证什么15 分
- EM 的一轮10 分
- 配对术语10 分
- 为什么起点重要15 分