上一期,王同学凭着自己对女友的了解,预估了
π
\pi
π、
A
A
A、
B
B
B,三个参数矩阵的取值。过去一周,通过与女友聊天,王同学了解到女友从周一到周日晚上做的事情分别为:看书、看剧、跑步、看书、看剧、逛商超、看剧。他想用这个观测序列预测女友这周的心情。
要预测女友的心情,换说话说,就是要求最大概率的心情序列,即,求某一心情序列,它与事件序列的联合概率最大。
循序渐进地解决问题,我们先考虑如何求心情序列与做事序列的联合概率,再考虑如何求最大概率。
假设王同学根据事件序列:{看书,看剧,跑步,看书,看剧,逛商超,看剧},凭直觉给出了女友的心情序列:{正常,正常,不开心,正常,开心,开心,正常},现在,如何求这两个序列的联合概率。
为表示方便,给出如下符号定义:
x
i
x_{i}
xi:第i天的事件,
i
∈
[
1
,
7
]
i\in[1,7]
i∈[1,7]。
y
i
y_{i}
yi:第i天的心情,
i
∈
[
1
,
7
]
i\in[1,7]
i∈[1,7]。
于是,上述序列的联合概率可表示为:
P
(
[
y
1
,
y
2
,
y
3
,
…
,
y
7
]
,
[
x
1
,
x
2
,
x
3
,
…
,
x
7
]
)
P([y_{1},y_{2},y_{3}, \dots,y_{7}], [x_{1},x_{2},x_{3}, \dots,x_{7}])
P([y1,y2,y3,…,y7],[x1,x2,x3,…,x7])
先来张示意图,直观感受一下:
图-1显示了每个时刻状态
y
y
y的取值和事件
x
x
x的取值。
为方便查询,将上一期的三张参数表也放这里。
表-1 初始状态概率分布 π
正常 | 开心 | 不开心 | |
---|---|---|---|
0.7 | 0.2 | 0.1 |
表-2 状态转移概率分布 A
正常 | 开心 | 不开心 | |
---|---|---|---|
正常 | 0.5 | 0.3 | 0.2 |
开心 | 0.4 | 0.5 | 0.1 |
不开心 | 0.6 | 0.1 | 0.3 |
表-3 发射概率分布 B
看书 | 逛商超 | 跑步 | 看剧 | |
---|---|---|---|---|
正常 | 0.4 | 0.1 | 0.2 | 0.3 |
开心 | 0.2 | 0.5 | 0.1 | 0.2 |
不开心 | 0.1 | 0.1 | 0.6 | 0.2 |
现在,我们看着图-1来计算每个时刻的概率乘积。
(1)
t
=
1
t=1
t=1时,没有前驱状态,发生的概率由
π
\pi
π决定,即求
P
(
y
1
=
正常
)
P(y_{1}=正常)
P(y1=正常),查表-1得,
P
(
y
1
=
正常
)
=
π
1
P(y_{1}=正常)=\pi_{1}
P(y1=正常)=π1。当
{
y
1
=
正常
}
\{y_{1}=正常\}
{y1=正常}时,
{
x
1
=
看书
}
\{x_{1}=看书\}
{x1=看书}的概率由发射概率矩阵
B
B
B决定。查表-3得,
P
(
x
1
=
看书
∣
y
1
=
正常
)
=
B
11
P(x_{1}=看书|y_{1}=正常)=B_{11}
P(x1=看书∣y1=正常)=B11。所以,
t
=
1
t=1
t=1时的概率乘积为,
π
1
⋅
B
11
\pi_{1} \cdot B_{11}
π1⋅B11
(2)
t
=
2
t=2
t=2时,状态
y
2
y_{2}
y2由前驱状态
y
1
y_{1}
y1转移而来,其发生的概率由矩阵
A
A
A决定,查表-2得,
P
(
y
2
=
正常
∣
y
1
=
正常
)
=
A
11
P(y_{2}=正常|y_{1}=正常)=A_{11}
P(y2=正常∣y1=正常)=A11。当
{
y
2
=
正常
}
\{y_{2}=正常\}
{y2=正常}时,
{
x
2
=
看剧
}
\{x_{2}=看剧\}
{x2=看剧}的概率由发射概率矩阵
B
B
B决定。查表-3得,
P
(
x
2
=
看剧
∣
y
2
=
正常
)
=
B
14
P(x_{2}=看剧|y_{2}=正常)=B_{14}
P(x2=看剧∣y2=正常)=B14。所以,
t
=
2
t=2
t=2时的概率乘积为,
A
11
⋅
B
14
A_{11} \cdot B_{14}
A11⋅B14
(3) 以此类推,得到其它时刻的概率乘积。
(4) 最后,可得7天的概率乘积,也就是心情序列和事件序列的联合概率,
P
(
[
y
1
,
y
2
,
y
3
,
…
,
y
7
]
,
[
x
1
,
x
2
,
x
3
,
…
,
x
7
]
)
=
π
1
⋅
B
11
⋅
A
11
⋅
B
14
⋅
A
13
⋅
B
33
⋅
A
31
⋅
B
11
⋅
A
12
⋅
B
24
⋅
A
22
⋅
B
22
⋅
A
21
⋅
B
14
\begin{equation} \begin{aligned} P([y_{1},y_{2},y_{3}, \dots,y_{7}], [x_{1},x_{2},x_{3}, \dots,x_{7}])=&\pi_{1} \cdot B_{11} \\ &\cdot A_{11} \cdot B_{14} \\ &\cdot A_{13} \cdot B_{33} \\&\cdot A_{31} \cdot B_{11} \\ &\cdot A_{12} \cdot B_{24} \\ &\cdot A_{22} \cdot B_{22} \\ &\cdot A_{21} \cdot B_{14} \end{aligned} \end{equation}
P([y1,y2,y3,…,y7],[x1,x2,x3,…,x7])=π1⋅B11⋅A11⋅B14⋅A13⋅B33⋅A31⋅B11⋅A12⋅B24⋅A22⋅B22⋅A21⋅B14
由式(1)可以看出,联合概率=初始时刻的概率×每个时刻的状态转移概率×每个时刻的发射概率。
为表述方便,用向量
y
\boldsymbol{y}
y表示状态序列
{
y
1
,
y
2
,
y
3
,
…
,
y
T
}
\{y_{1},y_{2},y_{3}, \dots,y_{T}\}
{y1,y2,y3,…,yT},用向量
x
\boldsymbol{x}
x表示事件序列
{
x
1
,
x
2
,
x
3
,
…
,
x
T
}
\{x_{1},x_{2},x_{3}, \dots,x_{T}\}
{x1,x2,x3,…,xT},
由马尔可夫条件独立假设知,当前时刻的状态只与前一时刻状态相关,于是有,
P
(
y
)
=
P
(
y
1
)
⋅
P
(
y
2
∣
y
1
)
⋅
P
(
y
3
∣
y
2
)
…
P
(
y
T
∣
y
T
−
1
)
=
P
(
y
1
)
∏
t
=
2
T
P
(
y
t
∣
y
t
−
1
)
\begin{equation} \begin{aligned} P(\boldsymbol{y})&=P(y_{1}) \cdot P(y_{2}|y_{1})\cdot P(y_{3}|y_{2})\dots P(y_{T}|y_{T-1})\\&=P(y_{1})\prod_{t=2}^{T} P(y_{t}|y_{t-1}) \end{aligned} \end{equation}
P(y)=P(y1)⋅P(y2∣y1)⋅P(y3∣y2)…P(yT∣yT−1)=P(y1)t=2∏TP(yt∣yt−1)
当给定
y
\boldsymbol{y}
y,对应事件序列发生的概率为:
P
(
x
∣
y
)
=
∏
t
=
1
T
P
(
x
t
∣
y
t
)
P(\boldsymbol{x}|\boldsymbol{y})=\prod_{t=1}^{T} P(x_{t}|y_{t})
P(x∣y)=∏t=1TP(xt∣yt)。所以序列
y
\boldsymbol{y}
y与序列
x
\boldsymbol{x}
x的联合概率为:
P ( x , y ) = P ( y ) P ( x ∣ y ) = P ( y 1 ) ∏ t = 2 T P ( y t ∣ y t − 1 ) ∏ t = 1 T P ( x t ∣ y t ) \begin{equation} \begin{aligned} P(\boldsymbol{x},\boldsymbol{y})&=P(\boldsymbol{y})P(\boldsymbol{x}|\boldsymbol{y}) \\ &=P(y_{1})\prod_{t=2}^{T} P(y_{t}|y_{t-1})\prod_{t=1}^{T} P(x_{t}|y_{t}) \end{aligned} \end{equation} P(x,y)=P(y)P(x∣y)=P(y1)t=2∏TP(yt∣yt−1)t=1∏TP(xt∣yt)
将本例中状态转移概率和发射概率代入式(3),就可求得心情序列与事件序列的联合概率。
现在问题来了,心情有三种情况,七天的心情序列共有 3 7 3^{7} 37种情况。王同学想找到的是概率最大的那个序列。如果一个个试过去,太花时间了,下一期我们一起讨论更好的方法。