线性模型 (Linear Model):给定由 d 个属性描述的示例 x,线性模型试图学得一个通过属性间的线性组合来进行预测的函数,即:f(x)=wTx+b.

1. 线性回归

给定数据集 D={(x1,y1),(x2,y2),,(xm,ym)},其中 xi=(xi1,xi2,,xid)T,yiR. 线性回归试图学得一个线性模型以尽可能准确地预测实值输出标记。

1.1. 单变量线性回归

对于 d=1 的单变量情形,我们的目标是:

(w,b)=argmin(w,b)i=1m(f(xi)yi)2=argmin(w,b)i=1m(yiwxib)2

将其分别对 w,b 求偏导再置为 0,便可得到该问题的解:

{E(w,b)w=2(wi=1mxi2i=1m(yib)xi)E(w,b)b=2(mbi=1m(yiwxi)){w=i=1myi(xix¯)i=1mxi21m(i=1mxi)2b=1mi=1m(yiwxi)

上面这个解看着很眼熟,其实就是我们高中就学过的最小二乘法了。

1.2. 多变量线性回归

对于多变量情形,为了式子简便,将 wb 整合到一起得到:

w^(d+1)×1=(wb)

对于数据集,最右侧增加一列 1

Xm×(d+1)=(x11x12x1d1x21x22x2d1xm1xm2xmd1)=(x1T1x2T1xmT1)

标记也写成向量形式:

ym×1=(y1y2ym)

综上,我们要求的线性模型便是:

y=Xw^


我们的目标是:

w^=argminw^(yXw^)T(yXw^)

同样,将其对 w^ 求导得到:

Ew^w^=w^(yXw^)T(yXw^)=w^(yTyyTXw^w^TXTy+w^TXTXw^)=2XTy+2XTXw^=2XT(Xw^y)

在上面推导的第二行到第三行,用到了以下两个结论:

xTAx=ATxx=AxTAxx=(A+AT)x

XTX 为满秩矩阵或正定矩阵时,将求导得到的式子置为 0 得到:

w^=(XTX)1XTy

综上,学到的线性模型就是:

f(x^i)=x^i(XTX)1XTy

XTX 不是满秩矩阵和正定矩阵时,可以解出多个 w^,此时可以引入正则化项来选择最好的解。

1.3 广义线性回归

当样本点的输入和输出不满足线性函数时,上面的线性回归方法就不能直接使用了。不过这个问题的解决办法我们高中也学过,即构造一个单调可微函数 g(),令:

g(y)=wTx+by=g1(wTx+b)

这样就能解决输入空间到输出空间的非线性函数映射了。

例如若样本点满足 ex 型的映射,我们可以令 g(x)=lnx,原式就变成:

lny=wTx+by=exp(wTx+b)

经过变换后,再套用之前的方法就能解决这个问题了。

2. 对数几率回归(逻辑斯谛回归)

上面的线性回归预测的是实值输出标记,如果我们求的问题是二分类问题的话,就得做一些调整。我们首先要找到一个函数,将一个实数转为 0/1 值,可以用的是单位阶跃函数:

y={0,z<00.5,z=01,z>0

不过这个函数不连续,对后面的计算会有很大的困扰,所以可以换成 Sigmoid 函数:

y=11+ez

将其作为 g1() 代入得到:

y=11+e(wTx+b)lny1y=wTx+b

y 看作 p(y=1x),将 1y 看作 p(y=0x),将上式改写为:

lnp(y=1x)p(y=0x)=wTx+b

可以得到:

p(y=1x)=ewTx+b1+ewTx+bp(y=0x)=11+ewTx+b

这个情况不好用求导解决,所以用极大似然估计来估计 w,b,为了式子简洁,首先令:

β=(wb)

首先构造似然函数:

L(β)=i=1mp(yixi)lnL(β)=i=1mlnp(yixi)lnL(β)=i=1mln(yip(y=1x)+(1yi)p(y=0x))lnL(β)=i=1m(yiβTx^iln(1+eβTx^i))

接下来要做的任务便是:

β=argmaxβL(β)=argminβL(β)

可用牛顿法求解:

β=β(2L(β)ββT)1L(β)β

3. 线性判别分析

线性判别分析的思想是,给定训练样本集,将样本投影到一个直线上,并希望同类样本尽可能近,异类样本尽可能远。得到该直线后,对于新样本,将其投影后根据其投影点的位置判别属于哪一类。图示如下:

图片来源:《机器学习》周志华

给定数据集 D={(xi,yi)}i=1m,yi{0,1},令 i{0,1} 类的集合为 Xi,均值向量为 μi,协方差矩阵为 Σi.

我们要求一条直线 wTx+b=0,使其将样本空间分为两部分,这样我们就能够通过样本点在直线的哪一侧来判断类别了。

首先,将样本点投影到直线 wTx+b=0 的法向量 w,那么它们的均值为 wTμi,协方差为 wTΣiw,并且这两个值都是标量。

x 投影到向量 w 的投影点的大小为 wTx,下面是简单推导:

x 投影到向量 w 的投影点为 p,由投影的定义,p 一定与 w 共线,则:p=cw

px 的连线为 d,由投影的定义,dp=0(或 dTp=0

dTp=0(xp)Tp=0(xcw)Tcw=0xTcwc2wTw=0c=xTwwTw=wTxwTw

综上,点 x 投影到向量 w 的投影点为:

p=cw=wTxwTww=wTxww

如果我们只关心大小,不关心方向的话(因为方向一定和 w 一样):

p=wTx

我们的目标是同类样本尽可能近,异类样本尽可能远,对应到均值方差上就是类别间的均值距离 wTμ0wTμ12 尽可能大,类别内方差 wTΣ0w+wTΣ1w 尽可能小。

J=wTμ0wTμ12wTΣ0w+wTΣ1w=wT(μ0μ1)(μ0μ1)TwwT(Σ0+Σ1)w

令:

Sw=Σ0+Σ1Sb=(μ0μ1)(μ0μ1)T

则上式可以写为:

J=wTSbwwTSww

由于 w 为分类边界的法向量,因此我们只关注 w 的方向,而不关注它的长度。因此不妨固定分母 wTSww=1,那么求解 J 最大等价于求解分子最大,也等价于负分子最小,即:

minwwTSbws.t.wTSww=1

用拉格朗日乘子法,构造拉格朗日函数求解:

L(w,λ)=wTSbwλ(wTSww1)L(w,λ)w=(Sb+SbT)wλ(Sw+SwT)w=2(SbλSw)w=0Sbw=λSwwSw1Sbw=λwSw1(μ0μ1)(μ0μ1)Tw=λww=Sw1(μ0μ1)

其中倒数第二行 (μ0μ1)Tw 为标量,λ 也为标量,由于我们不关心 w 的长度,因此这两个标量我们全部忽略。最后推导成最后一行的结果:w=Sw1(μ0μ1)

上面我们计算出了 w,下面还需要计算分类边界的 b. 我们可以直接用 wTμ0wTμ1 的平均值,即:

b=wTμ0+wTμ12

由于我们的数据集的两种类别数量可能不相同,为了防止先验概率不等造成的干扰,可以对其做加权平均:

b=m0wTμ0+m1wTμ1m0+m1

这样,我们就计算出来了分类边界 wTx+b=0,要对新数据进行分类时,直接将其代入 wTx+b,如果结果 >0,则为分类边界上面的类别,如果结果 <0,则为分类边界下面的类别,如果结果 =0,则该数据处于分类边界上。

文章目录