线性分类器#
特点:
- 决策面是线/平面或超平面(n维空间中的n-1维空间)
- 判别函数是线性函数
判别函数#
常用增广形式
g(x)=wTx
- w:权重向量,决策面方程的系数,包含偏置项
- x:输入特征向量,包含一个1以处理偏置,称增广(齐次)的特征向量
w=w0w1⋮wnx=1x1⋮xn
- 判别函数的符号决定分类结果:g(x)>0 属于一类,称之正类,g(x)<0 属于另一类,称之负类,g(x)=0 则位于决策面上
目标方程#
有了判别函数后,我们需要一个目标方程来优化权重向量w,也就是让每一个样本经过判别函数运算后都能得到正确的分类结果。写成矩阵的形式:
Xw>0 其中:
X=x1Tx2T⋮xmT−xm+1T⋮−xNTw=w0w1⋮wn
- X:增广特征矩阵,前m行是正类样本的增广特征向量,后N−m行是负类样本的增广特征向量取反,取反是为了能统一大于0
- w:权重向量,包含决策面方程的系数
感知器算法#
只能处理线性可分的数据
感知器准则#
最直观的准则是「最少错分样本数准则」:
JN(w)=样本集合中被误分类的样本数 但这个不可导,无法使用梯度下降法,因此改为以误分类样本的距离和为准则:
JP(w)=x∈M∑(−wTx)∇JP(w)=x∈M∑(−x)
- 初始化权重向量 w0k=0
- 对训练样本进行迭代:
- 计算判别函数 g(xk),判断样本是否被正确分类
- 如果xk被误分类,更新权重向量:wk+1←wk+xk
- 重复步骤2直到所有样本被正确分类或达到最大迭代次数
批量版算法#
- 初始化权重向量 w0k=0,学习率 ηk,收敛阈值 ϵ
- 对训练样本进行迭代,收集所有误分类样本 Mk:
- 对每个样本计算判别函数 g(x),判断样本是否被正确分类
- 如果样本被误分类,将其加入集合 Mk
- 更新权重向量:wk+1←wk+ηkx∈Mk∑x
- 若ηkx∈Mk∑x<ϵ,则停止迭代
- 重复步骤2直到所有样本被正确分类或达到最大迭代次数
LMSE算法(最小均方误差)#
传统的感知器是让判别函数输出的绝对值大于0, 但使用LMSE可以为输出设置一个非0的目标值, 以增加分类的置信度。
LMSE可以处理线性不可分的数据
LMSE的目标方程#
Xw=b
- b:目标输出向量,前m个元素为正类样本的目标值,后N−m个元素为负类样本的目标值
LMSE准则函数#
定义误差向量e=Xw−b,LMSE准则函数为误差的平方和:
J(w)=21∥e∥2
21 是为了求导好看
求导:
∇J(w)=XT(Xw−b)w=0=(XTX)−1XTb=X†b 梯度下降:
wk+1=wk−ηk∇J(wk)=wk−ηkXT(Xwk−b)
多类问题扩展#
设共有C类
拆分二分类法#
一对多#
为每一个类训练一个二分类器,如果大于0就属于这个类,否则不属于这个类。测试时,输入样本通过所有分类器,选择输出最大的那个分类器对应的类。
需要C个分类器
一对一#
对任意两类训练一个二分类器,测试时,输入样本通过所有分类器,选择被最多分类器投票的那个类。
需要2C(C−1)个分类器
扩展感知器算法#
初始化C个权重向量w1,w2,…,wC,每个权重向量对应一个类
W=w1Tw2T⋮wCTG(x)=g1(x)g2(x)⋮gC(x) 得到方程
G(x)=Wx 若样本x 属于第 j 类,则:
argkmaxgk(x)=j 其中 gk(x) 是第 k 个分类器的输出,也是G(x)的第 k 个元素
支持向量机(SVM)#
感知器能找到一个决策面,但可能不是最优的决策面。SVM的目标是找到一个最大化分类间隔的决策面,以提高模型的泛化能力。是最大间隔分类器
对于超平面:
wTx+b=0 样本点xi到超平面的距离为:
di=∥w∥∣wTxi+b∣ 则间隔的定义:
margin=imindi SVM的目标是最大化这个间隔
线性可分SVM(硬间隔)#
为简化优化过程,要求对所有样本满足:
yi(wTxi+b)≥1 其中 yi 是样本 xi 的类别标签,取值为 +1 或 −1。这个约束确保了所有样本都被正确分类,并且距离超平面至少为∥w∥1
优化问题:
w,bminsubject to21∥w∥2yi(wTxi+b)≥1,i=1,2,…,N 这是一个凸二次优化问题,可以通过拉格朗日乘子法求解
引入拉格朗日乘子 αi≥0,构建拉格朗日函数:
L(w,b,α)=21∥w∥2−i=1∑Nαi[yi(wTxi+b)−1] 对 w 和 b 求偏导并设置为零,得到:
∂w∂L∂b∂L=w−i=1∑Nαiyixi=0⇒w=i=1∑Nαiyixi=i=1∑Nαiyi=0 代入拉格朗日函数,得到对偶问题:
αmaxsubject toi=1∑Nαi−21i=1∑Nj=1∑NαiαjyiyjxiTxjαi≥0,i=1,2,…,Ni=1∑Nαiyi=0 支持向量#
根据KKT条件:
αi[yi(wTxi+b)−1]=0
- 当 αi>0 时,则yi(wTxi+b)=1,样本 xi 位于间隔边界上,称为支持向量
- 当 αi=0 时,yi(wTxi+b)>1,样本 xi 位于间隔外,不是支持向量,样本对决策面没有贡献
结论:最终分类器只由支持向量决定
w=i∈SV∑αiyixi 支持向量机的决策函数:
f(x)=sign(i∈SV∑αiyixiTx+b) 不完全线性可分SVM(软间隔)#
引入松弛变量 ξi≥0,允许部分样本被误分类(可以不满足函数间隔≥1),但对误分类样本进行惩罚。优化问题:
w,b,ξminsubject to21∥w∥2+Ci=1∑Nξiyi(wTxi+b)≥1−ξi,i=1,2,…,Nξi≥0,i=1,2,…,N
- C>0:惩罚参数,控制模型对误分类的容忍度
- C→∞ 时,软间隔SVM退化为硬间隔SVM
推导后得到对偶问题:
αmaxsubject toi=1∑Nαi−21i=1∑Nj=1∑NαiαjyiyjxiTxj0≤αi≤C,i=1,2,…,Ni=1∑Nαiyi=0 只比硬间隔多了上界αi≤C
KKT条件#
αi[yi(wTxi+b)−1+ξi](C−αi)ξi=0=0
- 当 αi>0 且 αi<C 时,yi(wTxi+b)=1−ξi,样本 xi 位于间隔边界上,称为支持向量
- 当 αi=0 时,yi(wTxi+b)>1−ξi,样本 xi 位于间隔外,不是支持向量,样本对决策面没有贡献
- 当 αi=C 时,yi(wTxi+b)<1−ξi,样本 xi 被误分类,称为误分类支持向量
非线性可分SVM(核方法)#
给软间隔最后得到的对偶问题的xiTxj替换为核函数K(xi,xj),得到:
αmaxsubject toi=1∑Nαi−21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)0≤αi≤C,i=1,2,…,Ni=1∑Nαiyi=0