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

    摘自李航的《统计学习方法》

    一、先看一个小例子

    给定一个骰子,没有任何前提条件,问抛掷各个点数的概率是多少?我们都会答1/6. 因为没有更多的信息,所以这种判断合理。

    二、最大熵原理

    上面的例子应用了最大熵原理。最大熵原理认为,在判断样本的分布时候,在满足已有条件下,熵最大的分布即为最好的分布。最大熵原理通过熵的最大化来表示等可能性。“等可能不容易”操作,而熵则是一个可优化的指标。

    三、最大熵模型的定义

    1.如果给定训练集,那么我们就可以得到联合概率分布的经验分布P(X, Y)和P(X).

    2.设定特征函数f(x,y)为输入x和输出y之间的某一个事实,

     

    2.设定特征函数关于P(X|Y)与经验经验分布的期望E(f),

    3.设定特征函数f(x,y)关于模型P(Y|X)与经验分布P(X)的期望值,

    4.假设两个期望值相等,那么就可以得到模型学习的约束条件,这里需要注意,如果有n个特征函数,那么这里就有n个约束。

    5.条件概率分布P(Y|X)上的条件熵为,条件熵H(P)最大的模型,也称为最大熵模型

    四、最大熵模型的学习

    1.由(三5)和(三4),可以得到最大熵模型的约束优化问题:

    2.将求最大改为最小:

    约束条件下求最优解即为最大熵模型的解。像求SVM一样,自然而然想到求解SVM过程用到的拉格朗日条件极值法和对偶法。

    3.引入拉格朗日乘子,w0,w1....wn,定义拉个朗日函数L(P,w):

    4.原始问题与对偶问题

    原始问题,最大最小 minmaxL(P,w)

    对偶问题,最小最大 maxminL(P,w)

    5.对对偶问求解

    由(四1,P(Y|X))的约束与上式得

    6.因此得到:

    7.最后的问题变为求对偶问题的极大化

    五、求解omega

    常用方法,IIS,梯度下降,牛顿法等。

    这里选一个写一下

    improved iterative scaling, IIS。思想是希望找到一个参数w+δ似的模型的似然函数值增大,如果有这样的参数更新w,w=w+δ,那么就可以使用这种增量的方式找到似然函数的最大值

    (1)

    由(四3,四4,四5,四6)得到

    (2)

    (3)由a>0. 令f(a) = -log(a)-1+a在a=1处取得最小值0,因此-log(a) >= 1-a. 所以

    (4)记(3)的结果:

    (5)引入变量

    (6)得

    由Jenson不等式

    得到

    因此

    (7)记上式为

    所以

    (8)在(7)中,对delta求偏导并令其等于0,即为delta的解。

     

     

     

    谢谢!
  • 相关阅读:
    Java实现 LeetCode 69 x的平方根
    Java实现 LeetCode 68 文本左右对齐
    Java实现 LeetCode 68 文本左右对齐
    Java实现 LeetCode 68 文本左右对齐
    Java实现 LeetCode 67 二进制求和
    Java实现 LeetCode 67 二进制求和
    Java实现 LeetCode 67 二进制求和
    Java实现 LeetCode 66 加一
    Java实现 LeetCode 66 加一
    CxSkinButton按钮皮肤类
  • 原文地址:https://www.cnblogs.com/ylxn/p/10117160.html
Copyright © 2011-2022 走看看