线性模型(《机器学习》)
给定由d个属性描述的示例x=(x1;x2;…;xd),其中xi是x在第i个属性上的取值,线性模型(inear modell)试图学得一个通过属性的线性组合来进行预测的函数,即:
f(x)=w1x1+w2x2+…+wdxd+b
一般用向量形式写成:
f(x)=wTx+b
其中w=(w1;w2;…;wd)。w和b学得之后,模型就得以确定。
线性模型形式简单、易于建模,但却蕴涵着机器学习中一些重要的基本思想许多功能更为强大的非线性模型(monlinear model)可在线性模型的基础上通过引入层级结构或高维映射而得。此外,由于w直观表达了各属性在预测中的重要性,因此线性模型有很好的可解释性(comprehensibility)。
线性回归
给定数据集D={(x1,y1),(x2,y2),…,(xm,ym)},其中xi=(xi1xi2;…;xid),yi∈R。“线性回归”(linear regression)试图学得一个线性模型以尽可能准确地预测实值输出标记。
我们先考虑一种最简单的情形:输入属性的数目只有一个。为便于讨论,此时我们忽略关于属性的下标,即D={(xi,yi)}i=1m,其中xi∈R。对离散属性若属性值间存在“序”(order)关系,可通过连续化将其转化为连续值,例如二值属性“身高”的取值“高”“矮”可转化为{1.0,0.0},三值属性“高度”的取值“高”“中”“低”可转化为{1.0,0.5,0.0};若属性值间不存在序关系,假定有k个属性值,则通常转化为k维向量,例如属性“瓜类”的取值“西瓜”“南瓜”“黄瓜”可转化为(0,0,1), (0,1,0), (1,0,0)。
若将无序属性连续化,则会不恰当地引入序关系,对后续处理如距离计算等造成误导。
线性回归试图学得
f(xi)=wxi+b,使得f(xi)≃yi。
如何确定w和b呢?显然,关键在于如何衡量f(x)与y之间的差别。均方误差是回归任务中最常用的性能度量,因此我们可试图让均方误差最小化,即
(w∗,b∗)=(w,b)argmini=1∑m(f(xi)−yi)2=(w,b)argmini=1∑m(yi−wxi−b)2
w∗,b∗表示w和b的解
均方误差有非常好的几何意义,它对应了常用的欧几里得距离或简称“欧氏距离”(Euclidean distance)。基于均方误差最小化来进行模型求解的方法称为“最小二乘法”(least square method,在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧氏距离之和最小。
求解w和b使E(w,b)=∑i=1m(yi−wxi−b)2最小化的过程,称为线性回归模型的最小二乘“参数估计”(parameter estimation)。我们可将E(w,b)分别对w和b求导,得到
∂w∂E(w,b)=2(w∑i=1mxi2−∑i=1m(yi−b)xi)
∂b∂E(w,b)=2(mb−∑i=1m(yi−wxi))
这里E(w,b)是关于w和b的凸函数,当它关于w和b的导数均为零时,得到w和b的最优解。
对区间[a,b]上定义的函数f,若它对区间中任意两点x1,x2均有f(2x1+x2)⩽2f(x1)+f(x2)则称f为区间[a,b]上的凸函数。U 形曲线的函数如f(x)=x2, 通常是凸函数
对实数集上的函数,可通过求二阶导数来判别若二阶导数在区间上非负则称为凸函数;若二阶导数在区间上恒大于 0, 则称为严格凸函数
然后令上式为零可得到w和b最优解的闭式(Closed-form)解:
w=∑i=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−xˉ)
b=m1∑i=1m(yi−wxi)
其中xˉ=m1∑i=1mxi 为 x为x的均值。
更一般的情形是如本节开头的数据集D,样本由d个属性描述。此时我们试图学得:
f(xi)=wTxi+b,使得f(xi)≃yi
这称为“多元线性回归”(multivariate linear regression)
类似的,可利用最小二乘法来对w和b进行估计。为便于讨论,我们把w和b吸收入向量形式w^=(w;b),相应的,把数据集D表示为一个m×(d+1)大小的矩阵X,其中每行对应于一个示例,该行前d个元素对应于示例的d个属性值,最后一个元素恒置为 1, 即
X=⎝⎜⎜⎜⎛x11x21⋮xm1x12x22⋮xm2……⋱…x1dx2d⋮xmd11⋮1⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛x1Tx2T⋮xmT11⋮1⎠⎟⎟⎟⎞
再把标记也写成向量形式y=(y1;y2;…;ym),则有:
w^∗=w^argmin(y−Xw^)T(y−Xw^)
令Ew^=(y−Xw^)T(y−Xw^),对w^求导得到:
∂w^∂Ew^=2XT(Xw^−y)
令上式为零可得w^最优解的闭式解,但由于涉及矩阵逆的计算,比单变量情形要复杂一些。下面我们做一个简单的讨论。
当XTX为满秩矩阵(full-rank matrix)或正定矩阵(positive definite ma trix)时,令式为零可得
w^∗=(XTX)−1XTy
其中(XTX)−1是矩阵(XTX)的逆矩阵。令x^i=(xi,1),则最终学得的多元线性回归模型为:
f(x^i)=x^iT(XTX)−1XTy
然而,现实任务中XTX往往不是满秩矩阵。例如在许多任务中我们会遇到大量的变量,其数目甚至超过样例数,导致 X的列数多于行数,XTX显然不满秩。此时可解出多个w^,它们都能使均方误差最小化。选择哪一个解作为输出,将由学习算法的归纳偏好决定,常见的做法是引入正则化(regularization)项。
线性模型虽简单,却有丰富的变化。例如对于样例(x,y),y∈R,当我们希望线性模型的预测值逼近真实标记y时,就得到了线性回归模型。为便于观察,我们把线性回归模型简写为
y=wTx+b
可否令模型预测值逼近y的衍生物呢?譬如说,假设我们认为示例所对应的输出标记是在指数尺度上变化,那就可将输出标记的对数作为线性模型逼近的目标,即
lny=wTx+b
这就是“对数线性回归”(log-linear regression),它实际上是在试图让ewTx+b逼近y。上式在形式上仍是线性回归,但实质上已是在求取输入空间到输出空间的非线性函数映射,如图所示。这里的对数函数起到了将线性回归模型的预测值与真实标记联系起来的作用。
更一般地,考虑单调可微函数g(⋅),g(⋅)连续且充分光滑,令:
y=g−1(wTx+b)
这样得到的模型称为“广义线性模型”(generalized linear model),其中函数g(⋅)称为“联系函数”(link function)。显然,对数线性回归是广义线性模型在g(⋅)=ln(⋅)时的特例。
广义线性模型的参数估计常通过加权最小二乘法或极大似然法进行。
对数几率回归
上一节讨论了如何使用线性模型进行回归学习,但若要做的是分类任务该怎么办?答案蕴涵在广义线性模型中:只需找一个单调可微函数将分类任务的真实标记 y与线性回归模型的预测值联系起来。
考虑二分类任务,其输出标记y∈{0,1},而线性回归模型产生的预测值z=wTx+b是实值,于是,我们需将实值z转换为0/1值.最理想的是“单位阶跃函数”(unit- step function):
y=⎩⎪⎨⎪⎧0,0.5,1,z<0z=0z>0
若预测值 2 大于零就判为正例,小于零则判为反例,预测值为临界值零则可任意判别,如图所示。
但从图可看出,单位阶跃函数不连续,因此不能直接用作式中的g−(⋅),于是我们希望找到能在一定程度上近似单位阶跃函数的“替代函数”(surrogate function),并希望它单调可微。对数几率函数(logistic function)正是这样一个常用的替代函数:
y=1+e−z1
从图可看出,对数几率函数是一种“Sigmoid 函数”,它将z值转化为一个接近 0 或 1 的y值,并且其输出值在 x=0 附近变化很陡。将对数几率函数作为g−(⋅)代入式,得到
y=1+e−(wTx+b)1
ln1−yy=wTx+b
若将y视为样本x作为正例的可能性,则1−y是其反例可能性,两者的比值
1−yy
称为“几率”(odls),反映了x作为正例的相对可能性。对几率取对数则得到“对数几率”(log odds,亦称 logit):
ln1−yy
由此可看出,实际上是在用线性回归模型的预测结果去逼近真实标记的对数几率,因此,其对应的模型称为“对数几率回归”(logistic regression,亦称 logit regression)。特别需注意到,虽然它的名字是“回归”,但实际却是一种分类学习方法。这种方法有很多优点,例如它是直接对分类可能性进行建模,无需事先假设数据分布,这样就避免了假设分布不准确所带来的问题;它不是仅预测出“类别”,而是可得到近似概率预测,这对许多需利用概率辅助决策的任务很有用;此外,对率函数是任意阶可导的凸函数,有很好的数学性质,现有的许多数值优化算法都可直接用于求取最优解。
下面我们来看看如何确定w和b。若将y视为类后验概率估计p(y=1∣x),则式可重写为
lnp(y=0∣x)p(y=1∣x)=wTx+b
显然有:
p(y=1∣x)=1+ewTx+bewTx+b
p(y=0∣x)=1+ewTx+b1
于是,我们可通过“极大似然法”(maximum likelihood method)来估计w和b。给定数据集{(xi,yi)}i=1m, 对率回归模型最大化“对数似然”(oglikelihood):
ℓ(w,b)=∑i=1mlnp(yi∣xi;w,b)
即令每个样本属于其真实标记的概率越大越好。为便于讨论,令β=(w;b),x^=(x;1),则wTx+b可简写为βTx^。再令p1(x^;β)=p(y=1∣x^;β),p0(x^;β)=p(y=0∣x^;β)=1−p1(x^;β),则式中的似然项可重写为:
p(yi∣xi;w,b)=yip1(x^i;β)+(1−yi)p0(x^i;β)
最大化式ℓ(w,b)等价于最小化:
ℓ(β)=∑i=1m(−yiβTx^i+ln(1+eβTx^i))
上式是关于β的高阶可导连续凸函数,根据凸优化理论, 经典的数值优化算法如梯度下降法(gradient descent method)、牛顿法(Newton method)等都可求得其最优解,于是就得到
β∗=βargminℓ(β)
以牛顿法为例,其第t+1轮迭代解的更新公式为:
βt+1=βt−(∂β∂βT∂2ℓ(β))−1∂β∂ℓ(β)
其中关于β的一阶、二阶导数分别为:
∂β∂ℓ(β)∂β∂βT∂2ℓ(β)=−i=1∑mx^i(yi−p1(x^i;β))=i=1∑mx^ix^iTp1(x^i;β)(1−p1(x^i;β))
逻辑斯谛回归与最大熵模型
逻辑斯谛回归(logistic regression)是统计学习中的经典分类方法。最大熵是概率模型学习的一个准则,将其推广到分类问题得到最大熵模型(maximum entropy model)。逻辑斯谛回归模型与最大熵模型都属于对数线性模型。本章首先介绍逻辑斯谛回归模型,然后介绍最大熵模型,最后讲述逻辑斯谛回归与最大熵模型的学习算法,包括改进的迭代尺度算法和拟牛顿法。
逻辑斯谛回归模型
逻辑斯谛分布
设X是连续随机变量,X服从逻辑斯谛分布是指X具有下列分布函数和密度函数:
F(x)=P(X⩽x)=1+e−(x−μ)/γ1
f(x)=F′(x)=γ(1+e−(x−μ)/γ)2e−(x−μ)/γ
式中,μ为位置参数,γ>0为形状参数
逻辑斯谛分布的密度函数f(x)和分布函数F(x)的图形如图所示。分布函数属于逻辑斯谛函数,其图形是一条S形曲线(sigmoid curve)。该曲线以点(μ,21)中心对称,即满足:
F(−x+μ)−21=−F(x+μ)+21
曲线在中心附近增长速度较快,在两端增长速度较慢。形状参数γ的值越小,曲线在中心附近增长得越快。
二项逻辑斯谛回归模型
项逻辑斯谛回归模型(binomial logistic regression model)是一种分类模型,由条件概率分布P(Y∣X)表示,形式为参数化的逻辑斯谛分布。这里,随机变量X取值为实数,随机变量Y取值为 1 或 0。我们通过监督学习的方法来估计模型参数。
逻辑斯谛回归模型:
二项逻辑斯谛回归模型是如下的条件概率分布:
P(Y=1∣x)=1+exp(w⋅x+b)exp(w⋅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,按照上式可以求得P(Y=1∣x)和P(Y=0∣x)。逻辑斯谛回归比较两个条件概率值的大小,将实例x分到概率值较大的那一类。
有时为了方便,将权值向量和输入向量加以扩充,仍记作w,x,即w=(w(1)w(2),⋯,w(n),b)T,x=(x(1),x(2),⋯,x(n),1)T。这时,逻辑斯谛回归模型如下
P(Y=1∣x)=1+exp(w⋅x)exp(w⋅x)
P(Y=0∣x)=1+exp(w⋅x)1
现在考査逻辑斯谛回归模型的特点。一个事件的几率(ods)是指该事件发生的概率与该事件不发生的概率的比值。如果事件发生的概率是p,那么该事件的几率是该事件的对数几率(log odds)或 lgit 函数是:
logit(p)=log1−pp
对逻辑斯谛回归而言,得
log1−P(Y=1∣x)P(Y=1∣x)=w⋅x
这就是说,在逻辑斯谛回归模型中,输出Y=1的对数几率是输入x的线性函数。或者说,输出Y=1的对数几率是由输入x的线性函数表示的模型,即逻辑斯谛回归模型。
换一个角度看,考虑对输入x进行分类的线性函数w⋅x,其值域为实数域。注意,这里x∈Rn+1,w∈Rn+1。通过逻辑斯谛回归模型定义式可以将线性函数w⋅x转换为概率:
P(Y=1∣x)=1+exp(w⋅x)exp(w⋅x)
这时,线性函数的值越接近正无穷,概率值就越接近 1; 线性函数的值越接近负无穷,概率值就越接近0。这样的模型就是逻辑斯谛回归模型。
模型参数估计
逻辑斯谛回归模型学习时,对于给定的训练数据集T={(x1,y1),(x2,y2),⋯,其中,xi∈Rn, yi∈{0,1},可以应用极大似然估计法估计模型参数,从而得到逻辑斯谛回归模型:
设:
P(Y=1∣x)=π(x),P(Y=0∣x)=1−π(x)
似然函数为:
∏i=1N[π(xi)]yi[1−π(xi)]1−yi
对数似然函数为:
L(w)=i=1∑N[yilogπ(xi)+(1−yi)log(1−π(xi))]=i=1∑N[yilog1−π(xi)π(xi)+log(1−π(xi))]=i=1∑N[yi(w⋅xi)−log(1+exp(w⋅xi)]
对L(w)求极大值,得到w的估计值。
这样,问题就变成了以对数似然函数为目标函数的最优化问题。逻辑斯谛回归学习中通常采用的方法是梯度下降法及拟牛顿法。
假设w的极大似然估计值是w^,那么学到的逻辑斯谛回归模型为:
P(Y=1∣x)=1+exp(w^⋅x)exp(w^⋅x)
P(Y=0∣x)=1+exp(w^⋅x)1
多项逻辑斯谛回归
上面介绍的逻辑斯谛回归模型是二项分类模型,用于二类分类。可以将其推广为多项逻辑斯谛回归模型(multi-nominal logistic regression model),用于多类分类。假设离散型随机变量Y的取值集合是{1,2,⋯,K},那么多项逻辑斯谛回归模型是:
P(Y=k∣x)=1+∑k=1K−1exp(wk⋅x)exp(wk⋅x),k=1,2,⋯,K−1
P(Y=K∣x)=1+∑k=1K−1exp(wk⋅x)1
这里,x∈Rn+1,wk∈Rn+1。
项逻辑斯谛回归的参数估计法也可以推广到多项逻辑斯谛回归。