机器学习--EM算法

引入

当我们假设了一个概率分布之后往往需要做的是进行参数的估计,比如我们假设了一个概率分布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=1np(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=1np(yiθ))
在进一步,我们记 P ( Y ∣ θ ) = ∏ i = 1 n p ( y i ∣ θ ) P(Y|\theta)=\prod\limits_{i = 1}^np(y_i|\theta) P(Yθ)=i=1np(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)=zp(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) θ^=θargmaxlogZP(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(yx)我们可以把上式进行改写
θ ^ = 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) θ^=θargmaxlogZP(YZ,θ)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(θ)=logZP(YZ,θ)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))=logZP(YZ,θ)P(Zθ)logZP(YZ,θ(1))P(Zθ(1))

然后我们使用一个trick,我们让第一个式子中同时乘以除以 P ( Z ∣ Y , θ ( 1 ) ) P(Z|Y,\theta^{(1)}) P(ZY,θ(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))=logZP(ZY,θ(1))P(ZY,θ(1))P(YZ,θ)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))=logZP(ZY,θ(1))P(ZY,θ(1))P(Yθ(1))P(YZ,θ)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λjyjjλ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))=logZP(YZ,θ(1))P(YZ,θ(1))P(Yθ(1))P(YZ,θ)P(Zθ)ZP(YZ,θ(1))logP(YZ,θ(1))P(Yθ(1))P(YZ,θ)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))ZP(ZY,θ(1))logP(ZY,θ(1))P(Yθ(1))P(YZ,θ)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(θ)ZP(YZ,θ(1))logP(YZ,θ(1))P(Yθ(1))P(YZ,θ)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))=ZP(ZY,θ(1))logP(ZY,θ(1))P(Yθ(1))P(YZ,θ)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(ZY,θ(i))logP(ZY,θ(i))P(Yθ(i))P(YZ,θ)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(ZY,θ(i))logP(ZY,θ(i))P(Yθ(i))P(YZ,θ)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(ZY,θ(i))log[P(YZ,θ)P(Zθ)]P(ZY,θ(i))log[P(ZY,θ(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(ZY,θ(i))log[P(YZ,θ)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(ZY,θ(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(ZY,θ(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(λ,λ^)=IlogP(O,Iλ)P(IO,λ^)=IlogP(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=2T[AIt1,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(λ,λ^)=IlogP(O,Iλ)P(Oλ^)P(I,Oλ^)=IlogπI1BI1,O1t=2T[AIt1,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(λ,λ^)=IP(Oλ^)P(I,Oλ^)logπI1+IP(Oλ^)P(I,Oλ^)t=2Tlog[AIt1,It]+IP(Oλ^)P(I,Oλ^)t=1Tlog[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(λ,λ^)=IP(I,Oλ^)logπI1+IP(I,Oλ^)t=2Tlog[AIt1,It]+IP(I,Oλ^)t=1Tlog[BIt,Ot]
我们可以使用坐标轴下降法,依次选定每一项然后固定其他项,进行极大化。

  1. 选定 π \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} πargmaxIP(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=1NP(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=kP(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=1NlogπkP(O,I1=kλ)+γ(i=1Nπi1)
    我们进行求导,然后令其等于零,就得到了
    π 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λ^)
  2. 选定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}}] IP(I,Oλ^)t=2Tlog[AIt1,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) IP(I,Oλ^)t=2TlogAIt1,It=k=1Nl=1Nt=2TlogAklP(O,It1=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=1N{[l=1Nt=2TlogAklP(O,It1=k,It=lλ^)]+γ(i=1NAkj1)}
    最后求导然后也可以得出结果。
    对于B也是同样道理的,这里就不再多写了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值