统计学习方法笔记之逻辑斯谛模型与最大熵模型

更多文章可以访问我的博客Aengus | Blog

逻辑斯谛回归(Logistic Regression)模型是经典的分类方法,而最大熵则是概率模型中学习的一个准则,将其推广到分类问题得到最大熵模型(maximum entropy model)。两者都属于对数线性模型。

逻辑斯谛模型

逻辑斯谛分布

X是连续随机变量,X服从逻辑斯谛分布是指X具有以下分布函数和密度函数:
F(x) = P(X< x) = \frac{1}{1+e^{\frac{-(x-\mu)}{\gamma}}}

f(x) = F'(x) = \frac{e^{\frac{-(x-\mu)}{\gamma}}}{\gamma(1+e^{\frac{-(x-\mu)}{\gamma}})^2}

其中,\mu是位置参数,\gamma >0为形状参数。

逻辑斯谛分布的密度函数f(x)和分布函数F(x)如下所示。分布函数属于逻辑斯谛函数,其图像是一条S形曲线,该曲线以(\mu, \frac{1}{2})为中心对称,即满足:
F(-x+\mu)- \frac{1}{2} = -F(x+\mu)+\frac{1}{2}
曲线在中心附近增长速度较快,在两端增长速度较慢。形状参数\gamma的值越小,曲线在中心附近增长越快。

逻辑斯谛分布

二项逻辑斯谛回归

二项逻辑斯谛回归模型是一种分类模型,由条件概率分布P(Y|X)表示,形式为参数化的逻辑斯谛分布,X的取值范围为实数,Y的取值为1或0,那么如下的条件概率分布:
P(Y=1|x) = \frac{\exp(w \cdot x+b)}{1+\exp(w \cdot x+b)} \\ P(Y=0|x) = \frac{1}{1+\exp(w \cdot x+b)}
其中w \cdot x表示内积,x \in R^nw \in R^nb \in R是参数,w称为权值向量,b称为偏置。

对于输入的实例x,逻辑斯谛模型计算其条件概率P(Y=1|x)P(Y=0|x),通过比较大小将x分到概率值大的那一类。

有时为了方便,将权值向量与输入实例x进行扩充,仍记作w,x,即w=(w^{(1)},w^{(2)},\cdots,w^{(n)}, b)^Tx=(x^{(1)},x^{(2)}, \cdots,x^{(n)},1)^T,这时,逻辑斯谛模型就变成了:
P(Y=1|x) = \frac{\exp(w \cdot x)}{1+\exp(w \cdot x)} \\ P(Y=0|x) = \frac{1}{1+\exp(w \cdot x)}

模型特点

一个事件的几率是指该事件发生的概率和不发生的概率的比值。如果一个事件发生的概率是p,那么该事件的几率就是\frac{p}{1-p},该事件的对数几率就是:
logit(p) = \log\frac{p}{1-p}
对于逻辑斯谛模型来说,Y=1的几率就是:
\log \frac{P(Y=1|x)}{1-P(Y=1|x)} = w \cdot x
也就是说,在逻辑斯谛模型中,输出Y=1的对数几率是输入x的线性函数。考虑到公式
P(Y=1|x) = \frac{\exp(w \cdot x)}{1+\exp(w \cdot x)}
可以得到,线性函数的值越接近于正无穷,概率值就越接近1;线性函数的值越接近负无穷,概率值就越接近0。

多项逻辑斯谛回归

设随机变量Y的取值集合为\{1,2,\cdots,K\},那么多项逻辑斯谛回归模型是:
P(Y=k|x) = \frac{\exp(w_k \cdot x)}{1+\sum^{K-1}_{k=1}\exp(w_k \cdot x)},k=1,2,\cdots,K-1 \\ P(Y=K|x) = \frac{1}{1+\sum^{K-1}_{k=1}\exp(w_k \cdot x)}
其中x\in R^{n+1}w \in R^{n+1}

模型参数估计

可以应用极大似然估计模型参数。

设:
P(Y=1|x) = \pi(x),P(Y=0|x) = 1 - \pi(x)
似然函数为:
\prod^N_{i=1} [\pi(x_i)]^{y_i}[1 - \pi(x_i)]^{1-y_i}
对数似然函数为:
\begin{align} L(w) &= \sum^N_{i=1}[y_i \log \pi(x_i) + (1-y_i)\log(1-\pi(x_i))] \\ &=\sum^N_{i=1}\left[ y_i\log \frac{\pi(x_i)}{1-\pi(x_i)} + \log(1-\pi(x_i)) \right] \\ &= \sum^N_{i=1}[y_i(w \cdot x_i) - \log (1+\exp(w \cdot x_i))] \end{align}
L(w)求极大值,得到w的估计值。这样,问题就变成了以对数似然函数为目标函数的最优化问题。逻辑斯谛回归学习中通常采用的方法是梯度下降法及拟牛顿法。

最大熵模型

最大熵原理认为,学习概论模型时,在所有可能的概率模型分布中,熵最大的模型时最好的模型。

假设离散随机变量X的概率分布是P(X),则其熵为:
H(P) = -\sum_x P(x)\log P(x)
熵满足下列不等式:
0 \leq H(P) \leq \log|X|
式中,|X|X的取值个数,当且仅当X的分布是均匀分布时右边的等号成立,这就是说X服从均匀分布时,熵最大。换句话说,最大熵原理认为要选择的概率模型首先必须满足已有的事实,在没有更多信息的情况下,那些不确定的部分都是等可能的。

定义

首先考虑模型应该满足的条件。给定数据集,可以确定联合分布P(X,Y)的经验分布和P(X)的经验分布,记作\widetilde{P}(X,Y)\widetilde{P}(x)
\widetilde{P}(X=x,Y=y) = \frac{v(X=x,Y=y)}{N}\\ \widetilde{P}(X=x) = \frac{v(X=x)}{N}
v(X=x,Y=y)表示样本(x,y)出现的频数;v(X=x)表示训练数据中样本x出现的频数,N代表训练样本容量。

特征函数f(x,y)描述输入x与输出y是否满足某一事实:
f(x,y) = \left\{ \begin{align} 1,\ x\; and \; y \;satify \;a\;fact; \\ 0,\ otherwise \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \end{align} \right.
E_{\widetilde{P}}(f)代表特征函数f(x,y)\widetilde{P}(X,Y)的期望值:
E_{\widetilde{P}}(f) = \sum_{x,y}\widetilde{P}(x,y)f(x,y)
E_P(f)代表关于模型P(Y|X)特征函数f(x,y)关于模型P(Y|X)\widetilde{P}(X)的期望值:
E_P(f) = \sum_{x,y}\widetilde{P}(x)P(y|x)f(x,y)
如果模型能够获取训练数据中的信息,那么就可以假设这两个期望值想等,即:
E_P(f) = E_{\widetilde{P}}(f)
将上式作为模型学习的约束条件,假设有n个特征函数f_i(x,y),那么就有n个约束条件。

设满足所有约束条件的模型集合为:
\mathcal{C}\equiv \{P\in \mathcal{P} | E_P(f_i = E_{\widetilde{P}}(f_i)),i=1,2,\cdots,n \}
定义在条件概率分布P(Y|X)上的条件熵为:
H(P) = -\sum_{x,y}\widetilde{P}(x)P(y|x) \log P(y|x)
则模型集合\mathcal{C}中条件熵最大的模型称为最大熵模型。式中的对数为自然对数。

模型的学习

最大熵模型的学习也就是求解最大熵模型的过程。对于给定的数据集T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N) \}以及特征函数f_i(x,y),i=1,2,\cdots,n,最大熵模型的学习等价于约束最优化问题:
\max_{P \in \mathcal{C}} H(P) = -\sum_{x,y}\widetilde{P}(x)P(y|x) \log P(y|x) \\ s.t. \ E_P(f_i) = E_{\widetilde{P}}(f_i), \quad i=1,2,\cdots,n \\ \sum_y P(y|x) = 1
按照最优化问题的习惯,将求最大值问题改写为等价的求最小值问题:
\min_{P \in \mathcal{C}} - H(P) = \sum_{x,y}\widetilde{P}(x)P(y|x) \log P(y|x) \\ s.t. \ E_P(f_i) = E_{\widetilde{P}}(f_i), \quad i=1,2,\cdots,n \\ \sum_y P(y|x) = 1
这里,将约束最优化的原始问题转化为无约束最优化的对偶问题。首先,引入拉格朗日乘子w_0,w_1,\cdots,w_n,定义拉格朗日函数L(P,w)
L(P,w) = -H(P)+w_o(1-\sum_y P(y|x) ) + \sum^n_{i=1}w_i(E_{\widetilde{P}}(f_i)-E_P(f_i))
最优化的原始问题是\min_{P \in \mathcal{C}} \max_w L(P,w),对偶问题是\max_w \min_{P \in \mathcal{C}}L(P,w)

首先,求解对偶问题的极小化问题\min_{P \in \mathcal{C}}L(P,w)\min_{P \in \mathcal{C}}L(P,w)w的函数,将其记作:
\psi(w) = \min_{P \in \mathcal{C}}L(P,w) = L(P_w,w)
\psi(w)称为对偶函数,同时将其解记作:
P_w = \arg \min_{P \in \mathcal{C}} L(P,w) = P_w(y|x)
具体地,求L(P,w)P(y|x)的偏导数并令其等于0,在\widetilde{P} > 0的情况下,解得:
P(y|x) = \frac{\exp(\sum^n_{i=1}w_i f_i(x,y))}{exp(1-w_0)}
由于\sum_y P(y|x) = 1,得:
P_w (y|x) = \frac{1}{Z_w(x)}\exp(\sum^n_{i=1}w_i f_i(x,y))
其中:
Z_w(x) = \sum_y \exp(\sum^n_{i=1}w_if_i(x,y))
称为规范化因子。

然后求解对偶问题外部的极大化问题\max_w \psi(w)

将其解记为w^*,即w^* = \arg \max_w \psi(w),也就是说,可以应用最优化算法求对偶函数\psi(w)的极大化,得到w^*,即最大熵模型。

最优化算法

改进的迭代尺度算法IIS

假设输入特征函数f_1(x,y),f_2(x,y),\cdots,f_n(x,y),经验分布\widetilde{P}(X,Y),模型P_w(y|x),按以下步骤求解:

(1)对所有i \in \{1, 2, \cdots, n\},取初值w_i=0

(2)对每一i \in \{1, 2, \cdots, n\}

​ (a)令\delta_i是方程
\sum_{x,y}\widetilde{P}(x)P(y|x)f_i(x,y)\exp(\delta_i,f^\#(x,y))=E_{\widetilde{P}}(f_i)
的解,其中:
f^\#(x,y) = \sum^n_{i=1}f_i(x,y)
​ (b)更新w_i值:w_i \gets w_i + \delta_i

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

拟牛顿法

对于最大熵模型而言,
P_w(y|x) = \frac{\exp(\sum^n_{i=1}w_i f_i(x,y))}{\sum_y \exp(\sum^n_{i=1}w_if_i(x,y))}
目标函数:
\min_{w \in R^n} f(w) = \sum_x \widetilde{P}(x)\log \sum_y \exp(\sum^n_{i=1}w_i f_i(x,y)) - \sum_{x,y}\widetilde{P}(x,y)\sum^n_{i=1}w_if_i(x,y)
梯度:
g(w) = \left( \frac{\partial f(w)}{\partial w_1}, \frac{\partial f(w)}{\partial w_2}, \cdots, \frac{\partial f(w)}{\partial w_n} \right)^T
其中
\frac{\partial f(w)}{\partial w_i} = \sum^n_{i=1}\widetilde{P}(x,y)P_w(y|x)f_i(x,y) - E_{\widetilde{P}}(f_i), \quad i=1,2,\cdots,n
响应的拟牛顿法BFGS如下:

假设输入特征函数f_1(x,y),f_2(x,y),\cdots,f_n(x,y),经验分布\widetilde{P}(X,Y),目标函数f(w),梯度g(w)=\nabla f(w),精度要求\varepsilon,按以下步骤求解:

(1)选定初始点w^{(0)},取B_0为正定对称矩阵,置k=0

(2)计算g_k=g(w^{(k)})。若||g_k|| < \varepsilon,则停止计算,得w^* = w^{(k)};否则转(3);

(3)由B_k p_k = -g_k,求出p_k

(4)一维搜索:求\lambda_k使得:
f(w^{(k)} +\lambda_kp_k) = \min_{\lambda \geq 0}f(w^{(k)} + \lambda p_k)
(5)置w^{(k+1)} = w^{(k)}+\lambda_k p_k

(6)计算g_{k+1} = g(w^{(k+1)}),若||g_{k+1}|| < \varepsilon,则停止计算,得w^* = w^{(k+1)};否则,按下式求出B_{k+1}
B_{k+1} = B_k + \frac{y_k y_k^T}{y_k^T \delta_k} - \frac{B_k \delta_k \delta^T_k B_k}{\delta_k^T B_k \delta_k}
其中,
y_k = g_{k+1} - g_k, \quad \delta_k = w^{(k+1)} - w^{(k)}
(7)置k = k+1,转(3);

参考

李航《统计学习方法(第二版)》第六章

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,302评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,232评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,337评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,977评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,920评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,194评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,638评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,319评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,455评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,379评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,426评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,106评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,696评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,786评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,996评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,467评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,043评论 2 341

推荐阅读更多精彩内容