机器学习 - 最大熵模型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37352167/article/details/84791253

  • 最大熵原理

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

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

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

    例:
    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 ( 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 ( Y X ) P(Y|X) ,此模型表示的是:对于给定输入 X X ,以条件概率 P ( Y X ) P(Y|X) 输出 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 ) = V ( X = x ) N \widetilde{P} (X=x) = \frac{V(X=x)}{N}

      其中,

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

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

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


      用特征函数 f ( x , y ) f(x,y) 描述 x x 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 ) f(x,y) 关于 P ~ ( x , y ) \widetilde{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)

      特征函数 f ( x , y ) f(x,y) 关于模型 P ( Y X ) P(Y|X) 以及 P ~ ( x ) \widetilde{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)


      如果模型能够学习到训练数据中的信息,则可假设 E P ( f ) = E P ~ ( f ) E_P(f)=E_{\widetilde{P}}(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)

      并以此作为约束条件。

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


      假设满足所有约束条件的 模型集合 为: 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 \}

      定义在条件概率分布 P ( Y X ) P(Y|X) 上的条件熵为 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)}

      则模型集合 C C 中条件熵 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)}
      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
               y p ( y x ) = 1 \sum_yp(y|x)=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)}
      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
               y p ( y x ) = 1 \sum_yp(y|x)=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))

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

      \bullet 最小化 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)

      \bullet 对偶问题

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

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

      \bullet 计算

      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

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

      求解后代回,计算 p ( y i x i ) i = 1 , 2 , , n p(y_i|x_i),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)}

      其中, 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)} 可视为为归一化因子。

    3. 极大似然估计求解

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

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

      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)

      当条件概率分布 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)
               = 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)

猜你喜欢

转载自blog.csdn.net/weixin_37352167/article/details/84791253