转载请注明出处:https://www.cnblogs.com/chenzhihong294/p/11329669.html


先给出一个实例:

学生评判系统升级,现在评选一个学生是否优秀需要从学科成绩、科研成绩、竞赛成绩、体育素质......等n个角度来评测、每一个角度所占的评选标准比例又不一样。我们如何根据上一届优秀学生各方面成绩来设定各角度权比和优秀标准、完善评判系统,从而判断一个同学是否优秀呢?

我们可以将该问题转化为以下形式:

每个同学有n个评测角度(x),每个评测角度有不同的标准占比(w),当该学生得分超过某一门槛(threshold)时即可判定其为优秀,我们需要根据上一届优秀学生和非优秀学生的样本,找到最合理的w和threshold来构建评判系统。


首先数学化该问题:

如果该同学判定为优秀,则:
    

反之,若判定不优秀,则:

    

如果判定为优秀,我们将其value设为1,反之设为-1,则可以用到该函数:

     

故,我们可以将其改写为以下形式:

    

只需判断h(x)为 1 或者 -1 即可判定该同学是否优秀。

对此我们可以进一步化简,将:

    

所以,函数可以写为:

    

至此,问题数学化结束。


如何利用函数判定一位同学优秀与否:

对此,为了更加直观的面对该问题,我们假定只从两个角度来判定,即n=2,原式拆解后为:

    

可以看到函数中,我们用x代替x1,用y代替x2,用c代替threshold后,它变成了:

    

更具体一点,如下所示,我们用图像来可视化它:

  

是的,它变成了二维平面上的一条直线,在直线上方的最终函数值为1,直线下方的最终函数值为-1。

原来判定一位同学是否优秀的问题变成了“怎么找到一条直线将优秀的同学和不优秀的同学分开”


如何找到合适的w来完成模型构建:

设当前时刻为t,利用当前的h(x)遍历每一个样本 (xn(t),yn(t)) ,当发现错误时,即:

    

便修正w以尽量满足符合当前样本,具体修正方式如下:

    

为什么要这样修正呢,解释如下:

  首先,向量点积有以下公式:

    

  所以

    

  

  因为前两项的值都为正,所以整个式子的正负情况只与两向量的夹角余弦值有关。

  当y=+1,但两向量夹角大于90°,余弦值为负时,可以缩小两向量间的夹角大小,从而进行修正。

   

  当y=-1,但两向量夹角小于90°,余弦值为正时,可以扩大两向量间的夹角大小,从而进行修正。

   

所以,经过不断地修正,可以得到一个完美的直线,区分优秀的同学和不优秀的同学。

如以下动图展示的过程,我们设蓝圈为优秀的同学,红叉为不优秀的同学,9次修成后,便得到了最优的分割线。

   


使用PLA需要注意的条件:

理论上该算法是构建一个n-1维的超平面在n维空间上进行二分类。

两组样本必须是线性可分的,不然算法永远找不到一个最优超平面,也代表它永远不会停止迭代,算法无解。


以上就是PLA的全部过程,小伙伴门有建议可以在下方评论。

如有需要,后续博主会根据情况补充PLA的其他形式或者其他解析方法。

转载于:https://www.cnblogs.com/chenzhihong294/p/11329669.html

从实例到数理来解析感知机学习算法(PLA)相关推荐

  1. 写给大家看的机器学习书【Part3】直观易懂的感知机学习算法PLA

    作者:徐晗曦 原文:写给大家看的机器学习书(第三篇) 本次转载已获得作者授权,尊重原创,若需转载请联系作者本人. 相关文章: 写给大家看的机器学习书[Part1]什么是机器学习?机器学到的到底是什么? ...

  2. java实现一个感知机_感知机学习算法Java实现

    感知机学习算法Java实现. Perceptron类用于实现感知机, 其中的perceptronOriginal()方法用于实现感知机学习算法的原始形式: perceptronAnother()方法用 ...

  3. 机器学习——感知机学习算法

    一,感知机模型 感知机是一种较为简单的二分类模型,但由简至繁,感知机却是神经网络和支持向量机的基础.感知机旨在学习能够将输入数据划分为+1/-1的线性分离超平面,所以感知机是一种线性模型. 由输入空间 ...

  4. 用matlab实现感知机学习算法,训练分类器并解决井字游戏

    问题描述: 附件中包含的数据是传统游戏过三关(tic-tac-toe)的900余种棋局, 目的是要通过统计学习的方法让机器自动判别出胜负.数据文件中, 玩家是'x',对手是'o',每行数据包含3*3九 ...

  5. matlab处理李航《统计学方法》感知机学习算法---原始形式

    %%感知机学习算法---原始形式 %%算法步骤: % 1.选取初值w0,b0.确定步长(属于(0,1]) % 2.在训练集中选取数据(xi,yi) % 3.如果yi

  6. em算法 实例 正态分布_Petuum提出序列生成学习算法通用框架

    近日,来自人工智能创业公司 Petuum 的研究人员发表论文,提出序列生成学习算法的通用框架--广义的熵正则化策略优化框架(Generalized Entropy-Regularized Policy ...

  7. 无需公式或代码,用生活实例谈谈 AI 自动控制技术“强化学习”算法框架

    不用公式.不用代码,白话讲讲强化学习原理 The best way to learn is to teach others. 战胜围棋高手李世石的 AlphaGo ,称霸星际争霸2的 AIphaSta ...

  8. 利用Python实现一个感知机学习算法

    本文主要参考英文教材Python Machine Learning第二章.pdf文档下载链接: https://pan.baidu.com/s/1nuS07Qp 密码: gcb9. 本文主要内容包括利 ...

  9. 分类系列之感知器学习算法PLA 和 口袋算法Pocket Algorithm

    我们有一堆数据,默认他们是线性可分的.  定义f为这个数据分割线的最优解,但是我们不知道他的值.  我们仅有一个函数集H,这个函数一般是无穷大的.我们的目的就是从H中找出一条线g来尽可能的接近f.但是 ...

最新文章

  1. MPB:生态环境中心张丽梅组-​植物微生物组DNA提取扩增及溯源分析(视频)
  2. 这年头,机器翻译都会通过文字脑补画面了 | NAACL 2021
  3. 20145208 20145230 20145235 《信息安全系统设计基础》实验三 实时系统的移植
  4. 洛谷 2820 局域网
  5. 17.容器的成员函数优先于同名的算法
  6. Nginx负载均衡策略之轮询与加权轮询
  7. 增强优化JavaScript性能的方法 - 技巧大全
  8. oracle rlw,Oracle数据库终于支持R语言 发力数据挖掘
  9. Java中 java.io.IOException: Broken pipe
  10. mac安装rstudio_在Windows / Linux / Mac OS上安装R和RStudio入门
  11. zookeeper集群搭建和API使用
  12. ListView多种item注意以及自己出现的莫名其妙的错误
  13. 企业微信oauth认证_企业微信开发之授权登录
  14. putty怎么进入文件夹_putty常用命令
  15. 【特效】UE4 Niagara 制作爆炸特效
  16. scjp java程序员_Sun认证Java程序员(SCJP)考试
  17. 《期货大作手风云录》读书笔记
  18. 如何基于vue开发ui组件库(heaven-ui)
  19. 【总结】二手书网站开发总结(业余时间开发)
  20. 未来的苹果和谷歌到底哪家强?

热门文章

  1. rufus linux开机密码,使用Rufus 3.4制作Ubuntu 18.04.1 U盘启动盘的方法
  2. php 循环curl,PHP实现的curl批量请求操作示例
  3. c++大作业迷宫游戏 规定时间内完成_小学生做作业磨蹭的7个原因及对策!太准了~...
  4. java学习笔记2022.1.15
  5. 0-1背包问题暴力递归
  6. 最简单的进制转换函数
  7. HDU Problem - 4289 Control(最大流)
  8. Tensorflow保存模型详解(进阶版二):如何保存最近的.ckpt文件 及 如何分开保存.ckpt数据文件和.meta图文件
  9. c语言现代方法15章答案(自己做的,更新中)
  10. 0x84bb0001 sqlserver_sqlserver 实现收缩数据库日志操作