感知机
2016-03-12 12:03
225 查看
概论:
感知机(perceptron)是二分类的线性分类模型 ——1957年Rosenlatt提出,神经网络与支持向量机的基础
感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,
导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化
算法分为原始形式和对偶形式
感知机预测是用学习得到的感知机模型对新的输入实例进行分类
感知机模型
f(x)=sign(w*x+b) ——w:权值、权值向量;b:偏置
sign(x)={+1,x>=0;
-1, x< 0;}
感知机的学习策略:
数据集的线性可分性:
对所有yi=+1的实例i,有w*xi+b>0;
对所有yi= -1的实例,有w*xi+b<0;
那么数据集T为线性可分数据集,否则线性不可分
感知机学习策略:
损失函数
i)损失函数的一个自然选择是误分类点的总数—但参数不是w,b的连续可导函数,不易优化
ii)误分类点到超平面S的总距离(被采用)
任一点到S的距离:
(l w*x0+b l) / ll w ll
ll w ll是w的L2范数.
其次:
对于误分类的数据(xi,yi)
-yi(w*xi+b)>0成立
所有误分类点总损失距离:
- ∑ yi(w*x1+b) / ll w ll
损失函数定义:
L(w,b)= [b]- ∑ yi(w*x1+b) ——经验风险函数[/b]
感知机学习算法:
min L(w,b)= - ∑ yi(w*x1+b)
算法的收敛性
novikoff定理
令S是一个非平凡的训练集,并且令:
R=max1≤i≤l||xi||
假定存在向量wopt,满足||xi||=1
并且有:
yi(wopt
*xi)=yi(wopt
*xi + bopt)>=γ
[b]woptγwopt[/b]
wopt
则S上在线性感知机算法的误分次数最大为:
(.Rγ)2
感知机学习算法有无穷多个解,其解由于不同的初值或不同的迭代顺序而可能有所不同
wopt
感知机对偶形式:
以下引自:wwopt
http://www.crocro.cn/post/268.html
wopthttp://www.crocro.cn/post/268.html
前面已经解释了感知机学习的原始形式,但是由于其在多维空间中运算量较大,因此退出了对偶形式,通过提前计算Gram矩阵,因此我们先解释如何推导出感知机的对偶形式推导。
在原始形式,对于误分类点
,感知机的更新形式是
我们通过逐步迭代,修改w,b,修改n次后,关于
的迭代增量为
,其中
,其中最终模式识别的w,b参数如下所示
因此在α表示误分次数,随着更新次数更多,以为它距离分离超平面越近,意味着越难正确分类。
下面总结一下感知机算法的对偶形式
输入:线性可分的数据集
,学习率
,
输出:a,b;感知机模型
算法:
(1)
(2)在训练集中选取数据
(3)如果
(4) 转至(2),知道所有样本都没有误分类
下面用个实际的例子来解释一下如何进行感知机对偶形式,正样本依然是
, 负样本点是
(1)按照上面的说法,我们取
,i=1,2,3,b=0,
(2)为了简化计算,我们先求取gram矩阵,就是先计算出各个样本的点积,然后列到矩阵内,就可以减少重复计算了。
(3) 计算误分点并且进行更新,误分条件为
对于x1,
,它为误分类,我们对其进行更新可得
然后对于x2,没有误分类,然后对于x3,
然后可以更新得
下面我们列出迭代过程如下
感知机模型为所以
wopt
wopt
感知机(perceptron)是二分类的线性分类模型 ——1957年Rosenlatt提出,神经网络与支持向量机的基础
感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,
导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化
算法分为原始形式和对偶形式
感知机预测是用学习得到的感知机模型对新的输入实例进行分类
感知机模型
f(x)=sign(w*x+b) ——w:权值、权值向量;b:偏置
sign(x)={+1,x>=0;
-1, x< 0;}
感知机的学习策略:
数据集的线性可分性:
对所有yi=+1的实例i,有w*xi+b>0;
对所有yi= -1的实例,有w*xi+b<0;
那么数据集T为线性可分数据集,否则线性不可分
感知机学习策略:
损失函数
i)损失函数的一个自然选择是误分类点的总数—但参数不是w,b的连续可导函数,不易优化
ii)误分类点到超平面S的总距离(被采用)
任一点到S的距离:
(l w*x0+b l) / ll w ll
ll w ll是w的L2范数.
其次:
对于误分类的数据(xi,yi)
-yi(w*xi+b)>0成立
所有误分类点总损失距离:
- ∑ yi(w*x1+b) / ll w ll
损失函数定义:
L(w,b)= [b]- ∑ yi(w*x1+b) ——经验风险函数[/b]
感知机学习算法:
min L(w,b)= - ∑ yi(w*x1+b)
<strong>输入训练集T 定义学习率n(0<n<=1) 选取初值w0,b0 在训练集中选取数据(xi,yi) 如果yi(w*xi+b)<=0 </strong><span style="font-size:14px;">w+n*yi*xi→w b+n*yi→b</span><strong> 迭代,直至没有误分类点 </strong>
算法的收敛性
novikoff定理
令S是一个非平凡的训练集,并且令:
R=max1≤i≤l||xi||
假定存在向量wopt,满足||xi||=1
并且有:
yi(wopt
*xi)=yi(wopt
*xi + bopt)>=γ
[b]woptγwopt[/b]
wopt
则S上在线性感知机算法的误分次数最大为:
(.Rγ)2
感知机学习算法有无穷多个解,其解由于不同的初值或不同的迭代顺序而可能有所不同
wopt
感知机对偶形式:
以下引自:wwopt
http://www.crocro.cn/post/268.html
wopthttp://www.crocro.cn/post/268.html
前面已经解释了感知机学习的原始形式,但是由于其在多维空间中运算量较大,因此退出了对偶形式,通过提前计算Gram矩阵,因此我们先解释如何推导出感知机的对偶形式推导。
在原始形式,对于误分类点
,感知机的更新形式是
我们通过逐步迭代,修改w,b,修改n次后,关于
的迭代增量为
,其中
,其中最终模式识别的w,b参数如下所示
因此在α表示误分次数,随着更新次数更多,以为它距离分离超平面越近,意味着越难正确分类。
下面总结一下感知机算法的对偶形式
输入:线性可分的数据集
,学习率
,
输出:a,b;感知机模型
算法:
(1)
(2)在训练集中选取数据
(3)如果
(4) 转至(2),知道所有样本都没有误分类
下面用个实际的例子来解释一下如何进行感知机对偶形式,正样本依然是
, 负样本点是
(1)按照上面的说法,我们取
,i=1,2,3,b=0,
(2)为了简化计算,我们先求取gram矩阵,就是先计算出各个样本的点积,然后列到矩阵内,就可以减少重复计算了。
(3) 计算误分点并且进行更新,误分条件为
对于x1,
,它为误分类,我们对其进行更新可得
然后对于x2,没有误分类,然后对于x3,
然后可以更新得
下面我们列出迭代过程如下
迭代 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
误分 | x1 | x3 | x3 | x3 | x1 | x3 | x3 | |
a1 | 0 | 1 | 1 | 1 | 1 | 2 | 2 | 2 |
a2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
a3 | 0 | 0 | 1 | 2 | 3 | 3 | 4 | 5 |
b | 0 | 1 | 0 | -1 | -2 | -1 | -2 | -3 |
wopt
wopt
相关文章推荐
- Android开发之高级通知应用
- java SE基础(文件和流)
- Windows下Eclipse导入android系统源码
- JAVA线程生命周期
- DOM 多字符搜索
- 盲修瞎练路漫漫,名师点化三日成[转]
- 关于Servlet生成验证码的src为什么要带随机数的问题
- leetcode 做题记录3
- 杭电Problem-3790 最短路径问题
- ButterKnife--View注入框架
- springmvc学习笔记(16)-异常处理器
- springmvc学习笔记(15)-数据回显
- 《你必须知道的495个C语言问题》读书笔记之第4-7章:指针
- Javascript的this用法
- 12 个有效的提高编程技能的方法
- UVA 816 - Abbott's Revenge(BFS)
- 20道简单加减法随机生成程序扩展版体会
- 桃李的修行小结【转】
- 基于Google Code Prettify wordpress插件WP-code-button
- Mac文件系统结构