logistic回归&最大熵模型


介绍 logistic 回归模型,利用最大熵原理来解释 logistic 回归,再从中进一步抽象出更加通用的”最大熵模型”,对最大熵模型进行推导,证明其合理性,并给出具体的使用方法,还会用最大熵模型来推导出 logistic 回归,以此作为最大熵模型示例

logistic回归模型

logistic分布

定义logistic分布

分布函数图像是一条S形曲线,以点为中心对称,如下图

二项logistic回归模型

定义二项logistic是如下条件概率分布

为了方便有时将偏置并入权重中,即,同时logistic模型简写为

定义对数几率(log odds)或logit函数为

对logistc回归而言

说明了在logistic回归中,输出的对数概率是输入的线性函数;通过logistic回归定义模型可以将线性函数转换为概率;

模型的参数估计

对于给定训练数据集可以应用极大似然估计法估计模型参数,

似然函数为

对数似然函数

求极大值,得到的估计值;至此通常采用梯度下降法或者拟牛顿法来求解;

多项logistic回归

将其从二项推广到多项logistic回归模型

同理,二项logistic回归的参数估计法也可以推广到多项logistic回归;

最大熵模型

原理

最大熵模型是概率模型学习的一个准则,最大熵原理认为,在所有可能的概率模型中,熵最大的是最好的模型,通常用约束条件确定概率模型的集合;设离散变量分布是,熵为

且满足不等式

直观的,在没有更多信息的情况下认为不确定部分是等可能的,“等可能”不易操作,而熵则是一个可优化的指标以此来达到等可能的目的;

最大熵模型定义

对于给定训练数据集

特征函数定义

特征函数关于经验分布的期望值表示为

E_\hat p(f)=\sum_{x,y}\hat P(x,y)f(x,y)

特征函数关于模型与经验分布的期望值

如果模型能够获取训练数据中的信息,那么可以假设这两个期望值相等

E_p(f)=E_\hat p(f)

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

C\equiv\{P\in p|E_P(f_i)=E_\hat p(f_i),i=1,2,\cdots,n\}

定义在条件概率分布上的条件熵为

则模型集合中条件熵最大的模型为最大熵模型,其中的对数为自然对数;

最大熵模型的学习

最大熵模型的学习可以形式化为约束最优化问题;

对于给定的训练数据集以及特征函数,最大熵模型的学习等价于约束最优化问题

按照习惯可以将其等价的改为最小值问题

求约束最优化问题就是求解最大熵模型。可以将约束最优化问题转化为无约束最优化的对偶问题。通过求解对偶问题来求解原始问题;


具体推导

引入拉格朗日乘子,定义拉格朗日函数;

\begin{aligned} L(P,w)\equiv-H(P)+w_0(1-\sum\limits_yP(y|x))+\sum\limits^n_{i=1}w_i(E_\hat p(f_i)-E_p(f_i)) \\ =\sum\limits_{x,y}\hat P(x)P(y|x)\log P(y|x)+w_0(1-\sum_yP(y|x))+\sum^n_{i=1}w_i(\sum\limits_{x,y}\hat P(x,y)f_i(x,y)-\sum_{x,y}\hat P(x)P(y|x)f_i(x,y)) \\ \end{aligned}

最优化原始问题

对偶问题

由于拉格朗日函数的凸函数,原始问题与对偶问题是等价的(对偶问题的定理)首先记作

称为对偶函数,同时,其解记作

具体的求的偏导数,令偏导数等于0,解得

由于,得

之后求解外部的极大化问题

记其解为,

极大似然估计

对偶函数的极大化等价于最大熵模的极大似然估计;

证明过程:

这样最大熵模型的学习问题就可以转换为具体的求解对数似然函数极大化或对偶函数极大化的问题;写成更一般的形式

深入理解

最大熵模型与logistic回归模型有着类似的形式,它们又称为对数线性模型(log linear model),模型学习就是在给定的训练数据集条件下对模型进行极大似然估计或正则化的极大似然估计;


事实上,定义特征函数,其中为提取出每个x的特征,,输出是的特征向量:

将以上特征带入到最大熵模型中

上下同时除,得

同理

自然的发现logistic回归模型其实就是最大熵模型在时抽取x的特征这一情况;之前我们用极大似然估计求参数其实这样求出的模型就是,所以就是求最大熵模型;

日常生活中,我们经常不知不觉的就是用了最大熵模型,这里给出了更高层面的抽象的最大熵模型;显然最后的例子也说明了回归其实也是一种最大熵模型;

模型的最优化算法

逻辑斯蒂回归模型、最大熵模型归结为似然函数为莫表的最优化问题,通常通过迭代算法求解,从最优化的角度上来看这时的目标函数具有很好的性质,他是光滑的凸函数;因此多种最优化方法都适用;常用的方法有改进的迭代尺度法、梯度下降法、牛顿法、拟牛顿法。牛顿法或拟牛顿法;牛顿法或者拟牛顿法一般收敛速度更快;

最大熵模型

对数似然函数

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

原理

IIS核心想法是:建设最大熵模型当前的参数向量是,我们希望找到一个新的参数向量,使得模型的对数似然函数值增大。如果能有一种参数更新方法让,那么重复使用即可找到对数似然函数的最大值;

对于给定的经验分布,对数似然函数的该变量是

利用不等式

右端记为,于是

如果能找到合适的使得下界提高,那么对数似然函数也会提高;然而,函数其中的遍量是一个向量含有多个变量,不易同时优化。IIS试图一次只优化其中一个变量,而固定其他变量;

为此引入一个新的量

于是

由于,根据不等式,得到

改写后的为

于是

显然其是对数似然函数的一个新的下界,求的偏导数,并令其为0得到

\sum_{x,y}\hat P(x)P_w(y|x)f_i(x,y)\exp(\delta_i,f^\#(x,y))=E_\hat P(f_i)

依次对其求解可算出;

算法

*input:*特征函数,经验分布,模型

*output:*最优参数值;最优模型

  1. 对所有的,取初值

  2. 对每一

    1. 是方程
    \begin{aligned} \begin{aligned} \sum_{x,y}\hat P(x)P_w(y|x)f_i(x,y)\exp(\delta_i,f^\#(x,y))=E_\hat P(f_i) \\ \text{其中},f^\#(x,y)=\sum\limits_if_i(x,y) \\ \end{aligned} \end{aligned}

    的解;

    1. 更新值:
  3. 若不是所有的都收敛,重复2


这一算法的关键一步就是2.1,求解其中的,如果是常数,则可以显示的表示为

\delta_i=\frac1M\log \frac{E_\hat p(f_i)}{E_p(f_i)}

不是常数,那么必须通过数值计算,简单有效的方法就是拟牛顿法;

表示2.1中的方程,牛顿法通过迭代求得的,使得,迭代公式

只要适当的选取初始值,由于的方程有单根,因此牛顿法恒收敛,而且收敛速度很快;

拟牛顿法

对于最大熵模型而言


目标函数(极大化似然函数就等价于)

梯度

其中


最大熵模型学习的BFGS算法

input:特征函数;经验分布,目标函数,梯度,精度要求

output:最优参数值;最优模型

  1. 选定初始点,取为正定对称矩阵,置;
  2. 计算,若,则停止计算,得,否则跳转3;
  3. 求出;
  4. 一维搜索:求使得
  1. ;
  2. 计算,若,则停止计算,得,否则求出
  1. ,转至3;