Perceptron Learning Algorithm

957 查看

首先个人感觉学习是个很抽象的概念,在学校念了这么多年书,我们称其为学习,但是要一个人对学习做出一个定义又非常之难,而这又是一个必须要搞清楚的问题,因为如果搞不清楚这个概念,就搞不清楚什么是机器学习,如果连机器学习是什么都没搞清楚又谈什么机器学习算法之类的呢?
好吧,我要承认的是,以我现在的水平还不能对学习做出一个很准确的数学上的定义来,所以直接拿来主义,看一下老师的对于机器学习的定义,我仍然不能保证它一定是对的,但在自己还没有办法搞出自己能够满意的回答来的时候,还是先学习吧。就像吃橙子的时候不一定要知道橙子的定义,学习的时候不知道学习的定义也是情有可原的。可是我虽然不知道橙子的定义,当我见到苹果的时候我是不会把它当成橙子的,但这种本领不是天生就有的,而是经过后天的学习得来的,从不知道的状态到知道的状态,也许就是学习,又或许我们通过机器学习可以得到一个学习的概念,又或者这个概念是不可能找到的。

我知道有一个标准的概念,它就在那里,但是我无法描述,只能体会(学习)。

扯得有些远,回到主题,什么是机器学习呢?一向都是能动手的时候尽量不说话,画个下面的图理解一下:

可以看到,把这些符号化以后还是非常激动人心的,至少现在有了这样一个模型,太开心,当然,这个图也不是我的,出处国立台湾大学机器学习基石,所以我也不负责它的正确性,只是觉得好拿来用用。
机器学习就是上图所示的这样一个过程。而PLA(Perceptron Learning Algorithm)就是众多机器学习算法中最基础的一个算法。有种预感的是,PLA是先于机器学习这个概念而出现的,至于为什么,想想就知道啊,因为这是一个学习的过程,学习的时候一般是不会有学习的概念的。

基本理论

In machine learning, the perceptron is an algorithm for supervised learning of binary classifiers: functions that can decide whether an input (represented by a vector of numbers) belong to one class or another.[2] It is a type of linear classifier, i.e. a classification algorithm that makes its predictions based on a linear predictor function combining a set of weights with the feature vector. The algorithm allows for online learning, in that it processes elements in the training set one at a time.

来自维基百科Perceptron
好吧,继续做点翻译的事情:
在机器学习中,感知机是一种算法,主要用于二元分类器的监督型学习,那啥叫二元分类器呢,它就是一个函数,这个函数可以决定输入(由一个向量表示)是属于这一类的呢还是属于那一类。这是一种线性分类器,那啥叫线性分类器呢,线性分类器是一种分类算法,它是基于线性函数来做出预测的,线性函数把一集合的权重数和特征向量组合起来。这个算法在线学习,一个一个地处理训练集中的元素。
这里的概念一环扣一环,翻译过来有些不通顺,按照这个过程理解:函数->线性函数->线性分类器->二元分类器->感知机。只有后面三个概念新的。
看上去各种高大上,画个图再看看。

图同样来自维基百科 Perceptron#Definition