感知器法则

来源:互联网 发布:淘宝改版 编辑:程序博客网 时间:2024/06/16 15:36

感知器以一个实数值向量作为输入,计算这些输入的线性组合,然后如果结果大于某个阈值就输出 1,否则输出-1。更精确地,如果输入为 x1 到 xn,那么感知器计算的输出为: 

所以我们的目标是:学习权 w0, ..., w的值 。

我们可以把感知器看作是 n 维实例空间(即点空间)中的超平面决策面。对于超平面一侧的实例,感知器输出 1,对于另一侧的实例输出-1。二维如下图:方块为1,星为-1。 


为了得到可接受的权向量,一种办法是从随机的权值开始,然后反复地应用这个感知器到 每个训练样例,只要它误分类样例就修改感知器的权值。

重复这个过程,直到感知器正确分类所有的训练样例。每一步根据感知器训练法则来修改权值,也 就是根据下面的法则修改与输入 x对应的权 wi:


wi←wi+∆wi

其中 w=η(t-o)x


这里 t 是当前训练样例的目标输出,o 是感知器的输出,η是一个正的常数称为学习速 率(learning rate)。

学习速率的作用是缓和每一步调整权的程度。它通常被设为一个小的数 值(例如 0.1),而且有时会使其随着权调整次数的增加而衰减。 


为什么这个更新法则会成功收敛到正确的权值呢? 

一、假定训练样本已被感知器正确分类。 

这时,(t-o)是 0,这使∆wi 为 0,所以没有权值被修改。 

二、如果当目标输出是+1 时,感知器输出一个-1。(上图红色方块)

 这种情况为使感知器输出一个+1 而不是-1,权值必须被修改以增大  的值。

例如,如果 xi>0,那么增大 w会使感知器更接近正 确分类这个实例。注意这种情况下训练法则会增长 wi,因为(t-o),η和 x都是正的。例如, 如果 xi=0.8,η=0.1,t=1,并且 o= -1,那么权更新就是w=η(t-o)xi=0.1(1-(-1))0.8=0.16。另 一方面,如果 t=-1 而 o=1,那么和正的 x关联的权值会被减小而不是增大。 

更深刻的栗子:

上图虚线为第一次的分类器:O(x1,x2) = w0+w1x1+w2x2 = -4 + 2x1 + x2

代入红色方块(1,1)得:O(1,1) = -4+2+1 = -1 < 0, 感知器将其标记为-1。但是真实的分类为+1。

更新wi:

  • ∆wi = η(t-o)xi  = 0.2*(1+1)*1 = 0.4
  • w0 = w0 + ∆wi = -4 + 0.4 = -3.6
  • w1 = w1 + ∆wi = 2 + 0.4 = 2.4
  • w2 = w2 + ∆wi = 1 + 0.4 = 1.4

新的O(x1,x2) = -3.6 + 2.4x1 + 1.4x2 (上图实线)

再次对红色方块进行分类:O(1,1) = -3.6 + 2.4 + 1.4 = 0.2 > 0,  这次被标记成 +1啦。

总结:

优点:事实上可以证明,在有限次使用感知器训练法则后,上面的训练过程会收敛到一个能正 确分类所有训练样例的权向量,前提是训练样例线性可分,并且使用了充分小的η 。

不足:如果数据不是线性可分的,那么不能保证收敛;得出的分类函数未必是最优的。




0 0
原创粉丝点击