机器学习(最大熵与EM算法)

最大熵

  • 自信息

    I ( p i ) = − l o g ( p i ) I(p_i)=-log(p_i) I(pi)=log(pi)

  • 信息熵(一个事件的熵)

    H ( X ) = − ∑ i = 1 n p ( x i ) l o g ( p ( x i ) ) = − ∑ x p ( x ) l o g ( p ( x ) ) H(X)=-\sum\limits_{i=1}^np(x_i)log(p(x_i))=-\sum_xp(x)log(p(x)) H(X)=i=1np(xi)log(p(xi))=xp(x)log(p(x))

  • 联合熵

    H ( X , Y ) = − ∑ x , y p ( x , y ) l o g p ( x , y ) H(X,Y)=-\sum\limits_{x,y}p(x,y)logp(x,y) H(X,Y)=x,yp(x,y)logp(x,y)

  • 条件熵

    H ( Y ∣ X ) = − ∑ x , y p ( x , y ) l o g p ( y ∣ x ) H(Y|X)=-\sum\limits_{x,y}p(x,y)logp(y|x) H(YX)=x,yp(x,y)logp(yx)

  • 交叉熵

    H ( p , q ) = − ∑ x p ( x ) l o g q ( x ) H(p,q)=-\sum_xp(x)logq(x) H(p,q)=xp(x)logq(x)

  • 相对熵(KL散度)

    D K L ( p ∣ ∣ q ) = H ( p , q ) − H ( p ) D_{KL}(p||q)=H(p,q)-H(p) DKL(pq)=H(p,q)H(p)
    相对熵=某个策略的交叉熵-信息熵

  • 互信息

    I ( X ; Y ) = H ( X ) − H ( X ∣ Y ) = H ( Y ) − H ( Y ∣ X ) I(X;Y)=H(X)-H(X|Y)=H(Y)-H(Y|X) I(X;Y)=H(X)H(XY)=H(Y)H(YX)
    I ( X ; Y ) = ∑ x , y p ( x , y ) l o g p ( x , y ) p ( x ) p ( y ) I(X;Y)=\sum\limits_{x,y}p(x,y)log\frac{p(x,y)}{p(x)p(y)} I(X;Y)=x,yp(x,y)logp(x)p(y)p(x,y)

  • 最大熵理论(有先验知识的条件下做推导)
  1. 模型输入

    从人工标注的训练数据中抽取的训练样本集 T = { ( x 1 , y 1 ) , ⋯   , ( x n , y n ) } T=\{(x_1,y_1),\cdots,(x_n,y_n)\} T={(x1,y1),,(xn,yn)},其中 ( x i , y i ) (x_i,y_i) (xi,yi)表示语料库中出现 y i y_i yi时其上下文信息为 x i x_i xi

  2. 经验分布:
    所谓经验概率分布是指通过在训练数据集T上进行统计得到的分布用 p ~ \tilde{p} p~表示

    p ~ ( x , y ) = c o u n t ( x , y ) N \tilde{p}(x,y)=\frac{count(x,y)}{N} p~(x,y)=Ncount(x,y),其中 c o u n t ( x , y ) count(x,y) count(x,y) ( x , y ) (x,y) (x,y)在语料中出现的次数,N为总词数

  3. 数学推导

    特征 f f f是指x与y之间存在某种特定关系,用二值函数表示


    f i ( x , y ) { 1   , 如 果 x , y 满 足 某 种 条 件 0   , 否 则 f_i{(x,y)}\begin{cases}1 ,如果x,y满足某种条件\\ 0 ,否则\end{cases} fi(x,y){1 ,x,y0 ,

    特征函数关于经验分布 P ~ ( X , Y ) \tilde{P}(X,Y) P~(X,Y)的期望


    E p ~ ( f ) = ∑ x , y p ~ ( x , y ) f ( x , y ) E_{\tilde{p}}(f)=\sum_{x,y}\tilde p(x,y)f(x,y) Ep~(f)=x,yp~(x,y)f(x,y)

    特征函数关于模型 P ( Y ∣ X ) P(Y|X) P(YX)与经验分布 P ~ ( X ) \tilde{P}(X) P~(X)的期望值


    E p ( f ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) f ( x , y ) E_p(f)=\sum_{x,y}\tilde{P}(x)P(y|x)f(x,y) Ep(f)=x,yP~(x)P(yx)f(x,y)

    定义最大熵模型
    选择一个最好的分类模型,对于任意给定的输入 x ∈ X x\in X xX,可以使概率 p ( y ∣ x ) p(y|x) p(yx)输出 y ∈ Y y \in Y yY

    假设满足所有约束条件的模型集合为: C = { P ∈ D ∣ E p ( f i ) = E P ~ ( f i ) } C=\{P\in D|E_p(f_i)=E_{\tilde{P}}(f_i)\} C={PDEp(fi)=EP~(fi)}
    定义在谈条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX)上的条件熵为: H ( P ) = − ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) H(P)=-\sum\limits_{x,y}\tilde{P}(x)P(y|x)logP(y|x) H(P)=x,yP~(x)P(yx)logP(yx)

  4. 最大熵模型的学习

    熵模型的学习等价约束条件
    max ⁡ p ∈ C H ( P ) = − ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) \max_{p\in C}H(P)=-\sum_{x,y}\tilde{P}(x)P(y|x)logP(y|x) pCmaxH(P)=x,yP~(x)P(yx)logP(yx)
    约束条件为:
    E P ( f i ) = E P ~ ( f i ) , i = 1 , 2 , ⋯   , n E_P(f_i)=E_{\tilde{P}}(f_i),i=1,2,\cdots,n EP(fi)=EP~(fi),i=1,2,,n
    ∑ y P ( y ∣ x ) = 1 \sum_yP(y|x)=1 yP(yx)=1

    引入拉格朗日乘子
    L ( P , w ) = − H ( P ) + w 0 [ 1 − ∑ y P ( y ∣ x ) ] + ∑ i = 1 n w i ( E P ~ ( f i ) − E P ( f i ) ) L(P,w)=-H(P)+w_0\big[ 1-\sum_yP(y|x)\big]+\sum_{i=1}^nw_i(E_{\tilde{P}}(f_i)-E_P(f_i)) L(P,w)=H(P)+w0[1yP(yx)]+i=1nwi(EP~(fi)EP(fi))
    = ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) + w 0 [ 1 − ∑ y P ( y ∣ x ) ] =\sum_{x,y}\tilde{P}(x)P(y|x)logP(y|x)+w_0\big[1-\sum_yP(y|x)\big] =x,yP~(x)P(yx)logP(yx)+w0[1yP(yx)]
    + ∑ i = 1 n w i [ ∑ x , y P ~ ( x , y ) f i ( x , y ) − ∑ x , y P ~ ( x ) P ( y ∣ x ) f i ( x , y ) ] +\sum_{i=1}^nw_i\big[\sum_{x,y}\tilde{P}(x,y)f_i(x,y) -\sum_{x,y}\tilde{P}(x)P(y|x)f_i(x,y)\big] +i=1nwi[x,yP~(x,y)fi(x,y)x,yP~(x)P(yx)fi(x,y)]

最优化问题
min ⁡ p ∈ C max ⁡ w L ( P , w ) \min_{p \in C}\max_wL(P,w) pCminwmaxL(P,w)
对偶问题为
max ⁡ w min ⁡ P ∈ C L ( P , w ) \max_w\min_{P\in C}L(P,w) wmaxPCminL(P,w)

先求极小值得到
P w ( y ∣ x ) = 1 Z w ( x ) e x p ( ∑ i = 1 n w i f i ( x , y ) ) P_w(y|x)=\frac{1}{Z_w(x)}exp\big(\sum_{i=1}^nw_if_i(x,y)\big) Pw(yx)=Zw(x)1exp(i=1nwifi(x,y))
Z w ( x ) = ∑ y e x p [ ∑ i = 1 n w i f i ( x , y ) ] Z_w(x)=\sum_yexp\big[\sum_{i=1}^nw_if_i(x,y)\big] Zw(x)=yexp[i=1nwifi(x,y)]

求极大值
表现为求以下方法的极大值
ψ ( w ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) + ∑ x P ~ ( x ) l o g Z w ( x ) \psi(w)=\sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^nw_if_i(x,y)+\sum_x\tilde{P}(x)logZ_w(x) ψ(w)=x,yP~(x,y)i=1nwifi(x,y)+xP~(x)logZw(x)

极大化似然估计法求解
待求解的概率模型 P ( Y ∣ X ) 的 似 然 函 数 为 P(Y|X)的似然函数为 P(YX)
L P ~ ( P w ) = l o g ∏ x , y P ( y ∣ x ) P ~ ( x , y ) = ∑ x , y P ~ ( x , y ) l o g P ( y ∣ x ) L_{\tilde{P}}(P_w)=log\prod_{x,y}P(y|x)^{\tilde{P}(x,y)}=\sum_{x,y}\tilde{P}(x,y)logP(y|x) LP~(Pw)=logx,yP(yx)P~(x,y)=x,yP~(x,y)logP(yx)
P w ( y ∣ x ) P_w(y|x) Pw(yx)代入可以得到
L P ~ ( P w ) = ∑ x , y l o g P ( y ∣ x ) L_{\tilde{P}}(P_w)=\sum_{x,y}logP(y|x) LP~(Pw)=x,ylogP(yx)
= ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x P ~ ( x ) l o g Z w ( x ) =\sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^nw_if_i(x,y)-\sum_x\tilde{P}(x)logZ_w(x) =x,yP~(x,y)i=1nwifi(x,y)xP~(x)logZw(x)

  • 总结EM算法
  1. 特征提取问题

    最大熵的输出:
    P ( y ∣ x , θ ) = e x p ( θ ⋅ f ( x , y ) ∑ y e x p ( θ ⋅ f ( x , y ) P(y|x,\theta)=\frac{exp(\theta\cdot f(x,y)}{\sum_yexp(\theta\cdot f(x,y)} P(yx,θ)=yexp(θf(x,y)exp(θf(x,y)
    如果限定y为二元变量,可以把最大熵模型转换为Logistic回归。我们定义特征函数

    f ( x , y ) = { g ( x ) y = y 1 0 y = y 0 f(x,y)=\left\{ \begin{array}{rcl} g(x) & & y= y_1 \\ 0 & & y=y_0 \\ \end{array} \right. f(x,y)={g(x)0y=y1y=y0

    改进最大熵模型
    P ( y 1 ∣ x , θ ) = e x p ( θ ⋅ g ( x ) ) 1 + e x p ( θ ⋅ g ( x ) ) P(y_1|x,\theta)=\frac{exp(\theta \cdot g(x))}{1+exp(\theta \cdot g(x))} P(y1x,θ)=1+exp(θg(x))exp(θg(x))
    同理:
    P ( y 0 ∣ x , θ ) = 1 1 + e x p ( θ ⋅ g ( x ) ) P(y_0|x,\theta)=\frac{1}{1+exp(\theta \cdot g(x))} P(y0x,θ)=1+exp(θg(x))1

    1.目标: P ( Y ∣ X ) P(Y|X) P(YX)
    2.一个特征函数: f ( x ) f(x) f(x)
    3.两个期望相同:以 P ^ ( x , y ) \hat P(x,y) P^(x,y)与以 P ^ ( x ) P ( y ∣ x ) \hat P(x)P(y|x) P^(x)P(yx)为概率的期望相同
    4.一个约束: ∫ y P ( y ∣ x ) = 1 \int _y P(y|x)=1 yP(yx)=1

EM算法

  1. 目的

    主要用来进行参数的估计

  2. EM路线图

    K-means ->高斯混合模型->EM方法
    最大似然方式(ML)->下边界(Q函数)->EM算法

  3. 两种特殊变量

    可观测变量 Y = { y 1 , y 2 , y 3 , ⋯   , y n } Y=\{y_1,y_2,y_3,\cdots,y_n\} Y={y1,y2,y3,,yn}
    不可观测变量 Z = { z 1 , z 2 , z 3 , ⋯   , z n } Z=\{z_1,z_2,z_3,\cdots,z_n\} Z={z1,z2,z3,,zn}

  4. 最大似然
    P ( x 1 , x 2 , x 3 , ⋯   , x n ) = ∏ j = 1 N p ( y j ) P(x_1,x_2,x_3,\cdots,x_n)=\prod_{j=1}^Np(y_j) P(x1,x2,x3,,xn)=j=1Np(yj)
    则最大似然函数
    L ( θ ) = ∏ j = 1 N p ( y j ) L(\theta)=\prod_{j=1}^Np(y_j) L(θ)=j=1Np(yj)
  5. 含隐式变量的最大似然
    L ( θ ) = ∏ j = 1 N p θ ( y i ) = ∏ j = 1 N ∑ z p θ ( y j ∣ z ) p θ ( z ) L(\theta)=\prod_{j=1}^Np_\theta(y_i)=\prod_{j=1}^N\sum_zp_\theta(y_j|z)p_\theta(z) L(θ)=j=1Npθ(yi)=j=1Nzpθ(yjz)pθ(z)
  6. 解释
    在对数中有加和项时难以求得解析解,则我们会求一个近似最优解
  7. 求解
    l n ( L ( θ ) ) = ∑ j = 1 N l n [ ∑ z p θ ( y j ∣ z ) p θ ( z ) ] ln(L(\theta))=\sum_{j=1}^Nln\big[\sum_zp_\theta(y_j|z)p_\theta(z)\big] ln(L(θ))=j=1Nln[zpθ(yjz)pθ(z)]
    = ∑ j = 1 N l n [ ∑ z p θ ( y j ∣ z ) p θ ( z ) Q ( z ) Q ( z ) ] =\sum_{j=1}^Nln\big[\sum_z\frac{p_\theta(y_j|z)p_\theta(z)}{Q(z)}Q(z)\big] =j=1Nln[zQ(z)pθ(yjz)pθ(z)Q(z)]
    ≥ ∑ j = 1 N ∑ z Q ( z ) l n p θ ( y j ∣ z ) p θ ( z ) Q ( z ) \geq \sum_{j=1}^N\sum_zQ(z)ln\frac{p_\theta(y_j|z)p_\theta(z)}{Q(z)} j=1NzQ(z)lnQ(z)pθ(yjz)pθ(z)
    约束条件为:
    ∑ z Q ( z ) = 1 \sum_zQ(z)=1 zQ(z)=1
    即可理解为:
    l n ( L ( θ ) ) ≥ ∑ j = 1 N ∑ z Q ( z ) l n p θ ( y j ∣ z ) p θ ( z ) Q ( z ) = L o w B o u n d ( θ ) ln(L(\theta))\geq \sum_{j=1}^N\sum_zQ(z)ln\frac{p_\theta(y_j|z)p_\theta(z)}{Q(z)}=LowBound(\theta) ln(L(θ))j=1NzQ(z)lnQ(z)pθ(yjz)pθ(z)=LowBound(θ)
    假设当前参数 θ ( t ) \theta^{(t)} θ(t),在下界上求出最大似然函数的参数为 θ ( t + 1 ) \theta^{(t+1)} θ(t+1)则有:
    l n ( L ( θ ( t + 1 ) ) ) ≥ L o w B o u n d ( θ ( t + 1 ) ) ≥ L o w B o u n d ( θ ( t ) ) ln(L(\theta^{(t+1)}))\geq LowBound(\theta^{(t+1)})\geq LowBound(\theta^{(t)}) ln(L(θ(t+1)))LowBound(θ(t+1))LowBound(θ(t))
    此时下边界函数有很多取法,但为了最终使等号成立则必须有以下条件:
    p θ ( y j ∣ z ) p θ ( z ) Q ( z ) = c \frac{p_\theta(y_j|z)p_\theta(z)}{Q(z)}=c Q(z)pθ(yjz)pθ(z)=c即左式为与z无关的常数
    又因为约束条件,所以有:
    c = ∑ z p θ ( y j ∣ z ) p θ ( z ) c=\sum_zp_\theta(y_j|z)p_\theta(z) c=zpθ(yjz)pθ(z)
    Q ( z ) = p θ ( y j , z ) p θ ( y j ) = p θ ( z ∣ y j ) Q(z)=\frac{p_\theta(y_j,z)}{p_\theta(y_j)}=p_\theta(z|y_j) Q(z)=pθ(yj)pθ(yj,z)=pθ(zyj)
    设定:
    Q ( Z ) = Q ( Z , θ ) Q(Z)=Q(Z,\theta) Q(Z)=Q(Z,θ)则设定
    因此定义每次的计算方式为:
    a、先根据上一次的 θ n \theta_n θn计算 Q ( Z ) Q(Z) Q(Z)
    b、根据上式的 Q ( Z ) Q(Z) Q(Z),求出含有 θ \theta θ的似然函数的下界并最大化,得到新的参数 θ \theta θ并以此不断迭代

GMM

  1. GMM的原型

p ( x ) = ∑ k = 1 K π k N ( x ∣ μ k , δ k ) p(x)=\sum_{k=1}^K\pi_kN(x|\mu_k,\delta_k) p(x)=k=1KπkN(xμk,δk)

引入一个新的K维随机变量 z z z z k ( 1 ≤ k ≤ K ) z_k(1\leq k \leq K) zk(1kK)只能取0或1两个值。 z k = 1 z_k=1 zk=1表示第 k k k类被选中的概率,即 p ( z k = 1 ) = π k p(z_k=1)=\pi_k p(zk=1)=πk;如果 z k = 1 z_k=1 zk=1表示第 k k k类没有被选中的概率:
z k ∈ { 0 , 1 } z_k\in\{0,1\} zk{0,1}
∑ K z k = 1 \sum_Kz_k=1 Kzk=1

  1. GMM 模型分析

假设 z k z_k zk之间是独立同分布的,我们可以写出 z z z的联合概率分布形式:

p ( z ) = p ( z 1 ) p ( z 2 ) ⋯ p ( z k ) = ∏ k = 1 K π k z k p(z)=p(z_1)p(z_2)\cdots p(z_k)=\prod_{k=1}^K\pi_k^{z_k} p(z)=p(z1)p(z2)p(zk)=k=1Kπkzk

上式中只能有一个 z k z_k zk为1,而其它 z j ( j ≠ k ) z_j(j\neq k) zj(j̸=k)全为0

k k k类中的数据服从正态分布,因此有如下形式:

p ( x ∣ z ) = ∏ k = 1 K N ( x ∣ μ k , δ k ) z k p(x|z)=\prod_{k=1}^KN(x|\mu_k,\delta_k)^{z_k} p(xz)=k=1KN(xμk,δk)zk

上面两个式子分别给出了 p ( z ) p(z) p(z) p ( x ∣ z ) p(x|z) p(xz)的形式,根据条件概率公式,可以求出 p ( x ) p(x) p(x)的形式:
p ( x ) = ∑ z p ( z ) p ( x ∣ z ) = ∑ z ( ∏ k = 1 K π k z k N ( x ∣ μ k , δ k ) ) = ∑ k = 1 K π k N ( x ∣ μ k , δ k ) p(x)=\sum_zp(z)p(x|z)=\sum_z\big( \prod_{k=1}^K\pi_k^{z_k}N(x|\mu_k,\delta_k)\big)=\sum_{k=1}^K\pi_kN(x|\mu_k,\delta_k) p(x)=zp(z)p(xz)=z(k=1KπkzkN(xμk,δk))=k=1KπkN(xμk,δk)

求后验概率如下:

γ ( z k ) = p ( z k = 1 ∣ x ) = p ( z k = 1 ) p ( x ∣ z k = 1 ) p ( x ) = π k N ( x ∣ μ k , δ k ) ∑ j = 1 K π j N ( x ∣ μ j , δ j ) \gamma(z_k)=p(z_k=1|x)=\frac{p(z_k=1)p(x|z_k=1)}{p(x)}=\frac{\pi_kN(x|\mu_k,\delta_k)}{\sum_{j=1}^K\pi_jN(x|\mu_j,\delta_j)} γ(zk)=p(zk=1x)=p(x)p(zk=1)p(xzk=1)=j=1KπjN(xμj,δj)πkN(xμk,δk)

  1. GMM模型的似然函数

    ∑ i = 1 N l o g { ∑ k − 1 K π k N ( x i ∣ μ k , δ k ) } \sum{i=1}^Nlog\big \{ \sum_k-1^K\pi_kN(x_i|\mu_k,\delta_k) \big \} i=1Nlog{k1KπkN(xiμk,δk)}

4、 迭代公式

μ k = 1 N k ∑ i = 1 N γ ( z i k ) x i \mu_k=\frac{1}{N_k}\sum_{i=1}^N\gamma(z_{ik})x_i μk=Nk1i=1Nγ(zik)xi
δ k = 1 N k ∑ i = 1 N γ ( z i k ) ( x i − μ k ) ( x i − μ k ) T \delta_k=\frac{1}{N_k}\sum_{i=1}^N\gamma(z_{ik})(x_i-\mu_k)(x_i-\mu_k)^T δk=Nk1i=1Nγ(zik)(xiμk)(xiμk)T

其中 N k = ∑ i = 1 N γ ( z i k ) N_k=\sum_{i=1}^N\gamma(z_{ik}) Nk=i=1Nγ(zik), π k = N k / N \pi_k=N_k/N πk=Nk/N

你可能感兴趣的:(机器学习(最大熵与EM算法))