机器学习 - 最大熵模型

机器学习 - 最大熵模型

      • 最大熵原理
      • 最大熵例子
      • 最大熵模型
        • 定义
        • 最大熵模型的学习
        • 极大似然估计求解

  • 最大熵原理

    最大熵的思想认为,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型(对未知的事实视为等概率发生,不添加任何主观先验知识)。

    我们通常用约束条件来确定概率模型的集合,所以也可认为是在满足约束条件的模型中选出熵最大的模型。

    最大熵模型给出的是 最优模型选择的一个准则

    例:
    X = {A, B, C ,D, E},要估计 P(A),…,P(E) 的概率,要满足条件:
    ① P(A) + P(B) = 3/10;
    ② P(A) + … + P(E) = 1

    此时满足条件的概率组合有无穷多个,而根据最大熵原理,我们视等概率的组合为最优。

    则:
    P ( A ) = P ( B ) = 1 2 ⋅ 3 10 = 3 20 P(A) = P(B) = \frac{1}{2} · \frac{3}{10} = \frac{3}{20} P(A)=P(B)=21103=203

    P ( C ) + P ( D ) + P ( E ) = 1 − 3 10 = 7 10 → P ( C ) = P ( D ) = P ( E ) = 1 3 ⋅ 7 10 = 7 30 P(C) + P(D) + P(E) = 1 - \frac{3}{10} = \frac{7}{10} \rightarrow P(C) = P(D) = P(E) = \frac{1}{3} · \frac{7}{10} = \frac{7}{30} P(C)+P(D)+P(E)=1103=107P(C)=P(D)=P(E)=31107=307

  • 最大熵例子

最大熵一般需要满足一定的约束条件,在此情况下寻找熵最大的模型。即相当于在满足已知条件的情况下,不加入任何先验知识,寻找最优模型。

例如,决策树在生成过程中,其分类结点的熵是不断减小的,但最终熵越小,过拟合程度越高,所以需要剪枝。

剪枝过程就是在保持预测误差基本不变的情况下,使结点分类的熵最大,使得过拟合程度降低(应用最大熵原理)。

  • 最大熵模型

    假设分类模型是一个 条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX),此模型表示的是:对于给定输入 X X X,以条件概率 P ( Y ∣ X ) P(Y|X) P(YX) 输出 Y Y Y.

    1. 定义

      P ~ ( X = x , Y = y ) = V ( X = x , Y = y ) N \widetilde{P} (X=x,Y=y)= \frac{V(X=x,Y=y)}{N} P (X=x,Y=y)=NV(X=x,Y=y)

      P ~ ( X = x ) = V ( X = x ) N \widetilde{P} (X=x) = \frac{V(X=x)}{N} P (X=x)=NV(X=x)

      其中,

      " ~ " 表示经验,是从数据中获得的, P ~ \widetilde{P} P 即经验概率, E P ~ E_{\widetilde{P}} EP 即经验期望。

      V ( X = x , Y = y ) V(X=x,Y=y) V(X=x,Y=y) 表示在训练样本中 ( x , y ) (x,y) (x,y) 同时出现的样本数;

      V ( X = x ) V(X=x) V(X=x) 表示训练样本中 x x x 出现的的样本数。


      用特征函数 f ( x , y ) f(x,y) f(x,y) 描述 x x x y y y 之间的事实: f ( x , y ) = { 1 , x 与 y 满 足 某 事 实 0 , o t h e r w i s e f(x,y)=\begin{cases}1,x 与 y 满足某事实\\0,otherwise\\\end{cases} f(x,y)={1xy0otherwise

      特征函数 f ( x , y ) f(x,y) f(x,y) 关于 P ~ ( x , y ) \widetilde{P} (x,y) P (x,y) 期望值: E P ~ ( f ) = ∑ x , y P ~ ( x , y ) f ( x , y ) E_{\widetilde{P}}(f)=\sum_{x,y}\widetilde{P} (x,y)f(x,y) EP (f)=x,yP (x,y)f(x,y)

      特征函数 f ( x , y ) f(x,y) f(x,y) 关于模型 P ( Y ∣ X ) P(Y|X) P(YX) 以及 P ~ ( x ) \widetilde{P}(x) P (x) 的期望值: E P ~ ( f ) = ∑ x , y P ~ ( x ) p ( y ∣ x ) f ( x , y ) E_{\widetilde{P}}(f)=\sum_{x,y}\widetilde{P} (x)p(y|x)f(x,y) EP (f)=x,yP (x)p(yx)f(x,y)


      如果模型能够学习到训练数据中的信息,则可假设 E P ( f ) = E P ~ ( f ) E_P(f)=E_{\widetilde{P}}(f) EP(f)=EP (f) (可类比于之前《损失函数》中提到的“经验损失”与“期望损失”)

      即,

      ∑ x , y P ~ ( x , y ) f ( x , y ) = ∑ x , y P ~ ( x ) p ( y ∣ x ) f ( x , y ) \sum_{x,y}\widetilde{P} (x,y)f(x,y) =\sum_{x,y}\widetilde{P} (x)p(y|x)f(x,y) x,yP (x,y)f(x,y)=x,yP (x)p(yx)f(x,y)

      并以此作为约束条件。

      则最大熵模型可作如下定义:


      假设满足所有约束条件的 模型集合 为: C ≡ { p ∈ P ∣ E p ( f i ) = E p ~ ( f i ) , i = 1 , 2 , … , n } C \equiv \{ p∈P|E_p(f_i) = E_{\widetilde{p}}(f_i),i=1,2,…,n \} C{pPEp(fi)=Ep (fi)i=1,2,,n}

      定义在条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX) 上的条件熵为 H ( p ) = − ∑ x , y P ~ ( x ) p ( y ∣ x ) log ⁡ p ( y ∣ x ) H(p) = -\sum_{x,y}\widetilde{P}(x)p(y|x)\log{p(y|x)} H(p)=x,yP (x)p(yx)logp(yx)

      则模型集合 C C C 中条件熵 H ( p ) H(p) H(p) 最大的模型称为 最大熵模型

    2. 最大熵模型的学习

      ∙ \bullet 学习问题可形式化为约束优化问题,等价于:

      max ⁡ p ∈ C H ( p ) = − ∑ x , y P ~ ( x ) p ( y ∣ x ) log ⁡ p ( y ∣ x ) \max_{p∈C} H(p)=-\sum_{x,y}\widetilde{P}(x)p(y|x)\log{p(y|x)} maxpCH(p)=x,yP (x)p(yx)logp(yx)
      s . t s.t s.t      E p ( f i ) ) = E p ~ ( f i ) ) , i = 1 , 2 , … , n E_p(f_i))=E_{\widetilde{p}}(f_i)),i=1,2,…,n Ep(fi))=Ep (fi)),i=1,2,,n
               ∑ y p ( y ∣ x ) = 1 \sum_yp(y|x)=1 yp(yx)=1

      ∙ \bullet 最小化 → 最大化

      min ⁡ p ∈ C − H ( p ) = ∑ x , y P ~ ( x ) p ( y ∣ x ) log ⁡ p ( y ∣ x ) \min_{p∈C} -H(p)=\sum_{x,y}\widetilde{P}(x)p(y|x)\log{p(y|x)} minpCH(p)=x,yP (x)p(yx)logp(yx)
      s . t s.t s.t      E p ( f i ) ) = E p ~ ( f i ) ) , i = 1 , 2 , … , n E_p(f_i))=E_{\widetilde{p}}(f_i)),i=1,2,…,n Ep(fi))=Ep (fi)),i=1,2,,n
               ∑ y p ( y ∣ x ) = 1 \sum_yp(y|x)=1 yp(yx)=1

      ∙ \bullet 引入拉格朗日乘子

      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)\equiv -H(p) + w_0(1-\sum_yp(y|x)) + \sum_{i=1}^{n} w_i(E_{\widetilde{p}}(f_i)-E_p(f_i)) L(p,w)H(p)+w0(1yp(yx))+i=1nwi(Ep (fi)Ep(fi))

      max ⁡ w L ( p , w ) = − H ( p ) \max_{w}L(p,w) = -H(p) maxwL(p,w)=H(p)

      ∙ \bullet 最小化 − H ( p ) -H(p) H(p)

      min ⁡ p ∈ C max ⁡ w L ( p , w ) = min ⁡ p ∈ C − H ( p ) \min_{p∈C} \max_{w}L(p,w) = \min_{p∈C}-H(p) minpCmaxwL(p,w)=minpCH(p)

      ∙ \bullet 对偶问题

      max ⁡ w min ⁡ p ∈ C L ( p , w ) \max_{w} \min_{p∈C}L(p,w) maxwminpCL(p,w)

      由于 L ( p , w ) L(p,w) L(p,w) 是凸函数,所以原始问题于对偶问题等价。

      ∙ \bullet 计算

      p p p 求偏导,且令导数为 0:

      ∂ L ( p , w ) ∂ p ( y i ∣ x i ) = 0 , i = 1 , 2 , … , n \frac{\partial L(p,w)}{\partial p(y_i|x_i)}=0,i=1,2,…,n p(yixi)L(p,w)=0i=1,2,,n

      代回原式子,再对 w 0 , w 1 w_0,w_1 w0,w1 分别求偏导,且令导数为 0 :

      求解后代回,计算 p ( y i ∣ x i ) , i = 1 , 2 , … , n p(y_i|x_i),i=1,2,…,n p(yixi)i=1,2,,n

      ∙ \bullet 最终模型表示为:

      p w ( y ∣ x ) = 1 z w ( x ) e ∑ i = 1 n w i f i ( x , y ) p_w(y|x)=\frac{1}{z_w(x)}e^{\sum_{i=1}^{n}w_if_i(x,y)} pw(yx)=zw(x)1ei=1nwifi(x,y)

      其中, z w ( x ) = ∑ y e ∑ i = 1 n w i f i ( x , y ) z_w(x)=\sum_ye^{\sum_{i=1}^{n}w_if_i(x,y)} zw(x)=yei=1nwifi(x,y) 可视为为归一化因子。

    3. 极大似然估计求解

      已知训练数据的经验概率分布 p ~ ( x , y ) \widetilde p(x,y) p (x,y)

      条件概率分布为 p ( Y ∣ X ) p(Y|X) p(YX) 的对数似然函数表示为:

      L p ~ ( p w ) = log ⁡ ∏ x , y p ( y ∣ x ) p ~ ( x , y ) = ∑ x , y p ~ ( x , y ) log ⁡ p ( y ∣ x ) L_{\widetilde p}(p_w) = \log \prod_{x,y}p(y|x)^{\widetilde p(x,y)} = \sum_{x,y} \widetilde p(x,y) \log p(y|x) Lp (pw)=logx,yp(yx)p (x,y)=x,yp (x,y)logp(yx)

      当条件概率分布 p ( y , x ) p(y,x) p(y,x) 是最大熵模型时:

      L p ~ ( p w ) = ∑ x , y p ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x , y p ~ ( x , y ) log ⁡ z w ( x ) L_{\widetilde p}(p_w) = \sum_{x,y} \widetilde p(x,y) \sum_{i=1}^{n}w_if_i(x,y) - \sum_{x,y} \widetilde p(x,y) \log z_w(x) Lp (pw)=x,yp (x,y)i=1nwifi(x,y)x,yp (x,y)logzw(x)
               = ∑ x , y p ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x p ~ ( x ) log ⁡ z w ( x ) = \sum_{x,y} \widetilde p(x,y) \sum_{i=1}^{n}w_if_i(x,y) - \sum_{x} \widetilde p(x) \log z_w(x) =x,yp (x,y)i=1nwifi(x,y)xp (x)logzw(x)

你可能感兴趣的:(机器学习,(ML),机器学习,最大熵模型,最大熵原理,最大熵模型计算,最大熵模型学习算法)