- 支持向量机:判别模型
- 种类:硬间隔、软间隔、核函数
- 思想:感知机是线性分类器,对线性可分的数据集可以有无穷多个超平面将其分开。而支持向量机选择其中分类最为靠谱的一个,而这个靠谱的依据是:(重要思想):1.在分类准确的前提下,2.使得离超平面最近的点离超平面的距离最远,也就是说一个点可能是很多个超平面的最近点,但是我们对比这个点离其他超平面的距离,选择最远的那一个超平面作为最终的超平面。
- 学习流程:输入空间映射特征空间,特征空间学习得到输出空间。
- 硬间隔SVM:
- 设超平面为: w x + b = 0 w x+b=0 wx+b=0,当分类为1时, w x + b > 0 w x+b>0 wx+b>0,当分类为0时, w x + b < 0 w x+b<0 wx+b<0
- 约束方程:
- 首先保证分类正确,也就是满足以上假设条件,可以简写为: y i ( w x i + b ) > 0 y_{i}\left(w x_{i}+b\right)>0 yi(wxi+b)>0
- 其次要找到距离超平面最近的点,使其到该超平面的距离为最大,也就是: max w , b min x , i 1 ∥ w ∥ ∣ w x i + b ∣ \max _{w, b} \min _{x,i} \frac{1}{\|w\|}\left|w_{x i}+b\right| w,bmaxx,imin∥w∥1∣wxi+b∣(用到了点到直线的距离公式)。为了给表达式去掉绝对值,将表达式等价替换为: max ( w , b ) 1 ∥ w ∥ min x i y i ( w x i + b ) \max _{(w, b)} \frac{1}{\|w\|} \min _{x_{i}} y_{i}\left(w x_{i}+b\right) (w,b)max∥w∥1ximinyi(wxi+b)
- 简化约束方程:对于任意一条直线,将w、b同时缩放N倍,其直线还是那条直线,不会变化。所以总存在一个倍数n,使得
min
x
i
y
i
(
w
x
i
+
b
)
\min _{x_{i}} y_{i}\left(w x_{i}+b\right)
minxiyi(wxi+b)为1,那么此时方程组变为:
{
max
w
,
b
1
∥
w
∥
s.t.
y
i
(
w
x
i
+
b
)
⩾
1
\left\{\begin{array}{ll} \max _{w, b} & \frac{1}{\|w\|} \\ \text { s.t. } & y_{i}\left(w x_{i}+b\right)\geqslant1 \end{array}\right.
{maxw,b s.t. ∥w∥1yi(wxi+b)⩾1
再将第一个方程的最大值问题转化为最小值问题:
{ min u , b 1 2 ∥ w ∥ 2 s.t. y i ( w x i + b ) ⩾ 1 \left\{\begin{array}{l}\min _{u, b} \frac{1}{2}\|w\|^{2} \\ \text { s.t. } \quad y_{i}\left(w x_{i}+b\right) \geqslant 1\end{array}\right. {minu,b21∥w∥2 s.t. yi(wxi+b)⩾1
这个称为硬间隔SVM的原问题 - 将带约束的原问题转换为不带约束的问题(拉格朗日函数):
L ( w , b , λ ) = 1 2 ∥ w ∥ 2 + ∑ i = 1 N λ i ( 1 − y i ( w ∗ x i + b ) ) L(w, b, \lambda)=\frac{1}{2}\|w\|^{2}+\sum_{i=1}^{N} \lambda_{i}\left(1-y_{i}\left(w^{*} x_{i}+b\right)\right) L(w,b,λ)=21∥w∥2+i=1∑Nλi(1−yi(w∗xi+b))
按照拉格朗日乘子法的做法,求导不利于简化问题,所以原问题变为:
{ min w , b max λ L ( w , b , λ ) s.t. λ i ⩾ 0 \left\{\begin{array}{l}\min _{w, b} \max _{\lambda} L(w, b, \lambda) \\ \text { s.t. } \quad \lambda_{i} \geqslant 0\end{array}\right. {minw,bmaxλL(w,b,λ) s.t. λi⩾0
具体变化流程如下:
- 对偶:根据拉格朗日对偶性,可以将上述方程再次变为:
{ max λ min w , b L ( w , b , λ ) s.t. λ i ⩾ 0 \left\{\begin{array}{l}\max _{\lambda} \min _{w, b} L(w, b, \lambda) \\ \text { s.t. } \lambda_{i} \geqslant 0\end{array}\right. {maxλminw,bL(w,b,λ) s.t. λi⩾0 - 分别对上式
min
w
,
b
L
(
w
,
b
,
x
)
\min _{w, b} L(w, b, x)
minw,bL(w,b,x)中w和b求偏导=0,得到两等式,代入
L
L
L中得:
{ max λ ( − 1 2 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j x i T x j + ∑ k = 1 N λ i ) s.t. λ i = 0 \left\{\begin{array}{l}\max _{\lambda}\left(-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \lambda_{i} \lambda_{j} y_{i} y_{j} x_{i}^{T} x_{j}+\sum_{k=1}^{N} \lambda_{i}\right) \\ \text { s.t. } \lambda_{i}=0\end{array}\right. {maxλ(−21∑i=1N∑j=1NλiλjyiyjxiTxj+∑k=1Nλi) s.t. λi=0
再将上式中的最大值问题转换为最小值问题,然后求解 λ i \lambda_{i} λi - 根据KKT条件,代入
λ
i
\lambda_{i}
λi得到w和b
这样就得到了最终想要的超平面。
- 软间隔SVM:
- 再训练数据中噪声点或者非线性分割可以解决的情况存在,那么用到了软间隔。
- 线性不可分意味着某些样本点
(
x
i
,
y
i
)
\left(x_{i}, y_{i}\right)
(xi,yi) 不能满足函数间隔大于等于 1 的约束条 件 (7.14). 为了解决这个问题, 可以对每个样本点
(
x
i
,
y
i
)
\left(x_{i}, y_{i}\right)
(xi,yi) 引进一个松他变量
ξ
i
⩾
0
\xi_{i} \geqslant 0
ξi⩾0,使函数间隔加上松他变量大于等于 1。这样,约束条件变为
y i ( w ⋅ x i + b ) ⩾ 1 − ξ i y_{i}\left(w \cdot x_{i}+b\right) \geqslant 1-\xi_{i} yi(w⋅xi+b)⩾1−ξi
同时,对每个松他变量 ξ i , \xi_{i}, ξi, 支付一个代价 ξ i . \xi_{i} . ξi. 目标函数由原来的 1 2 ∥ w ∥ 2 \frac{1}{2}\|w\|^{2} 21∥w∥2 变成
1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i \frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{N} \xi_{i} 21∥w∥2+Ci=1∑Nξi
这里, C > 0 称为惩罚参数,一般由应用问题决定, C 值大时对误分类的惩罚增大, C 值小时对误分类的惩罚减小. 最小化目标函数包含两层含义: 使 1 2 ∥ w ∥ 2 \frac{1}{2}\|w\|^{2} 21∥w∥2 尽量小即间隔尽量大,同时使误分类点的个数尽量小, C 是调和二者的系数。
- 运用核函数的SVM
- 将硬间隔推导过程中的x变量转换到z特征空间中。
统计学习方法(七):支持向量机(SVM)
最新推荐文章于 2022-01-17 17:31:18 发布