感知机模型
2017-01-10 17:47
309 查看
4000
假设输入空间是
![](http://ww3.sinaimg.cn/large/6cbb8645jw1eorj9pr9xsj201r00pdfl.jpg)
,输出空间是
![](http://ww2.sinaimg.cn/large/6cbb8645jw1eorjaj94k4j203000pq2p.jpg)
,x和y分属这两个空间,那么由输入空间到输出空间的如下函数:
![](http://ww4.sinaimg.cn/large/6cbb8645jw1eorjbpdm1ij204x00uwea.jpg)
称为感知机。其中,w和b称为感知机模型参数,
![](http://ww2.sinaimg.cn/large/6cbb8645jw1eorjd5njg3j201o00n3y9.jpg)
叫做权值或权值向量,
![](http://ww3.sinaimg.cn/large/6cbb8645jw1eorje9rfluj201f00k3y9.jpg)
叫做偏置,w·x表示向量w和x的内积。sign是一个函数:
![](http://ww3.sinaimg.cn/large/6cbb8645jw1eorjfpj43dj205t01ydfo.jpg)
感知机的几何解释是,线性方程
![](http://ww1.sinaimg.cn/large/6cbb8645jw1eorjic8f87j202x00pmwx.jpg)
将特征空间划分为正负两个部分:
![](http://ww2.sinaimg.cn/large/6cbb8645jw1eorjja7lxfj20am08jq36.jpg)
这个平面(2维时退化为直线)称为分离超平面。
数据集的线性可分性
给定数据集
![](http://ww2.sinaimg.cn/large/6cbb8645jw1eorjmb7q0gj207z00yq2s.jpg)
其中
![](http://ww3.sinaimg.cn/large/6cbb8645jw1eorjmxlryoj20au00s3yd.jpg)
如果存在某个超平面S
![](http://ww1.sinaimg.cn/large/6cbb8645jw1eorjnri6coj203400nmwx.jpg)
能够完全正确地将正负实例点全部分割开来,则称T线性可分,否则称T线性不可分。
假定数据集线性可分,我们希望找到一个合理的损失函数。
一个朴素的想法是采用误分类点的总数,但是这样的损失函数不是参数w,b的连续可导函数,不可导自然不能把握函数的变化,也就不易优化(不知道什么时候该终止训练,或终止的时机不是最优的)。
另一个想法是选择所有误分类点到超平面S的总距离。为此,先定义点x0到平面S的距离:
![](http://ww3.sinaimg.cn/large/6cbb8645jw1eorjtt25hvj204901sq2q.jpg)
分母
![](http://ww4.sinaimg.cn/large/6cbb8645jw1eorjue3bloj200y0100sc.jpg)
是w的L2范数,所谓L2范数,指的是向量各元素的平方和然后求平方根(长度)。这个式子很好理解,回忆中学学过的点到平面的距离:
![](http://ww2.sinaimg.cn/large/6cbb8645jw1eorjx8tx3xj204y014743.jpg)
此处的点到超平面S的距离的几何意义就是上述距离在多维空间的推广。因为在正确分类的情况下,对所有yi=+1的实例i,有wxi+b>0,而对所有yi=-1的实例i,有wxi+b<0,如果i被错误分类,yi正好相反,仔细理解这句话。所以对于误分类的数据一定有:
![](http://ww3.sinaimg.cn/large/6cbb8645jw1eorjzdmdq6j204c00ngle.jpg)
成立,所以我们去掉了绝对值符号,得到误分类点到超平面S的距离公式:
![](http://ww1.sinaimg.cn/large/6cbb8645jw1eork0jcncij204901n0sj.jpg)
假设所有误分类点构成集合M,那么所有误分类点到超平面S的总距离为
![](http://ww1.sinaimg.cn/large/6cbb8645jw1eork2c9v3yj205p01v0sk.jpg)
分母作用不大,反正一定是正的,不考虑分母,就得到了感知机学习的损失函数:
![](http://ww1.sinaimg.cn/large/6cbb8645jw1eork5k2jnij206p01a3yc.jpg)
感知机学习算法是对以下最优化问题的算法:
![](http://ww1.sinaimg.cn/large/6cbb8645jw1eork9rhk37j207b01bwec.jpg)
感知机学习算法是误分类驱动的,先随机选取一个超平面,然后用梯度下降法不断极小化上述损失函数。损失函数的梯度由:
求偏导:
![](http://ww4.sinaimg.cn/large/6cbb8645jw1eorm0hw2xjj205o031wee.jpg)
给出。所谓梯度,是一个向量,指向的是标量场增长最快的方向,长度是最大变化率。所谓标量场,指的是空间中任意一个点的属性都可以用一个标量表示的场(个人理解该标量为函数的输出)
随机选一个误分类点i,对参数w,b进行更新:
![](http://ww4.sinaimg.cn/large/6cbb8645jw1eorm6pnknmj203w02hdfn.jpg)
在此处我们会有疑问:
问题一、怎么理解
A = ▽
![](https://zhihu.com/equation?tex=_%7Bw%7D+)
L(w,b) 这个偏导数,以及为什么偏导算出的明明是累加
![](https://zhihu.com/equation?tex=%5Csum_%7B%7D%5E%7B%7D%7B%7D+)
,但是到了算法当中就变成了与单个
![](https://zhihu.com/equation?tex=%7By_%7Bi%7D+x_%7Bi%7D+%7D+)
相加了,即变成下面的方式了?
![](https://img-blog.csdn.net/20170110175512971?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbjE5OTIwMjE5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170110175529866?watermark/2/text/aHR0c<br/>ce77<br/>DovL2Jsb2cuY3Nkbi5uZXQvY2hlbjE5OTIwMjE5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
上式
![](http://ww3.sinaimg.cn/large/6cbb8645jw1eorm7rjn5jj203600q3ya.jpg)
是学习率。损失函数的参数加上梯度上升的反方向,于是就梯度下降了。所以,上述迭代可以使损失函数不断减小,直到为0。于是得到了原始形式的感知机学习算法:
![](http://ww4.sinaimg.cn/large/6cbb8645jw1eormbaytduj20jw0880ty.jpg)
记输入向量加进常数1的拓充形式
![](http://ww1.sinaimg.cn/large/6cbb8645jw1eosplryl0sj202i00pq2p.jpg)
,其最大长度为
![](http://ww2.sinaimg.cn/large/6cbb8645jw1eospnhjg27j2030010a9u.jpg)
,记感知机的参数向量
![](http://ww4.sinaimg.cn/large/6cbb8645jw1eosppickwoj202s00swe9.jpg)
,设满足条件
![](http://ww1.sinaimg.cn/large/6cbb8645jw1eospowv0a8j2021010dfl.jpg)
的超平面可以将数据集完全正确地分类,定义最小值伽马:
![](http://ww4.sinaimg.cn/large/6cbb8645jw1eospqkyqovj207t00vt8k.jpg)
则误分类次数k满足:
![](http://ww2.sinaimg.cn/large/6cbb8645jw1eosprbg0jwj202r021dfm.jpg)
证明请参考《统计学习方法》P31。
对偶指的是,将w和b表示为测试数据i的线性组合形式,通过求解系数得到w和b。具体说来,如果对误分类点i逐步修改wb修改了n次,则w,b关于i的增量分别为
![](http://ww4.sinaimg.cn/large/6cbb8645jw1eosqdq7kn0j202z00n742.jpg)
,这里
![](http://ww2.sinaimg.cn/large/6cbb8645jw1eosqejc08fj201v00ma9t.jpg)
,则最终求解到的参数分别表示为:
![](http://ww1.sinaimg.cn/large/6cbb8645jw1eosqfeu4yqj2038039jr8.jpg)
于是有算法2.2:
![](http://ww1.sinaimg.cn/large/6cbb8645jw1eosqijr2q3j20k30cpdhg.jpg)
首先,咱们了解一下【对偶】的定义是什么,简单的说,就是从一个不同的角度去解答相似问题,但是问题的解是相通的,甚至是一样一样的。ok,这个很简单,定义咱们就不深究了。
问题二、是什么东东,意义何在?数据量有限的情况下如何继续学习的更好?
![](https://img-blog.csdn.net/20170110175553179?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbjE5OTIwMjE5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170110175611445?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbjE5OTIwMjE5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2.https://www.zhihu.com/question/26526858
3.《统计学习方法》
一、什么是感知机
感知机1957年由Rosenblatt提出,是神经网络与支持向量机的基础。感知机是二类分类的线性分类模型,其输入实例为实例的特征向量,输出为实例的类别,取+1和-1二值。二 感知机模型
定义
假设输入空间是![](http://ww3.sinaimg.cn/large/6cbb8645jw1eorj9pr9xsj201r00pdfl.jpg)
,输出空间是
![](http://ww2.sinaimg.cn/large/6cbb8645jw1eorjaj94k4j203000pq2p.jpg)
,x和y分属这两个空间,那么由输入空间到输出空间的如下函数:
![](http://ww4.sinaimg.cn/large/6cbb8645jw1eorjbpdm1ij204x00uwea.jpg)
称为感知机。其中,w和b称为感知机模型参数,
![](http://ww2.sinaimg.cn/large/6cbb8645jw1eorjd5njg3j201o00n3y9.jpg)
叫做权值或权值向量,
![](http://ww3.sinaimg.cn/large/6cbb8645jw1eorje9rfluj201f00k3y9.jpg)
叫做偏置,w·x表示向量w和x的内积。sign是一个函数:
![](http://ww3.sinaimg.cn/large/6cbb8645jw1eorjfpj43dj205t01ydfo.jpg)
感知机的几何解释是,线性方程
![](http://ww1.sinaimg.cn/large/6cbb8645jw1eorjic8f87j202x00pmwx.jpg)
将特征空间划分为正负两个部分:
![](http://ww2.sinaimg.cn/large/6cbb8645jw1eorjja7lxfj20am08jq36.jpg)
这个平面(2维时退化为直线)称为分离超平面。
感知机学习策略
数据集的线性可分性
定义
给定数据集![](http://ww2.sinaimg.cn/large/6cbb8645jw1eorjmb7q0gj207z00yq2s.jpg)
其中
![](http://ww3.sinaimg.cn/large/6cbb8645jw1eorjmxlryoj20au00s3yd.jpg)
如果存在某个超平面S
![](http://ww1.sinaimg.cn/large/6cbb8645jw1eorjnri6coj203400nmwx.jpg)
能够完全正确地将正负实例点全部分割开来,则称T线性可分,否则称T线性不可分。
感知机学习策略
假定数据集线性可分,我们希望找到一个合理的损失函数。一个朴素的想法是采用误分类点的总数,但是这样的损失函数不是参数w,b的连续可导函数,不可导自然不能把握函数的变化,也就不易优化(不知道什么时候该终止训练,或终止的时机不是最优的)。
另一个想法是选择所有误分类点到超平面S的总距离。为此,先定义点x0到平面S的距离:
![](http://ww3.sinaimg.cn/large/6cbb8645jw1eorjtt25hvj204901sq2q.jpg)
分母
![](http://ww4.sinaimg.cn/large/6cbb8645jw1eorjue3bloj200y0100sc.jpg)
是w的L2范数,所谓L2范数,指的是向量各元素的平方和然后求平方根(长度)。这个式子很好理解,回忆中学学过的点到平面的距离:
![](http://ww2.sinaimg.cn/large/6cbb8645jw1eorjx8tx3xj204y014743.jpg)
此处的点到超平面S的距离的几何意义就是上述距离在多维空间的推广。因为在正确分类的情况下,对所有yi=+1的实例i,有wxi+b>0,而对所有yi=-1的实例i,有wxi+b<0,如果i被错误分类,yi正好相反,仔细理解这句话。所以对于误分类的数据一定有:
![](http://ww3.sinaimg.cn/large/6cbb8645jw1eorjzdmdq6j204c00ngle.jpg)
成立,所以我们去掉了绝对值符号,得到误分类点到超平面S的距离公式:
![](http://ww1.sinaimg.cn/large/6cbb8645jw1eork0jcncij204901n0sj.jpg)
假设所有误分类点构成集合M,那么所有误分类点到超平面S的总距离为
![](http://ww1.sinaimg.cn/large/6cbb8645jw1eork2c9v3yj205p01v0sk.jpg)
分母作用不大,反正一定是正的,不考虑分母,就得到了感知机学习的损失函数:
![](http://ww1.sinaimg.cn/large/6cbb8645jw1eork5k2jnij206p01a3yc.jpg)
感知机学习算法
原始形式
感知机学习算法是对以下最优化问题的算法:![](http://ww1.sinaimg.cn/large/6cbb8645jw1eork9rhk37j207b01bwec.jpg)
感知机学习算法是误分类驱动的,先随机选取一个超平面,然后用梯度下降法不断极小化上述损失函数。损失函数的梯度由:
求偏导:
![](http://ww4.sinaimg.cn/large/6cbb8645jw1eorm0hw2xjj205o031wee.jpg)
给出。所谓梯度,是一个向量,指向的是标量场增长最快的方向,长度是最大变化率。所谓标量场,指的是空间中任意一个点的属性都可以用一个标量表示的场(个人理解该标量为函数的输出)
随机选一个误分类点i,对参数w,b进行更新:
![](http://ww4.sinaimg.cn/large/6cbb8645jw1eorm6pnknmj203w02hdfn.jpg)
在此处我们会有疑问:
问题一、怎么理解
A = ▽
L(w,b) 这个偏导数,以及为什么偏导算出的明明是累加
,但是到了算法当中就变成了与单个
相加了,即变成下面的方式了?
上式
![](http://ww3.sinaimg.cn/large/6cbb8645jw1eorm7rjn5jj203600q3ya.jpg)
是学习率。损失函数的参数加上梯度上升的反方向,于是就梯度下降了。所以,上述迭代可以使损失函数不断减小,直到为0。于是得到了原始形式的感知机学习算法:
![](http://ww4.sinaimg.cn/large/6cbb8645jw1eormbaytduj20jw0880ty.jpg)
算法的收敛性
记输入向量加进常数1的拓充形式![](http://ww1.sinaimg.cn/large/6cbb8645jw1eosplryl0sj202i00pq2p.jpg)
,其最大长度为
![](http://ww2.sinaimg.cn/large/6cbb8645jw1eospnhjg27j2030010a9u.jpg)
,记感知机的参数向量
![](http://ww4.sinaimg.cn/large/6cbb8645jw1eosppickwoj202s00swe9.jpg)
,设满足条件
![](http://ww1.sinaimg.cn/large/6cbb8645jw1eospowv0a8j2021010dfl.jpg)
的超平面可以将数据集完全正确地分类,定义最小值伽马:
![](http://ww4.sinaimg.cn/large/6cbb8645jw1eospqkyqovj207t00vt8k.jpg)
则误分类次数k满足:
![](http://ww2.sinaimg.cn/large/6cbb8645jw1eosprbg0jwj202r021dfm.jpg)
证明请参考《统计学习方法》P31。
感知机学习算法的对偶形式
对偶指的是,将w和b表示为测试数据i的线性组合形式,通过求解系数得到w和b。具体说来,如果对误分类点i逐步修改wb修改了n次,则w,b关于i的增量分别为![](http://ww4.sinaimg.cn/large/6cbb8645jw1eosqdq7kn0j202z00n742.jpg)
,这里
![](http://ww2.sinaimg.cn/large/6cbb8645jw1eosqejc08fj201v00ma9t.jpg)
,则最终求解到的参数分别表示为:
![](http://ww1.sinaimg.cn/large/6cbb8645jw1eosqfeu4yqj2038039jr8.jpg)
于是有算法2.2:
![](http://ww1.sinaimg.cn/large/6cbb8645jw1eosqijr2q3j20k30cpdhg.jpg)
首先,咱们了解一下【对偶】的定义是什么,简单的说,就是从一个不同的角度去解答相似问题,但是问题的解是相通的,甚至是一样一样的。ok,这个很简单,定义咱们就不深究了。
问题二、是什么东东,意义何在?数据量有限的情况下如何继续学习的更好?
文章是自己学习的笔记,综合自互联网,如有侵权,请联系博主。
三、参考文献
1、http://www.hankcs.com/ml/the-perceptron.html2.https://www.zhihu.com/question/26526858
3.《统计学习方法》
相关文章推荐
- 机器学习:感知机模型
- 感知机模型
- [机器学习算法详解]感知机模型——以马的患病分类问题为例
- 感知机模型原始问题与对偶问题对比
- python 实现 Peceptron Learning Algorithm ( 二) 感知机模型实现
- python 实现 Peceptron Learning Algorithm ( 三) 感知机模型应用于Iris数据集
- TensorFlow上实现MLP多层感知机模型
- python 实现 Peceptron Learning Algorithm ( 二) 感知机模型实现
- python 实现 Peceptron Learning Algorithm ( 三) 感知机模型应用于Iris数据集
- [笔记-统计学习方法]感知机模型(perceptron) 原理与实现
- 感知机模型学习笔记及Python实现
- 统计学习方法 2-感知机模型
- 《统计学习方法》学习笔记—感知机模型python实现
- 统计学习笔记--感知机模型
- python 实现 Peceptron Learning Algorithm ( 二) 感知机模型实现
- python 实现 Peceptron Learning Algorithm ( 三) 感知机模型应用于Iris数据集
- 统计学习方法--感知机模型 (perception)
- python 实现 Peceptron Learning Algorithm ( 二) 感知机模型实现
- 使用感知机训练加法模型
- 感知机1 -- 感知机模型