混合式 DNN-HMM 系统里的后验概率、先验概率、似然概率、伪似然值以及它们的换算逻辑

状态 1 与状态 2 的转移概率 P(s2∣s1)P(s_2 \mid s_1)P(s2s1)

来源:从大量标注好的语音数据中统计

我们需要先准备一批 “语音 - 文本对齐” 的标注数据 —— 比如一段语音对应 “你好” 两个字,同时标注出每个音素(/n/ /i/ /h/ /a/)在语音中对应的时间区间。
统计步骤很简单:

  1. 把所有标注数据里的状态切换过程都列出来(比如从 /i/ 的中间状态 → /h/ 的开始状态、从 /h/ 的结束状态 → /a/ 的开始状态);
  2. 计算 “从状态 s1s_1s1 切换到 s2s_2s2 的次数” ÷ “所有从 s1s_1s1 出发的切换总次数”;
  3. 这个比值就是 转移概率 P(s2∣s1)P(s_2 \mid s_1)P(s2s1)

状态state 与 语音特征observation

  • 隐藏状态 state : “语音的一个声学状态”(比如对应音素 /a/ 的某个发音状态)。每个状态都有自己的 “特性”—— 比如 /a/ 的状态对应 “低频共振峰强、时长约 20ms” 的发音规律。
  • 观测特征 observation:“从语音信号中提取的一帧特征”(比如 MFCC 特征,包含了频率、能量等信息)。

状态先验概率 P(state)P(\text{state})P(state)

  • 在没有任何观测数据(语音特征) 的情况下,HMM 处于某个状态 s 的概率。它是基于训练数据统计得到的先验知识,和当前输入的语音无关。
  • 先验概率 P(s)P(s)P(s) 的统计对象就是三音子状态
  • 状态 s 就是三音子状态,而非单音素

具体例子

  • cat 的三音子状态有 3 个:
    • s1=(∅,/k/,/æ/)s_1 = (\emptyset, /k/, /æ/)s1=(,/k/,/æ/)
    • s2=(/k/,/æ/,/t/)s_2 = (/k/, /æ/, /t/)s2=(/k/,/æ/,/t/)
    • s3=(/æ/,/t/,∅)s_3 = (/æ/, /t/, \emptyset)s3=(/æ/,/t/,)

统计每个三音子状态在所有标注数据中出现的总次数,用单个状态的频次 ÷ 总频次,得到先验概率。

状态后验概率 P(state∣observation)P(\text{state}|\text{observation})P(stateobservation)

  • DNN 训练完直接告诉你 “现在有了语音特征o,处于状态s的概率有多大” → 这就是 后验概率P(s∣o)P(s|o)P(so)
  • 是由果推因的概率(o 是 “果”,s 是 “因”)
  • 输入一段语音特征 o 后,DNN 直接输出所有可能状态 s 的 P(s∣o)P(s \mid o)P(so)

状态似然概率P(observation∣state)P(\text{observation}|\text{state})P(observationstate)

  • HMM 解码时,想知道 “如果现在处于状态s,能生成语音特征o的概率有多大” → 这就是 似然概率P(o∣s)P(o|s)P(os)

  • 即如果 HMM 现在处于音素 /a/ 的状态 → 生成当前这帧 MFCC 特征的概率有多大?

    • 如果这帧特征的低频共振峰很强,和 /a/ 的发音规律匹配 → P(o∣s)P(o\mid s)P(os)就大;
    • 如果这帧特征的高频成分多,更像 /s/ 的发音规律 → P(o∣s)P(o\mid s)P(os) 就小。
  • P(o∣s)P(o \mid s)P(os) 描述 “状态 s 产生特征 o 的可能性

观测边缘概率 P(observation)P(\text{observation})P(observation)

语音观测特征 o 本身出现的概率

后验概率→伪似然值,替代 HMM 发射概率

HMM 的解码过程依赖状态发射概率 P(observation∣state)P(\text{observation}|\text{state})P(observationstate)(给定状态下生成该观测的概率),但 DNN 输出的是后验概率 P(state∣observation)P(\text{state}|\text{observation})P(stateobservation)

根据贝叶斯公式:

P(state∣observation)=P(observation∣state)⋅P(state)P(observation)P(\text{state}|\text{observation})=\frac{P(\text{observation}|\text{state})\cdot P(\text{state})}{P(\text{observation})}P(stateobservation)=P(observation)P(observationstate)P(state)

变形可得:

P(observation∣state)=P(state∣observation)⋅P(observation)P(state)P(\text{observation}|\text{state})=\frac{P(\text{state}|\text{observation})\cdot P(\text{observation})}{P(\text{state})}P(observationstate)=P(state)P(stateobservation)P(observation)

其中 P(observation)P(\text{observation})P(observation)是观测的边缘概率,对所有状态都是相同的常数,在解码时可忽略。因此:

P^(observation∣state)∝P(state∣observation)P(state)\hat{P}(\text{observation}|\text{state}) \propto \frac{P(\text{state}|\text{observation})}{P(\text{state})}P^(observationstate)P(state)P(stateobservation)

这个与发射概率成正比的值,就是伪似然值

伪似然值不是真实的似然概率,但它和真实的 P(o∣s)P(o\mid s)P(os) 是正相关的。

伪似然值完美适配 HMM 的解码逻辑,让 DNN 的输出能直接融入 HMM 的状态转移与概率计算,实现 “DNN 特征建模 + HMM 时序建模” 的高效结合。

一句话总结整个换算的目的

DNN 擅长直接学后验概率 P(s∣o)P(s\mid o)P(so),但 HMM 解码需要似然概率 P(o∣s)P(o\mid s)P(os);通过除以先验概率 P(s)P(s)P(s) 得到伪似然值,既绕过了计算复杂的 P(o)P(o)P(o),又完美适配了 HMM 的解码逻辑。

举个例子

假设语音观测特征 o 对应两个可能的 HMM 状态 s1s_1s1(音素 /a/)和 s2s_2s2(音素 /b/):

  • DNN 输出后验概率:P(s1∣o)=0.8P(s_1\mid o)=0.8P(s1o)=0.8P(s2∣o)=0.2P(s_2\mid o)=0.2P(s2o)=0.2
  • 统计得到先验概率:P(s1)=0.3,P(s_1)=0.3,P(s1)=0.3P(s_2)=0.7$
  • 计算伪似然值:
    • P^(o∣s1)∝0.8/0.3≈2.67\hat{P}(o\mid s_1) \propto 0.8/0.3 ≈ 2.67P^(os1)0.8/0.32.67
    • P^(o∣s2)∝0.2/0.7≈0.29\hat{P}(o\mid s_2) \propto 0.2/0.7 ≈ 0.29P^(os2)0.2/0.70.29

HMM 解码时会认为:状态 s1s_1s1 生成观测 o 的概率远高于 s2s_2s2,因此更可能是音素 /a/ —— 这个结论和用真实似然概率计算的结果完全一致。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值