统计学习方法笔记 -- 感知机

感知机(perceptron),听着很牛比,其实就是二类分类的线性分类模型 
属于判别模型,1957年由Rosenblatt提出,是神经网络和支持向量机的基础 
任何统计机器学习都是三要素,只需要说清楚模型,策略和算法

感知机模型 

感知机是一种线性分类模型。 
假设空间是定义在特征空间中的线性分类模型或线性分类器,即函数集合 
 

几何解释为, 
线性方程,wx+b=0,对应于特征空间中的一个分离超平面(separating hyperplane),其中w为超平面的法向量,b是超平面的截距。该平面将数据点分为正,负两类

 

 

策略 
策略就是要定义损失函数,并让损失函数极小化 
如何选取损失函数很关键? 
这里一个自然的选择是,用误分点的总数作为损失函数,但问题是这个损失函数和w,b没关系,不易优化 
所以这里选择误分点到超平面的总距离作为损失函数,这样损失函数对于w,b是连续可导的,这样就可以使用梯度下降来找到最优解 
任一点到平面S的距离,参考点到平面的距离公式 
  
  
所以可以用来替换 
假设误分点集合为M,那么所有误分点到超平面S的总距离为, 

损失函数不需要考虑常量部分,所以感知机的损失函数为, 

损失函数是非负,如果没有误分点,为0,误分点越少,离超平面越近,损失函数值越小

 

算法

原始形式 
 

要解决的问题如上,由于损失函数是对于w和b连续可导的,所以这里使用梯度下降法(gradient descent)来找到最优解, 
Andrew Ng的公开课,理解梯度下降比较好的例子是,想象一下你在山上如果要以最快的速度下山,你会选择如何走一步(注意只是一步,下一步取决于新的位置) 
应该选择梯度的反方向,首先要定义梯度, 

可以看出梯度就是对于损失函数求偏导数,对于w的梯度就是对于L(w,b)求w的偏导,同样对于b的梯度也是对L(w,b)求b的偏导数

导数和微分 (参考wiki) 
导数
描述了这个函数在这一点附近的变化率。导数的本质是通过极限的概念对函数进行局部的线性逼近。 
 
 
微分是对函数的局部变化率的一种线性描述。微分可以近似地描述当函数自变量的取值作足够小的改变时,函数的值是怎样改变的。 
可微的函数,其微分等于导数乘以自变量的微分,因此,导数也叫做微商。 
 
一个多变量的函数的偏导数是它关于其中一个变量的导数,而保持其他变量恒定 
 
几何意义是,在求偏导那维上的切线斜率

上面可以看到对于梯度的计算需要使用所有的误分样本点,如果M非常大的话,效率很低,所以这里使用的是随机梯度下降

随机梯度下降(stochastic gradient descent) 
  
  
可见这里只是用一个样本点的损失函数的偏导值来修正w和b,效率会高 
但问题是,这次修正只是减小对该样本点的损失值,而非所有样本点的整体的损失值,也就是所这次修正是对于该样本点的局部最优,而非对整个样本集的全局最优 
所以随机梯度下降,会导致下降过程的震荡,但往往可以逼近全局最优 
当然这个方法的优点,不需要遍历所有的样本点,可以针对每个样本点对w和b进行迭代更新,这样通过部分样本点就可以使损失函数达到最小或收敛

所以给出完整的算法如下, 
 

感知机学习算法,给不同的初值或选取不同的误分类点,得到的解可能是不同的,比如对于下图的例子,明显解不是唯一的,会有很多解,为了得到唯一的超平面,需要增加约束条件,这就是支持向量机的思路 
并且可以证明(参考原书),当训练集线性可分时,感知机学习算法一定会收敛 
但是如果非线性可分,那么会导致不收敛,迭代结果会反复发生震荡 

 

对偶形式

假设初始值w0,b0均为0,并且经过如下迭代更新 
 
最后学习到的w,b分别可以表示为 
  
 
因为每次w,b更新后,误差样本点会发生变化,只有误差样本点会用于修正w,b,所以当多次修正仍然是误差点,说明该样本点很难正确分类, 和该样本点用于修正的次数成正比

下面是对偶形式的算法, 
只是用那项去替换w,b没有替换,why? 
替换后,由来替换  迭代 
本质有什么区别吗?对偶形式的好处是什么?

  

本文章摘自博客园,原文发布日期:2014-03-18 

时间: 2024-07-31 20:13:29

统计学习方法笔记 -- 感知机的相关文章

统计学习方法笔记 -- 概论

统计学习方法是基于训练数据构建统计模型,从而对数据进行预测和分析.  统计学习分为,监督学习(supervised learning),非监督学习,半监督学习和强化学习(reinforcement learning),其中以监督学习最为常见和重要,所以这里只讨论监督学习 统计学习的过程如下,  1. 获取训练数据集合  2. 确定假设空间,即所有可能的模型的集合  3. 确定模型选择的准则(什么是最优模型的标准),即学习的策略 4. 实现求解最优模型的算法(如何获取最优模型),即学习的算法 5.

统计学习方法笔记 -- 朴素贝叶斯

贝叶斯定理(Bayes theorem) 这是关于"逆概"或"后验概率"的定理,之所以需要这个定理是因为后验概率是以"果"来推导"因",所以往往难以直接统计出.  但是后验概率却非常重要,因为在现实生活中,往往都只能观测到一些表面的"果",需要去推断"因".  而bayes定理就给出一种计算后验概率的方法. 以例子来说明,一个班级中n个学生,有男生也有女生  两个features,短发;

统计学习方法笔记 -- 隐马尔可夫模型

参考,隐马尔可夫模型(HMM)攻略 首先看看确定的状态序列,这种状态序列中状态的变化是确定的,比如  红绿灯,一定是绿灯->红灯->黄灯,这样的状态序列  当然也有些不确定状态序列,比如  天气,今天是晴天,你不能确定明天也一定是晴天或雨天  于是我们用概率来表示这种不确定性,称为马尔可夫过程 (Markov Process),马尔可夫过程的阶数表示当前状态依赖于过去几个状态,出于简单考虑往往用一阶马尔可夫过程,即当前状态仅仅取决于前一个状态. 马尔可夫过程,由状态集合,初始状态和状态转移矩阵

统计学习方法笔记 -- Boosting方法

AdaBoost算法 基本思想是,对于一个复杂的问题,单独用一个分类算法判断比较困难,那么我们就用一组分类器来进行综合判断,得到结果,"三个臭皮匠顶一个诸葛亮" 专业的说法, 强可学习(strongly learnable),存在一个多项式算法可以学习,并且准确率很高  弱可学习(weakly learnable),存在一个多项式算法可以学习,但准确率略高于随机猜测 并且可以证明强可学习和弱可学习是等价的 那么发现一个弱可学习算法是很容易的,如果将弱可学习算法boosting到强可学习

统计学习方法笔记 -- 决策树

决策树 什么是决策树?      决策树可以看成一系列if-then的规则,这个很好理解  也可以看成是条件概率分布,  X为特征,x1,x2  Y为分类,1,-1  那么对于每个叶节点,相当于对于每个经过的中间结点的条件概率  当x1=a,x2=b的时候为1分类的概率>0.5,则认为是1分类 决策树学习 决策树学习的本质是从训练数据集上归纳出一组分类规则  但与训练集不相矛盾的决策树可能有多个,也可能一个都没有  我们的目标是找到一个和训练集矛盾较小,且具有很好的泛化能力的决策树(注意不要求没

统计学习方法(二)感知器C语音实现

感知器(perception)是二分类线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1的二值,感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型,感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此导入基于误分类的损失函数,利用梯度下降法对于损失函数进行极小化,求得感知器模型.--–摘自统计学习方法 感知器包含输入层和输出层,主要对线性的数据能有较好的区分效果. 感知器算法总的来说当实例点被误分类,即位于分离的超平面的一侧时,调整w,b的值

《机器学习与数据科学(基于R的统计学习方法)》——2.10 SQL数据库

2.10 SQL数据库 企业数据的常见来源是SQL数据库.SQL数据库是大大小小各种企业的生命线.很多情况下,数据存储在企业级的数据仓库或是部门级的数据集市中.虽然SQL数据库的应用相当广泛,但是最常用的思路是将数据存储在由行.列组成的"表格"中.事实上,大多数数据库应用软件将数据存储在多个表中.机器学习利用SQL数据的目的是写新的SQL查询语句(或者使用现有的)来得到一个平面文件,其中包含你在分析中想使用的数据.鉴于大多数SQL数据库处理工具将数据导成CSV格式,使用上面章节提到的工

干货|机器学习-感知机perceptron

什么是感知机 在机器学习中,感知机(perceptron)是二分类的线性分类模型,属于监督学习算法.输入为实例的特征向量,输出为实例的类别(取+1和-1).感知机对应于输入空间中将实例划分为两类的分离超平面.感知机旨在求出该超平面,为求得超平面导入了基于误分类的损失函数,利用梯度下降法 对损失函数进行最优化(最优化).感知机的学习算法具有简单而易于实现的优点,分为原始形式和对偶形式.感知机预测是用学习得到的感知机模型对新的实例进行预测的,因此属于判别模型.感知机由Rosenblatt于1957年

知错能改的感知机(Perceptron)

感知机(perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值.感知机对应于输入空间中将实例划分为正负两类的分离超平面,属于判别模型.感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此导入了基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型.感知机学习算法具有简单而易于实现的优点,分为原始形式和对偶形式.感知机是神经网络与支持向量机的基础. 划重点:简单说就是个二分类的线性分类模型,感知机学习,就是通过训练数据集,