最大熵的学习过程

最大熵模型的学习 = 求解最大熵模型 = 带约束的最优化模型 = 无约束最优化的对偶问题

定义: K:y可能的取值数

  1. 列出已知的求最大熵公式和限制条件:

    H(P)=k=1KP(yk)logykmaxH(P)condition0:(=)conditionn\begin{aligned} H(P) = -\sum_{k=1}^KP(y_k)\log y_k \\ \max H(P) condition_0: (\cdots = \cdots) \\ \cdots \\ condition_n \end{aligned}
  2. 将求最大值问题改写成求最小值问题。将condition换一种写法

    minH(P)f0:=0fn:=0\begin{aligned} \min -H(P) \\ f_0: \cdots - \cdots = 0 \\ \cdots \\ f_n: \cdots - \cdots = 0 \end{aligned}
  3. 定义拉格朗日函数

    L(P,w)=H(P)+inwifiL(P, w) = -H(P) + \sum_i^nw_if_i
  4. “第一步是把 \alpha, \beta当做常数,求\theta_p(x)。”在这里就是把L(P, w)对每个yky_k求偏导,并这些偏导= 0

    L(P,w)yk=1+logP(yk)+inwifiyk=0\frac{\partial L(P, w)}{\partial y_k} = 1 + \log P(y_k) + \sum_i^n w_i \frac{\partial f_i}{\partial y_k} = 0
  5. 根据第4步得到K个等式。通过这K个等式,解出P(y1),,P(yK)P(y_1), \cdots, P(y_K),这些值都是用w表达的式子

  6. 代入P(y1),,P(yK)P(y_1), \cdots, P(y_K)到第3步中的L(P,w)L(P, w),将得到新的L(P,w)L(P, w)

  7. 将新的L(P,w)L(P, w)分别为所有的w求导,并令这些偏导为0

    L(P,w)wn=0\frac{\partial L(P, w)}{\partial w_n} = 0
  8. 根据7得出n个等式,计算这些等式,解得w

  9. 把w代入5,得到所有的P(y),也可以跳过第8步,直接计算出P(y)

Last updated