1. 马尔科夫链的状态转移概率计算
- 对于马尔科夫链,状态是完全可见的,所以我们可以直接计算转移概率 a i j a_{ij} aij(从状态 i i i 转移到状态 j j j 的概率)。
- 公式
a
i
j
=
C
(
i
→
j
)
∑
q
∈
Q
C
(
i
→
q
)
a_{ij} = \frac{C(i \to j)}{\sum_{q \in Q} C(i \to q)}
aij=∑q∈QC(i→q)C(i→j) 的含义:
- C ( i → j ) C(i \to j) C(i→j):表示从状态 i i i 转移到状态 j j j 的次数。
- ∑ q ∈ Q C ( i → q ) \sum_{q \in Q} C(i \to q) ∑q∈QC(i→q):表示从状态 i i i 转移到所有其他状态的总次数。
- 归一化过程:通过将所有转移次数归一化,计算从 i i i 到 j j j 的相对概率。
简单来说,对于马尔科夫链,只要统计所有状态转移的频率,就能直接计算状态转移概率。
2. 隐马尔可夫模型的复杂性
- 不同点:隐马尔可夫模型中的“状态”是隐藏的,我们无法直接观测到它,而只能通过观测到的“数据”(比如句子、单词等)间接推测隐藏状态。
- 因为状态是隐藏的,我们无法简单地通过计数来得到转移概率 a i j a_{ij} aij,需要通过复杂的数学方法(比如 Baum-Welch 算法)来迭代估计。
3. Baum-Welch 算法的两种思路
Baum-Welch 算法是用来估计 HMM 参数(状态转移概率 A A A 和发射概率 B B B)的常用算法。这里提到的两种思路是:
- 第一种思路:从一个初始的转移概率和观测概率出发,不断迭代调整参数,使模型更好地解释观测数据。
- 第二种思路:对于每一个观测数据,计算从不同路径(状态序列)产生该数据的可能性,再用这些可能性对参数进行加权更新。
关键点:隐马尔可夫模型的参数估计需要考虑“所有可能路径的贡献”,而不像马尔科夫链那样直接计算某条路径的次数。
举个例子
马尔科夫链:
假设我们统计了一周内天气的变化:
- 星期一是晴天,星期二是雨天,星期三又是晴天。
- 转移次数统计:
- 晴天 → 雨天:1 次。
- 晴天 → 晴天:1 次。
- 雨天 → 晴天:1 次。
- 根据公式计算
a
i
j
a_{ij}
aij:
- a 晴天 → 雨天 = 1 2 = 0.5 a_{\text{晴天}\to\text{雨天}} = \frac{1}{2} = 0.5 a晴天→雨天=21=0.5,表示晴天有 50% 的概率转为雨天。
隐马尔可夫模型:
假设我们观测到一个学生每天的学习行为(比如去图书馆、在家学习),但不知道隐藏的“状态”(比如复习日或考试日)。
- 我们需要计算:对于每种可能的隐藏状态组合,哪种更可能解释这些学习行为?这就需要通过 Baum-Welch 算法迭代优化参数。
结论
- 马尔科夫链可以直接统计状态转移的频次。
- 隐马尔可夫模型需要通过复杂的数学方法(如 Baum-Welch 算法)来迭代估计参数,因为隐藏状态不可见。