改进迭代尺度法 (Improved Iterative Scaling, IIS)

1. 最大熵模型回顾与优化目标

在最大熵模型中,我们关注的是条件概率分布 ,其形式为: 其中:

  • 是我们希望学习的权重向量,每个 对应一个特征函数
  • 是二值特征函数,表示输入 和输出 是否满足特定条件(通常取 0 或 1)。
  • 是归一化因子(配分函数),确保对所有可能的 求和时

我们的优化目标是最大化训练数据集的对数似然函数 。假设训练数据集中的样本 服从经验分布 ,则对数似然函数为: 的定义代入: 解释:第二项中 只依赖于 ,不依赖于 。因此 (因为 )。所以: 我们的目标是找到 来最大化

2. 似然函数增量与辅助函数的构建

IIS 算法通过迭代地更新权重 。假设当前权重为 ,我们希望找到一个更新量 ,使得新的权重 能够提高似然函数值。

我们考虑似然函数的增量 展开并合并相似项: 解释:这是似然函数增量的精确表达式。我们现在需要找到它的一个下界,构建一个更容易最大化的辅助函数。

关键不等式应用: 我们使用基本不等式:对于任何实数 ,有 解释:这个不等式可以通过对函数 求导并分析其最小值来证明。 。当 ,此时 。因此 ,即 ,或者

我们将 代入上述不等式: 将此不等式代回到似然函数增量表达式中: 解释,所以第二项为 1。

现在我们展开 解释:利用指数的性质

我们知道 。所以 。 代入上式: 解释:归一化因子 被约去。

将此结果代回到似然函数增量下界表达式中,我们得到辅助函数 解释:这个 是我们通过最大化它来间接最大化 的函数。请注意,这里 是一个向量,所有 都出现在指数项的求和中。

3. 最大化辅助函数

为了最大化 ,我们对其关于每个 求偏导数,并令其等于零。

我们对 的各项分别求偏导:

  1. 第一项 求偏导: 解释:只有当求和符号中的 等于 时, 项才依赖于 。其他项是常数,求导为零。 解释:这正是特征 在经验分布上的期望

  2. 第二项 求偏导: 为

  3. 第三项 求偏导: 解释:求和符号前的项和 都是常数。我们主要对指数项 求导。根据链式法则, 。在这里, 解释:只有当 时, 依赖于

    所以,第三项的偏导数为: 解释:这就是模型期望的一个变体,其中包含了指数项。

将所有偏导数结果合并,并令其为零: 重新排列,得到每个 需要满足的方程:

问题: 请注意这个方程,对于要解的 ,它仍然存在于指数项内部的求和 中,这意味着 是与其他所有 耦合在一起的。我们不能直接独立地求解每个 。每次迭代都需要解一个包含所有 的复杂非线性方程组,这实际上是比牛顿法(需要Hessian)更困难的问题。

这与标准的 IIS 算法(或其更常见的推导)略有不同。标准的 IIS 引入了一个额外的数学技巧来解耦这些 项,使其可以独立求解。

4. 标准 IIS 的核心技巧:解耦 (引入 )

为了能够独立地求解每个 ,标准的 IIS 引入了特征总和函数 。 定义 ,表示样本 中所有激活特征的数量。 为了保证后续推导的有效性,IIS 通常要求 对于所有 样本是一个常数 。如果不是,可以通过引入一个虚拟特征 来实现,其中 是一个大于或等于所有样本最大特征总和的常数。这样,新的特征总和就变成了恒定的

标准的 IIS 算法使用一个更精巧的下界替换: 通常被替换为以下形式的下界(这里省略了详细的推导,它涉及到将 分解成 ,并使用加权几何平均值或 Jensen 不等式的一个特定变体): 更具体地,标准的 IIS 辅助函数 的形式是: 解释

  • 这个辅助函数中的指数项变成了 ,关键在于指数内部的 被解耦了,不再是
  • 这里的 扮演了权重或概率的角色。

现在,对这个标准 IIS 辅助函数关于 求偏导数并令其为零:

  1. 第一项的导数与之前相同:

  2. 第二项(负号后面的大求和项)对 求偏导: 解释:只有当内部求和中的 时,项才依赖于 解释:这里的 项可以被约去。

将两部分求导结果结合,并令其等于零: 重新排列,得到标准 IIS 的核心更新方程 解释:现在,对于每个特征 ,这个方程中待解的 只出现在它自己的指数项中,而没有与其他 耦合。这意味着我们可以为每个 独立地求解一个单变量非线性方程。

5. 求解每个 的方程

对于每个特征 ,我们需要求解形如 的方程,其中 都是常数。更准确地说,是: . 则方程可以写成: 这是一个关于 的超越方程,通常不能解析求解,但可以通过单变量数值方法高效求解。最常用的方法是:

  • 牛顿法(求根): 定义函数 。 目标是找到 使得 。 迭代公式: 。 其中 。 (这里的 都可以高效计算)。

6. 改进迭代尺度法 (IIS) 算法步骤

  1. 数据预处理与初始化
    • 计算所有特征函数 在训练数据上的经验期望
    • 确定一个常数 ,使得对于所有 ,激活特征的总和 。如果 不恒定,则引入一个虚拟特征 。此时特征总数变为 ,且新的 。为 引入权重
    • 初始化所有权重 (或随机小值)。
  2. 迭代过程 (直到收敛): a. 计算当前模型期望:对于训练数据中的每个 对,计算当前权重 下的模型条件概率 。 b. 计算每个特征的更新量 : 对于每个特征 : * 构建单变量非线性方程: * 使用牛顿法(求根)或其他数值方法,求解此方程得到 。 c. 更新权重: 对于每个特征 : * 。 d. 检查收敛:如果所有 的绝对值都小于一个预设的小阈值,或者对数似然函数的增量小于一个阈值,则算法停止。

7. 总结

  1. 目标:最大化最大熵模型的对数似然函数。
  2. 核心策略:通过构造一个辅助函数 作为似然函数增量的下界,并通过迭代最大化这个下界来逐步提升似然函数。
  3. 辅助函数推导(关键不等式)
    • 最初的推导利用了 这个基本不等式,导致了辅助函数
    • 重要提示:直接使用这个辅助函数求导后得到的方程中, 仍然与其他 耦合在指数内部的求和中,使得每个 无法独立求解。
  4. 标准 IIS 的解耦技巧
    • 引入特征总和函数 ,并通过可能引入虚拟特征 来保证 为常数
    • 利用一个更精巧的辅助函数构建方法(它导致了不同的下界),使得指数项中的 被解耦为 形式。
    • 由此得到的每个 的更新方程是单变量的:
  5. 求解 :由于是单变量非线性方程,可以使用**牛顿法(求根)**等数值方法高效求解。
  6. 优点
    • 无需计算和存储 Hessian 矩阵:避免了牛顿法在高维问题上的计算瓶颈。
    • 每次迭代保证似然函数增加:算法具有收敛性保证,能收敛到全局最优解(因为最大熵的对数似然函数是凸函数)。
    • 比梯度下降快:通常比朴素的梯度下降法收敛更快。
  7. 缺点
    • 计算复杂:每次迭代需要对每个特征求解一个非线性方程,这仍然是计算密集型的。
    • 虚拟特征的引入:为了满足 为常数的条件,可能需要引入虚拟特征,这增加了模型的复杂性。
    • 不如L-BFGS流行:在现代大规模机器学习任务中,L-BFGS 通常被认为是更有效和更常用的优化最大熵模型的方法。