Tag Archives: Perceptron

感知机系列2:感知机学习算法及其 Python 实现

感知机学习问题转化为求解损失函数式 $L(w,b) = -\sum_{x_i \in M } y_i(w \cdot x_i + b)$ 的最优化问题,最优化的方法是随机梯度下降法。本节叙述感知机的具体算法。包括原始形式和对偶形式,并证明在训练数据线性可分条件下感知机学习算法的收敛性。

最重要的是由于内容完全抄录《统计学习方法》,自己使用 Python 实现了感知机算法的原始形式和对偶形式。

 
Continue reading

感知机系列1:感知机模型和学习策略

学习《统计学习方法》中第二章 感知机学习笔记。更多的是摘抄,基于例子对算法的实现等。

感知机(感知器, perceptron )是二分类的线性模型,输入为样本(实例)的特征向量,输出为样本类别( $-1$ 或 $+1$ )。由于其会对输入空间(特征空间)中将实例划分为正负两类的分离超平面,故属于判别模型

感知机学习的过程是求出训练数据进行线性划分的分离超平面,做法是通过基于错分类样本的损失函数,利用梯度下降法对损失函数极小化,求得模型参数。

特点是简单且易于实现,分为原始形式和对偶形式。感知机 1957 年由 Rosenblatt 提出,是神经网络与支持向量机的基础

 

Continue reading

Perceptron Learning Algorithm感知器(PLA)算法Matlab版

昨天在网上找了一段感知器算法和同学学习了一下,同时对代码写了自己解读的注释。也修改了一些里面写的不太好的地方。增强了算法的扩展性,并优化了局部的细节。

perceptron_demo

 

 

 

 

 

 

 

 

 

 

其实,not only PLA:),还有PA(口袋算法)。直接上代码,更多的见代码。

  • Perceptron Function
  • Demo

Continue reading

【MLF】2-4-Non-Separable Data

Lecture 2: Learning to Answer Yes/No——Non-Separable Data

本节重点介绍了线性不可分数据的处理办法——PLA算法的改进算法——口袋算法(Pocket Algorithm)。

  • Content
  • Slide #1. More about PLA
  • Slide #2. Learning with Noisy Data
  • Slide #3. Line with Noise Tolerance
  • Slide #4. Pocket Algorithm
  • Slide #5. Fun Time
  • Slide #6. Summary

Continue reading

【MLF】2-3-Guarantee of PLA

Lecture 2: Learning to Answer Yes/No——Guarantee of PLA

Slide #1. Linear Separability

我们来看看PLA(Perceptron Learning Algorithm)什么时候会停下来,在想这个问题之前不妨想想PLA的终止条件是什么,是PLA找到一条线能毫无错误地将数据样本分开,但是这有一个前提条件,就是数据样本可以用一条线分开,否则PLA永远无法将数据样本分开。

QQ截图20150606183755

 

 

 

 

 

 

Continue reading

【MLF】2-2-Perceptron Learning Algorithm (PLA)

 Lecture 2: Learning to Answer Yes/No——Perceptron Learning Algorithm (PLA)

通过上节课我们知道了一个可能的Hypothesis长相(可能是一条线,或者是在空间里所有可能的高维平面),那么我们现在的问题是——我们要怎样设计一个算法从众多的线或者面里选择一条最好的出来。

不妨我们想想,我们认为最好的线是什么,理想上的f对吧?如果能算出理想的f,那么我们就没什么好做的了,因为我们不知道f,所以我们希望我们的g和f越接近越好。但我们知道我们的f是由我们的数据产生的。  Continue reading