zoukankan      html  css  js  c++  java
  • 最大熵模型

    最大熵模型

    熵的概念

    熵度量了事物的不确定性,越不确定的事物,它的熵越大,表示如下:

    [H(X)=-sum_{i=1}^np_ilog p_i ]

    n代表X的n种不同离散取值,而(p_i)代表了X取值为i的概率。

    多个变量联合熵表示为

    [H(X,Y)=-sum_{i=1}^np(x_i,y_i)log p(x_i,y_i) ]

    条件熵的表达H(Y|X)表示如下:

    [H(Y|X)=sum_{j=1}^np(x_j)H(Y|x_j)=-sum_{i=1}^np(x_i,y_i)log p(y_i|x_i)quad(1)\ H(Y|X)=-sum_{i=1}^np(x_i,y_i)log p(y_i|x_i)=sum_{j=1}^np(x_j)H(Y|x_j) ]

    可以按式(1)顺序推导证明,注意区别熵H和概率P,条件熵的定义可以理解为在X划分下,Y的纯度。

    [egin{split} H(Y|X)&=sum_xp(x)H(Y|X=x)\ &=-sum_xp(x)sum_yp(y|x)log p(y|x)\ &=-sum_xsum_yp(x)p(y|x)log p(y|x)\ &=-sum_xsum_yp(x,y)log p(y|x)\ &=-sum_{x,y}p(x,y)log p(y|x) end{split} ]

    同时可以证明

    [H(Y|X)=H(X,Y)-H(X)\ H(X|Y)=H(X,Y)-H(Y) ]

    最大熵模型的定义

    最大熵模型是一个条件概率分布(P(Y|X)),X为特征,Y为输出。

    给定一个训练集((x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})),其中x为n维向量,y为类别输出,我们的目标是用最大熵模型选择一个最好的分类类型。

    给定训练集情况下,使用联合分布(P(X,Y))的经验分布(overline P(X,Y))和边缘分布(P(X))的经验分布(overline P(X))(overline P(X,Y))即为训练集X,Y同时出现的次数除以样本总数m,(overline P(X))即为训练集中X出现的次数除以样本总数m。

    用特征函数(f(x,y))描述输入x和输出y之间的关系,定义为:

    [f(x,y)= egin{cases} 1qquad x与y满足某个关系\ 0qquad 否则 end{cases} ]

    可以认为只要出现在训练集中出现的((x^{(i)},y^{(i)}))(f(x^{(i)},y^{(i)})=1),同一个训练样本可以有多个约束特征函数。

    特征函数(f(x,y))关于经验分布(overline P(X,Y))的期望值,用(E_{overline P}(f))表示为:

    [E_{overline P}(f)=sum_{x,y}overline P(x,y)f(x,y) ]

    特征函数(f(x,y))关于条件分布(P(Y|X))和经验分布(overline P(X))的期望值,用(E_P(f))表示为:

    [E_P(f)=sum_{x,y}overline P(x)P(y|x)f(x,y) ]

    如果模型可以从训练集中学习,我们可以假设这两个期望相等,即

    [E_{overline P}(f)=E_p(f) ]

    以上就是最大熵模型学习的约束条件,假如我们有M个特征函数(f_i(x,y)(i=1,2,...,M))就要M个约束条件,可以理解我们如果训练集有m个样本,就有和这m个样本对应的M个约束条件。

    这样我们就得到了最大熵模型的定义如下:

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

    [E_{overline P}(f_i)=E_P(f_i)(i=1,2,...,M) ]

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

    [H(P)=-sum_{x,y}overline P(x)P(y|x)log P(y|x) ]

    我们的目标是得到使(H(P))最大的时候对应的(P(y|x)),这里对(H(P))加一个负号,方便优化求解。

    最大熵模型损失函数的优化

    定义最大熵模型的损失函数(-H(P))如下:

    [underbrace{min}_P-H(P)=sum_{x,y}overline P(x)P(y|x)log P(y|x) ]

    求解过程使用了拉格朗日乘子,过程略。。。。

    最大熵模型总结

    越确定的情况,不确定性越小,信息量越少;

    不确定的情况,不确定性越大,信息量越大。

    信息增益越大,消除了更多的不确定性,越适合做分类特征。

    最大熵模型优点:

    1. 获得满足约束条件的模型中信息熵极大的模型,作为经典的分类模型时准确率较高。
    2. 可以灵活设置约束条件,来调节模型对未知数据的拟合成度。

    最大熵模型缺点:

    1. 约束条件与样本数量有关,导致迭代过程计算量巨大。实际应用较难。
  • 相关阅读:
    Spring@Profile注解
    day 32 子进程的开启 及其用法
    day 31 udp 协议SOCK_DGRAM
    day 30 客户端获取cmd 命令的步骤
    day 29 socket 理论
    day 29 socket 初级版
    有关 组合 继承
    day 27 多态 接口 类方法 静态方法 hashlib 摘要算法模块
    新式类和经典类的区别
    day 28 hasattr getattr serattr delattr 和带__内置__ 类的内置方法
  • 原文地址:https://www.cnblogs.com/guesswhy/p/12882898.html
Copyright © 2011-2022 走看看