最大熵模型

Logistic Regression

Logistic Distribution

设$X$是连续随机变量,$X$服从 logistic distribution 是指$X$具有下列分布函数和密度函数:

Binomial Logistic Regression Model

这是一种二分类模型,这里规定模型输出 $Y \in \{0, 1\}$, 也就是 $y_i \in \{0, 1\}$

其中,$x \in \mathbb{R}^n$ 是输入,$w \in \mathbb{R}^n$ 和 $ b \in \mathbb{R}$ 分别是权值向量和偏置,$\vec{w} \cdot \vec{x}$ 是向量内积运算。

Evaluation of Model Parameters

采用极大似然估计法估计模型参数,从而得到 logistics regression model

我们设

则得到似然函数为

经过计算,对数似然函数为

对 $L(w)$ 求极大值,得到 $w$ 的估计值 $\hat{w}$


Maximum Entropy Model

The Principle of Maximum Entropy

最大熵原理的核心在于,使得整个概率模型的熵最大。

MaxEntropy Model

模型输入 $X \in \mathcal{X} \subseteq \mathbb{R}^n$,输出 $Y \in \mathcal{Y}$,条件概率分布 $P(Y | X)$ 表示对于给定输入 $X$ 以该条件概率输出 $Y$。

给定训练数据集,可以确定联合分布 $P(X, Y)$ 的经验分布和边缘分布。

其中 $\nu(X = x, Y = y)$ 是样本 $(x, y)$ 出现的频数。

接下来介绍特征函数 feature function $f(x,y)$,$f()$ 描述输入 $x$ 与输出 $y$ 之间的某一个事实。

特征函数关于经验分布的期望值

特征函数关于模型与经验分布的期望值

如果模型能够获得训练数据中的信息,则可以认为上述两个期望值相等,即

综上,我们引出最大熵模型。

假设满足所有约束条件的模型集合为

定义在条件概率分布 $P(Y|X)$ 上的条件熵为

则模型集合 $\mathcal{C}$ 中条件熵 $H(P)$ 最大的模型称为最大熵模型。

Training a Maximum Entropy Model

类似 SVM 的学习过程。给定训练数据集 $T = \{(x_1,y_1),(x_2,y_2),\dots,(x_N,y_N)\}$ 以及特征函数 $f_i(x,y), \quad i = 1, 2, \dots, n$,最大熵模型的学习等价于约束最优化问题:

将其换为等价的最小化问题

将约束最优化问题转换为无约束最优化的对偶问题。引入拉格朗日乘子 $w_0, w_1, \dots, w_n$,定义拉格朗日函数 $L(P, w)$:

最优化的原始问题是

对偶问题是

先解决极小化问题, 记

求 $L(P, w)$ 对 $P(y | x)$ 的偏导数

令偏导数等于 $0$, 在 $\tilde{P} > 0$ 的情况下,解得

其中

称 $Z_w(x)$ 为归一化因子。

最后求解对偶问题外部的极大化问题

Improved Iterative Scaling

已知最大熵模型

其中

对数似然函数为

改进迭代算法的思路是,假设最大熵模型当前的参数向量是 $w = (w_1, w_2, \dots, w_n)^{T}$,我们希望找到一个新的参数向量 $w + \delta = (w_1 + \delta_1, \dots, w_n + \delta_n)^{T}$,使得模型的对数似然函数增值。

算法步骤

输入:特征函数 $f_1, f_2, \dots, f_n$;经验分布 $\tilde{P}(X, Y)$;模型 $P_w(y | x)$

输出:最优参数值 $w_i^{\ast}$;最优模型 $P_{w^{\ast}}$

步骤1:对所有 $i \in \{1, 2, \dots, n\}$,取初值 $w_i = 0$。

步骤2:对每一 $i \in \{1, 2, \dots, n\}$,执行以下操作:

首先,令 $\delta_i$ 为下列方程的解:

其中,$f^{\Sigma}(x, y)$ 定义为:

然后,更新 $w_i$ 的值:

步骤3:如果不是所有 $w_i$ 都收敛,则重复步骤2。

Quasi-Newton Method : BFGS

对最大熵模型而言,

目标函数:

相应 $i$ 的梯度有,

定义 $g()$

算法步骤

输入:特征函数 $f_1, f_2, \dots, f_n$;经验分布 $\tilde{P}(X, Y)$;目标函数 $f(w)$;梯度 $g(w) = \nabla f(w)$;精度要求 $\epsilon$
输出:最优参数值 $w_i^{\ast}$;最优模型 $P_{w^{\ast}}$

  1. 选定初始点 $w^{(0)}$,取 $B_0$ 为正定对称矩阵,置 $k = 0$。
  2. 计算 $g_k = g(w^{(k)})$。
    若 $\lVert g_k \rVert < \epsilon$,则停止计算,得 $w^{*} = w^{(k)}$;否则转第 3 步。
  3. 由 $B_k p_k = -g_k$ 求出 $p_k$。
  4. 一维搜索,求 $\lambda_k$ 使得
  5. 置 $w^{(k + 1)} = w^{(k)} + \lambda_k p_k$。
  6. 计算 $g_{k + 1} = g(w^{(k + 1)})$。
    若 $\lVert g_{k + 1} \rVert < \epsilon$,则停止计算,得 $w^{*} = w^{(k + 1)}$;否则,按下式求出 $B_{k + 1}$: 其中,
  7. 置 $k = k + 1$,转第 3 步。

补充说明

在 BFGS 算法中,$B_k$ 是对目标函数 Hessian 矩阵的近似。初始时 $B_0$ 通常取为单位矩阵或其他对称正定矩阵。每次迭代后,$B_k$ 按如下公式更新:

其中,

  • $\delta_k = w^{(k + 1)} - w^{(k)}$ 表示参数的变化,
  • $y_k = g_{k + 1} - g_k$ 表示梯度的变化。

$B_k$ 的更新保证了其对称正定性,并逐步逼近真实的 Hessian 矩阵,从而提升搜索方向的准确性和收敛速度。


最大熵模型
http://example.com/2025/06/02/最大熵模型/
作者
ddccffq
发布于
2025年6月2日
许可协议