线性模型(Linear Model)是机器学习中最广泛的模型:
给定一个D维样本x=[x1,...,xD]T
它的线性组合为f(x;w)=w1x1+w2x2+...+wDxD+b=wTx+b
w=[w1,...,wD]T为D维的权重向量
分类问题中,由于输出目标y是一些离散标签,而f(x;w)值域是实数,所以无法直接预测,需引入一个非线性决策函数(Decision Function)g(⋅)来预测输出:
y=g(f(x;w))
此处f(x;w)就称为判别函数(Discriminant Function),在二分类问题中,g(⋅)可以是符号函数(Sign Function),定义为:
g(f(x;w))=sgn(f(x;w))
≜={+1,f(x;w)>0−1,f(x;w)<0 二分类的线性模型如下:
常用线性分类判别函数(损失函数不同):
1.线性判别函数/决策边界
一个线性分类模型(Linear Classification Model)或线性分类器(Linear Classifiter),是由一个(或多个)线性判别函数f(x;w)=wTx+b和非线性决策函数g(⋅)组成。
1.1.二分类
二分类(Binary Classification)问题的标签y只有两种值,通常设置为{+1,-1}
或{1,0}
,二分类中,常用正例(Positive Sample)和负例(Negative Sample)来表示两种样本。二分类问题中,我们只需要一个线性判别函数f(x;w)=wTx+b,特征控件RD中满足f(x;w)=0组成一个分割超平面(Hyperplane),它称为决策边界(Decision Boundary)或决策平面(Decision Surface)。
线性分类模型是指决策边界是线性超平面,在特征空间中,决策平面和权重向量w正交,特征空间中每个样本点到决策平面的有向距离(Signed Distance)为:
γ=∣∣w∣∣f(x;w)
给定N个样本训练集D={(xn,yn)}n=1N,之中yn∈{+1,−1},线性模型视图学习到参数w?,使得每个样本满足下边两个条件:
f(xn;w?)>0,yn=1
f(xn;w?)<0,yn=−1
定义3.1——两类线性可分:对于训练集D={(xn,yn)}n=1N,如果存在权重向量w?,对所有样本都满足yf(x;w?)>0,那么训练集D是线性可分的。
二分类问题,直接损失函数为0-1损失函数,其中I(⋅)为指示函数,但0-1损失函数数学性质不好:
L01(y,f(x;w))=I(yf(x;w)<0)
1.2.多分类
多分类(Multi-class Classification)问题是指分类的类别数C
大于2,多份类一般需要多个线性判别函数,但设计这样的函数有多种方式:
“一对其余”方式(OneVsRest):把多分类问题转换为C
个“一对其余”的二分类问题,这种情况需要C
个判别函数,其中第c
个判别函数fc是将类别c
的样本把类别i
和类别j
的样本分开。
“一对一”方式(OneVsOne):把多份类问题转换为C(C -1)/2
个“一对一”的二分类问题,这种方式需要C(C -1)/2
个判别函数,其中第(i,j)个判别函数是把类别i
和类别j
的样本分开。
“argmax”方式:这是一种改进的“一对其余”的方式,共需要C
个判别函数
fc(x;wc)=wcTx+bc,c∈{1,...,C} 对于样本x,如果存在一个类别c
,相对于所有的其他类别c(c=c)有fc(x;wc)>fc(x,wc),那么此时x属于类别c
,该方式的预测函数定义为: y=argc=1maxCfc(x;wc)
前边两种都存在一个缺陷:特征空间中会存在一些难以确定类别的区域,而argmax
方式很好解决了该问题。
定义3.2——多类线性可分:对于训练集D={(xn,yn)}n=1N,如果存在C个权重向量w1?,...,wC?,使得第c(1≤c≤C)类的所有样本都满足fc(x;wc?)>fc(x;wc?),∀c=c,那么训练集D是线性可分的。
2.Logistic回归
Logistic回归(Logistic Regression, LR)是一种常用的二分类问题线性模型,为解决线性函数无法做分类的问题,引入非线性函数g:RD→(0,1)来预测类别标签的后验概率p(y=1∣x).
p(y=1∣x)=g(f(x;w))
其中g(⋅)通常称为激活函数(Activation Function),其作用是把线性函数的值域从实数挤压到了(0,1)之间,可以用来表示概率,而g(⋅)的逆函数g−1(⋅)称为链接函数(Link Function)
Logistic回归中,使用Logistic作激活函数:
p(y=1∣x)=σ(wTx)≜1+exp(−wTx)1
x=[x1,...,xD,1]T为D+1维的增广特征向量。
w=[w1,...,wD,b]T为D+1维的增广权重向量。
标签y=0的后验概率为
p(y=0∣x)=1−p(y=1∣x)=1+exp(−wTx)exp(−wTx)
上述公式变换之后得到:
wTx=log1−p(y=1∣x)p(y=1∣x)=logp(y=0∣x)p(y=1∣x)
该值为样本x为正反例的后验概率比值,称为几率(Odds),几率的对数称为对数几率(Log Odds,Logit),由于等号左边是线性函数,这样Logistic回归可以看做预测值为“标签的对数几率”的线性回归模型,因此Logistic回归也称为对数几率回归(Logit Regression)。
参数学习
Logistic回归采用交叉熵作为损失函数,并使用梯度下降法来对参数进行优化。
风险函数
R(w)=−N1n=1∑N(ynlog(^yn)+(1−yn)log(1−yn^))
Logistic回归训练过程:w0→0,然后通过下边方式迭代更新参数:
wt+1←wt+αN1n=1∑Nxn(yn−yn^wt)
yn^wt是当参数为wt时,Logistic回归模型的输出
风险函数R(w)是关于参数w的连续可导的凸函数,因此除了梯度下降法之外,Logistic回归还可使用高阶的优化方法(牛顿法)来进行优化。
3.Softmax回归
Softmax回归(Softmax Regression),也称为多项(Multinomial)或多类(Multi-Class)的Logistic回归,是Logistic回归在多分类问题上的推广。对于多类问题,类别标签y∈{1,2,...,C}可以有C
个取值,给定一个样本x。
Softmax回归预测的属于类别c
的条件概率为
p(y=c∣x)=softmax(wcTx)=∑c′=1Cexp(wcTx)exp(wcTx) 其中wc是第c类的权重向量
Softmax回归的决策函数可以表示为
y^=argc=1maxCp(y=c∣x)=argc=1maxCwcTx
Logistic回归的关系:当类别C=2时,Softmax回归的决策函数为
y^=argc=1maxCwcTx=I(w1Tx−w0Tx>0)=I(w1−w0)Tx>0
之中I(⋅)是指示函数,二分类中的权重向量w=w1−w0
向量表示
y^=softmax(WTx)=1CTexp(WTx)exp(WTx)
参数学习
给定N个训练样本{(xn,yn)}n=1N,Softmax回归使用交叉熵损失函数来学习最优的参数矩阵W。
风险函数
R(W)=−N1n−1∑N(yn)Tlogyn^
风险函数关于W的梯度
∂W∂R(W)=−N1n=1∑Nxn(yn−yn^)T
略去证明过程。
使用梯度下降法,Softmax回归的训练过程为:w0→0,然后通过下边式子迭代更新:
Wt+1→Wt+α(N1n=1∑Nxn(yn−yn^Wt)T)
yn^wt是当参数为Wt时,Softmax回归模型的输出
Softmax回归中使用的C
个权重向量是冗余的,即对所有权重向量都减去一个同样的向量v,不改变其输出结果,因此,Softmax回归往往需要使用正规化来约束其参数,此外,我们还可利用这个特性来避免计算Softmax函数时在数值计算上溢出问题。
4.感知器
感知器(Perceptron)是一种广泛的线性分类器,感知器是最简单的神经网络,只有一个神经元,感知器是对生物神经元的数学模拟
感知机分类准则如下:
y^=sgn(wTx)
4.1.参数学习
感知器学习算法也是一个经典的线性分类器的参数学习算法,给定N个样本训练集{(xn,yn)}n=1N,其中yn∈{+1,−1},感知机算法视图找到一组参数w?,使得对于每个样本(xn,yn)有:
ynw?Txn>0,∀n∈{1,...,N}
感知器的学习算法是一种错误驱动的在线学习算法,先初始化一个权重w→0(通常是全零向量),然后每次分错一个样本(x,y)时,ywTx<0,就用这个样本更新权重:
w→w+yx
损失函数
L(w;x,y)=max(0,−ywTx)
更新梯度:
∂w∂L(w;x,y)={0,ywTx>0−yx,ywTx<0 4.2.感知器的收敛性
收敛:
如果训练集是线性可分的,那么感知器算法可以在有限迭代后收敛。
如果训练集是线性不可分的,那么感知器算法则不能确保会收敛。
定理3.1——感知器收敛性:给定训练集D={(xn,yn)}n=1N,令R是训练集中最大的特征向量的模,即R=nmax∣∣xn∣∣,如果训练集D线性可分,两类感知器的参数学习算法的权重更新次数不超过γ2R2(证明方式略)。
感知器的缺点:
在数据集线性可分时,感知器虽然可以找到一个超平面把两类数据分开,但并不能保证其泛化能力。
感知器对样本顺序比较敏感,每次迭代的顺序不一致时,找到的分割超平面也往往不一致。
4.3.参数平均感知器
为了提高感知器的鲁棒性和泛化能力,我们可以将在感知器学习过程中的所有K个权重向量保存起来,并赋予每个权重向量wk一个置信系数ck,(1≤k≤K),最终的分类结果通过这K个不同权重的感知器投票觉得,这个模型称为投票感知器(Voted Perceptron)。
投票感知器为:
y^=sgn(k=1∑Ncksgn(wkTx))
其中sgn(⋅)为符号函数,投票感知器虽然提高了感知器泛化能力,但需要保存K个权重向量,在实际操作中会带来额外开销,所以人们经常会使用一个简化版本,通过使用“参数平均”策略来减少投票感知器的参数数量,也称为平均感知器(Averaged Perceptron)。
4.4.扩展到多分类
原始的感知器是一种二分类模型,但也很容易扩展到多分类问题;为了使感知器可处理更复杂的输出,此处引入一个构建在输入输出联合空间上的特征函数ϕ(x,y),将样本对(x,y)映射到一个特征空间向量。在联合特征空间中,可建立一个广义感知器模型:
y^=argy∈Gen(x)maxwTϕ(x,y)
Gen(x)表示输入x所有的输出目标集合
4.4.1.广义感知器的收敛性
定义 3.3——广义线性可分:对于训练集D={(xn,yn)}n=1N,如果存在一个正的常数γ(γ>0)和权重向量w?,并且∣∣w?∣∣=1,对所有n都满足(w?,ϕ(xn,yn))−(w?,ϕ(xn,y))≥γ,y=yn(ϕ(xn,yn)∈RD为样本xn,yn的联合特征向量),那么训练集D在联合特征向量空间中是线性可分的。
定理 3.2——广义感知器收敛性:如果训练集D={(xn,yn)}n=1N是广义线性可分的,并令R是所有样本中真实标签和错误标签在特征空间ϕ(x,y)最远的距离,即R=nmaxz=ynmax∣∣ϕ(xn,yn)−ϕ(xn,z)∣∣,那么广义感知器参数学习算法的权重更新次数不超过γ2R2。
5.支持向量机
支持向量机(Support Vector Machine, SVM)是一个经典二分类算法,其找到的分割超平面具有更好鲁棒性,因此广泛使用在很多任务上,表现很好的优势。给定一个二分类器数据集D={(xn,yn)}n=1N,其中yn∈{+1,−1},如果两类样本是线性可分,则存在一个超平面:
wTx+b=0
将两类样本分开,那么对于每个样本都有yn(wTxn+b)>0,那么每个样本到超平面的距离如:
γn=∣∣w∣∣wTxn+b=∣∣w∣∣yn(wTxn+b)
如果定义间隔(Margin)γ为整个数据集D中所有样本到分割超平面的最短距离:γ=nminγn,间隔越大,分割超平面对两个数据的划分越不稳定,不容易受到噪声等因素影响。支持向量机就是寻找一个超平面(w?,b?)使得γ最大,对于一个线性可分的数据集,其分割超平面有多个,但是间隔最大的超平面是唯一的。
4.1.参数学习
为了找到最大分割超平面,目标函数如:
w,bmin=21∣∣w∣∣2 s.t.=1−yn(wTxn+b)≤0,∀n∈{1,...,N}
使用拉格朗日乘数法,上边公式的拉格朗日函数为:
∧(w,b,λ)=21∣∣w∣∣2+n=1∑Nλn(1−yn(wTxn+b))
其中λ1≥0,...,λn≥0为拉格朗日乘数,计算∧(w,b,λ)关于w和b的导数,令其为0,最终计算得到拉格朗日对偶函数:
Γ(λ)=−21n=1∑Nm=1∑Nλmλnymyn(xm)Txn+n=1∑Nλn
优化方法:序列最小优化(Sequential Minimal Optimization, SMO),支持向量集可通过SMO优化得到全局最优解,支持向量机的决策函数只依赖支持向量,与训练样本综合无关,分类速度比较快。
4.2.核函数
支持向量机还有一个重要优点是可使用核函数(Kernel Function)隐式地将样本从原始特征空间映射到更高维的空间,并解决原始特征空间中的线性不可分的问题。支持向量机的决策函数如:
f(x)=sng((w?)Tϕ(x)−b?)=sgn(n=1∑Nλn?ynk(xn,x)+b?)
之中的k(x,z)=ϕ(x)Tϕ(z)就是核函数,通常不需显示给出ϕ(x)的具体形式,所以可构造一个核函数k(x,z)=(1+xTz)2=ϕ(x)Tϕ(z)来隐式计算x,z在特征空间ϕ中的内积,其中:
ϕ(x)=[1,2x1,2x2,2x1x2,x12,x22]
4.3.软间隔
为了能容忍部分不满足约束的样本,可引入松弛变量(Slack Variable),将优化问题转换为:
w,bmin=n1∣∣w∣∣2+Cn−1∑Nξn
s.t.=1−yn(wTxn+b)−ξn≤0,∀n∈{1,...,N}
ξn≥0,∀n∈{1,...,N}
参数C>0用来控制间隔和松弛变量惩罚的平衡,引入松弛变量的间隔称为软间隔(Soft Margin),最终计算为:
w,bmin=n=1∑Nmax(0,1−yn(wTxn+b))+2C1∣∣w∣∣2
max(0,1−yn(wTxn+b))就是损失函数,称为Hinge损失函数(Hinge Loss Function)
2C1∣∣w∣∣2是正则化项
下边是对比结果
6.损失函数对比
Logistic回归损失函数:
LLR=log(1+exp(−yf(x;w)))
感知机损失函数:
Lp=max(0,−yf(x;w))
软间隔支持向量机的损失函数
Lhinge=max(0,1−yf(x;w))
平均损失可重写为:
Lsquared=(1−yf(x;w))2
对比表格
一个或多个线性判别函数加上一个非线性激活函数,线性是指决策边界由一个或多个超平面组成。