一、线性可分支持向量机(针对二分类问题讨论)
线性可分SVM的基本思想:
一般数据线性可分时存在无穷多个分离超平面能将两类数据分开,线性SVM利用间隔最大化的策略求最优的分类超平面,解是唯一的。
数据说明:
m
个样本点,
假设超平面:
ωTx+b=0
任意样本点
xi
到面的距离:
|ωTxi+b|||ω||
去分子绝对值:因为线性可分,分子可改写成
yi(ωTxi+b)
得
yi(ωTxi+b)||ω||
问题就转化为A:
问题A:
max(minyi(ωTxi+b)||ω||) ==> 求解目标
s.t.yi(ωTxi+b)≥0i=1,..,m ==> 线性可分的条件
由于等比例缩放
ω
和
b
并不会改变超平面,我们就取使得
问题A就转化为B,同时增加了一个约束条件:
max(1||ω||) ==> 求解目标
s.t.
yi(ωTxi+b)≥0i=1,..,m ==> 线性可分的条件
mini=1,2,..,myi(ωTxi+b)=1 ==> 增加的条件显然,满足增加的条件,自然就会满足线性可分的条件,因此增加的是一个更严格的条件,可以去掉线性的条件,问题B简化为:
问题B:
max(1||ω||) ==> 求解目标
s.t.mini=1,2,..,myi(ωTxi+b)=1 ==> 增加的条件现在我想去掉 min 的符号,将条件放松至 yi(ωTxi+b)≥1
得到问题C:问题C:
max(1||ω||) ==> 求解目标
s.t.yi(ωTxi+b)≥1i=1,..,m ==> 条件问题B和问题C是等价的,C中等号是必须成立的,可以用反证法证明(若等号不成立,假设大于等于2,存在 ω∗=ω/2,b∗=b/2 使得C中求解目标可以进一步增大,产生矛盾)。
这样就得到了线性可分SVM的原始问题:
原始问题:
max(1||ω||)
s.t.yi(ωTxi+b)≥1i=1,..,m一般最优化问题习惯性转化为最小化问题,为计算方便加上平方和1/2
原始问题:
min12||ω||2
s.t.yi(ωTxi+b)≥1i=1,..,m
原始问题是一个凸二次规划问题,可以直接使用现成的计算包求解,但效率低,可以专门指针具体问题做优化。可以将原始问题利用拉格朗日乘子法转化为对偶问题。根据拉格朗日的对偶性,原始问题的对偶问题是极大极小问题。
L(ω,b,α)=12||ω||2+∑i=1mαi[1−yi(ωTxi+b)]
其中 αi≥0i=1,2,...,m
maxαminω,b(L(ω,b,α))所以先求极小,再求极大。求极小就需要 L 分别对
ω 和 b 求偏导,令偏导为0.得到
ω=∑i=1mαiyixi ==> 此公式可用来求解 ω
∑i=1mαiyi=0将上述二个式子代入 L 中,化简的
minω,bL(ω,b,α)=−12∑i=1m∑j=1mαiαjyiyj(xixj)+∑i=1mαi 问题就转化为
maxα(−12∑i=1m∑j=1mαiαjyiyj(xixj)+∑i=1mαi)
s.t.∑i=1mαiyi=0
αi≥0,i=1,2,...,m将极大问题转换为极小问题
minα(12∑i=1m∑j=1mαiαjyiyj(xixj)−∑i=1mαi)
s.t.∑i=1mαiyi=0
αi≥0,i=1,2,...,m
此问题可用SMO算法高效的算出 α 的解。由KKT条件可以计算出 b 的值
ω∗=∑i=1mαiyixi ==> 此公式用于求解 ω
b∗=yi−∑i=1mαiyixixj ⇒ 此公式用于求解 b
最终的分类决策函数:
f(x)=sign(ω∗x+b∗)