SVM支持向量机原理推导+python代码复现(一)

前言

​ SVM是机器学习的十大算法之一,其是一个偏数学化的模型,本文主要重现其推导过程,以及学习的过程中遇到的问题。过程并不严谨。

数学推导

引入

在这里插入图片描述

​ 对于二维平面坐标系中的点,如果其线性可分,那么我们可以寻找一条直线,去进行划分。但是,往往情况下,这条直线并不是唯一,可以有无数多条。比如

在这里插入图片描述

​ 我们都熟悉感知机,他与SVM是有一丢丢相似,但是感知机有一个很不好的地方,它仅仅将模型训练到能够将数据全部分类正确即可,对该直线几乎没有要求。比如

在这里插入图片描述

​ 对于这种结果,他确实是分类正确了,但是这种结果就一定好吗?这显然是反直觉的,我们一般会希望这个分割直线尽可能地在中间,而不是单独靠近某一边,因为这样很容易造成来了一个新的点后被误分类。比如

在这里插入图片描述

​ 而如果我们的划分直线是这样,就不会误分类。

在这里插入图片描述

​ 因此,我们认为,对于训练出来的直线,我们希望它尽可能地处在两类数据的中间,这样预留的空间足够大,可提高模型的正确率。

​ 那么,如何才能让这条直线处在的位置给两类数据预留够足够的空间呢?

支持向量

​ 以二维为例,假设在直线左侧为正类,右侧为负类。在所有的点中,我们在两类数据之间取一条分割直线,然后要做的就是找到与直线距离最近的点。

在这里插入图片描述

​ 因此,对于所有的点,我们可以找到距离最近的点(点到直线的距离公式)。
min ⁡ x i ∣ w T x i + b ∣ ∣ ∣ w ∣ ∣ 2 (1) \min\limits_{x_i}\frac{|w^Tx_i+b|}{||w||_2}\tag{1} ximin∣∣w2wTxi+b(1)
​ 其中 ∣ ∣ w ∣ ∣ 2 ||w||_2 ∣∣w2表示L2范数。

​ 那么对于这些点,我们就说其为支持向量

损失函数(硬间隔)

​ 对于坐标系中线性可分的数据,我们往往可以使用一条直线将其进行划分,这种间隔被称为硬间隔,相应的还有一个叫做软间隔,此处我们先将硬间隔。

​ 得到最小距离的点,就可以在此基础上需求最大间隔。就是我们希望这些点到直线的距离最短。即
g = max ⁡ w , b min ⁡ x i ∣ w T x i + b ∣ ∣ ∣ w ∣ ∣ 2 (2) g=\max\limits_{w,b}\min_{x_i}\frac{|w^Tx_i+b|}{||w||_2}\tag{2} g=w,bmaxximin∣∣w2wTxi+b(2)
​ 该式子代表先寻找点到直线距离最小的点,然后再寻找最合适的 w w w使得这些点到直线的距离最大,也就是几何间隔最大化。

​ 我们先定义一下一些数值
x = ( x 1 T x 2 T ⋮ x n T ) = ( x 11 x 12 ⋯ x 1 n x 21 ⋯ ⋯ x 2 n ⋮ ⋱ ⋯ ⋮ x n 1 x n 2 ⋯ x n n ) ; w = ( w 1 w 2 ⋮ w n ) ; y i = { 1 ,    w T x i + b ≥ 0 − 1 ,    w T x i + b < 0 (3) \begin{equation} \begin{aligned} x=\begin{pmatrix} x_1^T \\ x_2 ^T\\ \vdots \\ x_n^T \end{pmatrix} =\begin{pmatrix} x_{11} & x_{12} & \cdots &x_{1n}\\ x_{21} & \cdots & \cdots &x_{2n}\\ \vdots & \ddots & \cdots &\vdots\\ x_{n1} & x_{n2} & \cdots & x_{nn} \end{pmatrix}; w=\begin{pmatrix} w_{1} \\ w{2} \\ \vdots \\ w_{n} \end{pmatrix}; y_i=\left\{\begin{matrix} {1,~~w^Tx_i+b\ge0}\\ {-1,~~w^Tx_i+b<0} \end{matrix}\right. \end{aligned} \end{equation}\tag{3} x= x1Tx2TxnT = x11x21xn1x12xn2x1nx2nxnn ;w= w1w2wn ;yi={1,  wTxi+b01,  wTxi+b<0(3)
​ y的标签值为+1和-1。

在此之前,由于数据是线性可分的,那么如果所有的数据都分类正确,那么 y i ( w T x i + b ) ≥ 0 y_i(w^Tx_i+b)\ge0 yi(wTxi+b)0是恒成立的
g = max ⁡ w , b min ⁡ x i ∣ w T x i + b ∣ ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) ≥ 0 , i ∈ 1 , 2 ⋯ n (4) g=\max\limits_{w,b}\min_{x_i}\frac{|w^Tx_i+b|}{||w||_2}\\ s.t. \hspace{1cm} y_i(w^Tx_i+b)\ge0,i\in1,2 \cdots n\tag{4} g=w,bmaxximin∣∣w2wTxi+bs.t.yi(wTxi+b)0,i1,2n(4)
​ 其中s.t.代表限制条件。注意了,此处代表有n个限制条件。

​ 由于式子(2)中 ∣ ∣ w ∣ ∣ 2 ||w||_2 ∣∣w2与min没有关系,因此我们将其提出来进一步转化。
g = max ⁡ w , b 1 ∣ ∣ w ∣ ∣ 2 min ⁡ x i ∣ w T x i + b ∣ s . t . y i ( w T x i + b ) ≥ 0 , i ∈ 1 , 2 ⋯ n (5) g=\max\limits_{w,b}\frac{1}{{||w||_2}}\min_{x_i}{|w^Tx_i+b|}\\ s.t. \hspace{1cm} y_i(w^Tx_i+b)\ge0,i\in1,2 \cdots n\tag{5} g=w,bmax∣∣w21ximinwTxi+bs.t.yi(wTxi+b)0,i1,2n(5)
​ 对于 w T x i + b = 0 w^Tx_i+b=0 wTxi+b=0这条直线(高维是超平面,以下都用直线表示),将其权值和截距缩放2倍 2 w T x i + 2 b = 0 2w^Tx_i+2b=0 2wTxi+2b=0,该直线仍然是不变的,至此,我们是不是可以让 min ⁡ x i ∣ w T x i + b ∣ \min\limits_{x_i}{|w^Tx_i+b|} ximinwTxi+b里面的式子乘以一个未知量r,使得
min ⁡ x i r ∣ w T x i + b ∣ = 1 (6) \min\limits_{x_i}r|w^Tx_i+b|=1\tag{6} ximinrwTxi+b=1(6)
​ 为何可以?因此此处的r就相当于对直线的缩放,我们总能找到一个量r,使其相乘后为0。

​ 这样,我们最终的式子就变成了
g = max ⁡ w , b 1 ∣ ∣ w ∣ ∣ 2 ∗ 1 (7) g=\max\limits_{w,b}\frac{1}{{||w||_2}}*1\tag{7} g=w,bmax∣∣w211(7)
​ 相应的,约束条件也变成了
s . t . y i ( w T x i + b ) ≥ 1 , i ∈ 1 , 2 ⋯ n (8) s.t. \hspace{1cm} y_i(w^Tx_i+b)\ge1,i\in1,2 \cdots n\tag{8} s.t.yi(wTxi+b)1,i1,2n(8)
​ 那这样不会改变最终w的取值吗?大概率是会的,但没啥影响。实际上,我们的w和b是有无数个解的,因为我们对该直线进行缩放都没有改变平面。

​ 举个例子,假如我们最后算出的w、b的值是2,2,那么直线就是2x+2=0,但是是否也可以是x+1=0?或者4x+4=0?是的,完全可以,因为进行等比例缩放是不会影响最终的平面的,也就是说w、b的值也可以是1,1或者4,4,那么我们这样做 min ⁡ x i r ∣ w T x i + b ∣ = 1 \min\limits_{x_i}r|w^Tx_i+b|=1 ximinrwTxi+b=1实际上就是对w加以约束,因为w存在无数个解,我们只要 min ⁡ x i ∣ w T x i + b ∣ = 1 \min\limits_{x_i}|w^Tx_i+b|=1 ximinwTxi+b=1的w。所以并不会影响最终结果,因此,我们的损失函数最终定义成这样
f ( w ) = max ⁡ w , b 1 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) ≥ 1 , i ∈ 1 , 2 ⋯ n (9) f(w)=\max\limits_{w,b}\frac{1}{{||w||_2}}\\ s.t. \hspace{1cm} y_i(w^Tx_i+b)\ge1,i\in1,2 \cdots n\tag{9} f(w)=w,bmax∣∣w21s.t.yi(wTxi+b)1,i1,2n(9)
​ 将max变成min,再将L2范数写成矩阵相乘的样式,并且方便后面求导运算,我们让其乘以1/2得
f ( w ) = min ⁡ w , b 1 2 w T w s . t . y i ( w T x i + b ) ≥ 1 , i ∈ 1 , 2 ⋯ n (10) f(w)=\min\limits_{w,b}\frac{1}{2}w^Tw\\ s.t. \hspace{1cm} y_i(w^Tx_i+b)\ge1,i\in1,2 \cdots n\tag{10} f(w)=w,bmin21wTws.t.yi(wTxi+b)1,i1,2n(10)
​ 这样,我们就得到了最终的损失函数的形式,一个条件极值问题。

拉格朗日乘数法

​ 求条件极值,怎么求?当燃是用拉格朗日乘数法(不懂的小伙伴请自行百度)

首先,得出拉格朗日函数
L ( w , b , λ ) = 1 2 w T w + ∑ i = 1 n ( λ i [ 1 − y i ( w T x i + b ) ] ) , λ i ≥ 0. (11) L(w,b,\lambda)=\frac{1}{2}w^Tw+\sum\limits_{i=1}^n{\left ( \lambda_i[1-y_i(w^Tx_i+b)]\right )},\lambda_i \ge0.\tag{11} L(w,b,λ)=21wTw+i=1n(λi[1yi(wTxi+b)])λi0.(11)
​ λ为拉格朗日算子。可以看到,由于有n个约束条件,直接求导求解的解法显然是不可能的。那怎么办呢?当燃是对其进行转化了。

原问题

​ 对于原函数和拉格朗日函数,我们总有
f ( w ) = { min ⁡ w , b 1 2 w T w s . t . y i ( w T x i + b ) ≥ 1 , i ∈ 1 , 2 ⋯ n = { min ⁡ w . b max ⁡ λ L ( w , b , λ ) s . t . λ i ≥ 0. i ∈ 1 , 2 , ⋯ n (12) \begin{equation} \begin{aligned} f(w)&=\left \{ \begin{matrix}\min\limits_{w,b}\frac{1}{2}w^Tw\\ s.t. \hspace{1cm} y_i(w^Tx_i+b)\ge1,i\in1,2 \cdots n\\ \end{matrix}\right. =\left\{\begin{matrix}\min\limits_{w.b}\max\limits_{\lambda}L(w,b,\lambda) \\ s.t. \hspace{1cm} \lambda_i \ge 0.i \in 1,2,\cdots n \end{matrix}\right. \end{aligned} \end{equation}\tag{12} f(w)={w,bmin21wTws.t.yi(wTxi+b)1,i1,2n={w.bminλmaxL(w,b,λ)s.t.λi0.i1,2,n(12)

证明

​ 为何会成立呢?我们不妨来看一下 min ⁡ w . b max ⁡ λ L ( w ) \min\limits_{w.b}\max\limits_{\lambda}L(w) w.bminλmaxL(w)

​ 先对拉格朗日函数求λ的最大值。因为, 1 − y i ( w T x i + b ) ≤ 0 1-y_i(w^Tx_i+b) \le0 1yi(wTxi+b)0,又因为λ是恒大于等于0的,所以 ∑ i = 1 n λ i [ 1 − y i ( w T x i + b ) ] ≤ 0 \sum\limits_{i=1}^n\lambda_i[1-y_i(w^Tx_i+b)] \le 0 i=1nλi[1yi(wTxi+b)]0恒成立,所以 max ⁡ λ L ( w , b , λ ) \max\limits_{\lambda}L(w,b,\lambda) λmaxL(w,b,λ)就相当于 ∑ i = 1 n λ i [ 1 − y i ( w T x i + b ) ] = 0 \sum\limits_{i=1}^n\lambda_i[1-y_i(w^Tx_i+b)] = 0 i=1nλi[1yi(wTxi+b)]=0,假如 1 − y i ( w T x i + b ) ≥ 0 1-y_i(w^Tx_i+b) \ge0 1yi(wTxi+b)0,那么 max ⁡ λ L ( w , b , λ ) = + ∞ \max\limits_{\lambda}L(w,b,\lambda)=+\infty λmaxL(w,b,λ)=+将会没有意义。因为此时对λ其求最大值将得到无穷大,再对w、b求最小值的话,将没有意义,即对于
max ⁡ λ L ( w , b , λ ) = { 0 ,    1 − y i ( w T x i + b ) ≥ 0 + ∞ ,    1 − y i ( w T x i + b ) < 0 (17) \max\limits_{\lambda}L(w,b,\lambda)=\left\{ \begin{matrix} 0,~~1-y_i(w^Tx_i+b) \ge0 \\ +\infty,~~1-y_i(w^Tx_i+b) <0 \end{matrix}\right.\tag{17} λmaxL(w,b,λ)={0,  1yi(wTxi+b)0+,  1yi(wTxi+b)<0(17)
​ 那么
min ⁡ w , b max ⁡ λ = min ⁡ w , b { 0 , + ∞ } (18) \min\limits_{w,b}\max\limits_{\lambda}=\min\limits_{w,b}\left \{0,+\infty \right \}\tag{18} w,bminλmax=w,bmin{0,+}(18)
​ 对无穷大求最小值是没有意义的,因此,我们只能够取 ∑ i = 1 n λ i [ 1 − y i ( w T x i + b ) ] ≤ 0 \sum\limits_{i=1}^n\lambda_i[1-y_i(w^Tx_i+b)] \le 0 i=1nλi[1yi(wTxi+b)]0的那一部分,所以
max ⁡ λ L ( w , b , λ ) = 1 2 w T (19) \max\limits_{\lambda}L(w,b,\lambda)=\frac{1}{2}w^T\tag{19} λmaxL(w,b,λ)=21wT(19)

min ⁡ w , b max ⁡ λ L ( w , b , λ ) = min ⁡ w , b 1 2 w T w (20) \min\limits_{w,b}\max\limits_{\lambda}L(w,b,\lambda)=\min\limits_{w,b}\frac{1}{2}w^Tw\tag{20} w,bminλmaxL(w,b,λ)=w,bmin21wTw(20)

​ 所以
{ min ⁡ w . b max ⁡ λ L ( w , b , λ ) s . t . λ i ≥ 0. i ∈ 1 , 2 , ⋯ n (21) \left\{\begin{matrix}\min\limits_{w.b}\max\limits_{\lambda}L(w,b,\lambda) \\ s.t. \hspace{1cm} \lambda_i \ge 0.i \in 1,2,\cdots n \end{matrix}\right.\tag{21} {w.bminλmaxL(w,b,λ)s.t.λi0.i1,2,n(21)
式子(17)是包含了 ∑ i = 1 n λ i [ 1 − y i ( w T x i + b ) ] ≤ 0 \sum\limits_{i=1}^n\lambda_i[1-y_i(w^Tx_i+b)] \le 0 i=1nλi[1yi(wTxi+b)]0的条件的。我们将这个函数称为原问题

对偶问题

​ 对于式子(17),它仍然是一个条件极值问题,并且包含了多个λ,我们仍然没法求解,那怎么办呢?

​ 对于原问题,我们可以对应其对偶问题。也就是max和min互唤
{ max ⁡ λ min ⁡ w , b L ( w , b , λ ) s . t . λ i ≥ 0. i ∈ 1 , 2 , ⋯ n (22) \left\{\begin{matrix}\max\limits_{\lambda}\min\limits_{w,b}L(w,b,\lambda) \\ s.t. \hspace{1cm} \lambda_i \ge 0.i \in 1,2,\cdots n \end{matrix}\right.\tag{22} {λmaxw,bminL(w,b,λ)s.t.λi0.i1,2,n(22)
​ 那么这个对偶问题有什么用呢?对于对偶问题,我们分为弱对偶和强对偶,对弱对偶,我们始终有
max ⁡ λ min ⁡ w , b L ( w , b , λ ) ≤ min ⁡ w , b max ⁡ λ L ( w , b , λ ) (23) \max\limits_{\lambda}\min\limits_{w,b}L(w,b,\lambda) \le \min\limits_{w,b}\max\limits_{\lambda}L(w,b,\lambda)\tag{23} λmaxw,bminL(w,b,λ)w,bminλmaxL(w,b,λ)(23)
​ 以下给出证明

弱对偶证明

因为 L ( w , b , λ ) ≥ min ⁡ w , b L ( w , b , λ ) 又 因为 L ( w , b , λ ) ≤ max ⁡ λ L ( w , b , λ ) 所以 min ⁡ w , b L ( w , b , λ ) ≤ L ( w , b , λ ) ≤ max ⁡ λ L ( w , b , λ ) 所以 min ⁡ w , b L ( w , b , λ ) ≤ max ⁡ λ L ( w , b , λ ) 所以等式左边的在 λ 的最大值也小于右边在 w , b 的最小值 即为 max ⁡ λ min ⁡ w , b L ( w , b , λ ) ≤ min ⁡ w , b max ⁡ λ L ( w , b , λ ) (24) \begin{equation} \begin{aligned} &因为\hspace{1cm}L(w,b,\lambda) \ge \min\limits_{w,b}L(w,b,\lambda) \\又&因为\hspace{1cm}L(w,b,\lambda) \le\max\limits_{\lambda}L(w,b,\lambda) \\&所以\hspace{1cm}\min\limits_{w,b}L(w,b,\lambda) \le L(w,b,\lambda) \le \max\limits_{\lambda}L(w,b,\lambda) \\&所以\hspace{1cm}\min\limits_{w,b}L(w,b,\lambda)\le\max\limits_{\lambda}L(w,b,\lambda) \\&所以等式左边的在\lambda的最大值也小于右边在w,b的最小值 \\&即为\hspace{1cm}\max\limits_{\lambda}\min\limits_{w,b}L(w,b,\lambda) \le \min\limits_{w,b}\max\limits_{\lambda}L(w,b,\lambda) \end{aligned} \end{equation}\tag{24} 因为L(w,b,λ)w,bminL(w,b,λ)因为L(w,b,λ)λmaxL(w,b,λ)所以w,bminL(w,b,λ)L(w,b,λ)λmaxL(w,b,λ)所以w,bminL(w,b,λ)λmaxL(w,b,λ)所以等式左边的在λ的最大值也小于右边在wb的最小值即为λmaxw,bminL(w,b,λ)w,bminλmaxL(w,b,λ)(24)

​ 在弱对偶里面,式子(21)是始终成立,但是这对我们帮助并不大,因为弱对偶问题是原问题的下确界,但不确定是否相等,那何时才能相等呢?当燃是原问题和对偶问题是强对偶关系的时候了。满足强对偶关系,那么,始终有
max ⁡ λ min ⁡ w , b L ( w , b , λ ) = min ⁡ w , b max ⁡ λ L ( w , b , λ ) (25) \max\limits_{\lambda}\min\limits_{w,b}L(w,b,\lambda) = \min\limits_{w,b}\max\limits_{\lambda}L(w,b,\lambda)\tag{25} λmaxw,bminL(w,b,λ)=w,bminλmaxL(w,b,λ)(25)
​ 那么,什么情况下,原问题与对偶问题是强对偶关系呢?这是凸优化课程的知识点了,此处不做证明了。满足强对偶关系的充分性条件

​ ①目标函数是凸函数

​ ②约束条件是仿射函数(可以简单认为是一次函数,但不等价)

​ 显然,在原问题中,目标函数是 1 2 w T w \frac{1}{2}w^Tw 21wTw是二次函数,妥妥的凸函数,对于约束条件 s . t . y i ( w T x i + b ) ≥ 1 , i ∈ 1 , 2 ⋯ n s.t. \hspace{1cm} y_i(w^Tx_i+b)\ge1,i\in1,2 \cdots n s.t.yi(wTxi+b)1,i1,2n,不就是一次函数吗?

​ 所以,原问题和对偶问题是满足强对偶关系的。因此,我们只需要求出对偶问题的解,就相当于求解原问题。所以,我们要求解的问题如下
{ max ⁡ λ min ⁡ w , b L ( w , b , λ ) s . t . λ i ≥ 0. i ∈ 1 , 2 , ⋯ n (26) \left\{ \begin{matrix} \max\limits_{\lambda}\min\limits_{w,b}L(w,b,\lambda) \\s.t. \hspace{1cm} \lambda_i \ge 0.i \in 1,2,\cdots n \end{matrix} \right.\tag{26} {λmaxw,bminL(w,b,λ)s.t.λi0.i1,2,n(26)
​ 可以看到,这个问题依然是一个有n个约束的极值问题,但是约束条件不再跟w,b相关,且对于 min ⁡ w , b L ( w , b , λ ) \min\limits_{w,b}L(w,b,\lambda) w,bminL(w,b,λ)与λ是无关的。因此,我们可以事先求解 min ⁡ w , b L ( w , b , λ ) \min\limits_{w,b}L(w,b,\lambda) w,bminL(w,b,λ)。因为他已经变成了一个无约束的问题了。

​ 因此,要求 L ( w , b , λ ) L(w,b,\lambda) L(w,b,λ)关于w,b的最小值,分别对w,b求导等于0求解即可即可。
∂ L ( w , b , λ ) ∂ b = ∂ ( 1 2 w T w + ∑ i = 1 n ( λ i [ 1 − y i ( w T x i + b ) ] ) ) ∂ b = ∑ i = 1 n λ i y i = 0 (27) \begin{equation} \begin{aligned} \frac{\partial{L(w,b,\lambda)}}{\partial{b}} &=\frac{\partial{\left(\frac{1}{2}w^Tw+\sum\limits_{i=1}^n{\left ( \lambda_i[1-y_i(w^Tx_i+b)]\right )}\right)}}{\partial{b}} \\&=\sum\limits_{i=1}^n\lambda_iy_i=0 \end{aligned} \end{equation}\tag{27} bL(w,b,λ)=b(21wTw+i=1n(λi[1yi(wTxi+b)]))=i=1nλiyi=0(27)
​ 将所得结果回代入拉格朗日函数。
L ( w , b , λ ) = 1 2 w T w + ∑ i = 1 n ( λ i [ 1 − y i ( w T x i + b ) ] ) = 1 2 w T w + ∑ i = 1 n ( λ i − λ i y i w T x i + λ i y i b ) = 1 2 w T w + ∑ i = 1 n λ i − ∑ i = 1 n λ i y i w T x i − ∑ i = 1 n λ i y i b = 1 2 w T w + ∑ i = 1 n λ i − ∑ i = 1 n λ i y i w T x i − b ∑ i = 1 n λ i y i = 1 2 w T w + ∑ i = 1 n λ i − ∑ i = 1 n λ i y i w T x i − b ∗ 0 = 1 2 w T w + ∑ i = 1 n λ i − ∑ i = 1 n λ i y i w T x i = L ( w , λ ) (28) \begin{equation} \begin{aligned} L(w,b,\lambda)&=\frac{1}{2}w^Tw+\sum\limits_{i=1}^n{\left ( \lambda_i[1-y_i(w^Tx_i+b)]\right )} \\&=\frac{1}{2}w^Tw+\sum\limits_{i=1}^n{\left({ \lambda_i - \lambda_iy_iw^Tx_i+\lambda_iy_ib}\right)} \\&=\frac{1}{2}w^Tw+\sum\limits_{i=1}^n\lambda_i-\sum\limits_{i=1}^n\lambda_iy_iw^Tx_i -\sum\limits_{i=1}^n\lambda_iy_ib \\&=\frac{1}{2}w^Tw+\sum\limits_{i=1}^n\lambda_i-\sum\limits_{i=1}^n\lambda_iy_iw^Tx_i -b\sum\limits_{i=1}^n\lambda_iy_i \\&=\frac{1}{2}w^Tw+\sum\limits_{i=1}^n\lambda_i-\sum\limits_{i=1}^n\lambda_iy_iw^Tx_i -b*0 \\&=\frac{1}{2}w^Tw+\sum\limits_{i=1}^n\lambda_i-\sum\limits_{i=1}^n\lambda_iy_iw^Tx_i \\&=L(w,\lambda) \end{aligned} \end{equation}\tag{28} L(w,b,λ)=21wTw+i=1n(λi[1yi(wTxi+b)])=21wTw+i=1n(λiλiyiwTxi+λiyib)=21wTw+i=1nλii=1nλiyiwTxii=1nλiyib=21wTw+i=1nλii=1nλiyiwTxibi=1nλiyi=21wTw+i=1nλii=1nλiyiwTxib0=21wTw+i=1nλii=1nλiyiwTxi=L(w,λ)(28)
​ 把所得结果再对w求导
∂ L ( w , λ ) ∂ b = ∂ ( 1 2 w T w + ∑ i = 1 n λ i − ∑ i = 1 n λ i y i w T x i ) ∂ b = w − ∑ i = 1 n λ i y i x i = 0 → w = ∑ i = 1 n λ i y i x i (29) \begin{equation} \begin{aligned} \frac{\partial{L(w,\lambda)}}{\partial{b}} &=\frac{\partial{\left(\frac{1}{2}w^Tw+\sum\limits_{i=1}^n\lambda_i-\sum\limits_{i=1}^n\lambda_iy_iw^Tx_i\right)}}{\partial{b}} \\&=w-\sum\limits_{i=1}^n\lambda_iy_ix_i=0 \rightarrow w=\sum\limits_{i=1}^n\lambda_iy_ix_i \end{aligned} \end{equation}\tag{29} bL(w,λ)=b(21wTw+i=1nλii=1nλiyiwTxi)=wi=1nλiyixi=0w=i=1nλiyixi(29)
​ 最终,我们得到 w = ∑ i = 1 n λ i y i x i w=\sum\limits_{i=1}^n\lambda_iy_ix_i w=i=1nλiyixi,将其代入 L ( w , λ ) L(w,\lambda) L(w,λ)
L ( w , λ ) = 1 2 w T w + ∑ i = 1 n λ i − ∑ i = 1 n λ i y i w T x i = 1 2 ∑ i = 1 n λ i y i x i T ∑ j = 1 n λ j y j x j + ∑ i = 1 n λ i − ∑ i = 1 n λ i y i ∑ j = 1 n λ j y j x j T x i = 1 2 ∑ i = 1 n ∑ j = 1 n λ i y i λ j y j x i T x j − ∑ i = 1 n ∑ j = 1 n λ i y i λ j y j x j T x i + ∑ i = 1 n λ i = 1 2 ∑ i = 1 n ∑ j = 1 n λ i y i λ j y j x i T x j − ∑ i = 1 n ∑ j = 1 n λ i y i λ j y j x i T x j + ∑ i = 1 n λ i = ∑ i = 1 n λ i − 1 2 ∑ i = 1 n ∑ j = 1 n λ i y i λ j y j x i T x j = L ( λ ) (30) \begin{equation} \begin{aligned} L(w,\lambda)&=\frac{1}{2}w^Tw+\sum\limits_{i=1}^n\lambda_i-\sum\limits_{i=1}^n\lambda_iy_iw^Tx_i \\&=\frac{1}{2}\sum\limits_{i=1}^n\lambda_iy_ix_i^T\sum\limits_{j=1}^n\lambda_jy_jx_j +\sum\limits_{i=1}^n\lambda_i-\sum\limits_{i=1}^n\lambda_iy_i\sum\limits_{j=1}^n\lambda_jy_jx_j^Tx_i \\&=\frac{1}{2}\sum\limits_{i=1}^n\sum\limits_{j=1}^n\lambda_iy_i\lambda_jy_jx_i^Tx_j-\sum\limits_{i=1}^n\sum\limits_{j=1}^n\lambda_iy_i\lambda_jy_jx_j^Tx_i+\sum\limits_{i=1}^n\lambda_i \\&=\frac{1}{2}\sum\limits_{i=1}^n\sum\limits_{j=1}^n\lambda_iy_i\lambda_jy_jx_i^Tx_j-\sum\limits_{i=1}^n\sum\limits_{j=1}^n\lambda_iy_i\lambda_jy_jx_i^Tx_j+\sum\limits_{i=1}^n\lambda_i \\&=\sum\limits_{i=1}^n\lambda_i-\frac{1}{2}\sum\limits_{i=1}^n\sum\limits_{j=1}^n\lambda_iy_i\lambda_jy_jx_i^Tx_j \\&=L(\lambda) \end{aligned} \end{equation}\tag{30} L(w,λ)=21wTw+i=1nλii=1nλiyiwTxi=21i=1nλiyixiTj=1nλjyjxj+i=1nλii=1nλiyij=1nλjyjxjTxi=21i=1nj=1nλiyiλjyjxiTxji=1nj=1nλiyiλjyjxjTxi+i=1nλi=21i=1nj=1nλiyiλjyjxiTxji=1nj=1nλiyiλjyjxiTxj+i=1nλi=i=1nλi21i=1nj=1nλiyiλjyjxiTxj=L(λ)(30)
​ 所以,我们的问题最终转化成
{ max ⁡ λ min ⁡ w , b L ( w , b , λ ) s . t . λ i ≥ 0. i ∈ 1 , 2 , ⋯ n → { max ⁡ λ ∑ i = 1 n λ i − 1 2 ∑ i = 1 n ∑ j = 1 n λ i y i λ j y j x i T x j s . t . λ i ≥ 0. i ∈ 1 , 2 , ⋯ n ∑ i = 1 n λ i y i = 0 (31) \left\{ \begin{matrix} \max\limits_{\lambda}\min\limits_{w,b}L(w,b,\lambda) \\s.t. \hspace{1cm} \lambda_i \ge 0.i \in 1,2,\cdots n \end{matrix} \right.\rightarrow \left\{ \begin{matrix} \max\limits_{\lambda}\sum\limits_{i=1}^n\lambda_i-\frac{1}{2}\sum\limits_{i=1}^n\sum\limits_{j=1}^n\lambda_iy_i\lambda_jy_jx_i^Tx_j \\s.t. \hspace{1cm} \lambda_i \ge 0.i \in 1,2,\cdots n \\\sum\limits_{i=1}^n\lambda_iy_i=0 \end{matrix} \right.\tag{31} {λmaxw,bminL(w,b,λ)s.t.λi0.i1,2,n λmaxi=1nλi21i=1nj=1nλiyiλjyjxiTxjs.t.λi0.i1,2,ni=1nλiyi=0(31)
​ 其中 ∑ i = 1 n λ i y i = 0 \sum\limits_{i=1}^n\lambda_iy_i=0 i=1nλiyi=0是对b求导后所得,因为包含有λ,而所求的最大值也是在λ处求的,故作为新的约束条件

​ 现在我们知道了 w = ∑ i = 1 n λ i y i x i w=\sum\limits_{i=1}^n\lambda_iy_ix_i w=i=1nλiyixi,也得到了对偶问题在w,b下的最小L(w,b,λ),那b怎么办?似乎没有求出来?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值