PLA算法的机制

故事起源于一个二元分类问题(比如说银行要不要给客户发信用卡的问题)

我们的先决条件

1.我们有资料在手上(用户信息)

2.我们的资料有标签(有没有发信用卡)

3.假设我们的资料是线性可分的(可以被一个超平面所分割)

我们的假设

我们首先要给每一笔资料算出一个得分函数,由于资料是线性可分的所以我们有如下假设

其中threshold为我们规定的门槛值,当得分为正sign()的结果为+1我们会给该客户发信用卡,否则不会。在此为了运算上的方便我们把门槛值归并到第0维中。

假设我们的得分函数是二维的,则h(x)的几何意义如下

在这两幅图中每一个点代表一个用户(对应的资料),x与o代表没有发信用卡与发了信用卡,而图中的线(在高维空间中就是超平面)就是h(x)所代表的几何意义,它的作用是将平面分成两份。而进一步说h(x)的集合(假设集合)就是图中的无限多条线。我们的目的是利用学习算法找到一条能够完全正确的分割资料的直线。

PLA算法登场

基本描述:

1.首先我们有一条随机的直线在手上。

2.我们将遍历所有的资料,将所有的资料带入上面的假设。比较计算的结果与实际的标签是否对应。对于犯错误的点我们就要更新手上的直线。

3.更新直线让它离我们理想的直线越来越近。

在遇到犯错误的点是我们使用如下的公式来进行更新

它的底层逻辑基于向量的内积(两个向量的内积越大那么他们的相关性越强),如果预测y为+1实际为-1那么就将w与x的夹角往大调,如果预测y为-1实际为+1那么就将w与x的夹角往小调。归结起来就是上面的(2)式(其中y为实际的标签值)。就这样一个知错能改的算法在跑若干轮后就能够得到我们想要的直线。

PLA算法更新几何上的说明

为什么我们选择的边界要垂直与W?我们的目标是找到一个一条线使得这条线的一边大于0,另一边的小于0所以我们要找的线就是等于0的那条线。表现在这个X的二维空间来说就是W与我们想要找的线垂直。

PLA算法有效性的证明

我们的思路是证明我们每一轮的更新都会接近与我们理想中的那条线,具体来说就是求出他们的标准化的内积会越来越大。

1.求内积

要求内积的两个向量如下图所示

Wf为我们的理想直线Wt+1为我们下一轮更新后的直线,其中需要注意的是在直线附近的点是刚好被分开的一些点所以这些点x与对应的权重W的相关性较差所以内积较小。也就是离线最近的那个点它与对应权重W的内积就最小。

我们利用放缩法有如下的推导:

我们确实发现它们的内积在不断地增大,内积的增大原因有向量的模长在增大或者是夹角在变小。但是需要证明两个向量的相关性增大需要证明的是两个向量的夹角在变小,所以我们需要排除另一个模长的不确定性。

我们试着证明模长不在增大就好证明过程如下:

结果是Wt+1的模长在增大所以现在还不能证明夹角在变小。

我们综合两次的证明来看(结果标准化)

我们得到了它们的数量级是在增大,所以肯定的是我们的更新是有效的。

PLA算法的不足

我们在不知道数据的情况下(是否线性可分)PLA就不会停下来,这个时候我们会使用Pocket演算法来找到一根不错的直线。Pocket演算法的基本思想就是找到一根犯错误更小的直线。实务上我们一般会执行到一定的时间或者一定的步数就会停下来。结果是它是一条不错的线,但是可能不是一个最优解。

最后特别感谢台湾大学林轩田老师!

20220128

关于PLA算法的补充

PLA算法的更新相当于是批量大小为1的梯度下降法

并使用如下损失函数

损失函数的意思是说,如果分类正确的话小于0,这个时候loss选择不更新因为梯度是一个常数。如果分类错误的话​​​​​​​ 大于0这个时候会进入梯度变更的函数进行变更。

感知机与XOR问题

感知机不能够解决XOR的问题,这一点在后面的VC维也会提出就是一个二维的分类器最多可以分割3个点。这就导致了AI的第一次寒冬。

附上主流的机器学习的教程

关注龙哥公众号回复:机器学习   领取教程

PLA算法(机器学习基石)相关推荐

  1. 台湾大学林轩田教授机器学习基石课程理解及python实现----PLA

    最近在班主任的带领下,开始观看台湾大学林轩田教授的机器学习基石课程,虽然吧,台湾人,汉语说得蛮6,但是还是听着怪怪的,不过内容非常值得刚刚入门的机器学习 小白学习,话不多说,直接进入正题. 1.基本介 ...

  2. [机器学习][1]--PLA算法

    [机器学习][1]--PLA算法     PLA全称为,Perception Learning Algorithm,中文叫感知学习算法.今天我会简单介绍一下这个算法,并用mathematica来实现一 ...

  3. 《机器学习基石》---感知机算法

    1 推导感知机模型 基本思想是,把特征的线性加权值作为一个分数,根据这个分数与一个门限值的关系来进行分类: 我们加一个特征x0等于1,门限值就可以放到w里面去,得到更简单的形式: 这就是感知机模型,对 ...

  4. 台湾大学林轩田机器学习基石课程学习笔记15 -- Validation

    红色石头的个人网站:redstonewill.com 上节课我们主要讲了为了避免overfitting,可以使用regularization方法来解决.在之前的EinEinE_{in}上加上一个reg ...

  5. 台湾大学林轩田机器学习基石课程学习笔记12 -- Nonlinear Transformation

    红色石头的个人网站:redstonewill.com 上一节课,我们介绍了分类问题的三种线性模型,可以用来解决binary classification和multiclass classificati ...

  6. 台湾大学林轩田机器学习基石课程学习笔记11 -- Linear Models for Classification

    红色石头的个人网站:redstonewill.com 上一节课,我们介绍了Logistic Regression问题,建立cross-entropy error,并提出使用梯度下降算法gradient ...

  7. 台湾大学林轩田机器学习基石课程学习笔记10 -- Logistic Regression

    红色石头的个人网站:redstonewill.com 上一节课,我们介绍了Linear Regression线性回归,以及用平方错误来寻找最佳的权重向量w,获得最好的线性预测.本节课将介绍Logist ...

  8. 台湾大学林轩田机器学习基石课程学习笔记7 -- The VC Dimension

    红色石头的个人网站:redstonewill.com 前几节课着重介绍了机器能够学习的条件并做了详细的推导和解释.机器能够学习必须满足两个条件: 假设空间H的Size M是有限的,即当N足够大的时候, ...

  9. 台湾大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

    红色石头的个人网站:redstonewill.com 上节课,我们主要介绍了机器学习的可行性.首先,由NFL定理可知,机器学习貌似是不可行的.但是,随后引入了统计学知识,如果样本数据足够大,且hypo ...

最新文章

  1. CGBitmapContextCreate参数详解
  2. 网络拓扑图一般用什么软件画_视频后期一般用什么软件
  3. java代码中何处以main开始,Gradle-user guide-第7章 Java 快速开始
  4. redis(一)--简介
  5. leetcode--912--排序数组
  6. c语言源程序结构是怎样的?
  7. Oracle数据库及在DOS命令下面的简单操作
  8. 目标检测——使用loss发现噪声数据
  9. android友盟注意事项
  10. 345. Reverse Vowels of a String【easy】
  11. python cox回归_TCGA+biomarker——多因素Cox回归
  12. python创意网络爬虫_如何利用Python写简单网络爬虫
  13. js function
  14. 鸿蒙pc系统镜像,鸿蒙系统有pc版么_鸿蒙系统有pc版安装方法
  15. X Server移植指导之三 输出层移植 (XServer Porting Guide)
  16. Stopping service [Tomcat]和Disconnected from the target VM排查
  17. 关于ADS安装失败的问题
  18. 链路层交换机及和路由器的比较
  19. 抓包与代理神器 —— whistle
  20. 普适计算技术的特点与发展趋势

热门文章

  1. git Enter passphrase for key ‘/root/.ssh/id_rsa’
  2. java handlebars_前端模板引擎Handlebars的使用总结(一)
  3. 什么是堡垒机?为什么需要堡垒机?
  4. linux下tomcat不能启动,linux系统中的tomcat无法启动怎么解决
  5. 西部广播电视杂志西部广播电视杂志社《西部广播电视》杂志社2023年第1期目录
  6. 小程序源码:独家修复登录接口社区论坛微信小程序源码下载-支持多种发帖模式超强社区
  7. 双向的多对一或者双向的一对多
  8. 为什么互联网巨头们纷纷使用Git而放弃SVN?(内含Git核心命令与原理总结)
  9. c语言设计基础答案第二版,程序设计基础——基于C语言(第2版) 课后习题参考答案...
  10. HeidiSQL工具导出导入MySQL数据