文章目录

  • 0. 前言
  • 1. 拉格朗日乘子法
  • 2. SVM参数求解方法
  • 3. 软间隔
  • 4. 核方法
  • 5. 支持向量回归

如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~

0. 前言

在样本空间中,划分超平面可通过线性方程wTx+b=0w^Tx+b=0wTx+b=0决定。

严格的说,对超平面设置上界和下界,如下图所示(图源:机器学习):

并满足:
{wTxi+b⩾+1,yi=+1wTxi+b⩽−1,yi=−1\left\{\begin{matrix} w^Tx_i+b\geqslant +1,\ y_i=+1\\ w^Tx_i+b\leqslant -1,\ y_i=-1 \end{matrix}\right. {wTxi​+b⩾+1, yi​=+1wTxi​+b⩽−1, yi​=−1​

支持向量定义为使得上式等号成立的向量,上界下界的距离称为间隔
γ=2∣∣w∣∣\gamma=\frac{2}{||w||} γ=∣∣w∣∣2​

1. 拉格朗日乘子法

拉格朗日乘子法(Lagrange multipliers)是一种寻找多元函数在一组约束下的极值的方法。

假设问题具有mmm个等式约束和nnn个不等式约束:
min⁡xf(x)s.t.hi(x)=0(i=1,..,m)gj(x)⩽0(j=1,...,n)\begin{aligned} \min_x\ \ &f(x)\\ s.t.\ \ &h_i(x)=0\ \ (i=1,..,m)\\ &g_j(x)\leqslant 0\ \ (j=1,...,n) \end{aligned} xmin​  s.t.  ​f(x)hi​(x)=0  (i=1,..,m)gj​(x)⩽0  (j=1,...,n)​

引入拉格朗日乘子λμ\lambda\ \muλ μ,相应的拉格朗日函数为:
L(x,λ,μ)=f(x)+∑i=1mλihi(x)+∑j=1nμjgj(x)L(x,\lambda, \mu)=f(x)+\sum_{i=1}^m\lambda_ih_i(x)+\sum_{j=1}^n\mu_jg_j(x) L(x,λ,μ)=f(x)+i=1∑m​λi​hi​(x)+j=1∑n​μj​gj​(x)

对应的KKT条件(Karush-Kuhn-Tucker)为:
{∇xL=0hi(x)=0gj(x)⩽0μj⩾0μjgj(x)=0\left\{\begin{aligned} &\nabla_xL=0\\ &h_i(x)=0\\ &g_j(x)\leqslant 0\\ &\mu_j\geqslant 0\\ &\mu_jg_j(x)=0 \end{aligned}\right. ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​​∇x​L=0hi​(x)=0gj​(x)⩽0μj​⩾0μj​gj​(x)=0​

2. SVM参数求解方法

欲找到最大间隔划分超平面,需要满足:
min⁡w,b12∣∣w∣∣2s.t.yi(wTxi+b)⩾1,i=1,...,m\begin{aligned} \min_{w,b}\ \ &\frac{1}{2}||w||^2\\ s.t.\ \ &y_i(w^Tx_i+b)\geqslant 1,\ i=1,...,m \end{aligned} w,bmin​  s.t.  ​21​∣∣w∣∣2yi​(wTxi​+b)⩾1, i=1,...,m​

根据拉格朗日乘子法,有下式:
L(w,b,α)=12∣∣w∣∣2+∑i=1mαi(1−yi(wTxi+b))∂L∂w=0⇒w=∑i=1mαiyixi∂L∂b=0⇒0=∑i=1mαiyiL(w,b,\alpha)=\frac{1}{2}||w||^2+\sum_{i=1}^m\alpha_i(1-y_i(w^Tx_i+b))\\ \begin{aligned} &\frac{\partial L}{\partial w}=0\Rightarrow w=\sum_{i=1}^m\alpha_iy_ix_i\\ &\frac{\partial L}{\partial b}=0\Rightarrow 0=\sum_{i=1}^m\alpha_iy_i \end{aligned} L(w,b,α)=21​∣∣w∣∣2+i=1∑m​αi​(1−yi​(wTxi​+b))​∂w∂L​=0⇒w=i=1∑m​αi​yi​xi​∂b∂L​=0⇒0=i=1∑m​αi​yi​​

可得到对偶问题
max⁡α∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjxiTxjs.t.∑i=1mαiyi=0,αi⩾0,i=1,...,m\begin{aligned} \max_\alpha\ \ &\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_jx_i^Tx_j\\ s.t.\ \ &\sum_{i=1}^m\alpha_iy_i=0,\\ &\alpha_i\geqslant 0,\ i=1,...,m \end{aligned} αmax​  s.t.  ​i=1∑m​αi​−21​i=1∑m​j=1∑m​αi​αj​yi​yj​xiT​xj​i=1∑m​αi​yi​=0,αi​⩾0, i=1,...,m​

对应的KKT条件
{αi⩾0yif(xi)−1⩾0αi(yif(xi)−1)=0\left\{\begin{aligned} &\alpha_i \geqslant 0\\ &y_if(x_i)-1\geqslant 0\\ &\alpha_i(y_if(x_i)-1)=0 \end{aligned}\right. ⎩⎪⎨⎪⎧​​αi​⩾0yi​f(xi​)−1⩾0αi​(yi​f(xi​)−1)=0​

采用SMO(Sequential Minimal Optimization)求解参数:先固定αi\alpha_iαi​之外的所有参数,然后求αi\alpha_iαi​上的极值(αi\alpha_iαi​可以通过其他变量导出),于是,SMO每次选择两个变量αi\alpha_iαi​和αj\alpha_jαj​,并固定其他参数,求解拉格朗日乘子法的对偶问题,更新αi\alpha_iαi​和αj\alpha_jαj​,迭代这个过程到收敛为止

求解出α\alphaα之后,可得超平面f(x)=wTx+b=∑i=1mαiyixiTx+bf(x)=w^Tx+b=\sum_{i=1}^m\alpha_iy_ix_i^Tx+bf(x)=wTx+b=∑i=1m​αi​yi​xiT​x+b。其中,对任意支持向量ysf(xs)=1y_sf(x_s)=1ys​f(xs​)=1,所以可得b=1∣S∣∑s∈S(1/ys−∑i∈SαiyixiTxs)b=\frac{1}{|S|}\sum_{s\in S}(1/y_s-\sum_{i\in S}\alpha_iy_ix_i^Tx_s)b=∣S∣1​∑s∈S​(1/ys​−∑i∈S​αi​yi​xiT​xs​)。

3. 软间隔

很多时候数据并不是线性可分的,无法辨别找到的超平面是否是过拟合引起的问题。

可采用软间隔,允许SVM在一些样本上出错。引入松弛变量ξ\xiξ:
min⁡w,b,ξ12∣∣w∣∣2+C∑i=1mξis.t.yi(wTxi+b)⩾1−ξiξi⩾0,i=1,...,m\begin{aligned} \min_{w,b,\xi}\ \ & \frac{1}{2}||w||^2+C\sum_{i=1}^m\xi_i\\ s.t.\ \ & y_i(w^Tx_i+b)\geqslant 1-\xi_i\\ & \xi_i\geqslant 0,\ i=1,...,m \end{aligned} w,b,ξmin​  s.t.  ​21​∣∣w∣∣2+Ci=1∑m​ξi​yi​(wTxi​+b)⩾1−ξi​ξi​⩾0, i=1,...,m​

根据拉格朗日乘子法,有下式:
L(w,b,ξ,α,μ)=12∣∣w∣∣2+C∑i=1mξi+∑i=1mαi(1−ξi−yi(wTxi+b))−∑i=1mμiξi∂L∂w=0⇒w=∑i=1mαiyixi∂L∂b=0⇒0=∑i=1mαiyi∂L∂ξi=0⇒C=αi+μiL(w,b,\xi,\alpha,\mu)=\frac{1}{2}||w||^2+C\sum_{i=1}^m\xi_i+\sum_{i=1}^m\alpha_i(1-\xi_i-y_i(w^Tx_i+b))-\sum_{i=1}^m\mu_i\xi_i\\ \begin{aligned} &\frac{\partial L}{\partial w}=0\Rightarrow w=\sum_{i=1}^m\alpha_iy_ix_i\\ &\frac{\partial L}{\partial b}=0\Rightarrow 0=\sum_{i=1}^m\alpha_iy_i\\ &\frac{\partial L}{\partial \xi_i}=0\Rightarrow C=\alpha_i+\mu_i \end{aligned} L(w,b,ξ,α,μ)=21​∣∣w∣∣2+Ci=1∑m​ξi​+i=1∑m​αi​(1−ξi​−yi​(wTxi​+b))−i=1∑m​μi​ξi​​∂w∂L​=0⇒w=i=1∑m​αi​yi​xi​∂b∂L​=0⇒0=i=1∑m​αi​yi​∂ξi​∂L​=0⇒C=αi​+μi​​

可得到对偶问题,与硬间隔唯一的差别在于约束条件:
max⁡α∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjxiTxjs.t.∑i=1mαiyi=0,0⩽αi⩽C,i=1,...,m\begin{aligned} \max_\alpha\ \ &\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_jx_i^Tx_j\\ s.t.\ \ &\sum_{i=1}^m\alpha_iy_i=0,\\ &0\leqslant \alpha_i\leqslant C,\ i=1,...,m \end{aligned} αmax​  s.t.  ​i=1∑m​αi​−21​i=1∑m​j=1∑m​αi​αj​yi​yj​xiT​xj​i=1∑m​αi​yi​=0,0⩽αi​⩽C, i=1,...,m​

对应的KKT条件
{αi⩾0,μi⩾0yif(xi)−1+ξi⩾0αi(yif(xi)−1+ξi)=0ξi⩾0,μiξi⩾0\left\{\begin{aligned} &\alpha_i \geqslant 0,\ \ \mu_i\geqslant 0\\ &y_if(x_i)-1+\xi_i\geqslant 0\\ &\alpha_i(y_if(x_i)-1+\xi_i)=0\\ &\xi_i\geqslant 0,\ \ \mu_i\xi_i\geqslant 0 \end{aligned}\right. ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧​​αi​⩾0,  μi​⩾0yi​f(xi​)−1+ξi​⩾0αi​(yi​f(xi​)−1+ξi​)=0ξi​⩾0,  μi​ξi​⩾0​

4. 核方法

将样本从原始空间映射到更高维的特征空间,使得样本在这个特征空间内线性可分

核函数表示为:k(xi,xj)=ϕ(xi)Tϕ(xj)k(x_i,x_j)=\phi(x_i)^T\phi(x_j)k(xi​,xj​)=ϕ(xi​)Tϕ(xj​)

拉格朗日乘子法对偶问题修改为:
max⁡α∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjk(xi,xj)s.t.∑i=1mαiyi=0,αi⩾0,i=1,...,m\begin{aligned} \max_\alpha\ \ &\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_jk(x_i,x_j)\\ s.t.\ \ &\sum_{i=1}^m\alpha_iy_i=0,\\ &\alpha_i\geqslant 0,\ i=1,...,m \end{aligned} αmax​  s.t.  ​i=1∑m​αi​−21​i=1∑m​j=1∑m​αi​αj​yi​yj​k(xi​,xj​)i=1∑m​αi​yi​=0,αi​⩾0, i=1,...,m​

超平面修改为:f(x)=wTϕ(x)+bf(x)=w^T\phi(x)+bf(x)=wTϕ(x)+b

常见的核函数如下图所示(图源:机器学习):

5. 支持向量回归

支持向量回归(Support Vector Regression)构建一个2ε2\varepsilon2ε的间隔带,若样本落入间隔带,则被认为预测正确。

间隔带两侧松弛程度不同,有:
min⁡w,b,ξ,ξ^12∣∣w∣∣2+C∑i=1m(ξi+ξ^i)s.t.f(xi)−yi⩽ε+ξiyi−f(xi)⩽ε+ξ^iξi⩾0,ξ^i⩾0,i=1,...,m\begin{aligned} \min_{w,b,\xi,\hat{\xi}}\ \ & \frac{1}{2}||w||^2+C\sum_{i=1}^m(\xi_i+\hat{\xi}_i)\\ s.t.\ \ & f(x_i)-y_i\leqslant \varepsilon+\xi_i\\ & y_i-f(x_i)\leqslant \varepsilon+\hat{\xi}_i\\ & \xi_i\geqslant 0,\ \hat{\xi}_i\geqslant 0,\ i=1,...,m \end{aligned} w,b,ξ,ξ^​min​  s.t.  ​21​∣∣w∣∣2+Ci=1∑m​(ξi​+ξ^​i​)f(xi​)−yi​⩽ε+ξi​yi​−f(xi​)⩽ε+ξ^​i​ξi​⩾0, ξ^​i​⩾0, i=1,...,m​

根据拉格朗日乘子法,有下式:
L(w,b,ξ,ξ^,α,α^,μ,μ^)=12∣∣w∣∣2+C∑i=1m(ξi+ξ^i)−∑i=1mμiξi−∑i=1mμ^iξ^i+∑i=1mαi(f(xi)−yi−ε−ξi)+∑i=1mα^i(yi−f(xi)−ε−ξ^i)∂L∂w=0⇒w=∑i=1m(αi^−αi)xi∂L∂b=0⇒0=∑i=1m(α^i−αi)∂L∂ξi=0⇒C=αi+μi∂L∂ξ^i=0⇒C=α^i+μ^i\begin{aligned} &L(w,b,\xi,\hat{\xi},\alpha,\hat{\alpha},\mu,\hat{\mu})\\ &=\frac{1}{2}||w||^2+C\sum_{i=1}^m(\xi_i+\hat{\xi}_i)-\sum_{i=1}^m\mu_i\xi_i-\sum_{i=1}^m\hat{\mu}_i\hat{\xi}_i\\ &+\sum_{i=1}^m\alpha_i(f(x_i)-y_i-\varepsilon-\xi_i)+\sum_{i=1}^m\hat{\alpha}_i(y_i-f(x_i)-\varepsilon-\hat{\xi}_i)\\ \end{aligned}\\ \begin{aligned} &\frac{\partial L}{\partial w}=0\Rightarrow w=\sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)x_i\\ &\frac{\partial L}{\partial b}=0\Rightarrow 0=\sum_{i=1}^m(\hat{\alpha}_i-\alpha_i)\\ &\frac{\partial L}{\partial \xi_i}=0\Rightarrow C=\alpha_i+\mu_i\\ &\frac{\partial L}{\partial \hat{\xi}_i}=0\Rightarrow C=\hat{\alpha}_i+\hat{\mu}_i \end{aligned} ​L(w,b,ξ,ξ^​,α,α^,μ,μ^​)=21​∣∣w∣∣2+Ci=1∑m​(ξi​+ξ^​i​)−i=1∑m​μi​ξi​−i=1∑m​μ^​i​ξ^​i​+i=1∑m​αi​(f(xi​)−yi​−ε−ξi​)+i=1∑m​α^i​(yi​−f(xi​)−ε−ξ^​i​)​​∂w∂L​=0⇒w=i=1∑m​(αi​^​−αi​)xi​∂b∂L​=0⇒0=i=1∑m​(α^i​−αi​)∂ξi​∂L​=0⇒C=αi​+μi​∂ξ^​i​∂L​=0⇒C=α^i​+μ^​i​​

可得到对偶问题
max⁡α∑i=1myi(αi^−αi)−ε(αi^+αi)−12∑i=1m∑j=1m(αi^−αi)(αj^−αj)xiTxjs.t.∑i=1m(αi^−αi)=0,0⩽αi,αi^⩽C,i=1,...,m\begin{aligned} \max_\alpha\ \ &\sum_{i=1}^my_i(\hat{\alpha_i}-\alpha_i)-\varepsilon(\hat{\alpha_i}+\alpha_i)-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m(\hat{\alpha_i}-\alpha_i)(\hat{\alpha_j}-\alpha_j)x_i^Tx_j\\ s.t.\ \ &\sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)=0,\\ &0\leqslant \alpha_i,\hat{\alpha_i}\leqslant C,\ i=1,...,m \end{aligned} αmax​  s.t.  ​i=1∑m​yi​(αi​^​−αi​)−ε(αi​^​+αi​)−21​i=1∑m​j=1∑m​(αi​^​−αi​)(αj​^​−αj​)xiT​xj​i=1∑m​(αi​^​−αi​)=0,0⩽αi​,αi​^​⩽C, i=1,...,m​

对应的KKT条件
{αi(f(xi)−yi−ε−ξi)=0αi^(yi−f(xi)−ε−ξ^i)=0αiαi^=0,ξiξ^i=0(C−αi)ξi=0,(C−αi^)ξ^i=0\left\{\begin{aligned} &\alpha_i(f(x_i)-y_i-\varepsilon-\xi_i)=0\\ &\hat{\alpha_i}(y_i-f(x_i)-\varepsilon-\hat{\xi}_i)=0\\ &\alpha_i\hat{\alpha_i}=0,\ \xi_i\hat{\xi}_i=0\\ &(C-\alpha_i)\xi_i=0,\ (C-\hat{\alpha_i})\hat{\xi}_i=0 \end{aligned}\right. ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧​​αi​(f(xi​)−yi​−ε−ξi​)=0αi​^​(yi​−f(xi​)−ε−ξ^​i​)=0αi​αi​^​=0, ξi​ξ^​i​=0(C−αi​)ξi​=0, (C−αi​^​)ξ^​i​=0​

SVR的解表示为:f(x)=∑i=1m(αi^−αi)xiTx+bf(x)=\sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)x_i^Tx+bf(x)=∑i=1m​(αi​^​−αi​)xiT​x+b。

其中,b=yi+ε−∑j=1m(αj^−αj)xjTxib=y_i+\varepsilon-\sum_{j=1}^m(\hat{\alpha_j}-\alpha_j)x_j^Tx_ib=yi​+ε−∑j=1m​(αj​^​−αj​)xjT​xi​。


如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~

西瓜书+实战+吴恩达机器学习(十)监督学习之支持向量机 Support Vector Machine相关推荐

  1. 西瓜书+实战+吴恩达机器学习(二)机器学习基础(偏差、方差、调试模型技巧)

    文章目录 0. 前言 1. 偏差方差的解决方法 2. 高偏差高方差的学习曲线 3. 调试模型技巧 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 0. 前言 泛化误差可分解为 ...

  2. 西瓜书+实战+吴恩达机器学习(十六)半监督学习(半监督SVM、半监督k-means、协同训练算法)

    文章目录 0. 前言 1. 半监督SVM 2. 半监督k-means 2.1. 约束k-means 2.2. 约束种子k-means 3. 协同训练算法 如果这篇文章对你有一点小小的帮助,请给个关注, ...

  3. 西瓜书+实战+吴恩达机器学习(十五)无监督学习之关联分析(Apriori, FP-growth)

    文章目录 0. 前言 1. Apriori算法 1.1. 寻找频繁项集 1.2. 挖掘关联规则 2. FP-growth算法 2.1. 构建FP树 2.2. 寻找频繁项集 如果这篇文章对你有一点小小的 ...

  4. 西瓜书+实战+吴恩达机器学习(十四)无监督学习之聚类(k-means, LVQ, 高斯混合聚类, DBSCAN, AGNES)

    文章目录 0. 前言 1. 性能度量 1.1. 外部指标 1.2. 内部指标 2. 距离计算 3. k-means算法 4. 学习向量量化 5. 高斯混合聚类 6. 密度聚类 DBSCAN 7. 层次 ...

  5. 西瓜书+实战+吴恩达机器学习(十九)特征选择(过滤式选择、包裹式选择)

    文章目录 0. 前言 1. 过滤式选择 2. 包裹式选择 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 0. 前言 特征选择是一个很重要的数据预处理过程: 选择出重要的特征 ...

  6. 西瓜书+实战+吴恩达机器学习(十八)降维(主成分分析 PCA)

    文章目录 0. 前言 1. 主成分分析PCA 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 0. 前言 维数灾难:在高维情形下出现的数据样本稀疏.距离计算困难等问题. 缓解 ...

  7. 西瓜书+实战+吴恩达机器学习(十二)监督学习之AdaBoost

    文章目录 0. 前言 1. AdaBoost算法 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 0. 前言 Boosting:先训练一个基学习器,然后根据学习器的表现对样本 ...

  8. 西瓜书+实战+吴恩达机器学习(二十)随机算法(拉斯维加斯方法、蒙特卡罗方法)

    文章目录 0. 前言 1. 拉斯维加斯方法 2. 蒙特卡罗方法 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 0. 前言 随机算法主要分为两种类型: 拉斯维加斯方法:采样次 ...

  9. 西瓜书+实战+吴恩达机器学习(二二)概率图模型之马尔可夫随机场

    文章目录 0. 前言 1. 马尔可夫随机场结构 2. 近似推断 2.1. Metropolis-Hastings 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 0. 前言 ...

最新文章

  1. 2017.4.18 静态代码分析工具sonarqube+sonar-runner的安装配置及使用
  2. mysql 函数返回表格_mysql 数据分析如何实现日报、周报、月报和年报?
  3. Vue API(directives) 自定义指令
  4. python绘制灰度图片直方图-opencv+python 统计及绘制直方图
  5. gitlab 安装报错:Could not find modernizr-2.6.2 in any of the sources
  6. 编程之美-最短摘要的生成方法整理
  7. 文本分析:吉利不裁员不降薪背后的真相是什么
  8. 利用Unity实现AOP
  9. WSUS补丁更新相关命令及参数
  10. jquery操作select选项
  11. matlab vec2ind,MATLAB函数ind2vec的作用
  12. centos6+nagios3.3.1+nrpe2.12
  13. 浏览器同源与跨域问题总结
  14. java池模式_JAVA模式 对象池 简要代码示例
  15. python 分类算法的数据要归一化嘛_Python数据预处理:彻底理解标准化和归一化...
  16. 基于eNSP的千人规模冗余型企业/校园网络设计与规划(可以自己按步骤实现)
  17. 个人保研经历以及经验分享
  18. 【Web】HTML基础——了解HMTL基本结构+常用标签的使用
  19. RFID亮灯电子标签在仓储管理中的应用
  20. latex参考文献居中_LaTeX中参考文献管理以及注意事项

热门文章

  1. jQuery链式操作[转]
  2. 浏览器下载文件时一共发送2次请求,如何把“下载次数”只记录为1次?
  3. AI时代学习新的技术,方向为计算机视觉--欢迎来我的简书blog拔草
  4. Thinking in Java Reading Note(5.初始化与清理)
  5. [Oracle][Standby][PDB]在PDB中修改参数,设置范围为 SPFILE,报 ORA-65099错误
  6. iOS-UITableView的优化(纯手打原创)
  7. C#程序通过模板自动创建Word文档.doc
  8. 八皇后问题--C语言学习笔记
  9. SQL Server中TEXT类型操作
  10. Lumines! to exploit