第7章 支持向量机
支持向量机
(support vector machines, SVM)是一种二类分类模型基本模型
是定义在特征空间上的间隔最大的线性分类器,区别于感知机核技巧
使其成为实质上的非线性分类起学习策略
是间隔最大化,形式化为求解凸二次规划问题,等价于正则化的合页损失函数最小化问题学习算法
是求解凸二次规划的最优化算法线性可分支持向量机
,也称硬间隔支持向量机
,对先行可分的训练数据,通过硬间隔最大化
学习。线性支持向量机
,也称软间隔支持向量机
,对近似线性可分的训练数据,通过软间隔最大化
学习。非线性支持向量机
,对先行不可分的训练数据,通过核技巧
和软间隔最大化
学习。- 感知机利用误分类最小策略,无穷多解;线性可分支持向量机利用间隔最大化策略,解唯一。
- 点到超平面距离可表示分类预测的确信程度。用
函数间隔
y(w⋅x+b) y ( w ⋅ x + b ) 来表示分类的正确性(符号)和确信度(距离) - 通过对超平面法向量w添加约束,如规范化,
∥w∥=1
‖
w
‖
=
1
,则间隔确定,称为
几何间隔
- 则,几何间隔为
γi=yi(w∥w∥⋅xi+b∥w∥) γ i = y i ( w ‖ w ‖ ⋅ x i + b ‖ w ‖ ) - 间隔最大化的直观解释:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。
线性可分支持向量机学习算法——最大间隔法
输入:线性可分训练数据集 T={(x1,y1),(x2,y2),...,(xN,yN)} T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } ,其中 xi∈X=Rn,yi∈Y={−1,+1},I=1,2,...,N x i ∈ X = R n , y i ∈ Y = { − 1 , + 1 } , I = 1 , 2 , . . . , N
输出:最大间隔分离超平面和分类决策函数
(1)构造并求解约束最优化问题:
minw,b12∥w∥2s.t. yi(w⋅xi+b)−1≥0, i=1,2,...,N min w , b 1 2 ‖ w ‖ 2 s . t . y i ( w ⋅ x i + b ) − 1 ≥ 0 , i = 1 , 2 , . . . , N
求最优解 w∗,b∗ w ∗ , b ∗
(2)由此得到分离超平面:
w∗⋅x+b∗=0 w ∗ ⋅ x + b ∗ = 0
分类决策函数
f(x)=sign(w∗⋅x+b∗) f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ )- 线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为
支持向量
(support vector)
yi(w⋅xi+b)−1=0 y i ( w ⋅ x i + b ) − 1 = 0
- H1和H2之间的距离称为
间隔
(margin),等于 2∥w∥ 2 ‖ w ‖ - 决定分离超平面时只有支持向量起作用,其他实例点不起作用
线性可分支持向量机学习算法
输入:线性可分训练数据集 T={(x1,y1),(x2,y2),...,(xN,yN)} T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } ,其中 xi∈X=Rn,yi∈Y={−1,+1},I=1,2,...,N x i ∈ X = R n , y i ∈ Y = { − 1 , + 1 } , I = 1 , 2 , . . . , N
输出:最大间隔分离超平面和分类决策函数
(1)构造并求解约束最优化问题
minα 12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαis.t. ∑i=1Nαiyi=0αi≥0, i=1,2,...,N min α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 α i ≥ 0 , i = 1 , 2 , . . . , N
求的最优解 α∗=(α∗1,α∗2,...,α∗N)T α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α N ∗ ) T
(2)计算
w∗=∑i=1Nα∗iyixi w ∗ = ∑ i = 1 N α i ∗ y i x i
并选择 α∗ α ∗ 的一个正分量 α∗j>0 α j ∗ > 0 计算
b∗=yj−∑I=1Nα∗iyi(xi⋅xj) b ∗ = y j − ∑ I = 1 N α i ∗ y i ( x i ⋅ x j )
(3)由此得到分离超平面:
w∗⋅x+b∗=0 w ∗ ⋅ x + b ∗ = 0
分类决策函数
f(x)=sign(w∗⋅x+b∗) f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ )- 线性支持向量机引入松弛变量
ξi≥0
ξ
i
≥
0
,目标函数变为
12∥w∥2+C∑i=1Nξi 1 2 ‖ w ‖ 2 + C ∑ i = 1 N ξ i - C>0 C > 0 为惩罚参数,C越大对误分类惩罚越大,是调和系数。 12∥w∥2 1 2 ‖ w ‖ 2 使间隔尽量小, ∑Ni=1ξi ∑ i = 1 N ξ i 使误分类个数尽量小
线性支持向量机学习算法
(略)P112- 软间隔的支持向量在间隔边界上、或间隔边界与分离超平面之间,或分离超平面误分一侧
- 对线性支持向量机来说,其
模型
为分离超平面和决策函数,策略
为软间隔最大化,算法
为凸二次规划 - 线性支持向量机学习的另一种解释,最小化以下目标函数
∑I=1N[1−yi(w⋅xi+b)]++λ∥w∥2 ∑ I = 1 N [ 1 − y i ( w ⋅ x i + b ) ] + + λ ‖ w ‖ 2
第一项为经验损失, L(y(w⋅x+b))=[1−y(w⋅x+b)]+ L ( y ( w ⋅ x + b ) ) = [ 1 − y ( w ⋅ x + b ) ] + 称为合页损失函数
- 若能用 Rn R n 中的一个超曲面将正负例正确分开,则称这个问题为非线性可分问题
- 用线性分类问题的方法解决非线性问题:非线性变换,将非线性问题变换为线性问题,核技巧:
(1)使用一个变换将原空间的数据映射到新空间
(2)在新空间里用线性分类学习方法从训练数据中学习分类模型 - 在学习和预测中只定义和函数
K(x,z)=ϕ(x)⋅ϕ(z)
K
(
x
,
z
)
=
ϕ
(
x
)
⋅
ϕ
(
z
)
,而不显示定义映射函数
ϕ
ϕ
f(x)=sign(∑i=1Nsa∗iyiK(xi,x)+b∗) f ( x ) = s i g n ( ∑ i = 1 N s a i ∗ y i K ( x i , x ) + b ∗ ) - 学习是隐式地在特征空间中进行,不需要显示定义特征空间和映射函数
- 核函数——正定核函数
- 常用的核函数:
(1)多项式核函数(polynomial kernel function)
K(x,z)=(x⋅z+1)p K ( x , z ) = ( x ⋅ z + 1 ) p
(2)高斯核函数(Gaussian kernel function)
K(x,z)=exp(−∥x−z∥22σ2) K ( x , z ) = e x p ( − ‖ x − z ‖ 2 2 σ 2 )
(3)字符串核函数 - 序列最小最优化算法(SMO)是一种启发算法,基本思路:如果所有的变量的解都满足此最优化问题的KKT条件,那么这个最优化问题的解就得到了。通过将原问题不断地分解为子问题并对子问题求解。
(1)求解两个变量二次规划的解析方法
(2)选择变量的启发式方法