最大熵模型

作者: madao756 | 来源:发表于2019-02-28 11:27 被阅读81次

前言:艰难的最大熵模型。最大熵有很多很难的地方,这篇文章不会去讲预备知识,而是在这个知识出现的时候,先讲结论,再来叙述。这样做的目的就是你可以记住结论,跳过这一个模块。来吧,让我们开始

最大熵原理

最大熵原理是概率学习的一个准则,最大熵原理认为,学习概率模型时,在所有的概率模型分布中,熵最大的模型是最好的模型

H(P)=-\sum{P(x)logP(x)}

要记住,我们训练就要使这个式子最大,得到P(x)的分布。

条件熵

做分类的时候,我们不光有 x 还有 y 。也就是说,我们要做有条件的最大熵。这时引入条件熵。
结论:推导出条件熵的公式,训练使条件熵最大

一开始看这个式子的时候,搞不清楚 P(x, y) 和 P(y | x) 的区别。

其实

P(x, y) = \frac{V(X=x, Y=y)}{N}

P(y | x) = \frac{P(x, y)}{P(x)}

优化条件熵的约束

现在,我们的问题转换成

最大化

  • H(P)=-\sum_{x,y}{\overline P(x)P(y|x)logP(y|x)}

但是习惯于最小化,所以变成

最小化

  • -H(P) = \sum_{x,y}{\overline P(x)P(y|x)logP(y|x)}

约束

  • E_{p}(f_{i})=E_{\widetilde p}(f_{i})
  • \sum_{y}^{}{P(y|x)} = 1

约束条件的由来

  • E_{p}(f_{i})=E_{\widetilde p}(f_{i})
    等式左边是训练模型的期望,等式右边是由数据得出来的期望。
    E_{\widetilde p}(f_{i}) = \sum_{x, y}{\widetilde P(x,y)f(x,y)}
    E_{p}(f_{i}) = \sum_{x, y}{\widetilde P(x)P(x|y)f(x,y)}

约束条件下的优化

在约束条件下求函数最值,引入拉格朗日函数,文章篇幅不宜过长,我在另一篇文章介绍拉格朗日函数及其对偶性

先记住结论,由于拉格朗日函数及其对偶性,我们把约束条件和要最小化的函数整合到了一块

最小化
L(P, w) = -H(P) + w_{0}(1-\sum_{y}{P(y|x)}) + \sum_{i=1}^{n}w_{i}(E_{p}(f_{i})-E_{\widetilde p}(f_{i}))

其中:

  • -H(P) = \sum_{x,y}{\overline P(x)P(y|x)logP(y|x)}
  • E_{\widetilde p}(f_{i}) = \sum_{x, y}{\widetilde P(x,y)f(x,y)}
  • E_{p}(f_{i}) = \sum_{x, y}{\widetilde P(x)P(x|y)f(x,y)}

求导

L(P, w)P(y|x)导数,得到的P(y|x)模型就是我们要求的模型,并记做P_{w}(y|x)

具体推导看《统计学习方法》,在这里补充他没有讲到的地方

求导得到

P_{w}(y|x) = \frac{exp(\sum_{i=1}^{n}w_{i}f_{i}(x,y))}{exp(1-w_{0})}

记做

P_w(y|x)=\frac{1}{Z_{w}(x)}exp(\sum_{i=1}^{n}w_{i}f_{i}(x,y))

现在推导Z_w(x):
\because \sum_{y}^{}{P(y|x)} = 1
\therefore \sum_{y}{\frac{1}{Z_{w}(x)}exp(\sum_{i=1}^{n}w_{i}f_{i}(x,y))} = 1
\therefore Z_w(x) = \sum_{y}exp(\sum_{i=1}^{n}w_{i}f_{i}(x,y))

在这里 Z_w(x)被称为规范因子,w_i是特征的权值,P_{w}(y|x)就是学习到的模型。

求解参数

通过上一步的求导,得到P_{w}(y|x),带入最上面提到的拉格朗日的函数。

最后对w求导取零得到最优参数

直接求导等于零,太复杂了。不能直接求出解析解。我们要换个思路,在换个思路之前,我们要提一提极大似然估计

极大似然估计

不写公式推导了,《统计学习方法》写的很详细了
只需知道

  • 学习到的最大熵模型
    P_{w}(y|x) = \frac{exp(\sum_{i=1}^{n}w_{i}f_{i}(x,y))}{exp(1-w_{0})}
    其中
    Z_w(x) = \sum_{y}exp(\sum_{i=1}^{n}w_{i}f_{i}(x,y))
  • 对数似然函数为
    L(w)=\sum_{x, y}\widetilde P(x, y)\sum_{i=1}^{n}w_if_i(x, y)-\sum_x\widetilde P(x)logZ_w(x)

换个思路求最优参数

写到这里,离最后实现代码真的不远了,到最后自己实现的时候,代码真的不难,难的是里面的数学原理,太复杂了

这一节主要告诉你用改进的迭代尺度算法更新参数,具体证明我也不会,只需要知道如何更新参数就能完成代码了

算法(改进的迭代尺度算法IIS)

详见《统计学习方法》,在这里不详细叙述了

实现

GitHub

实现有一个很难的地方,不知道如何去计算

  • P(y|x) 注意这里的P(y|x) x 是多个 x 和特征函数不同。f_i(x, y) 是键值对。是一个 x 对应一个 y。

参考

相关文章

  • 最大熵模型详细解析 | 统计学习方法学习笔记 | 数据分析 |

    本文包括: 1.最大熵模型简介2.最大熵的原理3.最大熵模型的定义4.最大熵模型的学习 1.最大熵模型简介: 最大...

  • 一、看文章 “熵”不起:从熵、最大熵原理到最大熵模型(一)“熵”不起:从熵、最大熵原理到最大熵模型(二)“熵”不起...

  • 逻辑斯谛回归与最大熵模型

    逻辑斯谛回归与最大熵模型 逻辑斯谛回归模型 最大熵模型 最大熵模型的学习 逻辑斯谛回归(logistic regr...

  • 逻辑斯谛回归与最大熵模型

    逻辑斯谛回归与最大熵模型 首先介绍逻辑斯谛分布: 二项逻辑斯谛回归模型: 最大熵模型: 最大熵原理是概率模型...

  • 最大熵模型

    在满足约束条件的模型集合中选取熵最大的模型,即不确定最大熵模型。最大熵模型就是要学习到合适的分布 P(y|x) ,...

  • Day 2080:学习

    #统计学习 最大熵模型:由最大熵原理推导而得 最大熵原理是概率模型学习的一个准则,它认为所有可能的概率模型中,熵最...

  • 改进的迭代尺度法(IIS)详细解析 | 统计学习方法学习笔记 |

    IIS是一种最大熵模型学习的最优化算法。最大熵模型:舟晓南:统计学习方法 - 最大熵模型解析 | 数据分析,机器学...

  • 最大熵模型

    序 本次记录的主要内容有:1、熵的概念2、最大熵模型推导 模型属性 ME是经典的分类模型ME是对数线性模型 最大熵...

  • 最大熵模型

    GitHub简书CSDN 1. 最大熵原理 最大熵模型(Maximum Entropy Model)是通过最大熵原...

  • 统计学习方法7.3 - 7.4笔记

    7.3 最大熵模型:拉格朗日乘子法 最大熵模型:在待选集合C中挑选条件熵最大的条件概率分布(P),并且符合约束条件...

网友评论

    本文标题:最大熵模型

    本文链接:https://www.haomeiwen.com/subject/phhzsqtx.html