感知机

概论:

感知机(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)= - ∑  yi(w*x1+b)            ——经验风险函数



感知机学习算法:

                                         min L(w,b)= - ∑  yi(w*x1+b) 

感知机_第1张图片




<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=max1il||xi||
假定存在向量 wopt ,满足 ||xi||=1         并且 有:

                                                                           



                                                                                   yi( wopt   *xi)=yi( wopt   *xi + bopt)>=γ
woptγwopt




w opt
S 上在线性感知机算法的误分次数最大为:

(.Rγ)2


感知机学习算法有无穷多个解,其解由于不同的初值或不同的迭代顺序而可能有所不同





wopt



 


感知机对偶形式:


以下引自: w wopt
http://www.crocro.cn/post/268.html
wopthttp://www.crocro.cn/post/268.html

前面已经解释了感知机学习的原始形式,但是由于其在多维空间中运算量较大,因此退出了对偶形式,通过提前计算Gram矩阵,因此我们先解释如何推导出感知机的对偶形式推导。

在原始形式,对于误分类点1.png ,感知机的更新形式是


2.png

 

我们通过逐步迭代,修改w,b,修改n次后,关于4.png的迭代增量为5.png,其中6.png,其中最终模式识别的w,b参数如下所示

因此在α表示误分次数,随着更新次数更多,以为它距离分离超平面越近,意味着越难正确分类。

下面总结一下感知机算法的对偶形式

输入:线性可分的数据集9.png,学习率10.png

输出:a,b;感知机模型

算法:

(1)12.png

(2)在训练集中选取数据13.png

(3)如果

15.png

16.png

(4) 转至(2),知道所有样本都没有误分类



下面用个实际的例子来解释一下如何进行感知机对偶形式,正样本依然是, 负样本点是

(1)按照上面的说法,我们取19.png,i=1,2,3,b=0, 

(2)为了简化计算,我们先求取gram矩阵,就是先计算出各个样本的点积,然后列到矩阵内,就可以减少重复计算了。

(3) 计算误分点并且进行更新,误分条件为22.png

对于x1, 23.png,它为误分类,我们对其进行更新可得24.png

然后对于x2,没有误分类,然后对于x3,25.png然后可以更新得26.png下面我们列出迭代过程如下

迭代 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

感知机模型为所以27.png

28.png



wopt
w opt

你可能感兴趣的:(感知机)