SVM
目标
寻找最大边缘超平面,即使得支持向量距离超平面距离尽可能大
支持向量
样本中距离超平面最近的一些点,SVM的决策边界完全由支持向量决定,因此当将能够被正确分类且远离决策边界的样本点加入到训练数据中,也不会影响改变SVM原来确定的决策边界。
最优化问题
最大化两间隔边界之间的距离
m a x w 2 ∣ ∣ w ∣ ∣ ⇒ m i n w 1 2 ∣ ∣ w ∣ ∣ s . t . y i ( w T x i + b ) ≥ 1 max_w~~~~~~~\frac{2}{||w||}\\\Rightarrow min_w~~~\frac{1}{2}||w||\\ s.t. ~~~~~y_i(w^Tx_i+b)\geq 1 maxw ∣∣w∣∣2⇒minw 21∣∣w∣∣s.t. yi(wTxi+b)≥1
对偶问题
m a x λ i f ( λ i ) = > m a x λ i − 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 max_{\lambda_i}~~~~~~~~~ f(\lambda_i)\\=> max_{\lambda_i}~~-\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\lambda_i\lambda_jy_iy_j(x_i.x_j)+\sum_{i=1}^n\lambda_i\\ s.t.~~~~~\sum_{i=1}^n\lambda_iy_i=0,~~~\lambda_i\geq0 maxλi f(λi)=>maxλi −21i=1∑nj=1∑nλiλjyiyj(xi.xj)+i=1∑nλis.t. i=1∑nλiyi=0, λi≥0
求支撑向量
求 ∂ f ( λ i ) ∂ λ i = 0 \frac{\partial f(\lambda_i)}{\partial \lambda_i}=0 ∂λi∂f(λi)=0 得到 λ i \lambda_i λi ,然后验证 ∑ i = 1 n λ i y i = 0 \sum_{i=1}^n \lambda_iy_i=0 ∑i=1nλiyi=0 ,如果满足则 λ i > 0 \lambda_i>0 λi>0 对应的样本就是支撑向量;否则分类讨论,即令其中一个 λ i = 0 \lambda_i=0 λi=0 ,求解剩余的 λ j \lambda_j λj 然后比较每次求得的 f ( λ i ) f(\lambda_i) f(λi)选择 f ( λ i ) f(\lambda_i) f(λi) 最小时候对应的 λ i \lambda_i λi ,且 λ i > 0 \lambda_i>0 λi>0对应的样本就是支撑向量。
求分界线
最优权重
w ∗ = ∑ i = 1 n λ j y i x i w^*=\sum_{i=1}^n\lambda_jy_ix_i w∗=i=1∑nλjyixi
其中 x i x_i xi是列向量
截距项
通过将任意支撑向量X(+1),代入 ∑ i = 1 K ∑ j = 1 n w i x j i + b = 1 \sum_{i=1}^K\sum_{j=1}^nw_ix_{ji}+b=1 ∑i=1K∑j=1nwixji+b=1 得到
或通过将任意支撑向量X(-1),代入 ∑ i = 1 K ∑ j = 1 n w i x j i + b = − 1 \sum_{i=1}^K\sum_{j=1}^nw_ix_{ji}+b=-1 ∑i=1K∑j=1nwixji+b=−1得到
最优分界线
∑ i = 1 K ∑ j = 1 n w i x j i + b = 0 \sum_{i=1}^K\sum_{j=1}^nw_ix_{ji}+b=0 i=1∑Kj=1∑nwixji+b=0
运用梯度下降方法求解SVM
线性SVM
改进的线性SVM目标函数——软间隔
m i n 1 2 ∣ ∣ w ∣ ∣ 2 2 + C # K min~~~~~\frac{1}{2}||w||_2^2+C\#K min 21∣∣w∣∣22+C#K
其中C表示错分的惩罚力度,#K表示所分点个数,即 K = { i K=\{i K={i| y i ( w T x i + b ) < 1 } y_i(w^Tx_i+b)<1\} yi(wTxi+b)<1}
相当于
m
i
n
1
2
∣
∣
w
∣
∣
2
2
+
C
∑
i
∈
K
(
1
−
y
i
(
w
T
x
i
+
b
)
)
min~~~~~\frac{1}{2}||w||_2^2+C \sum_{i\in K}(1-y_i(w^Tx_i+b))
min 21∣∣w∣∣22+Ci∈K∑(1−yi(wTxi+b))
参数更新
w : = w − α ( w − C ∑ i ∈ K y i x i ) b : = b + α C ∑ i ∈ K y i ~~w:=w-\alpha(w-C\sum_{i\in K}y_ix_i)\\ b:=b+\alpha C\sum_{i\in K}y_i w:=w−α(w−Ci∈K∑yixi)b:=b+αCi∈K∑yi
非线性SVM
非线性SVM目标函数
m i n 1 2 ∣ ∣ w ∣ ∣ 2 2 + C ∑ i ∈ K ( 1 − y i ( w T ϕ ( x i ) ) ) K = { i ∣ y i ( w T ϕ ( x i ) ) < 1 } , w = ∑ i = 1 n λ i y i ϕ ( x i ) min~~~~~\frac{1}{2}||w||_2^2+C \sum_{i\in K}(1-y_i(w^T\phi(x_i)))\\ K=\{i|y_i(w^T\phi(x_i))<1\},~~~~~~~w=\sum_{i=1}^n\lambda_iy_i\phi(x_i) min 21∣∣w∣∣22+Ci∈K∑(1−yi(wTϕ(xi)))K={i∣yi(wTϕ(xi))<1}, w=i=1∑nλiyiϕ(xi)
令 α i = λ i y i \alpha_i=\lambda_iy_i αi=λiyi故化简为
m i n 1 2 ∑ i , j α i α j ϕ ( x i ) T ϕ ( x j ) + C ∑ i ∈ K ( 1 − y i ( ∑ j α j ϕ ( x j ) T ϕ ( x i ) ) ) min~~~~~\frac{1}{2}\sum_{i,j}\alpha_i\alpha_j\phi(x_i)^T\phi(x_j)+C \sum_{i\in K}(1-y_i(\sum_j\alpha_j\phi(x_j)^T\phi(x_i)))\\ min 21i,j∑αiαjϕ(xi)Tϕ(xj)+Ci∈K∑(1−yi(j∑αjϕ(xj)Tϕ(xi)))
再令 K i j = ϕ ( x i ) T ϕ ( x j ) K_{ij}=\phi(x_i)^T\phi(x_j) Kij=ϕ(xi)Tϕ(xj),则最终化简为
m i n 1 2 ∑ i , j α i α j K i j + C ∑ i ∈ K ( 1 − y i ( ∑ j α j K i j ) ) min~~~~~\frac{1}{2}\sum_{i,j}\alpha_i\alpha_jK_{ij}+C \sum_{i\in K}(1-y_i(\sum_j\alpha_jK_{ij}))\\ min 21i,j∑αiαjKij+Ci∈K∑(1−yi(j∑αjKij))
参数更新
α i : = α i − η ( K ˉ α − C ∑ i ∈ K y i K i ˉ ) \alpha_i:=\alpha_i-\eta(\bar{K}\alpha -C\sum_{i\in K}y_i\bar{K_i}) αi:=αi−η(Kˉα−Ci∈K∑yiKiˉ)
模型分类结果
∑ j α j K i j < 0 = > y i = − 1 ∑ j α j K i j > 0 = > y i = 1 \sum_j\alpha_jK_{ij}<0=>y_i=-1\\ \sum_j\alpha_jK_{ij}>0=>y_i=1 j∑αjKij<0=>yi=−1j∑αjKij>0=>yi=1
根据线性、非线性目标函数的区别以及C,高斯核的 σ \sigma σ取值的性质,判断目标函数对应的分类结果图
-
C表示分错点的惩罚程度。当C越大的时候说明对分错点的惩罚程度就越大,也就是对错误点的容忍率越低,分错点就会越少,(也就是强行将分割面插在很近的两个异类点之间)这时候两支撑面之间的间隔就会变小, ∥ w ∥ \|w\| ∥w∥ 会增大。但随着C趋向无穷,也就退回到了原始SVM,没有错误点可以容忍,此时 ∥ w ∥ \|w\| ∥w∥ 不会改变,间隔也不会变,支撑向量数量减少(由于在改进SVM中那些容错点(两支撑面之间的点)也是支持向量)。
-
σ \sigma σ越小,数据点越少,越容易造成过拟合
首先发现1,2的目标函数表示的是线性SVM,而1中的C=0.1,2中的C=1,则说明2中的SVM分错点更少一点,则1对应的图为c,2对应的图为b。
其次发现3,4,5的目标函数都是非线性SVM,且3中选择的核函数是多项式,而4,5选择的是高斯核函数,则3对应的决策边界是二次曲线则图应该为b。进而,4中的 σ 2 = 1 \sigma^2=1 σ2=1,5中的 σ 2 = 0.5 \sigma^2=0.5 σ2=0.5,则5的拟合效果会更好曲线更弯曲且可能会过拟合因此5对应的e图,4对应的是a图