引入
当我们假设了一个概率分布之后往往需要做的是进行参数的估计,比如我们假设了一个概率分布P(y)他表示随机变量y的概率分布,我们此时还有一些样本
y
1
,
y
2
,
y
3
.
.
.
y
n
y_1, y_2,y_3...y_n
y1,y2,y3...yn我们需要对这个概率分布的参数
θ
\theta
θ进行概率估计。
我们最常使用的概率估计是极大似然估计也叫做MLE,它的做法就是找到一个
θ
\theta
θ让所有的样本的出现概率尽可能大,即:
θ
^
=
arg max
θ
(
∏
i
=
1
n
p
(
y
i
)
)
\hat\theta =\argmax\limits_{\theta}(\prod\limits_{i = 1}^np(y_i))
θ^=θargmax(i=1∏np(yi))
为了方便表示究竟是那个参数下的概率分布,我们把当前的概率分布写作
p
(
y
∣
θ
)
p(y|\theta)
p(y∣θ) 表示在参数
θ
\theta
θ下的
y
y
y的概率分布,那么上式可以写成
θ
^
=
arg max
θ
(
∏
i
=
1
n
p
(
y
i
∣
θ
)
)
\hat\theta =\argmax\limits_{\theta}(\prod\limits_{i = 1}^np(y_i|\theta))
θ^=θargmax(i=1∏np(yi∣θ))
在进一步,我们记
P
(
Y
∣
θ
)
=
∏
i
=
1
n
p
(
y
i
∣
θ
)
P(Y|\theta)=\prod\limits_{i = 1}^np(y_i|\theta)
P(Y∣θ)=i=1∏np(yi∣θ)其中Y就表示了所有非样本。并且我们在进行求解上述式子时我们常常会加入一个log函数来简化运算。于是上式就变成了下面的式子
θ
^
=
arg max
θ
l
o
g
[
P
(
Y
∣
θ
)
]
\hat\theta =\argmax\limits_{\theta}log[P(Y|\theta)]
θ^=θargmaxlog[P(Y∣θ)]
对于复杂的概率分布来说想要直接解出这个式子是十分困难的,可能甚至没有解析解,那么此时我们就需要寻找另一种方法来进行求解
含有因变量的参数估计
什么是含有因变量的参数估计呢,举一下李航老师书上的例子。
我们依次抛两次硬币,分别是A,B,C,我们先抛出A硬币后依据A硬币的结果来决定下一次是抛B还是C,最后我们求出一个第二次抛硬币的结果的概率分布P(y)这里y表示第二次抛硬币的结果,而我们知道第二次抛硬币的结果依赖于第一次抛硬币的结果,但是我们并不知道第第一次抛的是什么,第一次抛硬币结果的概率分布也是我们计算P(y)的一个关键。
可以直接把第一次的抛硬币结果也记做一个随机变量,叫做z,我们就得到一个新的概率分布P(y, z)表示在第一次结果为z第二次结果为y时的概率分布。根据边缘分布的计算式子,我们可以得到
p
(
y
)
=
∑
z
p
(
y
,
z
)
p(y)=\sum\limits_{z}p(y,z)
p(y)=z∑p(y,z)
其中这个z就是因变量,简单的来说可以把z当成一个种子,对应的z会生成对应的y。
根据上式,我们知道极大似然估计可以写作
θ
^
=
arg max
θ
l
o
g
[
P
(
Y
∣
θ
)
]
\hat\theta =\argmax\limits_{\theta}log[P(Y|\theta)]
θ^=θargmaxlog[P(Y∣θ)]
那么对于上述含有隐变量的概率分布,我们就可以强制的把因变量加上去。
θ
^
=
arg max
θ
l
o
g
∑
Z
P
(
Y
,
Z
∣
θ
)
\hat\theta =\argmax\limits_{\theta}log\sum\limits_{Z}P(Y,Z|\theta)
θ^=θargmaxlogZ∑P(Y,Z∣θ)
可以看到这里Z是大写的,也就是意味着隐变量可以不止一个。
然后根据概率的乘法公式
p
(
x
,
y
)
=
p
(
x
)
p
(
y
∣
x
)
p(x,y)=p(x)p(y|x)
p(x,y)=p(x)p(y∣x)我们可以把上式进行改写
θ
^
=
arg max
θ
l
o
g
∑
Z
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
\hat\theta =\argmax\limits_{\theta}log\sum\limits_{Z}P(Y|Z,\theta)P(Z|\theta)
θ^=θargmaxlogZ∑P(Y∣Z,θ)P(Z∣θ)
我们设
L
(
θ
)
=
l
o
g
∑
Z
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
L(\theta)=log\sum\limits_{Z}P(Y|Z,\theta)P(Z|\theta)
L(θ)=logZ∑P(Y∣Z,θ)P(Z∣θ)
我们希望极大化这个函数,而EM算法给出了一个方法进行极大化,那就是通过不断地迭代求解
θ
\theta
θ
首先记 θ ( 1 ) \theta^{(1)} θ(1)为我们初始的 θ \theta θ,即我们初始化的参数,注意,一旦有了 θ \theta θ什么都能计算出来了,下面有 θ ( 1 ) \theta^{(1)} θ(1)的式子其实都是常数,因为可以计算出来。
有了
θ
(
1
)
\theta^{(1)}
θ(1)我们就可以计算一下我们需要极大化
L
(
θ
)
L(\theta)
L(θ)和我们现在的
L
(
θ
(
1
)
)
L(\theta^{(1)})
L(θ(1))之间的差距。
L
(
θ
)
−
L
(
θ
(
1
)
)
=
l
o
g
∑
Z
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
−
l
o
g
∑
Z
P
(
Y
∣
Z
,
θ
(
1
)
)
P
(
Z
∣
θ
(
1
)
)
L(\theta) - L(\theta^{(1)}) = log\sum\limits_{Z}P(Y|Z,\theta)P(Z|\theta) - log\sum\limits_{Z}P(Y|Z,\theta^{(1)})P(Z|\theta^{(1)})
L(θ)−L(θ(1))=logZ∑P(Y∣Z,θ)P(Z∣θ)−logZ∑P(Y∣Z,θ(1))P(Z∣θ(1))
然后我们使用一个trick,我们让第一个式子中同时乘以除以
P
(
Z
∣
Y
,
θ
(
1
)
)
P(Z|Y,\theta^{(1)})
P(Z∣Y,θ(1)),方便我们使用jensen不等式,同时我们把后一项写成
P
(
Y
∣
θ
(
1
)
)
P(Y|\theta^{(1)})
P(Y∣θ(1))。
L
(
θ
)
−
L
(
θ
(
1
)
)
=
l
o
g
∑
Z
P
(
Z
∣
Y
,
θ
(
1
)
)
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
1
)
)
−
l
o
g
P
(
Y
∣
θ
(
1
)
)
L(\theta) - L(\theta^{(1)}) = log\sum\limits_{Z}P(Z|Y,\theta^{(1)})\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(1)})} - logP(Y|\theta^{(1)})
L(θ)−L(θ(1))=logZ∑P(Z∣Y,θ(1))P(Z∣Y,θ(1))P(Y∣Z,θ)P(Z∣θ)−logP(Y∣θ(1))
然后我们合并这两项
L
(
θ
)
−
L
(
θ
(
1
)
)
=
l
o
g
∑
Z
P
(
Z
∣
Y
,
θ
(
1
)
)
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
1
)
)
P
(
Y
∣
θ
(
1
)
)
L(\theta) - L(\theta^{(1)}) = log\sum\limits_{Z}P(Z|Y,\theta^{(1)})\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(1)})P(Y|\theta^{(1)})}
L(θ)−L(θ(1))=logZ∑P(Z∣Y,θ(1))P(Z∣Y,θ(1))P(Y∣θ(1))P(Y∣Z,θ)P(Z∣θ)
Jensen不等式的式子是
l
o
g
∑
j
λ
j
y
j
≥
∑
j
λ
j
l
o
g
(
y
j
)
log\sum\limits_{j}\lambda_jy_j \geq \sum\limits_{j}\lambda_jlog(y_j)
logj∑λjyj≥j∑λjlog(yj)
其中
λ
\lambda
λ是离散概率分布
我们就可以使用jensen不等式得到
L
(
θ
)
−
L
(
θ
(
1
)
)
=
l
o
g
∑
Z
P
(
Y
∣
Z
,
θ
(
1
)
)
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Y
∣
Z
,
θ
(
1
)
)
P
(
Y
∣
θ
(
1
)
)
≥
∑
Z
P
(
Y
∣
Z
,
θ
(
1
)
)
l
o
g
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Y
∣
Z
,
θ
(
1
)
)
P
(
Y
∣
θ
(
1
)
)
L(\theta) - L(\theta^{(1)}) = log\sum\limits_{Z}P(Y|Z,\theta^{(1)})\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Y|Z,\theta^{(1)})P(Y|\theta^{(1)})}\\ \geq \sum\limits_{Z}P(Y|Z,\theta^{(1)})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Y|Z,\theta^{(1)})P(Y|\theta^{(1)})}
L(θ)−L(θ(1))=logZ∑P(Y∣Z,θ(1))P(Y∣Z,θ(1))P(Y∣θ(1))P(Y∣Z,θ)P(Z∣θ)≥Z∑P(Y∣Z,θ(1))logP(Y∣Z,θ(1))P(Y∣θ(1))P(Y∣Z,θ)P(Z∣θ)
我们最后得到
L
(
θ
)
−
L
(
θ
(
1
)
)
≥
∑
Z
P
(
Z
∣
Y
,
θ
(
1
)
)
l
o
g
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
1
)
)
P
(
Y
∣
θ
(
1
)
)
L(\theta) - L(\theta^{(1)}) \geq \sum\limits_{Z}P(Z|Y,\theta^{(1)})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(1)})P(Y|\theta^{(1)})}
L(θ)−L(θ(1))≥Z∑P(Z∣Y,θ(1))logP(Z∣Y,θ(1))P(Y∣θ(1))P(Y∣Z,θ)P(Z∣θ)
我们进行移项
L
(
θ
)
≥
∑
Z
P
(
Y
∣
Z
,
θ
(
1
)
)
l
o
g
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Y
∣
Z
,
θ
(
1
)
)
P
(
Y
∣
θ
(
1
)
)
+
L
(
θ
(
1
)
)
L(\theta) \geq \sum\limits_{Z}P(Y|Z,\theta^{(1)})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Y|Z,\theta^{(1)})P(Y|\theta^{(1)})} + L(\theta^{(1)})
L(θ)≥Z∑P(Y∣Z,θ(1))logP(Y∣Z,θ(1))P(Y∣θ(1))P(Y∣Z,θ)P(Z∣θ)+L(θ(1))
于是我们神奇的得到了一个
L
(
θ
)
L(\theta)
L(θ)的下界
也就是如果我们想让
L
(
θ
)
L(\theta)
L(θ)增大,我们就可以让它的下界增大,因为
L
(
θ
)
L(\theta)
L(θ)大于等于它的下界。
我们记
B
(
θ
,
θ
(
1
)
)
=
∑
Z
P
(
Z
∣
Y
,
θ
(
1
)
)
l
o
g
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
1
)
)
P
(
Y
∣
θ
(
1
)
)
+
L
(
θ
(
1
)
)
B(\theta, \theta^{(1)})=\sum\limits_{Z}P(Z|Y,\theta^{(1)})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(1)})P(Y|\theta^{(1)})} + L(\theta^{(1)})
B(θ,θ(1))=Z∑P(Z∣Y,θ(1))logP(Z∣Y,θ(1))P(Y∣θ(1))P(Y∣Z,θ)P(Z∣θ)+L(θ(1))
那我们现在的任务就是最大化这个下界,假设我们最大化的结果是
θ
(
2
)
\theta^{(2)}
θ(2)
那么就有
θ
(
2
)
=
arg max
θ
B
(
θ
,
θ
(
1
)
)
\theta^{(2)}= \argmax\limits_{\theta}B(\theta, \theta^{(1)})
θ(2)=θargmaxB(θ,θ(1))
我们就可以由此得到
θ
(
2
)
\theta^{(2)}
θ(2),那么它就是最终的答案么,显然不是,我们可以把它当成
θ
(
1
)
\theta^{(1)}
θ(1)对待然后求出
θ
(
3
)
\theta^{(3)}
θ(3)可见我们可以得到一个一般的式子
θ
(
i
+
1
)
=
arg max
θ
B
(
θ
,
θ
(
i
)
)
\theta^{(i +1)}= \argmax\limits_{\theta}B(\theta, \theta^{(i)})
θ(i+1)=θargmaxB(θ,θ(i))
我们再对最优化的式子进行一下化简,使我们更方便计算
θ
(
i
+
1
)
=
arg max
θ
[
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
i
)
)
P
(
Y
∣
θ
(
i
)
)
+
L
(
θ
(
i
)
)
]
\theta^{(i +1)}= \argmax\limits_{\theta}[P(Z|Y,\theta^{(i)})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})} + L(\theta^{(i)})]
θ(i+1)=θargmax[P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ)+L(θ(i))]
上式我们最优化的
θ
\theta
θ对于
L
(
θ
(
i
)
)
L(\theta^{(i)})
L(θ(i))只是一个已知的常数,所以我们不需要对它进行考虑,于是得到
θ
(
i
+
1
)
=
arg max
θ
[
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
i
)
)
P
(
Y
∣
θ
(
i
)
)
]
\theta^{(i +1)}= \argmax\limits_{\theta}[P(Z|Y,\theta^{(i)})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}]
θ(i+1)=θargmax[P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ)]
同样,我们把对数除法拆开,也可以得到一个常数
θ
(
i
+
1
)
=
arg max
θ
[
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
[
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
]
−
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
[
P
(
Z
∣
Y
,
θ
(
i
)
)
P
(
Y
∣
θ
(
i
)
)
]
]
\theta^{(i +1)}= \argmax\limits_{\theta}[P(Z|Y,\theta^{(i)})log[P(Y|Z,\theta)P(Z|\theta)] - P(Z|Y,\theta^{(i)})log[P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})]]
θ(i+1)=θargmax[P(Z∣Y,θ(i))log[P(Y∣Z,θ)P(Z∣θ)]−P(Z∣Y,θ(i))log[P(Z∣Y,θ(i))P(Y∣θ(i))]]
我们也可以把它省掉
θ
(
i
+
1
)
=
arg max
θ
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
[
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
]
\theta^{(i +1)}= \argmax\limits_{\theta}P(Z|Y,\theta^{(i)})log[P(Y|Z,\theta)P(Z|\theta)]
θ(i+1)=θargmaxP(Z∣Y,θ(i))log[P(Y∣Z,θ)P(Z∣θ)]
最后运用乘法公式进行合并我们得到了一个更简洁的式子
θ
(
i
+
1
)
=
arg max
θ
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
P
(
Y
,
Z
∣
θ
)
\theta^{(i +1)}= \argmax\limits_{\theta}P(Z|Y,\theta^{(i)})logP(Y,Z|\theta)
θ(i+1)=θargmaxP(Z∣Y,θ(i))logP(Y,Z∣θ)
我们一般把后面这个式子叫做
Q
(
θ
,
θ
(
i
)
)
Q(\theta, \theta^{(i)})
Q(θ,θ(i)) 也就是
Q
(
θ
,
θ
(
i
)
)
=
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
P
(
Y
,
Z
∣
θ
)
Q(\theta, \theta^{(i)}) = P(Z|Y,\theta^{(i)})logP(Y,Z|\theta)
Q(θ,θ(i))=P(Z∣Y,θ(i))logP(Y,Z∣θ)
至此EM算法的推导也就结束了,关于EM算法的收敛性证明就不证了,其大概想法就是如果这个迭代让
P
(
Y
∣
θ
)
P(Y|\theta)
P(Y∣θ)不断增大,那么这个算法就收敛,因为概率不会大于1,单调递增必收敛。
还有广义EM算法也暂时先不写,因为还没看,等以后有时间看了再回来补上吧。
应用
隐马尔科夫参数估计
隐马尔科中,我们做出了假设,即每个状态由其对应的一个隐状态生成。
这里就可以看出,隐马尔科夫就是一个含有隐状态的模型。
那么按照EM算法,就有两步需要进行走。
E步:
求
Q
(
λ
,
λ
^
)
Q(\lambda, \hat \lambda)
Q(λ,λ^),其中
λ
\lambda
λ是参数
Q
(
λ
,
λ
^
)
=
∑
I
l
o
g
P
(
O
,
I
∣
λ
)
P
(
I
∣
O
,
λ
^
)
=
∑
I
l
o
g
P
(
O
,
I
∣
λ
)
P
(
I
,
O
∣
λ
^
)
P
(
O
∣
λ
^
)
Q(\lambda, \hat \lambda)=\sum_{I}logP(O,I|\lambda)P(I|O,\hat \lambda)\\= \sum_{I}logP(O,I|\lambda)\frac{P(I,O|\hat \lambda)}{P(O|\hat \lambda)}
Q(λ,λ^)=I∑logP(O,I∣λ)P(I∣O,λ^)=I∑logP(O,I∣λ)P(O∣λ^)P(I,O∣λ^)
上式中
I
,
Q
I,Q
I,Q分别代表,隐状态序列和观测态序列。
设
λ
=
(
π
,
A
,
B
)
\lambda=(\pi, A, B)
λ=(π,A,B),就有
P
(
O
,
I
∣
λ
)
=
π
I
1
B
I
1
,
O
1
∏
t
=
2
T
[
A
I
t
−
1
,
I
t
B
I
t
,
O
t
]
P(O,I|\lambda)=\pi_{I_1}B_{I_1,O_{1}}\prod_{t=2}^T [A_{I_{t-1},I_{t}}B_{I_t,O_{t}}]
P(O,I∣λ)=πI1BI1,O1t=2∏T[AIt−1,ItBIt,Ot]
带入第一个式子
Q
(
λ
,
λ
^
)
=
∑
I
l
o
g
P
(
O
,
I
∣
λ
)
P
(
I
,
O
∣
λ
^
)
P
(
O
∣
λ
^
)
=
∑
I
l
o
g
π
I
1
B
I
1
,
O
1
∏
t
=
2
T
[
A
I
t
−
1
,
I
t
B
I
t
,
O
t
]
P
(
I
,
O
∣
λ
^
)
P
(
O
∣
λ
^
)
Q(\lambda, \hat \lambda)=\sum_{I}logP(O,I|\lambda)\frac{P(I,O|\hat \lambda)}{P(O|\hat \lambda)}\\= \sum_{I}log\pi_{I_1}B_{I_1,O_{1}}\prod_{t=2}^T [A_{I_{t-1},I_{t}}B_{I_t,O_{t}}]\frac{P(I,O|\hat \lambda)}{P(O|\hat \lambda)}
Q(λ,λ^)=I∑logP(O,I∣λ)P(O∣λ^)P(I,O∣λ^)=I∑logπI1BI1,O1t=2∏T[AIt−1,ItBIt,Ot]P(O∣λ^)P(I,O∣λ^)
为了方便求参数,我们把每个因变量按照
π
,
A
,
B
\pi,A,B
π,A,B的方式进行合并同类项
Q
(
λ
,
λ
^
)
=
∑
I
P
(
I
,
O
∣
λ
^
)
P
(
O
∣
λ
^
)
l
o
g
π
I
1
+
∑
I
P
(
I
,
O
∣
λ
^
)
P
(
O
∣
λ
^
)
∑
t
=
2
T
l
o
g
[
A
I
t
−
1
,
I
t
]
+
∑
I
P
(
I
,
O
∣
λ
^
)
P
(
O
∣
λ
^
)
∑
t
=
1
T
l
o
g
[
B
I
t
,
O
t
]
Q(\lambda, \hat \lambda)=\sum_{I}\frac{P(I,O|\hat \lambda)}{P(O|\hat \lambda)}log\pi_{I_1} + \sum_{I}\frac{P(I,O|\hat \lambda)}{P(O|\hat \lambda)}\sum_{t=2}^T log[A_{I_{t-1},I_{t}}]\\ + \sum_{I}\frac{P(I,O|\hat \lambda)}{P(O|\hat \lambda)}\sum_{t=1}^T log[B_{I_{t},O_{t}}]
Q(λ,λ^)=I∑P(O∣λ^)P(I,O∣λ^)logπI1+I∑P(O∣λ^)P(I,O∣λ^)t=2∑Tlog[AIt−1,It]+I∑P(O∣λ^)P(I,O∣λ^)t=1∑Tlog[BIt,Ot]
E步就结束了
接下来是M步:
M我们需要极大化
Q
(
λ
,
λ
^
)
Q(\lambda, \hat \lambda)
Q(λ,λ^),由于分母上的
P
(
O
∣
λ
^
)
P(O|\hat \lambda)
P(O∣λ^)对最优化没有影响,所以我们舍去。
于是我们就需要极大化:
Q
(
λ
,
λ
^
)
=
∑
I
P
(
I
,
O
∣
λ
^
)
l
o
g
π
I
1
+
∑
I
P
(
I
,
O
∣
λ
^
)
∑
t
=
2
T
l
o
g
[
A
I
t
−
1
,
I
t
]
+
∑
I
P
(
I
,
O
∣
λ
^
)
∑
t
=
1
T
l
o
g
[
B
I
t
,
O
t
]
Q(\lambda, \hat \lambda)=\sum_{I}P(I,O|\hat \lambda)log\pi_{I_1} + \sum_{I}P(I,O|\hat \lambda)\sum_{t=2}^T log[A_{I_{t-1},I_{t}}]\\ + \sum_{I}P(I,O|\hat \lambda)\sum_{t=1}^T log[B_{I_{t},O_{t}}]
Q(λ,λ^)=I∑P(I,O∣λ^)logπI1+I∑P(I,O∣λ^)t=2∑Tlog[AIt−1,It]+I∑P(I,O∣λ^)t=1∑Tlog[BIt,Ot]
我们可以使用坐标轴下降法,依次选定每一项然后固定其他项,进行极大化。
- 选定
π
\pi
π项,然后其他项与其都是加和关系所以求导之后会变成0,所以不用关。
于是我们就有
arg max π ∑ I P ( I , O ∣ λ ^ ) l o g π I 1 \argmax_{\pi}\sum_{I}P(I,O|\hat \lambda)log\pi_{I_1} πargmaxI∑P(I,O∣λ^)logπI1
我们可以对其进行改写
arg max π ∑ k = 1 N P ( I 1 = k , O ∣ λ ^ ) l o g π k \argmax_{\pi}\sum_{k=1}^NP(I_1=k,O|\hat \lambda)log\pi_{k} πargmaxk=1∑NP(I1=k,O∣λ^)logπk
这里解释一下为什么这么写,我们看上面的式子 π I i \pi_{I_i} πIi对应 π \pi π中的一个参数,但是这么表示不方便我们求导,因为我们不知道 I i I_i Ii到底是多少,所以我们把以 I I I为循环的累加,改为以 k k k为循环的累加,其中k表示 π \pi π中的第几个参数。
那这么改为什么正确呢?
首先我们看 π I 1 \pi_{I_1} πI1,由于我们把循环变量换成了k,而一个k对应着多个 I 1 I_1 I1。
所以就有
l o g π k ∑ I 1 = k P ( I , O ∣ λ ^ ) = l o g π k P ( I 1 = k , O ∣ λ ^ ) log\pi_{k}\sum_{I_1=k}P(I,O|\hat \lambda)=log\pi_{k}P(I_{1}=k,O|\hat \lambda) logπkI1=k∑P(I,O∣λ^)=logπkP(I1=k,O∣λ^)
解释完毕后,我们继续看。
我们注意到有一个限制条件,那么就是 ∑ i = 1 N π i = 1 \sum_{i = 1}^N\pi_i=1 ∑i=1Nπi=1
所以我们用拉格朗日乘子法来进行限制。
于是我们的优化就变成了。
∑ k = 1 N l o g π k P ( O , I 1 = k ∣ λ ) + γ ( ∑ i = 1 N π i − 1 ) \sum_{k = 1}^Nlog\pi_kP(O,I_1=k|\lambda) + \gamma(\sum_{i = 1}^N\pi_i - 1) k=1∑NlogπkP(O,I1=k∣λ)+γ(i=1∑Nπi−1)
我们进行求导,然后令其等于零,就得到了
π k = P ( O , I 1 = k ∣ λ ^ ) P ( O ∣ λ ^ ) \pi_k=\frac{P(O, I_1=k|\hat\lambda)}{P(O|\hat\lambda)} πk=P(O∣λ^)P(O,I1=k∣λ^) - 选定A项
∑ I P ( I , O ∣ λ ^ ) ∑ t = 2 T l o g [ A I t − 1 , I t ] \sum_{I}P(I,O|\hat \lambda)\sum_{t=2}^T log[A_{I_{t-1},I_{t}}] I∑P(I,O∣λ^)t=2∑Tlog[AIt−1,It]
同样道理我们可以进行改写,不过这里我么可以注意到,对于 A i j A_{ij} Aij有两个变量i,j所以改写后会多出来两个循环。
∑ I P ( I , O ∣ λ ^ ) ∑ t = 2 T l o g A I t − 1 , I t = ∑ k = 1 N ∑ l = 1 N ∑ t = 2 T l o g A k l P ( O , I t − 1 = k , I t = l ∣ λ ^ ) \sum_{I}P(I,O|\hat \lambda)\sum_{t=2}^T logA_{I_{t-1},I_{t}}=\sum_{k = 1}^N\sum_{l = 1}^N\sum_{t=2}^TlogA_{kl}P(O,I_{t - 1}=k,I_{t}=l|\hat \lambda) I∑P(I,O∣λ^)t=2∑TlogAIt−1,It=k=1∑Nl=1∑Nt=2∑TlogAklP(O,It−1=k,It=l∣λ^)
同样的,我们也需要对概率进行约束。
∑ k = 1 N { [ ∑ l = 1 N ∑ t = 2 T l o g A k l P ( O , I t − 1 = k , I t = l ∣ λ ^ ) ] + γ ( ∑ i = 1 N A k j − 1 ) } \sum_{k = 1}^N\{[\sum_{l = 1}^N\sum_{t=2}^TlogA_{kl}P(O,I_{t - 1}=k,I_{t}=l|\hat \lambda)] +\gamma(\sum_{i = 1}^NA_{kj} - 1)\} k=1∑N{[l=1∑Nt=2∑TlogAklP(O,It−1=k,It=l∣λ^)]+γ(i=1∑NAkj−1)}
最后求导然后也可以得出结果。
对于B也是同样道理的,这里就不再多写了。