统计机器学习-逻辑斯谛回归与最大熵模型

逻辑斯谛回归(逻辑回归)模型,是统计学习中的经典分类方法。最大熵是概率模型学习的一个准则,推广到分类问题得到最大熵模型。逻辑斯谛回归和最大熵模型都属于对数线性模型。

逻辑斯谛回归模型

逻辑斯谛分布的定义

设是连续随机变量,服从逻辑斯谛分布是指具有下列分布函数和概率密度函数:

式中,是位置参数,为形状参数。

分布函数和密度函数如下图所示

F(x)
f(x)

分布函数是一条S形的曲线,以点中心对称。密度函数根据左右对称,形状参数的值越小,在中心附近增长越快。另外,根据sigmoid函数定义

概率密度函数也可以写成

二项逻辑斯谛回归模型

二项逻辑斯谛回归模型是一种分类模型,由条件概率分布表示,通常取实值0或1。二项逻辑斯谛回归模型是如下的条件概率分布:

这里,是输入,是输出,和是参数,称为权值向量,称为偏置,为和的内积。

有时为了方便,将权值向量和输入向量进行扩充,仍记做和,,,这时,逻辑斯谛回归模型概率分布如下:

如果根据函数的定义

该条件概率分布还可以写成

一个事件发生的几率,定义为发生的概率和不发生概率的比值。则该事件的对数几率或logit函数为:

在逻辑斯谛回归模型中

即逻辑斯谛回归模型中,输出的对数几率是线性函数。反之,也就可以用一个线性函数转化成逻辑斯谛回归发生的概率,即:

二项逻辑斯谛回归模型的参数估计

逻辑斯谛回归模型学习时,对于给定的训练数据集,其中,,,可以用极大似然估计法估计模型参数,从而得到逻辑斯谛回归模型。


则似然函数为

对数似然函数为

对求极大值,得到的估计值。

求极值可以求的解析解,但有时解析解不太容易求解,所以也可以使用梯度下降或牛顿法这些迭代方法得到近似解。

多项逻辑斯谛回归

多分类的多项逻辑斯谛回归模型,假设随机变量的取值集合是,其概率分布为:

这里,,。即分类的多项逻辑斯谛回归,需要估计个参数向量。此外,概率分布也可以看做

最大熵模型

最大熵原理是概率模型学习的一个准则。最大熵原理认为,学习概率模型时,在所有可能的概率模型中,熵最大的模型是最好的模型。首先定义熵。

最大熵原理

假设离散随机变量的概率分布是,则其熵是

熵满足下列不等式:

式中,是的取值个数,当且仅当的分布是均匀分布时右边的等号成立。也就是说,当服从均匀分布时,熵最大。在决策树时,熵也作为特征选择的一个依据,熵代表了的不确定性,在0-1分布中有下图:

hp

可以看出随机变量在均匀分布时,熵最大。最大熵原理的思想就是给予随机变量的每个取值相同的概率,前提是满足已知的约束。例如:

假设随机变量有5个取值,并且已知,要求各个取值的概率。根据最大熵原理,,。

最大熵模型的定义

最大熵原理是选择模型的思想,将其应用到分类模型就叫做最大熵模型。

假设分类模型是一个条件概率分布,表示输入,表示输出,和分别是输入和输出的集合。这个模型表示的是对于给定的输入,以条件概率输出。

给定一个训练数据集

学习的目标是用最大熵原理选择最好的分类模型。

首先定义联合分布的经验分布,边缘概率的经验分布和特征函数

其中,表示训练数据中样本出现的频数,表示训练数据中输入出现的频数,表示训练样本容量。

特征函数描述输入和输出之间的某一个事实

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



上式中用用表示,就变成了

对于个特征就应该有个上述公式(6)的约束成立,也就是最大熵模型应满足的个事实,在此约束下,选择熵最大的分类模型。下面定义最大熵模型:

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

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

则模型集合中条件熵最大的模型称为最大熵模型。式中对数为自然对数。条件熵表示在已知的情况下的不确定性。

最大熵模型的学习

最大熵模型可以描述为下列约束最优化问题:

对目标函数取相反数,转化成极小化问题

定义拉格朗日函数
\begin{align} L(P,w)&=-H(P)+w_0\bigg(1-\sum_yP(y|x)\bigg)+\sum_{i=1}^n[w_i(E_{\tilde P}(f_i)-E_{\tilde P}(f_i))]\\ &=\sum_{x,y}[\tilde P(x)P(y|x)\log P(y|x)]+w_0\bigg(1-\sum_yP(y|x)\bigg)+\sum_{i=1}^nw_i\bigg(\sum_{x,y}[\tilde P(x,y)f_i(x,y)]-\sum_{x,y}[\tilde P(x)P(y|x)f_i(x,y)]\bigg) \end{align}
最优化的原始就变成了

根据拉格朗日对偶性,对偶问题是

可以通过求解对偶问题来求解原始问题,首先求解内部极小化问题

此时可以先把看做常量,其解写作

要求极小化,就要求对的偏导数,并使其等于0

由于,所以

解得

由于,解得

其中

称为规范化因子;是特征函数;是特征的权值,由式(15)-(16)表示的模型是就是最大熵模型。这里是最大熵模型中的参数向量。之后把代入求解对偶问题外部的极大化问题,得到模型参数

其解记为,即

这里可以用最优化算法求解,例如梯度下降,牛顿法,拟牛顿法。就得到了最大熵模型。

最大熵模型和多项逻辑斯谛回归

观察最大熵模型中公式(15)-(16)

和多项逻辑斯谛回归的公式

可以看出两者是非常近似的。在多项逻辑斯谛回归中,对输入通过权值进行了加权求和,得到第个分类的未规范化的概率,随后通过函数进行了归一化,使其符合概率分布。而在最大熵模型中,多了一个通过约束的特征函数对输入进行特征提取的过程,然后对特征向量进行加权求和,得到未规范化的概率,随后通过函数进行了归一化,使其符合概率分布,模型的参数通过最大熵原理习得。此外,最大熵模型和多项逻辑斯谛回归都是对数线性模型。

极大似然估计

下面证明求解对偶问题极大化等价于对最大熵模型进行极大似然估计,即求解等价于求解条件概率的对数似然函数的极大化。

已知训练数据的经验概率分布,条件概率分布的对数似然函数表示为

将公式(15)-(16)代入
\begin{align} L_{\tilde P}(P_w)&=\sum_{x,y}[\tilde P(x,y)\log P(y|x)]\\ &=\sum_{x,y}[\tilde P(x,y)\log\frac1{Z_w(x)}\exp(\sum_{i=1}^nw_if_i(x,y)]\\ &=\sum_{x,y}\tilde P(x,y)\sum_{i=1}^nw_if_i(x,y)-\sum_{x,y}\log Z_w(x)\\ &=\sum_{x,y}\tilde P(x,y)\sum_{i=1}^nw_if_i(x)-\sum_{x}\log Z_w(x)\tag{17} \end{align}
在看对偶函数

由于,所以
\begin{align} \Psi(w)&=\sum_{x,y}[\tilde P(x)P_w(y|x)\log P_w(y|x)]+\sum_{i=1}^n\bigg(\sum_{x,y}[\tilde P(x,y)f_i(x,y)]-\sum_{x,y}[\tilde P(x)P_w(y|x)f_i(x,y)]\bigg)\\ &=\sum_{x,y}\tilde P(x,y)\sum_{i=1}^nw_if_i(x,y)+\sum_{x,y}\tilde P(x)P_w(y|x)\bigg(\log P_w(y|x)-\sum_{i=1}^nw_if_i(x,y)\bigg)\\ &=\sum_{x,y}\tilde P(x,y)\sum_{i=1}^nw_if_i(x,y)-\sum_{x,y}\tilde P(x)P_w(y|x)\log Z_w(x)\\ &=\sum_{x,y}\tilde P(x,y)\sum_{i=1}^nw_if_i(x)-\sum_{x}\log Z_w(x) \end{align}
所以

即求解对偶问题极大化等价于对最大熵模型进行极大似然估计。

所以得到最大熵模型的等价的形式

其中

这里,为输入,为输出,为权值向量,为任意实值特征函数。

最大熵模型学习的最优化算法

求解最大熵模型,需要求解对偶问题的解。直接求解析解一般是比较困难的,但是可以通过迭代算法,例如改进的迭代尺度法(IIS),梯度下降法,牛顿法或拟牛顿法得到近似解。下面介绍IIS法和拟牛顿法。

改进的迭代尺度法(IIS)的推导

由公式(17)可知需要最大化模型的对数似然函数

对于要求解的参数向量,IIS的想法就是找到一个使得更新后的参数向量满足

那么就可以通过不断的迭代,使得似然函数逐渐增大,达到极大似然估计的效果,计算

利用不等式,即

得到似然函数增量的下界

将右端记为

于是有

如果能找到合适的使得提高,那么对数似然函数也会提高,但是中包含了个变量,同时对其进行优化是非常困难的,所以IIS试图每次只优化一个变量,固定其他变量。

为了达到这个目的,IIS引入了一个量

这个量表示所有特征在出现的次数。

所以,增量的下界可以改写为

利用指数函数的凸性以及对任意,有,且,根据Jesen不等式得到

所以

记右端

是对数似然函数增量的一个新的下界。求对的偏导

上面的方程中除了没有其他变量,所以可以对进行优化,然后以同样的方式依次对其他进行优化。

改进的迭代尺度法(IIS)的描述

输入:特征函数;经验分布,模型

输出:最优参数值;最优模型。

(1)对所有,取初值

(2)对每一:

求解方程(21)

其中

更新的值:

(3)如果不是所有都收敛,重复步(2)。

在上述算法中,如果是常数,且(即所有特征在任意出现的次数都是次,与取值无关,可以提到求和的外面),根据方程(21)则可以直接计算
\begin{align} \exp(\delta_if^\#(x,y))&=\frac{\sum_{x,y}\tilde P(x,y)f_i(x,y)}{\sum_x\tilde P(x)\sum_yP_w(y|x)f_i(x,y)}=\frac{\sum_{x,y}\tilde P(x,y)f_i(x,y)}{\sum_{x,y}\tilde P(x)P_w(y|x)f_i(x,y)}=\frac{\sum_{x,y}\tilde P(x,y)f_i(x,y)}{\sum_{x,y}P(x,y)f_i(x,y)}=\frac{E_{\tilde P(X,Y)}(f_i)}{E_{P(X,Y)}(f_i)}\\ &=\frac{E_{\tilde P}(f_i)}{E_P(f_i)} \end{align}
所以

如果不是常数,根据方程(21)



令左端等于

这时候就需要求解方程的解。这是个一元方程,可以直接求解,也可以通过牛顿法迭代公式

解方程。

拟牛顿法

最大熵模型的学习还可以用拟牛顿法。

对于最大熵模型:

目标是最大化对数似然函数:

对其取相反数,得到拟牛顿法需要最小化的目标函数:

梯度

最大熵模型学习的BFGS算法

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

输出:最优参数值;最优模型。

(1)选定初始点,取为正定对称矩阵,置

(2)计算。若,则停止计算,得;否则转(3)

(3)由求出

(4)一维搜索:求使得

(5)置

(6)计算,若,则停止计算,得;否则,按下式求出:

其中,

(7)置,转(3)

你可能感兴趣的:(统计机器学习-逻辑斯谛回归与最大熵模型)