{ w T x + b > 0 y i = 1 ⟺ y ( x i ) > 0 w T x + b < 0 y i = − 1 ⟺ y ( x i ) < 0 \begin{cases} w^Tx+b>0 \quad y_i=1 \Longleftrightarrow y(x_i)>0\\ w^Tx+b<0 \quad y_i=-1 \Longleftrightarrow y(x_i)<0\\ \end{cases} {wTx+b>0yi=1⟺y(xi)>0wTx+b<0yi=−1⟺y(xi)<0
将点到直线的距离转化为: ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ ( 几 何 间 距 ) ⟺ y i ∣ w T x + b ∣ ⩾ 0 ∣ ∣ w ∣ ∣ ( 函 数 间 隔 ) \frac{|w^Tx+b|}{||w||}(几何间距)\Longleftrightarrow\frac{y_i|w^Tx+b|\geqslant0}{||w||}(函数间隔) ∣∣w∣∣∣wTx+b∣(几何间距)⟺∣∣w∣∣yi∣wTx+b∣⩾0(函数间隔)
进行缩放变换:使 ∣ Y ∣ ⩾ 1 ⇒ y i ∣ w T x + b ∣ ⩾ 1 |Y|\geqslant1\Rightarrow y_i|w^Tx+b|\geqslant1 ∣Y∣⩾1⇒yi∣wTx+b∣⩾1(之前我们认为恒大于0,现在严格了些)
优化目标: a r g m a x ( w , b ) { 1 ∣ ∣ w ∣ ∣ m i n ( i ) [ y i ( w T x + b ) ] } argmax(w,b)\{\frac{1}{||w||}min(i)[y_i(w^Tx+b)]\} argmax(w,b){∣∣w∣∣1min(i)[yi(wTx+b)]}
优化目标: a r g m a x ( w , b ) { 1 ∣ ∣ w ∣ ∣ } s t . y i ∣ w T x + b ∣ ⩾ 1 argmax(w,b)\{\frac{1}{||w||}\} \quad st. y_i|w^Tx+b|\geqslant1 argmax(w,b){∣∣w∣∣1}st.yi∣wTx+b∣⩾1
优化目标: m i n ( w , b ) { 1 2 ∣ ∣ w ∣ ∣ 2 } s t . y i ∣ w T x + b ∣ ⩾ 1 min(w,b)\{\frac{1}{2}{||w||^2}\} \quad st. y_i|w^Tx+b|\geqslant1 min(w,b){21∣∣w∣∣2}st.yi∣wTx+b∣⩾1
拉格朗日乘子法求解: L ( ω , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 n α i ( y i ( w T x i + b ) − 1 ) s t . y i ∣ w T x + b ∣ ⩾ 1 L(\omega,b,\alpha)=\frac{1}{2}{||w||^2}-\sum_{i=1}^n\alpha_i(y_i(w^Tx_i+b)-1) \quad st. y_i|w^Tx+b|\geqslant1 L(ω,b,α)=21∣∣w∣∣2−∑i=1nαi(yi(wTxi+b)−1)st.yi∣wTx+b∣⩾1
求导可得:
{ ∂ L ∂ ω = ω − ∑ i = 1 n α i y i x i = 0 ∂ L ∂ b = ∑ i = 1 n α i y i = 0 \begin{cases} \frac{\partial L}{\partial \omega}=\omega-\sum_{i=1}^n\alpha_iy_ix_i=0\\ \frac{\partial L}{\partial b}=\sum_{i=1}^n\alpha_iy_i=0\\ \end{cases} {∂ω∂L=ω−∑i=1nαiyixi=0∂b∂L=∑i=1nαiyi=0
将求导后的式子带入L可得: L ( ω , b , α ) = ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j x i x j s t . ∑ i = 1 n α i y i ⩾ 0 且 α i ⩾ 0 L(\omega,b,\alpha)=\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_jx_ix_j \quad st. \sum_{i=1}^n\alpha_iy_i\geqslant0且\alpha_i\geqslant0 L(ω,b,α)=∑i=1nαi−21∑i=1n∑j=1nαiαjyiyjxixjst.∑i=1nαiyi⩾0且αi⩾0
求解得:
{ α i = 0 不 是 支 持 向 量 α i ≠ 0 是 支 持 向 量 \begin{cases} \alpha_i=0\quad不是支持向量\\ \alpha_i\ne0\quad是支持向量 \end{cases} {αi=0不是支持向量αi=0是支持向量
一、优点
1.SVM只由支持向量决定,计算的复杂度取决于支持向量的数量,在某种意义上避免‘维度灾难’
2. 具有一定的鲁棒性(增删非支持向量对模型无影响)
3. 理论完善
一、缺点
1.大规模训练样本难以实施,存储与计算将耗费大量内存与时间
2.对缺失数据敏感
3. 可解释能力弱
4. 解决多分类问题困难
5. 核函数选择不易
1. SVM几种原理
1、线性可分: 硬间隔最大化
2、线性近似可分(有个别点偏移): 引入松弛变量(软间隔最大化)
3、非线性支持向量机(引入线性核函数(实际求解时不在高维上,因为可能无穷维,求解不易),线性不可分): 高斯核 K ( x , x i ) = e x p ( − ∣ ∣ x − x i ∣ ∣ 2 σ 2 ) ( σ 小 会 带 来 过 拟 合 ) K(x,x_i)=exp(-\frac{||x-x_i||^2}{\sigma^2})(\sigma小会带来过拟合) K(x,xi)=exp(−σ2∣∣x−xi∣∣2)(σ小会带来过拟合)
2. SVM为什么采用间隔最大化?
获得最优解,泛化能力最强(因为解有无穷多个)
3. SVM处理多分类问题?
1、一对多: 将某一类归一类,其余类归一类共训练K个类K个分类器,用K个分类器来测试新样本,哪个分类器概率(p)高就预测为哪一类(bias较高)
2、一对一: 任意两个类训练一个分类器,一共训练 C k 2 C_k^2 Ck2个分类器,最后投票判别