发射概率是隐马尔科夫模型里的一个核 心概念。一句话概括: *8kg6v%
发射概率 = 某个看不见的真实状态,产生出某个你能看到的观测值的概率。 wvp\'* $
“发射”这个词可以这样理解:隐藏状态像一台机器,它会“发射”出一个你能看到的信号,而发射概率就是这台机器发射出某种信号的可能性。 *{)[:;
________________________________________ hc`9Y
一、先回顾:什么是“隐藏”和“观测” rm1R^n
在隐马尔科夫模型中,有两层东西: M5: f^
层级 能否直接看到 例子 -Z4J?b
隐藏状态 看不到 病人真实是健康还是生病 eP(%+[g
观测值 看得到 病人表现出的症状:正常、头晕、发烧 !M)!
你只能看到观测值,看不到隐藏状态。而发射概率,就是连接这两层的桥梁——它告诉你:如果真实状态是A,那么表现出观测值B的概率有多大。 f(|qE(
________________________________________ V[rNJf1z
二、用医生诊断的例子来说明 Gxy>aS3
假设病人真实状态只有两种:健康 和 生病。医生看不到这个真实状态。 DTlM}
病人表现出的症状有三种:正常、头晕、发烧。医生能看到这些。 t \Fc <
现在,发射概率回答的问题是: S%kE<M?
如果病人实际是健康的,他表现出“头晕”的概率是多少? )wCA8
如果病人实际是生病的,他表现出“发烧”的概率是多少? N@58R9P<p
根据统计,得到这样一张表: B#B$w_z
真实状态 \ 观测症状 正常 头晕 发烧 `IFt;Ja\6
健康 0.7 0.2 0.1 J55K+
生病 0.1 0.3 0.6 0$":W
这张表就是发射概率表。 A
WMR0I
________________________________________ ](x4q
三、怎么读这张表? "n7rbh3VW
读法:先看行(隐藏状态),再看列(观测值)。 WFjNS'WI_
• 第1行第2列 = 0.2 → 病人实际健康,但表现出头晕的概率是0.2。 OzX\s=
• 第2行第3列 = 0.6 → 病人实际生病,表现出发烧的概率是0.6。 j K$4G.x
• 第1行第1列 = 0.7 → 病人实际健康,表现正常的概率是0.7。 D3HE~zkI
• 第2行第1列 = 0.1 → 病人实际生病,却表现正常的概率是0.1。(比如早期疾病没症状) HI,1~Jw+
一句话:第 i 行第 j 列的数字,就是隐藏状态 i 产生观测值 j 的概率。 "z=A=~~<{
________________________________________ {ylc2 1
四、它和转移概率的区别 [o*u!2 r
这两个概率容易混淆,放在一起对比就清楚了: J,4]du$
对比项 转移概率 发射概率 Qh? E*9
连接的是什么 隐藏状态 → 隐藏状态 隐藏状态 → 观测值 |.*),t3
(w
回答的问题 今天健康,明天生病的概率? 生病了,表现出发烧的概率? p%]*I?
能不能看到两端 两端都看不到 一端看不到,一端看得到 gmj
a2F,
例子 健康→生病 = 0.2 生病→发烧 = 0.6 de[c3!#1d
用一个链条串起来: >O9j},X
健康(隐藏)--转移概率-->生病(隐藏)--发射概率-->发烧(观测) 4ME8NEE
• 转移概率管的是:隐藏状态之间怎么变。 kIiId8l
• 发射概率管的是:每个隐藏状态会“吐出”什么观测值。 1LJ
?Ka[_*
________________________________________ JUF[Y^C
五、发射概率的两个重要特点 V4l`Alr\L
特点1:每一行的和都等于1 7iLm_#M
因为一个隐藏状态必然会产生某个观测值,不可能什么都不产生。 [WRs1$5
比如健康那行:0.7 + 0.2 + 0.1 = 1 ✓ o-lb/=K+
生病那行:0.1 + 0.3 + 0.6 = 1 ✓ ryW1OV6?_0
特点2:同一观测值可以由不同隐藏状态产生 }Xrs"u,
比如“头晕”这个症状: jF Bq>
• 健康的人也可能头晕(0.2) 8}{';k
• 生病的人也可能头晕(0.3) bqsb (C
正因为如此,医生看到“头晕”时不能100%确定病人是健康还是生病,只能推测。这就是隐马尔科夫模型要解决的难题。 agM.-MK
________________________________________ 7$8z}2
六、它有什么用? gTH1FR8$y
有了发射概率,就能反过来推测隐藏状态。 ?*9U
d
问题:病人表现出“发烧”,他最可能是什么状态? T9*\ITA
查发射概率表: y@nWa\iG
• 健康→发烧 = 0.1 JihI1C
• 生病→发烧 = 0.6 |pqLwnOu
显然,生病→发烧的概率更大,所以如果病人发烧,更可能是生病了。 f8lB xK
但如果是“头晕”呢? {5#P1jlT
• 健康→头晕 = 0.2 HP3~.1Sp
• 生病→头晕 = 0.3 dY;^JPT
两者差不多,这时就不能只看发射概率,还要结合转移概率(病人之前的状态)一起判断。这正是隐马尔科夫模型的核 心算法——根据一整串观测值,找出最可能的隐藏状态序列。 8rGW G
________________________________________ tURIDj%#p
七、一句话总结 ^h1VCyoR*
发射概率 = 看不见的真实状态,产生看得见的观测值的概率。 (X)$8y
• 行 = 隐藏状态(看不到) N#bWMZ"
• 列 = 观测值(看得到) mE}``
• 格子里 = 这个隐藏状态产生这个观测值的概率 y~SFlv36
• 每行加起来 = 1 wI1[I
如果说转移概率是“隐藏状态之间怎么接力”,那发射概率就是“每个隐藏状态向外界发出什么信号”。两者合在一起,才构成了完整的隐马尔科夫模型。 O->i>d
(W5E\hjJ