机器学习笔记(二) 最大熵模型

一  最大熵原理

          最大熵原理指出,对一个随机事件的概率分布进行预测时,预测应当满足全部已知的约束,而对未知的情况不要做任何主观假设。在这种情况下,概率分布最均匀,预测的风险最小,因此得到的概率分布的熵是最大。也就是说,学习概率模型时,在所有的概率模型分布中,熵最大的模型是最好的模型。

        假设P(x)为离散随机变量x的概率分布,那么熵的定义为:

 

         在熵最大化的情况下,概率分布最均匀,所有的不确定部分是“等可能”的,也即是通过熵最大化这一可优化的数值指标来表示等可能性


二  最大熵模型

      2.1  定义最大熵模型

        给定训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)},那么最大熵模型的目标是利用最大熵原理选择一个最好的分类模型—对任意给定的输入x,以概率P(y|x)输出y

        那么我们要保证模型满足已知的约束。这里提取约束的思路是:从训练数据集T中抽取若干特征,要求这些特征在T上关于经验分布 的数学期望和他们在模型中关于的数学期望相等,这样的一个特征就对应着一个约束。
        这里特征用特征函数f(x,y)表示,来描述输入x和输出y的某一个事实:


            回到上面提到的约束条件,首先是特征关于经验分布的数学期望,用表示,那么

         然后是特征在模型中关于的数学期望,用表示。而这里是未知的,建模的目标是生成P(y|x),我们可以用Beyes定理转换,其中P(x)也是近似表达。那么

        基于以上分析,最大熵模型的定义就是,满足所有约束条件的模型集合c中:

        条件熵H(P)最大的模型称为最大熵模型。其中在条件概率分布P(y|x)上的条件熵H(P)为

       2.2 最大熵模型的学习

      · 模 型

          最大熵模型的学习等价于约束最优化问题


         可以将这个最优化问题转换为等价的求解最小值问题:

                                                                                                 

         其中条件,保证P(y|x)是一个合法的条件概率分布。可以证明,最大熵模型的解是存在且唯一的。

     · 求 解

         在具体的求解过程中,引入拉格朗日乘子w,那么拉格朗日函数为

         原始的最优化问题是求解,,可以转换为对偶问题求解,即:


         对偶问题的求解,其中里层为,对其先求关于P(y|x)的偏导数:


         取偏导数为零,解得

         已知约束条件

          那么,带入P(y|x),得


         至此,对偶问题里层的解就求出来了。这是具有指数形式的解,权重w越大,证明对应特征f越重要。

        接下来就是外层的极大值问题,已知外层函数为:


        在学习过程中,通过将外层函数极大化就可以得到权值w,等最优w确定后,P(y|x)即可求取。另一方面,外层函数的极大化,也即最大熵模型学习中的对偶函数极大化等价于最大熵模型的极大似然估计。下面是极大似然估计过程,可以看出两者等价。


          注意在时,没有显示的数值算法,可以采用最优化方法求解,比如梯度下降法,牛顿法,拟牛顿法等等。

三  最大熵模型的一些理解

      看到知乎上有人说过,最大熵模型本身实际上并不是分类器,它一般是用来判断模型预测结果的好坏的。对于它来说,分类器预测输出实际是针对样本,给每个类一个出现概率。比如说样本的特征是:性别男。最大熵模型可能就给出了概率:高(60%),矮(40%)。若这个样本真的是高的,那我们就得了一个分数60%。最大熵模型的目标就是让这些分数的乘积尽量大。逻辑斯蒂回归其实就是使用最大熵模型作为优化目标的一个算法。

       还看到知乎上一个提问:最大熵模型里面的特征f是x和y的联合分布函数,该怎么理解特征函数这样的概念。整理一下回答就是:若仅仅对输入抽取特征,特征函数为f(x),若是对输入和输出同时抽取特征,特征函数为f(x,y)。对最大熵模型来说,每个特征会有一个权重,可以理解为这个特征所描述的输入和输出有多么倾向于同时出现。

      至于最大熵模型的应用,可以应用于词性标注、短语识别、指代消解、语法分析、机器翻译、文本分类、问题回答、语言模型等等。


参 考

     

李航《统计学习方法》

http://blog.csdn.net/itplus/article/details/26550201

https://www.zhihu.com/question/24094554

https://www.zhihu.com/question/26726794

http://blog.sina.com.cn/s/blog_73361fab0100zi8x.html








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值