感知器算法

时间:2021-07-28
本文章向大家介绍感知器算法,主要包括感知器算法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

感知器算法是一种可以直接得到线性判别函数的线性分类方法,由于它是基于样本线性可分的要求下使用的,所以先来了解下什么是线性可分

  1. 线性可分与线性不可分

假设有一个包含  个样本的样本集合  , 其中  . 我们想要找到一个线性判别函数 

将两类样本分开,其中  ,如图1所示:

图 1

为了讨论方便,我们将样本  增加了一维常数,得到增广样本向量 ,则 个样本的集合表示为 ,增广权矢量表示为  ,我们得到新的判别函数 

对应的决策规则就变为:  ,则决策为第一类;  决策为第二类.

那什么是线性可分?什么是线性不可分?

假设有一组样本  ,如果存在这样一个权矢量  ,使得任何一个样本满足“属于第一类,  ;属于第二类,  ”这样一个条件,那么我们就说这一组样本是线性可分的,即在样本特征空间中,至少会存在一个决策面可以将两类样本正确无误的分开,反之找不到一个决策面来区分的话,就说样本是线性不可分的。

对于感知器,我们要求样本必须是线性可分的,因为它作为一种最最简单的学习机器,目前还无法很好的解决线性不可分的情况(当然,有了解决不可分的算法),即便是不可分的情况,人们也更加倾向于使用其他算法,这也是感知器无法应用到更多实践场合的原因。

2. 感知器算法

感知器算法采用最直观的准则,即最小错分样本数。将错分样本到判别界面距离之和作为准则,称为感知器准则,表示如下:

为了求解感知器的准则函数,就是找到一个权矢量,使得惩罚函数最小化。我们使用机器学习中常用的梯度下降方法来迭代。惩罚函数对权矢量的梯度公式为:

利用梯度下降,我们有:

其中  是学习率(或步长)。

我们得到下列感知器算法批量调整版本):

当然,我们都知道这种对所有错分样本放到一起进行修正的做法是不妥当的,更妥当的办法是对每一个错分样本都单独修正,且每次都使用同一个固定步长,假如设步长为1,得到单样本调整版本的感知器算法:

感知器算法特点

  • 当样本线性可分情况下,学习率  合适时,算法具有收敛性
  • 收敛速度较慢
  • 当样本线性不可分情况下,算法不收敛,且无法判断样本是否线性可分



原文地址:https://www.cnblogs.com/celine227/p/15072130.html