感知机是一种线性分类,属于判别式模型,在机器学习中还有一种是生成式模型(generative model)。感知机以及其对偶形式是神经网络和支持向量机的基础。下面我将具体介绍感知机的原始形式及其对偶形式:
一、原始形式
感知机的要求就是找得一个超平面S,超平面的表达式为S=Wx+b,因此我们可以将任务简化成找到参数W和b即可。
原始形式很容易理解,具体的参见李航教授的《统计学习基础》。,最小化损失这个函数,文中采用的随机梯度下降(SGD),每次选取一个误分类点进行修改权值。算法形式很简单,
二、对偶形式
对偶形式的定义,不在此多讲。具体来看书中的算法
一开始的时候 ,我也感到很耐们,主要困惑的点在于以下两个方面:
1.为什么权重可以表示成ayx的形式,
2.为什么进行迭代的时候 ,只需要修改阿尔法a的值。
下面就来简单的说说我的理解:
感知机的模型很简单,简而言之就是一开始的时候不管原始数据分布,假设数据分布为二维,那么我们先画一条直线,然后观察哪一点在这条直线(即超平面)的划分下是不正确的,只要有一点不满足分类结果,OK,我们就针对这一点进行调整参数,这就是进行了一轮迭代。下面我们来看一下具体的过程,一开始的权重值为w=0,b=0,因此假设找到了划分不正确的某一点(Xi,Yi),那么权重调整的结果就是(nXiYi,nYi),因此第二轮迭代之后,找到了另外一点不符合分类结果的数据,就要继续调整,调整过程无非是加上或者减去相应的学习率乘以相应的坐标点。
这就是原始形式,那么这样的算法过程有什么缺点以及该怎么优化呢?这才是我们感兴趣的地方。缺点在于每次迭代过程必须用所有的点和权重参数做乘法,来判断是否符合分类结果。因此这就出现了重复计算的问题。
因此感知机的对偶形式就是对所有的参数点进行内积操作,将其结果保存在一个名为gram矩阵中,那么权重的判断只需要调用相应的索引值即可,并且权重的数值可以用参数点的线性组合表示。每次出现不符合结果的参数电,只需对这个点前面的数值(即a)进行修改,具体的就是加上相应的学习率。这就能够简化计算了。
因此这就是我对于感知机的原始形式和对偶形式的理解。