最大熵原理
当你发现了一枚硬币,可能不知道硬币的密度是否均匀,材质如何。但如果有人让你猜测这枚硬币掉在地上时出现正面与反面的概率,你可能毫不犹豫的回答 $\frac 1 2$,可是你知道这看似简单的不能再简单的问题背后隐藏的原理吗?
最大熵原理就可一很清楚的解释这一问题。最大熵原理认为,学习概率模型时,所有的概率分布中,熵最大的模型总是最好的。
关于均匀分布
假设离散随机变量 $X$ 的分布是 $P(X)$,则其熵为:
熵满足下列不等式:
当且仅当 $X$ 是均匀分布时,右边的等号成立,$H(P)$ 最大。
关于正态分布
对于连续的随机变量 $X$ 的分布是 $P(X)$,则其熵为:
如果已知分布的均值 $\mu$ 与方差 $\sigma^2$,如果想使得熵最大,那么则需要求解下面的规划问题:
引入拉格朗日乘子 $\lambda_0,\lambda_1,\lambda_2$,则:
令
则 $F$ 为 $P(x)$ 的泛函:
根据欧拉-拉格朗日方程:
$\frac{\partial L}{\partial p}=0$ 等价于
可得
可知分布 $P(x)$ 关于 $x=\mu-\frac{\lambda_1}{2\lambda_2}$ 对称,则 $\mu =\mu-\frac{\lambda_1}{2\lambda_2}$。可知 $\lambda_1=0$。
根据约束可最终得出结论:当知道分布的均值与方差(或者一阶矩与二阶矩)时,正态分布 $P\sim \mathcal N(\mu,\sigma^2)$ 熵最大。
最大熵模型
而将最大熵原理应用于分类问题中,就得到了最大熵模型。
假设分类模型是一个条件分布 $P(Y|X)$,$X\in \mathcal X\subseteq\mathbb R^n$ 表示输入,$Y\in \mathcal Y$ 表示输出。给定一个训练集
根据数据集可以确定联合分布 $P(X,Y)$ 与边缘分布 $P(X)$ 的经验分布 $\tilde{P}(X,Y),\tilde P(X)$,记 $\nu(X=x,Y=y)$ 为指样本中出现 $(x,y)$ 的频数,$\nu(X=x)$ 为指样本中输入 $x$ 的频数。计算方式如下:
知道了分布之后,那么你就可以求得一些关于分布 $\tilde P$ 统计量,比如 $E\tilde P(x)$, $Var\tilde P(x)$ 之类的。
由于已知的样本的可能需要满足一些约束,或者说既定事实,那么我们假设某一输入 $x$ 和输出 $y$ 存在一些约束,并且用一特征函数 $f(x,y)$ 来表示:
这样,我们可以得到特征函数 $f(x,y)$ 关于 $\tilde{P}(X,Y)$ 的期望:
👇 其实这里挺难理解的,什么是既定事实呢?
假如一个骰子🎲是特殊的,在数据集中没有点数为 6 的结果,因为点数为 6 的结果都被记作了 5,那么我们的模型就需要下面这个约束,或者说既定事实:
或者说根据先验知识和数据可以知道:
👆 这些约束进行数学语言的描述就成了上面的式子。
定义 $P(Y\ |\ X)$ 的条件熵为:(关于条件熵,大家可以看👉熵)
而最大熵模型需要训练目标函数则是得出一个分布 $P$,使得条件熵最大,并且这个分布还要满足根据数据所知的既定事实 $E_\tilde P(f)$:
其中
表示特征函数 $f(x,y)$ 关于模型 $P(Y\ |\ X)$ 的期望值。
将最大化问题改写成最小化问题:
引入一组拉格朗日乘子 $\lambda_0,\lambda_1,\lambda_2,\cdots,\lambda_n$,定义拉格朗日函数:
原始优化问题是
则其对偶问题是
求 $L$ 对 $P$ 的偏导:
在 $\tilde P(x)>0$ 的情况下,解得
由于 $\sum_yP(y\ |\ x)=1$,得
$Z(x)$ 为配分函数,
在 统计学习方法第二版 6.2.4 节 中证明了 $\max_\lambda P^*(y\ |\ x)$ 与最大熵模型的极大似然等价,有兴趣可以看看。
6.2.4 节的最后还提到:二分类的逻辑回归模型为
与最大熵模型相近,而学习的方式也是求对数似然估计: