感知器法则

感知器以一个实数值向量作为输入,计算这些输入的线性组合,然后如果结果大于某个阈值就输出 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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明
Python感知器算法是基于Frank Rosenblatt提出的感知器学习法则。该算法使用自学算法,通过优化得到权重系数,此系数与输入值的乘积决定了神经元是否被激活。感知器的训练算法包括以下步骤: 1. 初始化权重项和偏置项为0。 2. 使用感知器规则迭代地调整权重项和偏置项,直到训练完成。 3. 将每个训练样本的输入向量与相应的权重项相乘,并加上偏置项的乘积,计算感知器的输出值。 4. 根据感知器的输出值和训练样本的实际值,使用感知器规则来调整权重项和偏置项。 5. 每处理一个样本就调整一次权重项和偏置项。 6. 经过多轮迭代后,即全部的训练数据被反复处理多轮,就可以训练出感知器的权重,使之实现目标函数。 在实际实现中,可以使用Python编程语言来实现感知器算法。使用numpy库可以方便地进行数值计算和矩阵操作。具体实现过程可以参考引用和引用中提供的代码示例和函数使用方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [利用Python实现一个感知器学习算法](https://blog.csdn.net/qq_36303923/article/details/83217998)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [python实现 感知机(Perceptron)算法](https://blog.csdn.net/qq_38190185/article/details/109355027)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值