1. 支持向量机
1.1. 间隔与支持向量
给定训练样本集D={(x1,y1),(x2,y2),…,(xm,ym)},yi∈{−1,+1}
分类学习最基本的想法:基于训练集D在样本空间中找到一个划分超平面(不是超曲面,数据是线性可分的),将不同类别的样本分开
超平面应该位于两类训练样本"正中间",对于局部扰动容忍最好,泛化能力最强

在样本空间中,划分超平面可通过线性方程
wTx+b=0来描述,
-
w=(w1;w2;…;wd)为法向量,决定了超平面的方向
-
b为位移项,决定了超平面与原点之间的距离;
-
w和b唯一决定超平面
- 样本空间中认一点x到超平面(w,b)的距离为:r=∥w∥∣∣wTx+b∣∣
假设超平面(w,b)能将样本正确分类,即对于(xi,yi)∈D,
- 若yi=+1,则有wTxi+b>0
- 若yi=−1,则有wTxi+b<0
{wTxi+b⩾+1,wTxi+b⩽−1,yi=+1yi=−1
间隔:两个异类支持向量到超平面的距离
γ=∥w∥2

找到具有最大间隔的划分超平面,即找能满足联立方程式中约束的参数w和b,使得γ最大,即
w,bmax∥w∥2; s.t. yi(wTxi+b)⩾1,i=1,2,…,m
为了最大化间隔,仅需最大化∥w∥−1,等价于最小化∥w∥2
w,bmin2∥w∥2; s.t. yi(wTxi+b)⩾1,i=1,2,…,m
间隔貌似仅与w有关,但事实上b通过约束隐式地影响着w的取值,进而对间隔产生影响.
↑↑支持向量机(SVM)的基本型
1.2. 对偶问题
求解上式来得到大间隔划分超平面所对应的模型
f(x)=wTx+b
其中w和b的模型参数,
- 本身为一个凸二次规划问题,能直接用现成的优化计算包求解
- 使用拉格朗日乘子法可得到其对偶问题
对于上式的每条约束添加拉格朗日乘子αi⩾0,则该问题的拉格朗日函数可写为
L(w,b,α)=21∥w∥2+i=1∑mαi(1−yi(wTxi+b))
其中α=(α1;α2;…;αm).令L(w,b,α)对w和b的偏导为0
w0=i=1∑mαiyixi=i=1∑mαiyi
带入L(w,b,α)中的w和b消去,得到对偶问题为
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj; s.t. i=1∑mαiyi=0,αi⩾0,i=1,2,…,m
解出α后,求出w和b即可得到模型
f(x)=wTx+b=i=1∑mαiyixiTx+b
上述过程需满足KKT条件,
⎩⎨⎧αi⩾0yif(xi)−1⩾0αi(yif(xi)−1)=0
SMO算法
- 基本思路:先固定αi之外的所有参数,然后求αi上的极值。由于存在约束∑i=1mαiyi=0,若固定αi之外的其他变量,则αi可由其他变量导出
SMO每次选择两个变量αi和αj,并固定其他参数,这样,在参数初始化后,SMO不断执行如下两个步骤直至收敛
- 选取一对需更新的变量αi和αj
- 固定αi和αj意外的参数,求解对偶问题获得更新后的αi和αj
1.3. 核函数
1.4. 软间隔与正则化
1.5. 支持向量回归
得更新后的αi和αj
1.3. 核函数
1.4. 软间隔与正则化
1.5. 支持向量回归
1.6. 核方法