Skip to content

2.1 逻辑回归

现在我们来讨论分类问题。在导言中我们提到,目标变量为连续型随机变量的学习问题称为回归问题,目标变量为离散型随机变量的问题称为分类问题。为推导之便利,我们在此只研究目标变量取值为 {0,1} 的情况,即二元分类问题。例如,假设我们想要将我们的邮件分为垃圾邮件和非垃圾邮件,设其分别对应 y=0y=1xj 为邮件的输入特征。现在我们就要建立一个假设函数,使其能够根据输入特征预测邮件是否为垃圾邮件。在这里,0 又称为负类1 又称为正类,它们有时又写作 + 。对于给定的 x(i),其对应的 y(i) 又称为训练样本的标签

逻辑回归

我们大可以忽略 y 是离散型随机变量这一事实,而用线性回归的知识对其加以解决;但线性回归在应对此类问题上所能发挥的作用极其有限:显然,线性回归的假设函数的值域为 R,但 y 只能取 {0,1},显然这个假设函数是不合理的。

我们需要对假设函数的值域进行修正。定义

hθ(x)=g(θTx)=11+eθTx,

其中

g(t)=11+et

称为逻辑函数或 S- 型函数。

可以注意到,limtg(t)=0,limt+g(t)=1,且 g(t)R 上单调递增,这就修正了值域上的问题。

像之前一样,我们设 x0=1,则有 θ0+j=0dθjxj=θTx.

下面我们研究逻辑函数的一些有趣的性质:导数的特征。

g(t)=1(1+et)2(et)=1(1+et)2(111+et)(1+et)=g(t)(1g(t)).

接下来,我们将利用这一性质,导出随即逻辑回归的算法。

首先,仿照线性回归的概率解释,我们先假设:

p(y=1x;θ)=hθ(x),p(y=0x;θ)=1hθ(x).

两个式子可统一为

p(yx;θ)=(hθ(x))y(1hθ(x))1y.

故似然函数为

L(θ)=i=1n(h(x(i)))y(i)(1h(x(i)))1y(i).

我们的目标是找出使 L(θ) 最大的 θ,这等价于求使得其对数似然函数最大的 θ

l(θ)=i=1ny(i)logh(x(i))+(1y(i))log(1h(x(i))).

接下来我们对 θ 求导。不妨先假设只有一个训练样本,此时其对 θj 的偏导为:

θjl(θ)=yθjlogg(θTx)+(1y)θjlog(1g(θTx))=y1g(θTx)g(θTx)(1g(θTx))xj+(1y)11g(θTx)(1)g(θTx)(1g(θTx))xj=y(1g(θTx))xj+(y1)g(θTx)xj=(yg(θTx))xj.

上式第二个等号利用了链式求导法则及逻辑函数导数的特点。

由此,根据梯度上升(因为我们要最大化对数似然函数,应该顺着梯度的方向改变我们可以得到随机逻辑回归:

θj:=θj+α(yh(x))xj.

写成向量形式:

θ:=θ+α(yh(x))x.

可以发现,这和随机线性回归的公式在形式上是一模一样的!但事实上它们是两种完全不同的算法,因为 h(x) 的取值是不同的。那么,形式上的统一性是否暗示着存在某种隐藏在这一形式背后的规律呢?我们将在 GLM 中作出回答。

另一种记号

下面我们给出另一种记号体系,它同样是非常有用的。

llogistic:R×{0,1}R0 为逻辑损失函数,它的定义为:

llogistic(t,y)ylog(1+exp(t))+(1y)log(1+exp(t)).

易见它是对数似然函数的相反数:

l(θ)=llogistic(θTx,y).

有时 θTx 又被叫做逻辑特 (logit)。根据微积分知识,可有

tllogistic(t,y)=g(t)y=(1+exp(t))1y.

由链式法则,可得

θjl(θ)=llogistic(t,y)ttθj=(yh(x))xj.

这与上面推导的结果相一致。