从感知器到SVM

这篇文章主要是分析感知器和SVM处理分类问题的原理,不涉及求解

感知器:

感知器要解决的是这样的一个二分类问题:给定了一个线性可分的数据集,我们需要找到一个超平面,将该数据集分开。这个超平面的描述如下:

$w*x+b=0$

而感知器的决策函数是:

$f(x)=sign(w*x+b)$

其中     $z=w*x+b$ 是数据集的一个线性回归。

而 $sign$则是一个简单的符号函数。

所以,我们可以这样理解。感知器是在线性回归的基础上,加了一个阈值,将:

$w * x_i + b\geq 0$ 的y值离散化为+1、$w * x_i + b\leq 0$ 的y值离散化为-1的一个分类器。

理论上,可以使用最小化均方误差的办法来求得所有的权值 W。但是,感知器给出了一个更加简练的办法。

对于一个已知的平面 $w*x+b=0 $,一个点 $(x_i,y_i)$到该平面的距离是:

$d=\frac{|w * x_i + b|}{||w||}$,当该点被正确分类以后,

$y_i=1$时,$w * x_i + b>0$ ,该点到超平面的距离是 $\frac{w * x_i + b}{||w||}$

$y_i=-1$时,$w * x_i + b<0$ ,该点到超平面的距离是 $- \frac{w * x_i + b}{||w||}$

这可以表示为: $\frac{y_i * (w * x_i + b)}{||w||}$

若被误分,则误分点到超平面的距离是  $-\frac{y_i * (w * x_i + b)}{||w||}$

将所有的误分点都相加起来,不考虑$\frac{1}{||W||}$,就得到了感知器的损失函数:

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

对于一个线性可分的数据集,我们当然是希望误分点越少越好,误分点越少,则损失函数越小。于是,感知器的训练就变成了一个无约束条件的最优化问题:

$min \ \ L(w,b) $

从无约束到有约束,从感知器到SVM:

前面我们得到了感知器的分离超平面: $w*x+b=0 $,这是在无约束的条件下得到的结果。无约束带来的一个很显见的特点是,这样的解有无穷多个。得到感知器这样的分类器,我们可能会觉得这个分类器有点粗心,分类的结果让我们觉得有点不太靠谱。所以,在感知器的基础上,我们希望做到:有最大的确信程度,确定数据的分类。

一般情况下,分类点和超平面的距离衡量了分类的确信程度,分类点和分离超平面越远,说明分类越靠谱。而$|w*x+b|$衡量了点到超平面$w*x+b=0 $的距离。

而$y_i $和 $w*x_i+b$符号是否一致可以描述分类的正确性。因此,使用

$y_i*(w*x_i+b)$可以描述分类的正确与否和确信度。

函数间隔:

(1)    样本点函数间隔:

定义:样本点$(x_i,y_i) $和分离超平面$w*x+b=0 $的函数间隔为:

$T_i$$‘$ $=y_i * (w * x_i + b)$ $ $ $i=1,2,3......n$

(2)    训练集的函数间隔:

定义:训练集的函数间隔是所有样本点的函数间隔的最小值:

$T_i$$‘$ $=min($$T_i$$‘$$) \ $   $i=1,2,3......n$

但是,函数间隔有一个问题是:当 w 和 b 等比例地扩大的时候,γ’实际上也在等比例地扩大,但是分离超平面却没有变化。这样,不利于确定最优分离超平面,说明函数间隔舍弃了重要的信息。而从感知器的推导过程来看,唯一被舍弃的信息只有||w||。我们也可以这样理解,w、b之所以能等比例地扩大,这是因为我们没有对w加以约束,因此,需要在函数间隔的基础上加一约束。这样,函数间隔就变成了:

$T=\frac{y * (w * x + b)}{||w||}=\frac{T‘}{||w||}$

由于T描述的是样本点$(x_i,y_i) $和分离超平面$w*x+b=0 $的几何距离,因此,得到下面的定义:

(3)    样本点几何间隔:

定义:样本点$(x_i,y_i) $和分离超平面$w*x+b=0 $的几何间隔为:

$T_i=\frac{y_i * (w * x + b)}{||w||}$ $ $ $i=1,2,3......n$

(4)    训练集的几何间隔:

定义:训练集的函数间隔是所有样本点的函数间隔的最小值:

$T = min(T_i) $ $ $ $i=1,2,3......n$

根据SVM需要最大的确信度的思想,可以得到SVM的目标函数如下:

$ max \ \ T$

$\frac{y_i * (w * x_i + b)}{||w||}\geq T$ $ $ $i=1,2,3.....n$

由于 $T=\frac{T‘}{||W||}$

因此,可以将这个关系代入上面的目标函数 :

得到    $max \ \frac{T‘}{||w||}$

$y_i$$* (w * x_i + b)\geq T‘$ $ \ \ \ $   $i=1,2,3......n$

因为 T’表示的是函数间隔,从前面的分析,我们可以知道,w、b等比例的变化的时候,T’也会等比例地变化。因此,我们可以让T’变化为 1 ,这样是可以解得相应的 w 和 b 。

于是,得到:  max $\frac{1}{||w||}$

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

由于 max $\frac{1}{||w||}$ 等价于 max $ \ \frac{1}{2}||w||^2$

所以,问题可以变成:

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

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

上面讨论的都是基于数据集线性可分的前提条件,因此,将其称为线性可分支持向量机

但是,在实际的生活中,我们能够收集到的数据集常常不是线性可分的。这时候,需要在原来线性可分支持向量机的基础上,往深处延伸一下。于是,就有了下一步

从线性可分数据集到近似线性数据集,从线性可分支持向量机到线性支持向量机:

有些训练集不能线性可分,是因为存在一些特异点,将这些特异点去掉以后,剩下的大部分样本组成的集合依然是线性可分的。

在这种情况下,意味着某些样本点$(x_i,y_i) $不能满足函数间隔大于1的约束条件。为了解决这个问题,可以对每个样本点引入一个松弛变量,使得函数间隔加上这个松弛变量后,满足约束条件。因此,约束条件变成了:

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

于是可以写成:$y_i * (w * x_i + b) \geq 1 - \zeta_i $ $ \ \ \ $   $i=1,2,3......n$

这种情况下,对每一个松弛变量$\zeta_i$,支付一个代价$\zeta_i$。则目标函数由原来的$\frac{1}{2}||w||^2$  变成:$\frac{1}{2}||w||^2$ $+C$$\sum_{i=1}^{n}$ $\zeta_i$

所以,具有特异点的线性可分支持向量机实际上可以归纳为下面有约束最优化的问题:

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

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

从近似线性数据集线性不可分数据集,从线性支持向量机到非线性支持向量机:

除去了线性可分数据集和近似线性可分数据集,剩下的就是非线性数据集了。如果非线性可分数据集能够用一个超曲面将数据集分开,那么,称这类问题为非线性可分问题。

当遇到非线性可分问题时,我们希望通过一个变换,让数据集经过映射后,成为线性可分数据集。这样,我们就能继续沿用前面提到的办法。

记 $z=\phi (x) $是从非线性到线性的映射,那么,只需要将x替换成映射后的函数,就可以继续沿用线性支持向量机的办法,于是,得到目标函数如下:

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

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

参考文献:

1、《统计学习方法》 李航

2、维基百科

转载请注明源地址:http://www.cnblogs.com/weibao/p/5547587.html

有任何问题请联系:[email protected]

时间: 2024-08-06 19:52:14

从感知器到SVM的相关文章

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

这篇文章将介绍感知器.逻辑回归的求解和SVM的部分求解,包含部分的证明.本文章涉及的一些基础知识,已经在<梯度下降.牛顿法和拉格朗日对偶性>中指出,而这里要解决的问题,来自<从感知器到SVM> .<从线性回归到逻辑回归>两篇文章. 感知器: 前面的文章已经讲到,感知器的目标函数如下: $min \ L(w,b)$ 其中,$L(w,b)=-\sum_{i=1}^{n}[y_i*(w*x_i+b)]$ 对于上面这种无约束的最优化问题,一般采用的是梯度下降的办法,但是,考虑到

机器学习 —— 基础整理(六):线性判别函数——感知器、松弛算法、Ho-Kashyap算法

本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 (一)线性判别函数与广义线性判别函数 一.线性判别函数 这篇总结继续关注分类问题.假设判别函数(Discriminant function)的参数形式已知,用训练的方法直接根据样本估计判别函数的参数.线性判别函数的形式为: $$g(\textbf x)=\textbf w^{\top}\textbf x+w_0$$ $\textbf x\in \mathbb R^d$ 是

Rosenblatt感知器详解

在学习了机器学习十大算法之后,我决定将目光投向神经网络,从而攀登深度学习的高峰.这条险路的第一个拦路虎就是Rosenblatt感知器.为什么这么说呢?不仅是因为它开拓性的贡献——感知器是第一个从算法上完整描述的神经网络,而Rosenblatt感知器是感知器作为监督学习的第一个模型.还因为学习Rosenblatt感知器能够帮助了解神经元的结构.信息流的传递以及知识的学习和存储,从而打开看待问题的全新视角——模拟人脑解决问题.当然,仅仅如此的话,它只能说是可口的羔羊,谈不上拦路的猛虎.自然是在理解这

Coursera机器学习基石 第2讲:感知器

第一讲中我们学习了一个机器学习系统的完整框架,包含以下3部分:训练集.假设集.学习算法 一个机器学习系统的工作原理是:学习算法根据训练集,从假设集合H中选择一个最好的假设g,使得g与目标函数f尽可能低接近.H称为假设空间,是由一个学习模型的参数决定的假设构成的一个空间.而我们这周就要学习一个特定的H——感知器模型. 感知器模型在神经网络发展历史中占有特殊地位,并且是第一个具有完整算法描述的神经网络学习算法(称为感知器学习算法:PLA).这个算法是由一位心理学家Rosenblatt在1958年提出

神经网络入门回顾(感知器、多层感知器)

神经网络属于“连接主义”,和统计机器学习的理论基础区别还是很不一样. 以我自己的理解,统计机器学习的理论基于统计学,理论厚度足够强,让人有足够的安全感:而神经网络的理论更侧重于代数,表征能力特别强,不过可解释性欠佳. 这两个属于机器学习的两个不同的流派,偶尔也有相互等价的算法. 本文回顾神经网络最简单的构件:感知器.多层感知器. 感知器 感知器是二类分类的线性分类模型,将实例划分为正负两类的分离超平面(separating hyperplane),属于判别模型. 感知器基于线性阈值单元(Line

多层感知器学习

1.多层感知器简介 多层感知器(MLP)可以看做一个逻辑回归,不过它的输入要先进行一个非线性变换,这样数据就被映射到线性可分的空间了,这个空间我们称为隐藏层.通常单层隐藏层就可以作为一个感知器了,其结构如下图所示: 这里输入层首先通过权重矩阵和偏置得到总输出值并且通过tanh函数作一个非线性变换就可以得到hidden layer,然后从hidden layer到output layer可以使用之前的逻辑回归进行操作. 这里我们同样使用SGD算法来对参数进行更新,参数共有四个,分别是input-h

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

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

神经网络与人工智能No1-Rosenblatt感知器

     直入正题,首先要确定的是Rosenblatt感知器的应用范围是线性可分模型(通俗的讲就是在N维空间中存在一个超平面可以将整个模型一分为二)其作用就是分类,由一个具有可调突触权值和偏置的神经元组成. 模式:事务的标准样式. 感知器:感知器模型(神经元)+感知器算法(收敛). 建立在一个神经元上的感知器只能完成两类的模式分类,扩展多个神经元可完成多类的模式分类.

感知器与梯度下降

声明:本文由Ronny发表在http://www.cnblogs.com/ronny/p/ann_01.html ,如需转载请注明出处 一.前言 1,什么是神经网络? 人工神经网络(ANN)又称神经网络(NN),它是一种受生物学启发而产生的一种模拟人脑的学习系统.它通过相互连结的结点构成一个复杂的网络结构,每一个结点都具有多个输入和一个输出,并且该结点与其他结点以一个权重因子相连在一起.通俗来说,神经网络是一种学习器,给它一组输入,它会得到一组输出,神经网络里的结点相互连结决定了输入的数据在里面