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的解。

     

     

     

    谢谢!
  • 相关阅读:
    python uuid
    linux 修改时区
    Nginx 缓存命中率
    MongoDB oplog 详解
    MongoDB 复本集搭建
    复制集简介
    解决Python2.7的UnicodeEncodeError: 'ascii' codec can't encode异常错误
    MongoDB 介绍
    python virtualenv
    Docker Compose 模板文件 V2
  • 原文地址:https://www.cnblogs.com/ylxn/p/10117160.html
Copyright © 2011-2022 走看看