李航·统计学习方法笔记·第6章 logistic regression与最大熵模型(2)·最大熵模型
标签(空格分隔): 机器学习教程·李航统计学习方法
注意,这里有一个前提,这里讨论的分类模型都是概率模型!
最大熵模型是另外一种机器学习模型,与逻辑斯蒂回归模型没有什么关系,只不过被安排在了一个章节讲解
最大熵原理只是一个学习的准则,利用这个准则可以从一堆概率模型中选择一个最优的
1 最大熵原理
最大熵模型是根据最大熵原理推导得到的,所以,为了推导最大熵模型,必须首先了解最大熵原理!
1.1 最大熵原理的基本内容
- 最大熵原理认为:在所有可能的概率模型中,熵最大的模型为最好的概率模型(下图中的阶段2)
这里的“所有可能的概率模型”是一个概率模型的集合,是在所有的概率模型中,根据一定的约束条件选取出来的(上图中的阶段1)
不知道能否这样理解???
比如,对应逻辑斯蒂回归模型中,它使用的用来表示分类器的模型其实就是利用逻辑斯蒂分布构造的一个概率分布,这个概率分布的形式是一定的,只不过参数待求,那么,可以将这些形式一定但参数未知的概率分布看着是“所有可能的概率模型”的集合,在这个集合中,找到熵最大的那个模型,也就实现了参数的求解综上,最大熵原理可以表述为:在满足约束条件的概率模型集合中选取熵最大的模型
那么,如何计算概率模型的熵呢?
→ 先讨论离散情况对于某一个随机变量X,它的概率分布为P(X)(即PMF或者说是分布律),它的熵定义为
H(P)=−∑i=1nP(xi)logP(xi)
它表述的是随机变量X取得所有可能值xi (i=1,⋯,n )带来的自信息的数学期望,即表征了该信号带来的信息量!
上面的熵的取值范围是什么呢?
0⩽H(P)⩽logn
具体推导过程见《最优化理论·拉格朗日Lagrange对偶性的一个实例》所以,最大熵原理的具体内容或者说是实际使用方法为:
- 根据已有的信息(约束条件),选择适当的概率模型
- 对于那些不确定的部分,认为它们是等可能的,也就实现了最大熵的目的
- 那这个方法如何使用呢?下面给出一个实际的例子:
- 首先,根据已知条件,可以得到下面的约束:
除此信息外,不再有其他可利用信息,那么,根据最大熵原理(不确定的信息认为其为等可能),则有
- 如果接下来又添加了一个可用信息
则此时,再根据最大熵原理,可以得到
- 首先,根据已知条件,可以得到下面的约束:
1.2 最大熵原理的几何意义
- 下图是所有可能的概率模型空间(用一个2单纯形表示),所有可能的概率空间位于三角形内部
- 现在加入了两个约束条件,此时的概率空间变小了,变成了图中的5条之间的某个交集围成的区间(由于这里并没有给出两个约束的具体内容,所以这个区间还不能确定,可能是下图中的四个子区间的任何一个)
2 最大熵模型
2.1 到底应该如何表示分类模型?
- 对于分类问题,它的分类模型可以表示条件概率分布:
P(Y|X)
- 例如,对于一个三分类的分类问题,这个分类模型其实就是一个离散型的条件概率分布,每个类别
Y 的概率取值都有一个模型P(Y=i|X) ,它不是一个具体的取值,而是一个与输入的样本X=x (x 为一个特征向量)相关的一个函数:可以认为,该表就是要求解的分类器!!!
可能取值 类别1 类别2 类别3 分布律 P(Y=1|X) P(Y=2|X) P(Y=3|X) 通俗理解 函数 p1(x) 函数函数 p2(x) 函数 p3(x)
- 再以逻辑斯蒂回归问题的模型
P(Y|X) 为例
可能取值 Y=1 Y=0 概率 P(Y=1|X)=exp(wx)1+exp(wx) P(Y=0|X)=11+exp(wx) 通俗理解 函数 p1(x) 是x 的函数函数函数 p2(x) 是x 的函数
2.2 最大熵模型的约束条件
2.2.1 最大熵模型的一个总述
利用最大熵原理去求解上面所述的条件概率(应用于分类问题中),得到的分类模型就是最大熵模型
那么,应该如何做呢?
给定一个训练数据集
T={(x1,y1),(x2,y2),⋯,(xN,yN)} 其中:
N 为训练集中样本个数;
xi∈X (输入空间)为输入,它其实是一个向量,代表的是输入样本的特征;
yi∈Y (输出空间)为输出,代表输入样本对应的标签;
我们的目的:利用最大熵原理,选择一个最好的分类模型;从而,对于任何给定的样本
x∈X ,都可以以概率P(y|x) 输出y∈Y 例如两分类问题:得到的分类器P(Y|X),可以使得对于任何给定的样本
x∈X ,都可以计算得到P(y=1|x) 和P(y=0|x) 那么,到底如何求解模型
P(Y|X) 呢?根据最大熵原理,应该优先保证模型满足已知的约束条件,那么,这样的约束条件到底是什么呢?这个需要自己构造,具体的构造思路如下:首先,我们构造一个关于样本
x 和标签y 的函数f(x,y) ,它是一个随机变量函数,称为特征函数(feature function),该函数可以为任意形式,只要是关于x、y 的一个随机函数即可利用训练数据集
T ,可以计算得到(X,Y) 的经验分布P˜(X,Y) ,那么,f(x,y) 关于经验分布的数学期望EP˜(f) 就可以计算得到了;- 假设分类模型的实际分布为
P(X|Y) ,它是待求量,在它已经的情况下,可以计算得到f(x,y) 关于模型真实分布的数学期望Ep(f)
如果求解的真实模型的估计值P(X|Y) 是正确的,那么,应该满足EP˜(f)=Ep(f) - 那么,如果定义多个这样的特征函数,就可以得到多个约束了
- 具体公式:
⎧⎩⎨⎪⎪⎪⎪⎪⎪EP˜(f)=∑x,yP˜(X,Y)f(x,y)EP(f)=∑x,yP(X,Y)f(x,y)=∑x,yP(Y|X)P˜(X)f(x,y)
即
∑x,yP˜(X,Y)f(x,y)=∑x,yP(Y|X)P˜(X)f(x,y)
其中的P(Y|X) 就是待求的模型
2.2.2 特征函数·feature function
这里对输入
关于特征函数这个概念,真的很让人困惑!下面给出一个示例
- 例子中定义了两个特征函数:
f1(x,y) 和f2(x,y) ,它描述了输入x 和输出y 之间的某一种关系- 对于任何一个训练样本,都可以得到每个特征函数对应的一个取值
- 为了清晰,这里再举一个例子,如下如所示的数据集
- 定义一个特征函数
f(x,y)={1,如果x=Cloudy并且y=Outdoor0,其他情况 - 那么,对于该数据集中的每一个样本,都可以计算得到该特征函数对应的一个取值,具体结果如下图最后一列所示
2.2.3 如何计算经验分布
根据前面的约束条件
2.3 最大熵模型的具体内容
前面推导了最大熵模型的约束条件,也就是说,要求解的模型一定属于满足以下条件的集合
那么,用什么去衡量求解的模型的熵呢?利用条件熵,它的定义如下:
最后,最大熵模型就可以表述为:
在所有满足约束条件的集合中,找到条件熵
H(P) 最大的那个集合,即:
注意到:除了基于特征函数的约束外,还有一个条件概率之和为1的约束条件
这个优化问题可以转换为最小化问题:
可见,其实最大熵模型就是一个有约束的优化问题
3 最大熵模型的学习
最大熵模型的学习或者称是最大熵模型的求解,其实就是一个有约束优化问题,并且,约束为等式约束
3.1 最大熵模型的求解
这里主要利用Lagrange对偶性原理求解,具体内容可以再参考另外一个笔记《最优化理论·拉格朗日Lagrange对偶性的一个实例》
最大熵模型如下:
构造Lagrange函数
即
从而,得到原始问题的等价形式
继而,得到原始问题的对偶问题
由于这里的Lagrange函数是凸函数,所以原问题和对偶问题的最优解相同,那么,接下来只需要求解对偶问题的最优解就可以了
- 先求内部的最小化问题
minPL(P,w)
- 目标函数对
p(y|x) 求梯度
- 并令梯度为0,可以求得最优的
p(y|x) 。它是w 的函数
- 将该最优解代回到对偶问题,再求最外的关于
w 的最大化问题
- 求解得到最优的
w∗
- 最后,
Pw∗ 可求,也就是最优的
- 目标函数对
- 先求内部的最小化问题
上面过程的图解
以上是利用Lagrange对偶性推导,也可以直接利用KKT条件的结论,因为只有等式约束,所以,也就是可以直接使用Lagrange乘子法
3.2 例子
过程比较晦涩!直接上例子
求解下例中的最大熵模型
已知的约束条件为
可能取值 | A | B | C | D | E |
---|---|---|---|---|---|
可能取值符号表示 |
|
|
|
|
|
概率·待求量 |
|
|
|
|
|
- 构造优化问题
注意:第一个约束条件来自于问题的已知约束,即经验分布和待求分布都需要满足这个条件 - 构造Lagrange函数
- 从而可以构造原问题的对偶问题
- 求解关
于P=(P(y1),P(y2),P(y3),P(y4),P(y5)) 的最小化问题
- 然后,再将上面得到的结果代入到L(P,w)中
求解最大化问题 - 最后,再求解上面关于lagrange乘子
w1 和w2 的最小化问题,可以得到
- 在将上面的结果代回,可以求解得到P
- 求解关
4 最大熵模型学习的等价形式
对偶函数极大化的等价问题:最大熵模型的极大似然估计
具体内容还不是很理解,直接记住结论吧!
最大熵模型的学习过程:
- 经过推导,得到最大熵模型
- 最后的优化问题转化为将最大熵模型代入到lagrange函数得到的函数的最大化问题
其中:为将上面得到的最大熵模型代入到Lagrange函数(即对偶函数)得到的结果,有
- 经过推导,得到最大熵模型
如果利用极大似然估计呢?
- 计算最大熵模型的条件似然函数:
- 可以证明,对偶函数和对数似然函数是相等的
- 计算最大熵模型的条件似然函数:
- 最大化“最大熵模型的条件似然函数”也就是最大化“对偶函数”
- 所以,最大熵的学习过程可以理解为“最大化最大熵模型的对数似然函数”,其中,最大熵模型如下
5 逻辑斯蒂回归模型和最大熵模型
逻辑斯蒂回归模型和最大熵模型最终其实都是在进行一个似然函数的最大化问题,也就是一个无约束的优化问题,可以利用改进的迭代尺度方法、牛顿法、拟牛顿法、梯度下降法等方法求解。
参考文献
[1] https://www.zhihu.com/question/24094554
[2] http://blog.csdn.net/itplus/article/details/26550201
[3] (有待实现)http://www.hankcs.com/ml/the-logistic-regression-and-the-maximum-entropy-model.html
[4] 李航·统计机器学习·6.2