支持向量机学习(1)——理论推导

本文详细阐述了支持向量机的基本原理,包括如何寻找最优超平面以实现数据分类,并介绍了拉格朗日乘数法及其在求解支持向量机优化问题中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

支持向量机学习

前言

对于支持向量机,最早是在大学毕业设计时接触到的,那时已经大概把原理看了看,知道是利用最优的超平面将两类数据分开。但好像也仅限于此了,对于其中的核函数以及算法的实现什么的都没有过深的了解,最后也只是调用MATLAB里面以有的支持向量机的函数,然后把输入的特征输入进去,进行训练就可以实现对不同目标的分类了。然而时过两年,现在又要再次用到支持向量机,还是打算把其中的一些原理搞懂,今天不欠账,以后就不用还。

问题描述

也已经无数次的看到过SVM可以找出一个最优超平面将不同的数据分开 ,也无数次的见识过各种文章写道核函数可以使得SVM有可能处理无数维的数据。但是却还是似懂非懂,现在也还是有点似懂非懂,所以还是打算先从简单入手,不涉及核函数和线性不可分。就考虑一个实际的问题:如下图,在直角坐标系上存在两类点,请用支持向量机把这两类点分开。这里,数据的特征就是各个点的横纵坐标了,也就是一个二维的特征。
在这里插入图片描述
在直角坐标系下,我们很容易可以理解,就是只找到直线2的解析式,那么我们就可以顺利的将两类数据分开了,至于直线1和直线3,一眼可以看出没有直线2分的效果好。当然,我们肯定需要严格的理论推导来确定直线2,不可以靠眼睛看就断定直线2比直线1和3好。这里的判断方法就是希望有最大的分类间隔。什么是间隔呢?如图,也可以说是离分类的直线距离最近的点(其实这些点就是支持向量)到分类直线的距离。也就是在准确分类的基础上,改变改变直线的斜率什么的,使得这个间隔最大。当然,我们找直线2的这个过程不可以真用笔在纸上画画用数学知识直接把直线2的解析式算出来,肯定利用计算机来找啊,因为一旦数据量变得很大,计算变得很复杂人们很难直接算出来。而通过计算机找直线2的方法也有多种,后面介绍一种叫序列最小优化的算法(smo,Sequential Minimal Optimization)
在这里插入图片描述
在这里插入图片描述

问题转化

对于我们拿到的训练集D=(x1,y1),(x2,y2),(x3,y3)...D={(x_1,y_1),(x_2,y_2),(x_3,y_3)...}D=(x1,y1),(x2,y2)(x3,y3)...,可以包含N个样本点,由xxxyyy组成,我们也可以把每一个样本点叫做一个实例。xxx作为输入变量,可以是一个数,也可以是一个向量。对于本文中的例子,xxx就是一个二维向量,也就是每个点的横纵坐标。yyy为输出,在二分类问题中,yyy只能取+1或-1(或者0或1)。
例如x1=(x11,x12)x_1=(x_1^1,x_1^2)x1=(x11,x12),其中x11,x12x_1^1,x_1^2x11,x12分别对应横纵坐标。这一个点对应一个y1=+1(或−1)y_1=+1(或-1)y1=+1(1)类。我们的任务就是通过这些训练集的点来找出一个条直线,然后在测试集时或者有新的数据输入时能够正确的将每一个数据分类。
前面已经说过我们想找一个有最大分类间隔的超平面,我们定义这个超平面,在简单的二维情况下就是一条直线,设为:0=wTx+b0=w^Tx+b0=wTx+b,我们要求wwwbbb,使得这个直线到最近点的几何距离最大(可以看看几何距离函数距离的差别,以及训练集到超平面距离的定义)。其中几何距离就是我们高中经常用到的点到直线的距离,写成数学形式:
max⁡w,bmin⁡xi(∣wTxi+b∣∣∣w∣∣)(*)\max_{w,b}\min_{x_i}(\frac{|w^Tx_i+b|}{||w||}) \tag{*}w,bmaxximin(wwTxi+b)(*)
稍微理解一下这个式子,其中∣∣w∣∣||w||w代表求www的二范数,也就是相当于常用的a2+b2\sqrt{a^2+b^2}a2+b2。这个式子中也出现了绝对值,∣wTx+b∣|w^Tx+b|wTx+b,一般绝对值运算比较麻烦,想着把他去掉,我们知道,y只能是+1或者-1,而一般规定为正样本时,y为+1,此时wTx+bw^Tx+bwTx+b也为正的。为负样本时,y为-1,此时wTx+bw^Tx+bwTx+b也为负的。(一条直线的一边的点全为正,为正样本;另外一边的点全为负,为负样本。这样规定方便简化计算)也就是∣wTx+b∣=y(wTx+b)|w^Tx+b|=y(w^Tx+b)wTx+b=y(wTx+b),另外∣∣w∣∣||w||wxi,yix_i,y_ixi,yi无关的,所以可以移出来。最后前面的(∗)(*)()式可以改写为:
max⁡w,b1∣∣w∣∣min⁡xi,yi(yi(wTxi+b))(**)\max_{w,b}\frac{1}{||w||}\min_{x_i,y_i}(y_i(w^Tx_i+b)) \tag{**}w,bmaxw1xi,yimin(yi(wTxi+b))(**)
还是稍微理解一下这个式子,这个式子的意思就是,首先通过尝试不同的w,bw,bw,b使得后面的式子能够取得最大值,而后面的式子是指尝试所有已知点,也就是我们的训练数据,找出离这个直线最近距离的点,然后求出来的这个最近的距离。合起来也就是前面所说的求一条直线0=wTx+b0=w^Tx+b0=wTx+b,使得这个直线到最近点的几何距离最大,我们要求的就是w,bw,bw,b

接着转化

假如支持向量为(xv,yv)(x_v,y_v)(xv,yv),因为支持向量就是离超平面最近的点,所以对于(**)式,可以简化写成:
max⁡w,b1∣∣w∣∣(yv(wTxv+b))(***)\max_{w,b}\frac{1}{||w||}(y_v(w^Tx_v+b)) \tag{***}w,bmaxw1(yv(wTxv+b))(***)
对于一条直线x+y=0,我们将等式两边同时乘2得到2x+2y=0,很容易知道这两者并没有本质区别。对于wTx+b=0w^Tx+b=0wTx+b=0也一样,两边同乘一个常数并没有改变这条直线。这里我们就进行这样的操作使得yv(wTxv+b)=1y_v(w^Tx_v+b)=1yv(wTxv+b)=1(直线上的点带入wTx+bw^Tx+bwTx+b才等于0,支持向量带入是不等于0的)这样式(∗∗∗)(***)()就变成了:
max⁡w,b1∣∣w∣∣\max_{w,b}\frac{1}{||w||} w,bmaxw1
也就是求w,bw,bw,b使得1∣∣w∣∣\frac{1}{||w||}w1最大。为了方便后面的计算,改写成求12∣∣w∣∣2\frac{1}{2}||w||^221w2最小。但是是在min⁡xi,yi(yi(wTxi+b))=1\min_{x_i,y_i}(y_i(w^Tx_i+b))=1minxi,yi(yi(wTxi+b))=1的情况下(与yv(wTxv+b)=1y_v(w^Tx_v+b)=1yv(wTxv+b)=1等价)求∣∣w∣∣||w||w最小 。所以现在的问题变成了:
min⁡w,b12∣∣w∣∣2\min_{w,b}\frac{1}{2}||w||^2w,bmin21w2s.t.min⁡xi,yi(yi(wTxi+b))=1(-)s.t. \min_{x_i,y_i}(y_i(w^Tx_i+b))=1 \tag{-}s.t.xi,yimin(yi(wTxi+b))=1(-)
但是,一般最后约束条件都会写成:
s.t.yi(wTxi+b)≥1s.t. y_i(w^Tx_i+b) \geq 1 s.t.yi(wTxi+b)1

其实对这个约束条件是否和前面约束(-)的是否等价,我抱有疑问。我在想会不会出现所有点都离超平面的距离都比1大很多,而没有等于1的,这样会不会造成分类出现问题。最后和同学稍微讨论一下,感觉最后对w,bw,bw,b进行优化时,最先是假设一个点为支持向量,然后让这个点到这个超平面的距离为1来改变w,bw,bw,b,接着考验其余的点,来一点点优化的。所以开始应该会有一个点离超平面的距离为1,或者说接近1。
对上面的问题稍微有了一点不同的理解,就是所谓约束就是肯定可以取到约束情况下所有点的啊。就比如限制x2+y2≤1x^2+y^2 \leq 1x2+y21,这就是一个圆的区域,我们这个范围上的点都是可以取得到的,所以圆上的点当然也可以取到,所以会有等于1的啊

拉格朗日乘数法

这部分是高数中学过的知识,记得还算比较牢固。但是也只是学了最简单的等式约束的情况。例如:
xy=1xy=1xy=1的情况下,求x2+y2x^2+y^2x2+y2的最大值。可以写成数学形式:
max⁡(x2+y2)\max(x^2+y^2)max(x2+y2)s.t.xy=1s.t. xy=1s.t.xy=1
该怎么求呢?书中给出了一个比较简单的方法,就是可以构造一个拉格朗日函数:
L(x,y,λ)=x2+y2+λ(xy−1)L(x,y,\lambda)=x^2+y^2+\lambda(xy-1)L(x,y,λ)=x2+y2+λ(xy1)
然后分别对x,y,λx,y,\lambdax,y,λ求导联立就可以求出最后的结果。现在回过头来想,这只是给了我们一个既定的解决问题的程序,但却好像没有告诉我们为什么可以这样。下面稍微深入理解一下
考虑更一般的情况,求:
max⁡f(x,y)\max f(x,y)maxf(x,y)s.t.g(x,y)=0s.t. g(x,y)=0s.t.g(x,y)=0
对于凸函数来说,极值点就是最值点,设为(x0,y0)(x_0,y_0)(x0,y0)。通过画图就可以容易知道(应该也有严谨的推导)极值点的梯度方向一样,也就是平行,由向量平行的性质,可以得到:
fx′(x0,y0)gx′(x0,y0)=fy′(x0,y0)gy′(x0,y0)=−λ0\frac{f_x^{'}(x_0,y_0)}{g_x^{'}(x_0,y_0)}=\frac{f_y^{'}(x_0,y_0)}{g_y^{'}(x_0,y_0)}=-\lambda_0gx(x0,y0)fx(x0,y0)=gy(x0,y0)fy(x0,y0)=λ0
上式变形得:
fx′(x0,y0)+λ0gx′(x0,y0)=0f_x^{'}(x_0,y_0)+\lambda_0g_x^{'}(x_0,y_0)=0fx(x0,y0)+λ0gx(x0,y0)=0fy′(x0,y0)+λ0gy′(x0,y0)=0f_y^{'}(x_0,y_0)+\lambda_0g_y^{'}(x_0,y_0)=0fy(x0,y0)+λ0gy(x0,y0)=0g(x0,y0)=0g(x_0,y_0)=0g(x0,y0)=0
通过上面三个式子就可以求出最后我们想要的结果了,这时我们可以回头看看前面的拉格朗日函数L(x,y,λ)L(x,y,\lambda)L(x,y,λ),知道其实我最后通过L(x,y,λ)L(x,y,\lambda)L(x,y,λ)分别对x,y,λx,y,\lambdax,y,λ求导得到的就是上面的三个式子。这也就是为什么按照书中规定的程序构造拉格朗日函数然后求导联立就可以求得最后结果的原因。这也只是一种比较简单的理解,还有些通过等高线什么来理解的,还没搞清楚,而且对于如果有两个或者多个约束条件的情况,上面的推导肯定就会更麻烦了,更更复杂的还有不等式约束的情况,慢慢理解。下面还是要理解理解不等式约束的情况,因为我们前面支持向量机的约束就是不等式的约束。

不等式约束下的拉格朗日法

这里加一下对于对偶问题的简单描述,所谓对偶问题,就是在一些条件下,min⁡max⁡f(x)\min\max f(x)minmaxf(x)max⁡min⁡f(x)\max\min f(x)maxminf(x)是相等的。具体的看后面的图片里的关于KKT条件的推导,其中会提到。
\quad参考https://blog.youkuaiyun.com/lijil168/article/details/69395023中的推导,感觉自己才大概理解拉格朗日乘数法的由来,也顺带理解了KKT条件和对偶问题。就直接照着里面的图片敲一遍公式啦,加深一下印象。

L(x,μ)=f(x)+∑k=1qμkgk(x)L(x,\mu)=f(x)+\sum^q_{k=1}\mu_kg_k(x)L(x,μ)=f(x)+k=1qμkgk(x)
其中μk≥0,gk(x)≤0\mu_k\geq0,g_k(x)\leq0μk0,gk(x)0
∵μk≥0gk(x)≤0}=>μg(x)≤0\because \left.\begin{matrix}\mu_k \geq 0 \\ g_k(x) \leq 0 \end{matrix}\right\}=> \mu g(x) \leq 0μk0gk(x)0}=>μg(x)0
∴max⁡μL(x,μ)=f(x)(2)\therefore \max_{\mu}L(x,\mu)=f(x) \tag{2}μmaxL(x,μ)=f(x)(2)
∴min⁡f(x)=min⁡xmax⁡μL(x,μ)(3)\therefore \min f(x)=\min_x \max_\mu L(x,\mu) \tag{3}minf(x)=xminμmaxL(x,μ)(3)
max⁡μmin⁡xL(x,μ)=max⁡μ[min⁡xf(x)+min⁡xμg(x)]=max⁡μmin⁡xf(x)+max⁡μmin⁡xμg(x)=min⁡f(x)+max⁡μmin⁡xμg(x)\max_\mu \min_x L(x,\mu) = \max_\mu[\min_x f(x)+\min_x \mu g(x)]=\max_\mu\min_x f(x)+\max_\mu\min_x \mu g(x)=\min f(x)+\max_\mu\min_x \mu g(x)μmaxxminL(x,μ)=μmax[xminf(x)+xminμg(x)]=μmaxxminf(x)+μmaxxminμg(x)=minf(x)+μmaxxminμg(x)
∵μk≥0gk(x)≤0}=>min⁡xμg(x)={0ifμ=0org(x)=0−∞ifμ>0org(x)<0}\because \left.\begin{matrix}\mu_k \geq 0 \\ g_k(x) \leq 0 \end{matrix}\right\}=> \min_x \mu g(x)=\left\{\begin{matrix} 0 & if\mu=0 or g(x)=0 \\ - \infty & if\mu>0 or g(x)<0 \end{matrix}\right\}μk0gk(x)0}=>minxμg(x)={0ifμ=0org(x)=0ifμ>0org(x)<0}
$\therefore $放弃了,打公式太麻烦了,直接贴个图。打的这么多还先是留着吧,说不定后面可以复制粘贴。直接看图片吧
在这里插入图片描述
考虑等式约束和不等式约束都存在的情况,设目标函数 f(x)f(x)f(x),不等式约束为g(x)g(x)g(x),等式约束h(x)h(x)h(x),此时约束优化问题描述如下:
min⁡f(x)\min f(x)minf(x) s.t. hj(x)=0j=1,2...ps.t.\ h_j(x)=0 \quad j=1,2...p s.t. hj(x)=0j=1,2...p s.t. gk(x)≤0k=1,2...qs.t. \ g_k(x) \leq 0 \quad k=1,2...q s.t. gk(x)0k=1,2...q
则定义拉格朗日函数为:
L(x,μ)=f(x)+∑j=1pλjhj(x)+∑k=1qμkgk(x)L(x,\mu)=f(x)+ \sum_{j=1}^p \lambda_jh_j(x) + \sum _{k=1}^q \mu_k g_k(x)L(x,μ)=f(x)+j=1pλjhj(x)+k=1qμkgk(x)
其中f(x)f(x)f(x)是原目标函数,hj(x)h_j(x)hj(x)是第j个等式约束条件,λj\lambda_jλj对应的约束系数,gk(x)g_k(x)gk(x)是不等式约束,μk\mu_kμk是对应的约束系数想要得到我们最后的结论 min⁡xmax⁡μf(x)=max⁡μmin⁡xL(x,μ)=min⁡xf(x)\min_x \max_\mu f(x)=\max_\mu \min_x L(x,\mu)=\min_x f(x)minxmaxμf(x)=maxμminxL(x,μ)=minxf(x), 必须满足下述条件,也就是KKT条件:(推导过程会用到这些条件)
KKT条件:
∂L∂x∣x=x∗=0(1*)\frac {\partial L} {\partial x}|_{x=x^*}=0 \tag{1*}xLx=x=0(1*) λj≠0(2*)\lambda_j \neq 0 \tag{2*}λj=0(2*) μk≥0(3*)\mu_k \geq 0 \tag{3*}μk0(3*) μkgk(x∗)=0(4*)\mu_kg_k(x^*)=0 \tag{4*}μkgk(x)=0(4*) hj(x∗)=0j=1,2...,p(5*)h_j(x^*)=0 \quad j=1,2...,p \tag{5*}hj(x)=0j=1,2...,p(5*) gk(x∗)≤0k=1,2...,q(6*)g_k(x*) \leq 0 \quad k=1,2...,q \tag{6*} gk(x)0k=1,2...,q(6*)
这些求解条件就是KKT条件。(1*)是对拉格朗日函数取极值时候带来的一个必要条件,要注意的是,这里的x可能是多维,比如x1,x2x_1,x_2x1,x2,所以是对x1,x2x_1,x_2x1,x2的偏导都等于0,(2*)是拉格朗日系数约束(同等式情况),(3*)是不等式约束情况,(4*)是互补松弛条件,(5*)、(6*)是原约束条件。
对于一般的任意问题而言,KKT条件是使一组解成为最优解的必要条件,当原问题是凸问题的时候,KKT条件也是充分条件。
稍微谈一下自己的理解,对于前面图片中的推导,最开始比较疑惑为什么由μg(x)≤0\mu g(x) \leq 0μg(x)0就可以推出(2)中的max⁡μL(x,μ)=f(x)\max_\mu L(x,\mu)=f(x)maxμL(x,μ)=f(x),因为我认为既然μg(x)≤0\mu g(x) \leq 0μg(x)0,那么可能不会取到0这个值,而是为一个负数,也就是L(x,μ)L(x,\mu)L(x,μ)的最大值可能比f(x)f(x)f(x)的最大值要大。想了想,感觉应该是这里的g(x)≤0g(x) \leq 0g(x)0是一个约束范围,就比如限制x2+y2≤1x^2+y^2 \leq 1x2+y21,这就是一个圆的区域,我们这个范围上的点都是可以取得到的,所以圆上的点当然也可以取到,而当取圆上的点时就是g(x)=0g(x)=0g(x)=0时,所以g(x)肯定是可以取到0这个值的。
还有为什么max⁡μmax⁡xf(x)=min⁡xf(x)\max_\mu \max_x f(x)=\min_xf(x)maxμmaxxf(x)=minxf(x)?这是因为后面的f(x)和μ\muμ没有关系啊

对支持向量机中条件约束问题求解

前面的问题为:
min⁡w,b12∣∣w∣∣2\min_{w,b} \frac{1}{2} ||w||^2w,bmin21w2 s.t.yi(wTxi+b)≥1s.t. \quad y_i(w^Tx_i+b) \geq 1 s.t.yi(wTxi+b)1

将约束改写成
s.t.1−yi(wTxi+b)≤0s.t. \quad 1-y_i(w^Tx_i+b) \leq 0 s.t.1yi(wTxi+b)0
由前面图片中的推导得到的结论:min⁡xf(x)=max⁡μmin⁡xL(x,μ)\min_x f(x)=\max_\mu \min_x L(x,\mu)minxf(x)=maxμminxL(x,μ)我们可以先求min⁡xL(x,μ)\min_xL(x,\mu)minxL(x,μ),也就是先求min⁡w,bL(w,b,α1,...,αn)\min_{w,b}L(w,b,\alpha_1,...,\alpha_n)minw,bL(w,b,α1,...,αn)
\quad这里是要保证所有的点都满足上面的约束,所以最后约束条件的个数和总共的点数(或者说实例数)是一样的。则拉格朗日函数L(w,b,α1,...,αn)L(w,b,\alpha_1,...,\alpha_n)L(w,b,α1,...,αn)可以写成为:
L(w,b,α1,α2,...αn)=12∣∣w∣∣2+∑i=1nαi(1−yi(wTxi+b))L(w,b,\alpha_1,\alpha_2,...\alpha_n)=\frac{1}{2}||w||^2+ \sum_{i=1}^n \alpha_i(1-y_i(w^Tx_i+b) )L(w,b,α1,α2,...αn)=21w2+i=1nαi(1yi(wTxi+b))
由上面的拉格朗日函数和前面说的KKT条件,考虑只有不等式约束的情况,我们可以得到下面的一些式子。αi\alpha_iαi就相当于高数中构造拉格朗日函数中的λ\lambdaλ,这里有多个约束,所以会有很多α\alphaα
由(1*)可以得到
∂L∂w=w−∑i=1nαiyixi=0(1#)\frac{\partial L}{\partial w}=w-\sum_{i=1}^n \alpha_i y_i x_i =0 \tag{1\#}wL=wi=1nαiyixi=0(1#)
∂L∂b=∑i=1nαiyi=0(2#)\frac{\partial L}{\partial b}=\sum_{i=1}^n \alpha_i y_i =0 \tag{2\#}bL=i=1nαiyi=0(2#)
这里面可能涉及到2范数求导的问题,这里就先不研究了,总之上面的式子是对的。还要说明的是x1,x2x_1,x_2x1,x2…是不同的点,但是每一个不同的点会有许多维数,例如x1x_1x1可能会有横坐标也会有纵坐标可以记成(x11,x12)(x_1^1,x_1^2)(x11,x12)。我们式子中的yyy是对应的类别额,可以取-1,+1。(最前面说过一遍了已经)
由(3*)可以得到
α1≥0,α1≥0...αn≥0(4#)\alpha_1 \geq 0,\alpha_1 \geq 0...\alpha_n \geq 0 \tag{4\#}α10,α10...αn0(4#)
由(4*)可以得到前面的(2#)
∂L∂b=∑i=1nαiyi=0(2#)\frac{\partial L}{\partial b}=\sum_{i=1}^n \alpha_i y_i =0 \tag{2\#}bL=i=1nαiyi=0(2#)
由(6*)可以得到
s.t.1−yi(wTxi+b)≤0(3#)s.t. \quad 1-y_i(w^Tx_i+b) \leq 0 \tag{3\#}s.t.1yi(wTxi+b)0(3#)
说明一下,也就是说要满足KKT条件,我们才可以通过拉格朗日法求最大或者最小值。这里面有的KKT条件最开始已经满足了例如(3#),有的是为了满足KKT条件而出现的例如(1#)(2#)。
\quad 将(1#)和(2#)带入拉格朗日函数L(w,b,α1,...αn)L(w,b,\alpha_1,...\alpha_n)L(w,b,α1,...αn)中,特别注意(1#)(2#)在化简式子中的作用,注意xi,xj,wx_i,x_j,wxi,xj,w为列向量,注意求和符号后的变量如果和求和符号的下标i or j没有关系,就可以移到求和符号的外面或者里面 有:

min⁡w,bL(w,b,α1,...αn)=min⁡w,b{12∣∣w∣∣2+∑i=1nαi(1−yi(wTxi+b))}=min⁡w,b{12wTw+∑i=1nαi−∑i=1nαiyiwTxi−∑i=1nαiyib}=min⁡w,b{12∑i=1nαiyixiT∑i=1nαiyixi+∑i=1nαi−∑i=1nαiyiwTxi−b∑i=1nαiyi=min⁡w,b{12∑i=1n∑j=1nαiyiαjyjxiTxj+∑i=1nαi−∑i=1nαiyi∑j=1nαjyjxiTxi}=−12∑i=1n∑j=1nαiyiαjyjxiTxj+∑i=1nαi\begin {aligned} \min_{w,b}L(w,b,\alpha_1,...\alpha_n)&=\min_{w,b}\{ \frac{1}{2}||w||^2+ \sum_{i=1}^n \alpha_i(1-y_i(w^Tx_i+b) ) \} \\ &=\min_{w,b}\{\frac{1}{2} w^Tw +\sum_{i=1}^n\alpha_i -\sum_{i=1}^n\alpha_iy_iw^Tx_i-\sum_{i=1}^n\alpha_i y_i b \} \\ &=\min_{w,b}\{\frac{1}{2} \sum_{i=1}^n \alpha_i y_i x_i ^T \sum_{i=1}^n \alpha_i y_i x_i +\sum_{i=1}^n\alpha_i -\sum_{i=1}^n\alpha_iy_iw^Tx_i - b\sum_{i=1}^n\alpha_i y_i \\ &=\min_{w,b} \{ \frac{1}{2}\sum_{i=1}^n \sum_{j=1}^n\alpha_iy_i \alpha_jy_j x_i^T x_j + \sum_{i=1}^n\alpha_i - \sum_{i=1}^n \alpha_iy_i \sum_{j=1}^n\alpha_jy_j x_i^T x_i \}\\ &= -\frac{1}{2}\sum_{i=1}^n \sum_{j=1}^n\alpha_iy_i \alpha_jy_j x_i^T x_j + \sum_{i=1}^n\alpha_i \end{aligned} w,bminL(w,b,α1,...αn)=w,bmin{21w2+i=1nαi(1yi(wTxi+b))}=w,bmin{21wTw+i=1nαii=1nαiyiwTxii=1nαiyib}=w,bmin{21i=1nαiyixiTi=1nαiyixi+i=1nαii=1nαiyiwTxibi=1nαiyi=w,bmin{21i=1nj=1nαiyiαjyjxiTxj+i=1nαii=1nαiyij=1nαjyjxiTxi}=21i=1nj=1nαiyiαjyjxiTxj+i=1nαi

所以:
min⁡w,b12∣∣w∣∣2=max⁡α1,...,αnmin⁡w,bL(w,b,α1,...αn)=max⁡α1,...,αn{−12∑i=1n∑j=1nαiyiαjyjxiTxj+∑i=1nαi}\begin{aligned} \min_{w,b} \frac{1}{2} ||w||^2 &= \max_{\alpha_1,...,\alpha_n} \min_{w,b}L(w,b,\alpha_1,...\alpha_n) \\ &=\max_{\alpha_1,...,\alpha_n} \{- \frac{1}{2}\sum_{i=1}^n \sum_{j=1}^n\alpha_iy_i \alpha_jy_j x_i ^Tx_j + \sum_{i=1}^n\alpha_i \} \end{aligned} w,bmin21w2=α1,...,αnmaxw,bminL(w,b,α1,...αn)=α1,...,αnmax{21i=1nj=1nαiyiαjyjxiTxj+i=1nαi}
我们已经将最开始的问题简化成只和α,x,y\alpha,x,yα,x,y有关的问题了,其中xxx点的坐标,yyy是其所对应的类别 ,这两个是我们已知的。α\alphaα是未知的,需要我们优化,但是要注意α\alphaα也是有约束条件的,如(4#)(2#) 或所以最终的问题变成了:
max⁡α1,...,αn{∑i=1nαi−12∑i=1n∑j=1nαiyiαjyjxiTxj} \max_{\alpha_1,...,\alpha_n} \{ \sum_{i=1}^n\alpha_i - \frac{1}{2}\sum_{i=1}^n \sum_{j=1}^n\alpha_iy_i \alpha_jy_j x_i ^Tx_j \} α1,...,αnmax{i=1nαi21i=1nj=1nαiyiαjyjxiTxj}s.t.α1≥0,α1≥0...αn≥0 s.t. \quad \alpha_1 \geq 0,\alpha_1 \geq 0...\alpha_n \geq 0 s.t.α10,α10...αn0∑i=1nαiyi=0 \sum_{i=1}^n \alpha_i y_i =0 i=1nαiyi=0
一般还会引入松弛变量C(现在没搞明白松弛变量是怎么回事),令所有的α<C\alpha < Cα<C,所以最后可以写成:
max⁡α1,...,αn{∑i=1nαi−12∑i=1n∑j=1nαiyiαjyjxiTxj} \max_{\alpha_1,...,\alpha_n} \{ \sum_{i=1}^n\alpha_i - \frac{1}{2}\sum_{i=1}^n \sum_{j=1}^n\alpha_iy_i \alpha_jy_j x_i^Tx_j \} α1,...,αnmax{i=1nαi21i=1nj=1nαiyiαjyjxiTxj}s.t.0≤α≤C s.t. \quad 0 \leq \alpha \leq C s.t.0αC∑i=1nαiyi=0 \sum_{i=1}^n \alpha_i y_i =0 i=1nαiyi=0
这一篇就先写到这吧,~

参考

https://www.jianshu.com/p/e74eb43960a1(这是latex公式的一些用法)
https://zhuanlan.zhihu.com/p/88249368?utm_source=qq(这是latex公式的一些用法)
https://www.cnblogs.com/xxrxxr/p/7535587.html
b站深度之眼官方帐号
https://blog.youkuaiyun.com/hao5335156/article/details/82320082
https://www.cnblogs.com/ooon/p/5721119.html
https://zhuanlan.zhihu.com/p/99945521(拉格朗日乘数法推导)
https://blog.youkuaiyun.com/lijil168/article/details/69395023(不等式约束拉格朗日乘数法推导)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值