码迷,mamicode.com
首页 > 编程语言 > 详细

感知器算法初探

时间:2016-02-19 14:10:34      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

今天学了感知器算法:Perceptron Learning Algorithm (PLA)

觉得自己应该回去重新学学线性代数QAQ

依旧是自己的理解为主……

感知器算法是一种线性分类器,对于一个样本,它具有x={x1, x2, ..., xn}这些特征,每个特征具有一个权值w={w1, w2, ..., wn},所以这个样本的特征向量为X=∑xi*wi。分类集为y={y1, y2, ..., yn},所以设分类函数为y=f(X),感知器的目的是求一个函数g≈f。

假设现在有一系列样本,样本共两个权值,所以可以在二维平面上表示这些样本:

 

技术分享

设红色样本的y=-1,蓝色样本y=1,黄线为函数g。

感知器算法的流程如下:

设函数g为wt,t表示次数,t初始为0。

遍历样本,如果找到错误的点,即sign(Xn*wt)!=yn,则要去修正wt,使wt+1=wt+yn*Xn,直到没有错误的点出现。

这样的算法一定会终止吗?

需要样本线性可分,即存在一条目标线使得所有sign(Xn*wf)=yn

如果样本不是线性可分的,可以用贪心求近似最优解,即用一个变量w来保存错误率最低的线,每次找到错误的时候,如果修正完的线错误率更低,则更新w,直到算法运行足够多次。

 

感知器算法初探

标签:

原文地址:http://www.cnblogs.com/Apro/p/5200631.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!