感知器、逻辑回归和SVM的求解

这篇文章将介绍感知器、逻辑回归的求解和SVM的部分求解,包含部分的证明。本文章涉及的一些基础知识,已经在《梯度下降、牛顿法和拉格朗日对偶性》中指出,而这里要解决的问题,来自《从感知器到SVM》 、《从线性回归到逻辑回归》两篇文章。

感知器:

前面的文章已经讲到,感知器的目标函数如下:

$min \ L(w,b)$

其中,$L(w,b)=-\sum_{i=1}^{n}[y_i*(w*x_i+b)]$

对于上面这种无约束的最优化问题,一般采用的是梯度下降的办法,但是,考虑到梯度下降速度比较慢,实际使用中,采用是随机梯度下降。

其基本的思想是:一次选取一个误分点使其梯度下降,而不是像梯度下降一样,一次性使用所有的误分点,这样,可以极大的减少计算量,提高运算效率。

不过,需要注意的一点是,随机梯度下降有可能不能收敛到极小值点,而是在极小值点附近徘徊。

下面,对目标函数进行求解。首先是分别对w和b求偏导:

$\triangledown_wL(w,b)=-\sum \limits_{x_i \in M}y_ix_i$

$\triangledown_bL(w,b)=-\sum \limits_{x_i \in M}y_i$

随机选取一个误分点,对w和b进行更新:

$w \gets w+\eta y_ix_i$

$b \gets b+\eta y_i$

直到训练集中没有误分点,算法结束。

逻辑回归

目标函数:

$min \ L(w)$

$L(w)=-\sum_{i=1}^{n}[y_i*(w*x_i)-ln(1+exp(w*x_i))]$

使用梯度下降:

$\triangledown_wL(w)=-$ $\sum_{i=1}^{n}(y_i*x_i-\frac{exp(w*x_i)}{1+exp(w*x_i)}*x_i)$

$w \gets w+\eta \triangledown_wL(w)$

直到没有误分点为止。

SVM

SVM和感知器和逻辑回归的不同点在于,SVM是一个约束最优化问题。我们的目标是在约束条件下,最大化目标函数。一般的处理办法是先通过拉格朗日对偶性将目标函数化简,然后使用SMO(序列最小最优化)算法解决。

首先是拉格朗日对偶性化简目标函数。

在处理不同的目标函数之前,先解释一下,为什么拉格朗日对偶性能够化简目标函数:

假设拉格朗日函数满足KKT条件:

$L(x,a,b)=f(x)+\sum_{i=1}^{k}a_ic_i(x)+\sum_{j=1}^{l}b_jh_j(x)$

记:$\theta_p(x)=\max \limits_{a,b:a_i\geq 0} \ L(x,a,b)$

  $\theta_D(a,b)=\min \limits_{x\in R^{n}} \ L(x,a,b)$

证明:

$\because \theta_D(a,b)=\min \limits_{x\in R^{n}} \ L(x,a,b) \leq L(x,a,b) \leq \max \limits_{a,b:a_i\geq 0} \ L(x,a,b)=\theta_p(x)$

$\therefore \theta_D(a,b) \leq \theta_p(x)$

$\therefore \max \limits_{a,b:a_i\geq 0} \theta_D(a,b) \leq \min \limits_{x\in R^{n}} \theta_p(x)$

由于$L(x,a,b)$满足KKT条件,因此,存在解$x^*,a^*,b^*$使得上面的等号成立。

至于为什么KKT条件是上面等号成立的条件,我暂时还没有找到证明。不过这已经被前人证明过了,就按照一个结论记住吧。

因此,一旦满足KKT条件,原始问题直接就能转化成对偶问题,而且根据KKT条件,可以直接将问题简化。下面各个例子将会细说:

根据SVM处理不同的数据,我们逐个击破。首先是线性可分支持向量机:

$min \ \ \frac{1}{2}||w||^2$

$1-y_i * (w * x_i + b) \leq0$ $ \ \ \ $   $i=1,2,3......n$

首先写出广义拉格朗日函数:

$L(w,b,a)=\frac{1}{2}||w||^2+\sum_{i=1}^{n}a_i(1-y_i * (w * x_i + b))$

$a_i \geq 0 , \ i=0,1,...,n$

原始问题是:$\min \limits_{w,b} \max \limits_{a:a_i\geq 0} \ L(w,b,a)$

对偶问题是:$\max \limits_{a:a_i\geq 0} \min \limits_{w,b} \ L(w,b,a)$

我们对对偶问题进行化简,根据KKT条件可得(KKT条件的相关细节可以看介绍拉格朗日对偶性的文章):

$\triangledown_wL(w,b,a)=w-\sum_{i=1}^{n}a_iy_ix_i=0$

$\triangledown_bL(w,b,a)=-\sum_{i=1}^{n}a_iy_i=0$

因此,可以得到:

$w=\sum_{i=1}^{n}a_iy_ix_i$

$\sum_{i=1}^{n}a_iy_i=0$

将上面两个等式代入广义拉格朗日函数,化简可以得到:

$\min \limits_{w,b} \ L(w,b,a)=-\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}a_ia_jy_iy_j(x_i \centerdot x_j)+\sum_{i=1}^{n}a_i$

而:$\max \limits_{a} \ \min \limits_{w,b} \ L(w,b,a)=\max \limits_{a} \ -\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}a_ia_jy_iy_j(x_i \centerdot x_j)+\sum_{i=1}^{n}a_i$

因此,原始问题,转化成了下面的对偶问题:

$\max \limits_{a} \ -\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}a_ia_jy_iy_j(x_i \centerdot x_j)+\sum_{i=1}^{n}a_i$

$s.t. \ \sum_{i=1}^{n}a_iy_i=0$

$a_i \geq 0, \ i=1,2,....,n$

为了保证思路上的连续性,这里先不对上面的对偶问题进行求解,而是先分析剩下情况的问题如何转化。

线性支持向量机的目标函数:

$min \ \ \frac{1}{2}||w||^2 + C\sum_{i=1}^{n}\zeta_i$

$s.t. \ y_i*(w*x_i + b) \geq 1 - \zeta_i, \ \ \ i=1,2,3......n$

$\zeta_i \geq 0, \ \ i=1,2,3......n$

先写出广义拉格朗日函数:

$L(w,b,\zeta,a,\mu)=\frac{1}{2}||w||^2+C\sum_{i=1}^{n}\zeta_i+\sum_{i=1}^{n}a_i(1-\zeta_i-y_i * (w * x_i + b))+\sum_{i=1}^{n}\mu_i\zeta_i$

其中:$a_i \geq 0,\mu_i \geq 0$

其中原始问题是:$\min \limits_{w,b,\zeta} \ \max \limits_{a,\mu} \ \ L(w,b,\zeta,a,\mu)$

对偶问题是:$\max \limits_{a,\mu} \ \min \limits_{w,b,\zeta} \ \ L(w,b,\zeta,a,\mu)$

根据KKT条件,对对偶问题进行化简:

$\triangledown_wL(w,b,\zeta,a,\mu)=w-\sum_{i=1}^{n}a_iy_ix_i=0$

$\triangledown_bL(w,b,\zeta,a,\mu)=-\sum_{i=1}^{n}a_iy_i=0$

$\triangledown_{\zeta}L(w,b,\zeta,a,\mu)=C-a_i-\mu_i=0$

得到:

$w=\sum_{i=1}^{n}a_iy_ix_i$

$\sum_{i=1}^{n}a_iy_i=0$

$C-a_i-\mu_i=0$

因此,$\max \limits_{a} \ \min \limits_{w,b,\zeta} \ L(w,b,\zeta,a,\mu)=\max \limits_{a} \ -\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}a_ia_jy_iy_j(x_i \centerdot x_j)+\sum_{i=1}^{n}a_i$

其中,$\mu_i$可以根据等式$C-a_i-\mu_i=0$消去。即$\mu_i=C-a_i$,由$\mu_i\geq 0$得到$a_i\leq C$。

于是,可以得到下面的对偶问题:

$\max \limits_{a} \ -\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}a_ia_jy_iy_j(x_i \centerdot x_j)+\sum_{i=1}^{n}a_i$

$s.t. \ \sum_{i=1}^{n}a_iy_i=0$

$0\leq a_i\leq C, \ i=1,2,....,n$

非线性支持向量机:

我们已经知道,非线性支持向量机和线性支持向量机最大的区别是:非线性支持向量机通过一个映射函数将非线性问题转化成线性的问题。因此,其对偶问题的差别也就一个映射函数的差别:

$\max \limits_{a} \ -\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}a_ia_jy_iy_j(\phi(x_i) \centerdot \phi(x_j))+\sum_{i=1}^{n}a_i$

$s.t. \ \sum_{i=1}^{n}a_iy_i=0$

$0\leq a_i\leq C, \ i=1,2,....,n$

不过,在实际的计算中,前人发现,$\phi(x_i)\centerdot\phi(x_j)$的计算比较困难,但是,这一步又必不可少,通过研究后,前人找到了一个办法,这就是核技巧

核技巧的想法是:在学习和预测中,只定义核函数,而不显式地定义映射函数。也就是说:只定义:$K(x_i,x_j)=\phi(x_i)\centerdot\phi(x_j)$。

因此,我们得到核函数的定义:$K(x,z)=\phi(x)\centerdot\phi(z)$

这样定义的原因主要是:通过$K(x,z)$计算$\phi(x)\centerdot\phi(z)$比较容易,而通过$\phi(x)\centerdot\phi(z)$计算$K(x,z)$比较困难。因此,上面化简后的对偶函数变成:

$\max \limits_{a} \ -\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}a_ia_jy_iy_jK(x_i,x_j)+\sum_{i=1}^{n}a_i$

$s.t. \ \sum_{i=1}^{n}a_iy_i=0$

$0\leq a_i\leq C, \ i=1,2,....,n$

One Class SVM:

目标函数:

$\min \ R^2+C\sum_{i}\zeta_i$

$s.t \ (x_i-a)^T(x_i-a)\leq R^2+\zeta_i$

$\zeta_i\geq 0, \ \ \ i=1,2,...,n$

先写出广义拉格朗日函数:

$L(R,a,\zeta,b,\mu)=R^2+C\sum_{i}\zeta_i+\sum_{i=1}^{n}b_i(x_i^2-2ax_i+a^2-R^2-\zeta_i)+\sum_{i=1}^{n}\mu_{i}\zeta_i$

$b_i\geq 0,\mu_i\geq 0, \ \ i=1,2,3...,n$

其中原始问题是:$\min \limits_{R,a,\zeta} \ \max \limits_{b,\mu} \ \ L(w,a,\zeta,b,\mu)$

对偶问题是:$\max \limits_{b,\mu} \ \min \limits_{w,a,\zeta} \ \ L(w,a,\zeta,b,\mu)$

由KKT条件得到:

$\triangledown_RL(R,a,\zeta,b,\mu)=2R-\sum_{i=1}^{n}2b_iR=0 \ \ (1)$

$\triangledown_aL(w,a,\zeta,b,\mu)=\sum_{i=1}^{n}(2ab_i-2b_ix_i)=0 \ \ (2)$

$\triangledown_{\zeta}L(w,a,\zeta,b,\mu)=C-b_i-\mu_i=0 \ \ (3)$

(3)式是对每一个$\zeta_i$求偏导。

由(1)式可得,$\sum_{i=1}^{n}b_i=1$

由(2)式得:$\sum_{i=1}^{n}(2ab_i-2b_ix_i)=0$,由于不能保证$2ab_i-2b_ix_i=0$,因此,将公式拆开得:

$2a\sum_{i=1}^{n}b_i-2\sum_{i=1}^{n}b_ix_i=0$

因此,$a=\frac{\sum_{i=1}^{n}b_ix_i}{\sum_{i=1}^{n}b_i}=\sum_{i=1}^{n}b_ix_i$

,从(1)式的结果中可以知道分母等于1

由(3)式可得:$C-b_i-\mu_i=0,\ \ \ i=1,2,...,n$

由(3)式消去$\mu_i$可以得到:$0\leq b_i \leq C$

将(1)(3)代入拉格朗日函数,刚好消去包含R和的项:

$L(R,a,\zeta,b,\mu)=\sum_{i=1}^{n}b_i(x_i^2-2ax_i+a^2)$

将(2)式的推导结果:$a=\sum_{i=1}^{n}b_ix_i$代入上式可得:

$\min \limits_{R,a,\zeta} \ L(R,a,\zeta,b,\mu)=\sum_{i=1}^{n}b_i(x_i*x_i)-\sum_{i=1}^{n}\sum_{j=1}^{n}b_ib_j(x_i*x_j)$

如果采用了核技巧,也可以写成下面的表达式:

$\min \limits_{R,a,\zeta} \ L(R,a,\zeta,b,\mu)=\sum_{i=1}^{n}b_iK(x_i,x_i)-\sum_{i=1}^{n}\sum_{j=1}^{n}b_ib_jK(x_i,x_j)$

所以,原问题的对偶问题可以写成下面的形式

$\max \limits_{b_j} \ \sum_{i=1}^{n}b_iK(x_i,x_i)-\sum_{i=1}^{n}\sum_{j=1}^{n}b_ib_jK(x_i,x_j)$

$s.t. \ \sum_{i=1}^{n}b_i=1$

$0\leq b_i\leq C, \ i=1,2,...,n$

从前面的总结的4个情况来看,所有情况的对偶问题最终都会变成类似下面的形式:(以非线性支持向量机为例子)

$\max \limits_{a_i} \ L(a,x,y)$

$s.t. \ \sum_{i=1}^{n}a_iy_j=K$

$0\leq a_i\leq C, \ i=1,2,...,n$

其中,第一个式子是目标函数,一般是最大化或者最小化目标函数,能够控制的变量只有一个,如a;

第二个式子是一个等式,将从i=1到n的所有情况全部求和等于一个常数。

第三个式子是关于变量(如a)的范围的控制。

类似的形式,一般是可以用同样的办法进行求解的。

关于这类问题的求解,如果继续在本文中写,篇幅就太长了,影响阅读效果,因此,最后一步的求解,将会在下一篇文章中叙述,敬请期待。

时间: 2024-10-11 18:20:46

感知器、逻辑回归和SVM的求解的相关文章

【机器学习基础】核逻辑回归

将软间隔支持向量机看做正则化模型 上一小节中我们介绍了软间隔支持向量机,该模型允许有错分类数据的存在,从而使模型对数据有更好的适应性,有效避免过拟合的问题. 现在我们回顾一下松弛变量ξn,我们用ξn来记录违反分类边界的数据到边界的距离. 我们可以从另外一个角度,考虑一下ξn的计算: 对于任何一个点,如果该点违反了边界,那么ξn记录了其到边界的距离:如果没有违反,ξn为0. 所以我们可以用下面这个式子来表示: 与正则化模型的比较 在正则化中,我们用w的长度来控制复杂度,并且我们希望某个误差度量最小

逻辑回归模型梯度下降法跟牛顿法比较

1.综述 机器学习的优化问题中,梯度下降法和牛顿法是常用的两种凸函数求极值的方法,他们都是为了求得目标函数的近似解.梯度下降的目的是直接求解目标函数极小值,而牛顿法则变相地通过求解目标函数一阶导为零的参数值,进而求得目标函数最小值.在逻辑回归模型的参数求解中,一般用改良的梯度下降法,也可以用牛顿法. 2 梯度下降法 2.1算法描述 1.确定误差范围和下降的步长,确定函数的导函数 2.while(|新值 -旧值| >误差) 3.       旧值=新值 4.       新值=初始值-步长*导函数

Coursera《machine learning》--(6)逻辑回归

六 逻辑回归(Logistic Regression:LR) 逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就是由于这个逻辑函数,使得逻辑回归模型成为了机器学习领域一颗耀眼的明星,更是计算广告学的核心. 6.1 分类问题(Classification) 本小节开始介绍分类问题(该问题中要预测的变量y是离散值),同时,还要学习一种叫做逻辑回归的算法(Logistic regression),这是目前使用最广泛的一种算法.虽然该算法中

逻辑回归(Logistic Regression, LR)

1.什么是逻辑回归: 2.逻辑回归的流程及推导: 3.逻辑回归的多分类 4.逻辑回归VS线性回归 5.逻辑回归 VS SVM 1.什么使逻辑回归: 名为回归,实际是分类,通过计算$P(y=0|x;\theta )$的大小来预测分类类别,预测的是类别0,1,而不是概率,但计算的是概率:$0\leq P(y=0|x;\theta )\leq 1$,是个概率值,本身并没有非0即1的概念: 二项逻辑回归:x是输入,y是输出: $P(y=0|x)=\frac{1}{1+e^{-z}}$ $P(y=0|x)

Stanford大学机器学习公开课(三):局部加权回归、最小二乘的概率解释、逻辑回归、感知器算法

(一)局部加权回归 通常情况下的线性拟合不能很好地预测所有的值,因为它容易导致欠拟合(under fitting).如下图的左图.而多项式拟合能拟合所有数据,但是在预测新样本的时候又会变得很糟糕,因为它导致数据的 过拟合(overfitting),不符合数据真实的模型.如下图的右图. 下面来讲一种非参数学习方法——局部加权回归(LWR).为什么局部加权回归叫做非参数学习方法呢?首先,参数学习方法是这样一种方法:在训练完成所有数据后得到一系列训练参数,然后根据训练参数来预测新样本的值,这时不再依赖

从感知器到SVM

这篇文章主要是分析感知器和SVM处理分类问题的原理,不涉及求解 感知器: 感知器要解决的是这样的一个二分类问题:给定了一个线性可分的数据集,我们需要找到一个超平面,将该数据集分开.这个超平面的描述如下: $w*x+b=0$ 而感知器的决策函数是: $f(x)=sign(w*x+b)$ 其中     $z=w*x+b$ 是数据集的一个线性回归. 而 $sign$则是一个简单的符号函数. 所以,我们可以这样理解.感知器是在线性回归的基础上,加了一个阈值,将: $w * x_i + b\geq 0$

机器学习之SVM与逻辑回归的联系和区别

通常说的SVM与逻辑回归的联系一般指的是软间隔的SVM与逻辑回归之间的关系,硬间隔的SVM应该是与感知机模型的区别和联系.而且工程中也不能要求所有的点都正确分类,训练数据中噪声的存在使得完全正确分类很可能造成过拟合. 软间隔SVM与逻辑回归的联系 要说软间隔SVM与联系就要看软间隔SVM的缘由. 软间隔SVM表示样本数据不必要求全部正确分类,允许少量的数据点犯错.于是将硬间隔SVM的优化目标由: 变成硬间隔的优化目标: 在上面的优化目标中加上了惩罚项,C越大惩罚越大允许的错误越小.但是直接使用0

浅谈对机器学习算法的一些认识(决策树,SVM,knn最近邻,随机森林,朴素贝叶斯、逻辑回归)

一.决策树 定下一个最初的质点,从该点出发.分叉.(由于最初质点有可能落在边界值上,此时有可能会出现过拟合的问题. 二.SVM  svm是除深度学习在深度学习出现之前最好的分类算法了.它的特征如下: (1)它既可应用于线性(回归问题)分类,也可应用于非线性分类; (2)通过调节核函数参数的设置,可将数据集映射到多维平面上,对其细粒度化,从而使它的特征从二维变成多维,将在二维上线性不可分的问题转化为在多维上线性可  分的问题,最后再寻找一个最优切割平面(相当于在决策数基础上再寻找一个最优解),因此

大白话5分钟带你走进人工智能-第十八节逻辑回归之交叉熵损失函数梯度求解过程(3)

                                               第十八节逻辑回归之交叉熵损失函数梯度求解过程(3) 上一节中,我们讲解了交叉熵损失函数的概念,目标是要找到使得损失函数最小的那组θ,也就是l(θ)最大,即预测出来的结果在训练集上全部正确的概率最大.那我们怎么样找到我们的最优解呢?上节中提出用梯度下降法求解,本节的话我们对其具体细节展开. 先来看下我们用梯度下降求解最优解,想要通过梯度下降优化L(θ)到最小值需要几步? 第一步,随机产生w,随机到0附近会