机器学习理论《统计学习方法》学习笔记:第六章 逻辑斯谛回归与最大熵模型
- 6 逻辑斯谛回归与最大熵模型
-
- 6.1 逻辑斯谛回归模型
-
- 6.1.1 逻辑斯谛分布
- 6.1.2 二项逻辑斯蒂回归模型
- 6.1.3 模型参数估计
- 6.1.4 多项逻辑斯谛回归
- 6.2 最大熵模型
-
- 6.2.1 最大熵原理
- 6.2.2 最大熵模型的定义
- 6.2.3 最大熵模型的学习
- 6.2.4 极大似然估计
- 6.3 模型学习的最优化算法
-
- 6.3.1 改进的迭代尺度法
- 6.3.2 拟牛顿法
6 逻辑斯谛回归与最大熵模型
逻辑斯谛回归(logistic regression)是统计学习中的经典分类方法。最大熵是概率模型学习的一个准则,将其推广到分类问题得到最大熵模型(maximum entropy model)。逻辑斯谛回归模型与最大熵模型都属于对数线性模型。
6.1 逻辑斯谛回归模型
6.1.1 逻辑斯谛分布
逻辑斯谛分布:设XXX是连续随机变量,XXX服从逻辑斯谛分布是指XXX具有下列分布函数和密度函数:
F(x)=p(X≤x)=11+e−(x−μ)/γF(x)=p(X\le x)={{1}\over{1+e^{-(x-\mu)/\gamma}}}F(x)=p(X≤x)=1+e−(x−μ)/γ1
f(x)=F′(x)=e−(x−μ)/γγ(1+e−(x−μ)/γ)2f(x)=F^{'}(x)={{e^{-(x-\mu)/\gamma}}\over{\gamma({1+e^{-(x-\mu)/\gamma}}})^2}f(x)=F′(x)=γ(1+e−(x−μ)/γ)2e−(x−μ)/γ
μ\muμ为位置参数,γ>0\gamma \gt 0γ>0为形状参数。
逻辑斯谛分布的密度函数f(x)f(x)f(x)和分布函数F(x)F(x)F(x)的图像如下。
分布函数属于逻辑斯谛函数,其图形是一条S形曲线,以点(μ,12)(\mu,{1\over 2})(μ,21)为中心对称,即满足
F(−x+μ)−12=−F(x+μ)+12F(-x+\mu)-{1\over2}=-F(x+\mu)+{1\over2}F(−x+μ)−21=−F(x+μ)+21
曲线在中心附近增长速度快,在两端增长速度慢。形状参数γ\gammaγ的值越小,曲线在中心附近增长得越快。
6.1.2 二项逻辑斯蒂回归模型
二项逻辑斯谛回归模型是一种分类模型,由条件概率分布P(Y∣X)P(Y|X)P(Y∣X)表示,形式为参数化得逻辑斯谛分布。这里,随机变量XXX取值为实数,随机变量YYY取值为1或0.通过监督学习的方法来估计模型参数。
逻辑斯谛回归模型
二项逻辑斯谛回归模型是如下的条件概率分布:二项逻辑斯谛回归模型是如下的条件概率分布:二项逻辑斯谛回归模型是如下的条件概率分布:
P(Y=1∣x)=exp(w⋅x+b)1+exp(w⋅x+b)P(Y=1|x)={{exp(w\cdot x+b)}\over{1+exp(w\cdot x+b)}}P(Y=1∣x)=1+exp(w⋅x+b)exp(w⋅x+b)
P(Y=0∣x)=11+exp(w⋅x+b)P(Y=0|x)={{1}\over{1+exp(w\cdot x+b)}}P(Y=0∣x)=1+exp(w⋅x+b)1
x∈Rn是输入,Y∈{0,1}是输出,w∈Rn和b∈R是参数,w称为权值向量,b称为偏置,w⋅x是w和x的内积。x\in R^n是输入,Y\in\{0,1\}是输出,w\in R^n和b\in R是参数,w称为权值向量,b称为偏置,w\cdot x是w和x的内积。x∈Rn是输入,Y∈{0,1}是输出,w∈Rn和b∈R是参数,w称为权值向量,b称为偏置,w⋅x是w和x的内积。
有时为了方便,将权值向量和输入向量加以扩充,仍记作w和x,即w=(w(1),w(2),⋯,w(n),b)T,x=(x(1),x(2),⋯,x(n),1)T.此时,逻辑斯谛回归模型如下:有时为了方便,将权值向量和输入向量加以扩充,仍记作w和x,即w=(w^{(1)},w^{(2)},\cdots,w^{(n)},b)^T,x=(x^{(1)},x^{(2)},\cdots,x^{(n)},1)^T.此时,逻辑斯谛回归模型如下:有时为了方便,将权值向量和输入向量加以扩充,仍记作w和x,即w=(w(1),w(2),⋯,w(n),b)T,x=(x(1),x(2),⋯,x(n),1)T.此时,逻辑斯谛回归模型如下:
P(Y=1∣x)=exp(w⋅x)1+exp(w⋅x)P(Y=1|x)={{exp(w\cdot x)}\over{1+exp(w\cdot x)}}P(Y=1∣x)=1+exp(w⋅x)exp(w⋅x)
P(Y=0∣x)=11+exp(w⋅x)P(Y=0|x)={{1}\over{1+exp(w\cdot x)}}P(Y=0∣x)=1+exp(w⋅x)1
现在考察逻辑斯谛回归模型的特点。一个事件的几率(odds)是指该事件发生的概率与该事件不发生的概率的比值。如果事件发生的概率是p,那么该事件的几率是p1−p{p\over{1-p}}1−pp,该事件的对数几率(log odds)或logit函数是logit(p)=logp1−plogit(p)=log{p\over{1-p}}logit(p)=log1−pp,对逻辑斯谛回归而言:logP(Y=1∣x)1−P(Y=1∣x)=w⋅xlog{{P(Y=1|x)}\over{1-P(Y=1|x)}}=w\cdot xlog1−P(Y=1∣x)P(Y=1∣x)=w⋅x
在逻辑斯谛回归模型中,输出Y=1的对数几率是输入x的线性函数。或者说,输出Y=1的对数几率是由输入x的线性函数表示的模型,即逻辑斯谛回归模型。
换一个角度看,考虑对输入x进行分类的线性函数w⋅xw\cdot xw⋅x,其值域为实数域,x∈Rn+1,w∈Rn+1x\in R^{n+1},w\in R^{n+1}x∈Rn+1,w∈Rn+1.通过逻辑斯谛回归模型的定义式,可以将线性函数w⋅xw\cdot xw⋅x转换为概率:P(Y=1∣x)=exp(w⋅x)1+exp(w⋅x)P(Y=1|x)={{exp(w\cdot x)}\over{1+exp(w\cdot x)}}P(Y=1∣x)=1+exp(w⋅x)exp(w⋅x)这时,线性函数的值越接近正无穷,概率值就越接近1;线性函数的值越接近负无穷,概率值就越接近0.
6.1.3 模型参数估计
逻辑斯谛回归模型学习时,对于给定的训练数据集
T={(x1,y1),(x2,y2),⋯,(xn,yn)}T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)\}T={(x1,y1),(x2,y2),⋯,(xn,yn)}
其中,xi∈Rn,yi∈{0,1}其中,x_i\in R^n,y_i\in\{0,1\}其中,xi∈Rn,yi∈{0,1}
可以应用极大似然估计法估计模型参数,从而得到逻辑斯蒂回归模型。
设:P(Y=1∣x)=π(x),P(Y=0∣x)=1−π(x)P(Y=1|x)=\pi(x),P(Y=0|x)=1-\pi(x)P(Y=1∣x)=π(x),P(Y=0∣x)=1−π(x)
似然函数为:∏i=1N[π(xi)]yi[1−π(xi)]1−yi\prod_{i=1}^N[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i}i=1∏N[π(xi)]yi[1−π(xi)]1−yi
对数似然函数为:
L(w)=∑i=1N[yilogπ(xi)+(1−yi)log(1−π(xi)]L(w)=\sum_{i=1}^N[y_ilog\pi(x_i)+(1-y_i)log(1-\pi(x_i)]L(w)=i=1∑N[yilogπ(xi)+(1−yi)log(1−π(xi)]
=∑i=1N[yilogπ(xi)1−π(xi)+log(1−π(xi))]=\sum_{i=1}^N[y_ilog{{\pi(x_i)}\over{1-\pi(x_i)}}+log(1-\pi(x_i))]=i=1∑N[yilog1−π(xi)π(xi)+log(1−π(xi))]
=∑i=1N[yi(w⋅xi)−log(1+exp(w⋅xi))]=\sum_{i=1}^N[y_i(w\cdot x_i)-log(1+exp(w\cdot x_i))]=i=1∑N[yi(w⋅xi)−log(1+exp(w⋅xi))]
对L(w)求极大值,得到w的估计值。对L(w)求极大值,得到w的估计值。对L(w)求极大值,得到w的估计值。
6.1.4 多项逻辑斯谛回归
二项逻辑斯谛回归模型是二项分类模型,用于二类分类。可以将其推广为多项逻辑斯谛回归模型,用于多分类。假设离散型随机变量Y的取值集合是{1,2,…,K},那么多项逻辑斯谛回归模型是:
P(Y=k∣x)=exp(wk⋅x)1+∑k=1K−1exp(wk⋅x),k=1,2,⋯,K−1P(Y=k|x)={{exp(w_k\cdot x)}\over{1+\sum_{k=1}^{K-1}exp(w_k\cdot x)}},k=1,2,\cdots,K-1P(Y=k∣x)=1+∑k=1K−1exp(wk⋅x)exp(wk⋅x),k=1,2,⋯,K−1
P(Y=K∣x)=11+∑k=1K−1exp(wk⋅x)P(Y=K|x)={{1}\over{1+\sum_{k=1}^{K-1}exp(w_k\cdot x)}}P(Y=K∣x)=1+∑k=1K−1exp(wk⋅x)1
这里,x∈Rn+1,wk∈Rn+1这里,x\in R^{n+1},w_k\in R^{n+1}这里,x∈Rn+1,wk∈Rn+1
6.2 最大熵模型
6.2.1 最大熵原理
最大熵原理是概率模型学习的一个准则。最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合中,选取熵最大的模型。
假设离散随机变量XXX的概率分布是P(X)P(X)P(X),则其熵是
H(P)=−∑xP(x)logP(x)H(P)=-\sum_xP(x)logP(x)H(P)=−x∑P(x)logP(x)
熵满足下列不等式:
0≤H(P)≤log∣X∣0\le H(P)\le log|X|0≤H(P)≤log∣X∣
式子中,∣X∣|X|∣X∣是XXX的取值个数,当且仅当XXX的分布是均匀分布时,右边的等号成立。这就是说,当XXX服从均匀分布时,熵最大。
直观地,最大熵原理认为要选择的概率模型首先必须满足已有的事实,即约束条件。在没有更多信息的情况下,那些不确定的部分都是等可能的。最大熵原理通过熵的最大化来表示可能性。等可能不容易操作,而熵则是一个可优化的数值指标。
概率模型集合图提供了用最大熵原理进行概率模型选择的几何解释。
概率模型集合ρ\rhoρ可由欧氏空间中的单纯形(simplex)表示,如左图的三角形。一个点代表一个模型,整个单纯形代表整个集合。右图上的一条直线对应于一个约束条件,直线的交集对应于满足所有约束条件的模型集合。一般地,这样的模型仍有无穷多个,学习的目的是在可能的模型集合中选择最优模型,而最大熵原理给出最优模型选择的一个准则。
6.2.2 最大熵模型的定义
最大熵原理是统计学习的一般原理,将它应用到分类得到最大熵模型。
假设分类模型是一个条件概率分布P(Y∣X)P(Y|X)P(Y∣X).这个模型表示的是对于给定的输入X,以条件概率P(Y∣X)P(Y|X)P(Y∣X)输出Y。
给一个训练集T={(x1,y1),(x1,y1),⋯,(x1,y1)}T=\{(x_1,y_1),(x_1,y_1),\cdots,(x_1,y_1)\}T={(x1,y1),(x1,y1),⋯,(x1,y1)}学习的目标是最大熵原理选择最好的分类模型。
用特征函数f(x,y)f(x,y)f(x,y)描述输入x和输出y之间的某一个事实。其定义是
f(x,y)={1,x与y满足某一事实0,否则f(x,y)= \begin{cases} 1,& \text{x与y满足某一事实}\\ 0,&\text{否则} \end{cases} f(x,y)={1,0,x与y满足某一事实否则
它是一个二值函数,当x和y满足这个事实时取值为1,否则取值为0.
最大熵模型
假设满足所有约束条件的模型为假设满足所有约束条件的模型为假设满足所有约束条件的模型为
C≡{P∈P∣Ep~(fi),i=1,2,⋯,n}C\equiv\{P\in\Rho|E_{\tilde{p}}(f_i),i=1,2,\cdots,n\}C≡{P∈P∣Ep~(fi),i=1,2,⋯,n}
定义在条件概率分布P(Y∣X)上的条件熵为定义在条件概率分布P(Y|X)上的条件熵为定义在条件概率分布P(Y∣X)上的条件熵为
H(P)=−∑x,yP~(x)P(y∣x)logP(y∣x)H(P)=-\sum_{x,y}\tilde{P}(x)P(y|x)logP(y|x)H(P)=−x,y∑P~(x)P(y∣x)logP(y∣x)
则模型集合C中条件熵H(P)最大的模型称为最大熵模型,式子中的对数为自然对数。则模型集合C中条件熵H(P)最大的模型称为最大熵模型,式子中的对数为自然对数。则模型集合C中条件熵H(P)最大的模型称为最大熵模型,式子中的对数为自然对数。
6.2.3 最大熵模型的学习
最大熵模型的学习过程就是求解最大熵模型的过程。最大熵模型的学习可以形式化为约束最优化问题。
对于给定的训练数据集T={(x1,y1),(x2,y2),⋯,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}T={(x1,y1),(x2,y2),⋯,(xN,yN)}
以及特征函数fi(x,y),i=1,2,⋯,nf_i(x,y),i=1,2,\cdots,nfi(x,y),i=1,2,⋯,n,最大熵模型的学习等价于约束最优化问题:
maxP∈CH(P)=−∑x,yP~(x)P(y∣x)logP(y∣x)max_{P\in C}H(P)=-\sum_{x,y}{\tilde{P}}(x)P(y|x)logP(y|x)maxP∈CH(P)=−x,y∑P~(x)P(y∣x)logP(y∣x)
s.t.EP(fi)=EP~(fi),i=1,2,⋯,ns.t.\space\space\space E_P(f_i)= E_{\tilde{P}}(f_i),i=1,2,\cdots,ns.t. EP(fi)=EP~(fi),i=1,2,⋯,n
∑yP(y∣x)=1\sum_yP(y|x)=1y∑P(y∣x)=1
6.2.4 极大似然估计
下面证明对偶函数的极大化等价于最大熵模型的极大似然估计。
最大熵模型与逻辑斯谛回归模型有类似的形式,它们又称为对数线性模型。模型学习就是在给定的训练数据下,对模型进行极大似然估计或正则化的极大似然估计。
6.3 模型学习的最优化算法
逻辑斯谛回归模型、最大熵模型学习归结为以似然函数为目标函数的最优化问题,通常通过迭代算法求解。从最优化的观点看,这时的目标函数具有很好的性质。它是光滑的凸函数,因此多种最优化的方法都适用,保证能找到全局最优解。
常用的方法有改进的迭代尺度法、梯度下降法、牛顿法或拟牛顿法。牛顿法或拟牛顿法一般收敛速度更快。
6.3.1 改进的迭代尺度法
改进的迭代尺度法(improved iterative scaling,IIS)是一种最大熵模型学习的最优化算法。
已知最大熵模型为Pw(y∣x)=1Zw(x)(∑i=1nwifi(x,y))P_w(y|x)={{1}\over{Z_w(x)}}(\sum_{i=1}^nw_if_i(x,y))Pw(y∣x)=Zw(x)1(i=1∑nwifi(x,y))
其中,Zw(x)=∑yexp(∑i=1nwifi(x,y))Z_w(x)=\sum_yexp(\sum_{i=1}^nw_if_i(x,y))Zw(x)=y∑exp(i=1∑nwifi(x,y))
对数似然函数为L(w)=∑x,yP~(x,y)∑i=1nwifi(x,y)−∑xP~(x)logZw(x)L(w)=\sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^nw_if_i(x,y)-\sum_x\tilde{P}(x)logZ_w(x)L(w)=x,y∑P~(x,y)i=1∑nwifi(x,y)−x∑P~(x)logZw(x)
目标是通过极大似然估计学习模型参数,即求对数似然函数的极大值w^\hat ww^
IIS的想法是:假设最大熵模型当前的参数向量是w=(w1,w2,⋯,wn)Tw=(w_1,w_2,\cdots,w_n)^Tw=(w1,w2,⋯,wn)T,希望找到一个新的参数向量w+δ=(w1+δ1,w2+δ2,⋯,wn+δn)Tw+\delta=(w_1+\delta_1,w_2+\delta_2,\cdots,w_n+\delta_n)^Tw+δ=(w1+δ1,w2+δ2,⋯,wn+δn)T,使得模型的对数似然函数值增大。如果能有这样一种参数向量更新的方法 τ:w→w+δ\tau:w\rightarrow w+\deltaτ:w→w+δ,那么就可以重复使用这一方法,直至找到对数似然函数的最大值。