三、最大熵的学习

  1. 最大熵模型的学习就是在给定训练数据集 三、最大熵的学习 - 图1 时,对模型进行极大似然估计或者正则化的极大似然估计。

  2. 最大熵模型与 logistic 回归模型有类似的形式,它们又称为对数线性模型。

    • 它们的目标函数具有很好的性质:光滑的凸函数。因此有多种最优化方法可用,且保证能得到全局最优解。
    • 最常用的方法有:改进的迭代尺度法、梯度下降法、牛顿法、拟牛顿法。

3.1 改进的迭代尺度法

  1. 改进的迭代尺度法Improved Iterative Scaling:IIS是一种最大熵模型学习的最优化算法。

  2. 已知最大熵模型为:

    三、最大熵的学习 - 图2

    其中

    三、最大熵的学习 - 图3

    对数似然函数为:

    三、最大熵的学习 - 图4

    最大熵模型的目标是:通过极大化似然函数学习模型参数,求出使得对数似然函数最大的参数 三、最大熵的学习 - 图5

  3. IIS 原理:假设最大熵模型当前的参数向量是 三、最大熵的学习 - 图6,希望找到一个新的参数向量 三、最大熵的学习 - 图7,使得模型的对数似然函数值增大。

    • 若能找到这样的新参数向量,则更新 三、最大熵的学习 - 图8
    • 重复这一过程,直到找到对数似然函数的最大值。
  4. 对于给定的经验分布 三、最大熵的学习 - 图9,模型参数从 三、最大熵的学习 - 图10三、最大熵的学习 - 图11 之间,对数似然函数的改变量为:

    三、最大熵的学习 - 图12

    • 利用不等式:当三、最大熵的学习 - 图13三、最大熵的学习 - 图14 有:

    三、最大熵的学习 - 图15

    • 考虑到 三、最大熵的学习 - 图16,以及:

      三、最大熵的学习 - 图17

      根据三、最大熵的学习 - 图18 有:

      三、最大熵的学习 - 图19

      则有:

      三、最大熵的学习 - 图20

    • 三、最大熵的学习 - 图21

      三、最大熵的学习 - 图22

  5. 如果能找到合适的 三、最大熵的学习 - 图23 使得 三、最大熵的学习 - 图24 提高,则对数似然函数也会提高。但是 三、最大熵的学习 - 图25 是个向量,不容易同时优化。

    • 一个解决方案是:每次只优化一个变量 三、最大熵的学习 - 图26
    • 为达到这个目的,引入一个变量 三、最大熵的学习 - 图27
  6. 三、最大熵的学习 - 图28 改写为:

    三、最大熵的学习 - 图29

    • 利用指数函数的凸性,根据

      三、最大熵的学习 - 图30

      以及Jensen 不等式有:

      三、最大熵的学习 - 图31

      于是:

      三、最大熵的学习 - 图32

    • 三、最大熵的学习 - 图33

      则: 三、最大熵的学习 - 图34 。这里 三、最大熵的学习 - 图35 是对数似然函数改变量的一个新的(相对不那么紧)的下界。

  7. 三、最大熵的学习 - 图36三、最大熵的学习 - 图37 的偏导数:

    三、最大熵的学习 - 图38

    令偏导数为 0 即可得到 三、最大熵的学习 - 图39

    三、最大熵的学习 - 图40

    最终根据 三、最大熵的学习 - 图41 可以得到 三、最大熵的学习 - 图42

  8. IIS 算法:

    • 输入:

      • 特征函数 三、最大熵的学习 - 图43
      • 经验分布 三、最大熵的学习 - 图44
      • 模型 三、最大熵的学习 - 图45
    • 输出:

      • 最优参数 三、最大熵的学习 - 图46
      • 最优模型 三、最大熵的学习 - 图47
    • 算法步骤:

      • 初始化:取 三、最大熵的学习 - 图48

      • 迭代,迭代停止条件为:所有 三、最大熵的学习 - 图49 均收敛。迭代步骤为:

        • 求解 三、最大熵的学习 - 图50,求解方法为:对每一个 三、最大熵的学习 - 图51

          • 求解 三、最大熵的学习 - 图52 。其中三、最大熵的学习 - 图53 是方程:三、最大熵的学习 - 图54 的解,其中: 三、最大熵的学习 - 图55
          • 更新 三、最大熵的学习 - 图56
        • 判定迭代停止条件。若不满足停止条件,则继续迭代。

3.2 拟牛顿法

  1. 若对数似然函数 三、最大熵的学习 - 图57 最大,则 三、最大熵的学习 - 图58 最小。

    三、最大熵的学习 - 图59 ,则最优化目标修改为:

    三、最大熵的学习 - 图60

    计算梯度:

    三、最大熵的学习 - 图61

  2. 最大熵模型学习的 BFGS算法:

    • 输入:

      • 特征函数 三、最大熵的学习 - 图62
      • 经验分布 三、最大熵的学习 - 图63
      • 目标函数 三、最大熵的学习 - 图64
      • 梯度 三、最大熵的学习 - 图65
      • 精度要求 三、最大熵的学习 - 图66
    • 输出:

      • 最优参数值 三、最大熵的学习 - 图67
      • 最优模型 三、最大熵的学习 - 图68
    • 算法步骤:

      • 选定初始点 三、最大熵的学习 - 图69,取 三、最大熵的学习 - 图70 为正定对阵矩阵,迭代计数器 三、最大熵的学习 - 图71

      • 计算 三、最大熵的学习 - 图72

        • 三、最大熵的学习 - 图73 ,停止计算,得到 三、最大熵的学习 - 图74

        • 三、最大熵的学习 - 图75

          • 三、最大熵的学习 - 图76 求得 三、最大熵的学习 - 图77

          • 一维搜索:求出 三、最大熵的学习 - 图78三、最大熵的学习 - 图79

          • 三、最大熵的学习 - 图80

          • 计算 三、最大熵的学习 - 图81。 若 三、最大熵的学习 - 图82 ,停止计算,得到 三、最大熵的学习 - 图83

          • 否则计算 三、最大熵的学习 - 图84

            三、最大熵的学习 - 图85

            其中: 三、最大熵的学习 - 图86

          • 三、最大熵的学习 - 图87 ,继续迭代。