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

台大林轩田机器学习基石学习笔记(二):Learning to Answer Yes/No 在本次学习中,Hsuan-Tien Lin通过银行发信用卡的例子引入感知器假设集的概念,进一步分析之后,给出感知器算法PLA,并总结了PLA的使用条件和优缺点,最后给出一种改进算法—Pocket Algorithm,即口袋算法。下面开始第二节课的笔记:Learning to Answer Yes/No。 文章目录一、Perceptron Hypothesis Set二、Perceptron L... 阅读详情

我们有一堆数据,默认他们是线性可分的。
定义f为这个数据分割线的最优解,但是我们不知道他的值。
我们仅有一个函数集H,这个函数一般是无穷大的。我们的目的就是从H中找出一条线g来尽可能的接近f。但是,我刚刚说了,H内的函数一般是无穷多的,我们不可能把H中的函数一 一 比较,得到最好的分割线g吧!!!

不过伟大的科学家就说,我们的目的不就是找出一条线把这些数据都分开吗!!那我随机的初始化一条分割线 g0,让他一 一和数据点进行比较(数据总该是有限个的吧), 如果 某一个数据点划分对了,那这条线就不动,继续比较下一个点。如果错了,那就调整 这条线,让他能把这个点分对。以此下去,直到我们发现所有的点都分隔对了为止。。。

  1. 那么问题就来了,我们怎么调整这条分隔线呢???
    首先要明确,只有当分类出错误的时候,才对分割线进行调整。
    假设我们遇到的数据点(xn,yn)是我们第t次分类错误。那么就有这里写图片描述

    当yn=+1 时,则我们的错误结果为wTxn=wt−→∗xn−→=||w||∗||xn||∗cosΘ<0,即cosΘ<0 则Θ太大,为了能过纠正错误,决定减小Θ,就让w→t+1=w→t+x→
    即这里写图片描述
    紫色的就是更改后的wt+1

    同理
    当yn=−1时,则我们的错误结果为wTxn=wt−→∗xn−→=||w||∗||xn||∗cosΘ>0,即cosΘ>0 则Θ太小,为了能过纠正错误,决定增大Θ,就让w→t+1=w→t−x→
    即这里写图片描述
    紫色的就是更改后的wt+1

    综上所述,当分割线遇到点(xn,yn)时,如果分割正确,那么wt就不变,如果分割错误,那么就令这里写图片描述

    注意w是分割线wTx=0的法线,也就是说分割线的方向是与w的方向垂直的。。。

  2. 这个想法是挺好的,那么问题是,用这种方法到底行不行得通呢???现在,我们就来验证这个算法的正确性!!!
    这种方法到底行不行得通,其实就是说这个算法到底能不能找到正确区分所有点的线。即这个算法到底能不能收敛?(收敛就是能停下来,算法只有找到了满足要求的线才停下来,所以说法不同,但意思是一样的)
    证明:
    首先有两个前提:
    前提1:数据本就是可以线性可分的。(如果数据不是线性可分的话,那不管我们怎么找都找不到那条线)
    前提2:我们仅仅是遇到分错的点时,才改变wt,遇到分对的点wt不变。

    根据前提1,说明最终的线一定存在。
    假设wf是我们要的线,则有 这里写图片描述
    当线wTtx=0遇到(xn,yn)发生错误时,则更新wt+1,即这里写图片描述
    遂有
    这里写图片描述
    则
    这里写图片描述

根据前提2,有
这里写图片描述
又有这里写图片描述

则
这里写图片描述
判断w_t,wf是否相近,只需他们的Θ尽可能为0

我们初始化w0=0,则可以怎么得,在T次误差矫正后,有
这里写图片描述
所以,最终得到

这里写图片描述
即cosΘ>=T−−√.Cconstant,即随着T逐渐增大,cosΘ也会逐渐增大,那么Θ会逐渐减小到0,所以wt是越来越接近wf 又cosΘ<=1,所以 wt一定收敛。

这个算法最大的缺点就是假设数据点是线性可分的。问题是,我们并不知道数据到底是不是线性可分的!!如果不是,也就是说最终根本没有上面的wf,即没有一条不犯错误的线,那么以上的推论都是“白搭”!!!

那怎么办???有个想法是,我们能不能把找出一条犯错误最少的线呢????即这里写图片描述
其实,从实际意义上,是不能的。这是一个著名的NP hard 问题!!!因为线有无穷多个啊!!!

伟大的科学家又提出一条算法,来解决这个问题——-口袋算法
口袋算法基于贪心的思想。他总是让遇到的最好的线拿在自己的手上。。。
就是我首先手里有一条分割线wt,发现他在数据点(xn,yn)上面犯了错误,那我们就纠正这个分割线得到wt+1,我们然后让wt与wt+1遍历所有的数据,看哪条线犯的错误少。如果wt+1犯的错误少,那么就让wt+1替代wt,否则wt不变。
那怎样让算法停下来呢??——–我们就 自己规定迭代的次数
由于口袋算法得到的线越来越好(PLA就不一定了,PLA是最终结果最好,其他情况就说不准了),所以我们就 自己规定迭代的次数 。
这里写图片描述

  1. 最后一个问题,如果数据本就是线性可分,那么我们用 pocket algorithm 和用 PLA,那个更好???
    答案是PLA更好。先不说PLA可以找到最好的那条线。单从效率上来说,PLA也更好些。最主要的原因是,pocket algorithm 每次比较的时候,都要遍历所有的数据点,且两个算法都要遍历一遍,才会决定那个算法好,而这还是比较一次,如果我们让他迭代500次的,那就麻烦了!!!但是,所有前提是,数据是线性可分的。如果线性不可分,只能用pocket algorithm,因为PLA根本不会停下来(而且PLA的wt也不是每更改一次效果就会比之前的好)!!

总结一下,这篇博客讲了些什么:
1. 先 讲解了 PLA算法
2. 然后 证明PLA算法在数据是线性可分的情况下的正确性
方法: 余弦定理+公式wt+1=wt+yn∗xn
3. 讨论在线性不可分情况下的 口袋算法pocket algorithm
4. 简单的讨论了 PLA和pocket algorithm的优缺点
5. 那么你能否将这些内容复述一遍 -_-

【机器学习】PLA (感知机算法 Perceptron Learning Algorithm) 1. PLA 基础理论 PLA是一个线性二分类算法。 1.1 Perceptron Hypothesis 我们也可以把偏置项作为一个恒为1的维度并入x向量,于是得到: h(x)=sign(wTx)h(x) = sign(w^Tx)h(x)=sign(wTx) 注意:这里的负样本是-1而不是0     2. PLA的算法实现过程 算法步骤: 选择w0=0w_0 = 0w0​=0 (选择初始值,一般选0) 选择一个分类错误的样本n,更新w, w1=w0+ynxnw_1 = w_0 阅读详情

相关推荐

pocket口袋算法实现

由于PLA的非线性不可分,进一步编写口袋Pocket算法,可实现训练集的收敛

机器学习算法系列(二)- 口袋算法(Pocket Algorithm)

机器学习算法系列(二)- 口袋算法(Pocket Algorithm)

Saisimon`s blog 6490

AI虚拟人物 数字人直播,不用出镜,不用露脸的直播方式(附教程 软件)

我们先来看一组数据,这是我通过蝉妈妈查到的某位虚拟主播的一个带货数据,粉丝还不到 3000 人,每次直播 1 到 4 个小时,30天的总销量达到了1200单,15天,总销售额 2 万,可能相对来说客单价还是比较低,最关键的是才直播了 6 场,如果说他能够一个月直播 20 天,每天花 4个小时去直播,当个副业来做,就可以达到最起码月入 3 万的一个收入水平,我个人觉得是非常的不错的。大家把商品图片放在背景,只要场景设置的不错,场景和产品的关联度高,直播的时候挂上购买链接也会有一定的成交。

. 7万+

[机器学习][3]--口袋算法与线性回归

[机器学习][3]--口袋算法与线性回归 今天将会接着第一篇文章的PLA算法接着讲下去,将会去优化PLA算法。 首先有个问题需要说一下,一般来说,如果要测试某个模型的可用性,最好就是利用真实数据。但是由于我没能找到好的数据来做测试,所以我下面就用随机生成的数据来做为例子了 说一下参考文章:加州理工学院公开课:机器学习与数据挖掘_线性模型 首先,我们看一下PLA算法的...

weixin_30852367的博客 362

别只刷题了!我用834分经验告诉你,华为HCIP大数据考试(H13-723)这样准备更高效

本文分享了华为HCIP大数据认证(H13-723)834分通关的高效备考经验。通过分析考试动态、题库验证技巧和章节优先级策略,帮助考生超越单纯刷题,系统化掌握核心知识点。特别强调实时流处理和离线批处理等重点章节,提供黄金90分钟临场发挥策略,助力考生一次性通过考试。

weixin_38168786的博客 459

从Level 1到Level 22:手把手带你用Burp Suite通关burp-labs靶场全关卡(附难点解析)

本文详细解析了如何使用Burp Suite通关burp-labs靶场的22个关卡,从基础爆破到复杂编码绕过,涵盖Intruder配置、响应过滤、POST请求处理、MD5爆破等关键技术。特别针对Level 16的三重编码和Level 20的中文响应处理等难点提供实战技巧,帮助渗透测试工程师提升Web安全实战能力。

weixin_28831461的博客 436

口袋算法的示例

感知器学习算法通过反复调整权重,找到一个线性决策边界,使得所有样本点都被正确分类。该算法对于线性可分的数据集非常有效,但对于不可线性分的数据集可能不会收敛。

qq_44133607的博客 1518

AI赚钱新思路 利用RPA+KIMI实现小红书全自动制作发布(详细攻略)

我已经事先准备好了文案素材,现在就利用Kimi的智能,根据我们已有的文案来创作出新的文案吧。之前我写过一篇关于【:一个戴着用百元大钞制成的简约头饰的少女,她坐在小车里,手里拿着一叠港元,整个画面洋溢着现实主义动漫风格和治愈系的温暖气息。通过这篇文章,我们已经一步步地完成了小红书治愈系文案的创作、治愈系图片的生成,以及笔记的发布,实现了整个流程的自动化。不慌不忙,快乐常在 在繁忙的日常中,给自己的心灵留一片净土,感受内心深处的平静与安宁。接下来,我将展示如何使用影刀来编写自动化脚本,以生成治愈系的图文图片。

weixin_42172073的博客 3690

林轩田机器学习基石笔记(第9节)——Pocket AIgorithm(口袋算法)

虽然我们证明了PLA最终会停下来,但是PLA存在以下几个问题: 1、PLA假设的前提是数据线性可分,但是很多情况下都是线性不可的; 2、即使PLA最终停下来,但是我们并不知道它什么时候会停下来。 由于现实情况的复杂性,我们一般情况下我们几乎找不到完美的线性可分的数据,所以这时候计算机科学家们想到了一个办法,那就是找到一条线,这条线所犯的错误最少,用它来替代精准的线。数学表达式如下: 上...

神兽乌鸦 1492

【吃瓜教程】周志华西瓜书课后习题第一章答案

第一章 1.1表1.1中若只包含编号为1和4的两个样例,试给出相应的版本空间。 编号 色泽 根蒂 敲声 好瓜(标记) 1 青绿 蜷缩 浊响 是Y 4 乌黑 稍蜷 沉闷 否N 知识储备: 假设空间: 所有假设组成的空间 版本空间:与训练集一致的假设集合 从假设空间到版本空间算法大致如下: 1.删除与正例不一致的假设且删除与反例一致的假设 2.删除与正例不一致的假设 3.删除与反例一致的假设 具体选择哪种

MaxQuYY的博客 8370

Word公式批量转MathType终极指南:解决omml2mml.xsl缺失与格式调整难题

本文提供Word公式批量转MathType的终极解决方案,重点解决常见的omml2mml.xsl文件缺失问题,并详细讲解批量转换与格式调整技巧。通过补全文件路径、分批次转换及样式预设等方法,大幅提升学术论文公式编辑效率,适用于Office 2016及以上版本。

weixin_28419039的博客 1350

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

我们有一堆数据,默认他们是线性可分的。 定义f为这个数据分割线的最优解,但是我们不知道他的值。 我们仅有一个函数集H,这个函数一般是无穷大的。我们的目的就是从H中找出一条线g来尽可能的接近f。但是,我刚刚说了,H内的函数一般是无穷多的,我们不可能吧H中的函数一一比较,得到最好的分割线g吧!!!不过伟大的科学家就说,我们的目的不就是找出一条线把这些数据都分开吗!!那我随机的初始化一条分割线 g0(

可可西里 6737

项目管理 Agent:进度追踪与风险预警 Harness

我们先从LangChain的Agent定义说起:Agent是一个能感知环境、自主决策、调用工具、执行动作、迭代反思的智能实体。而「项目管理全自主Agent」,就是把Agent的核心能力和项目管理的五大过程组(启动、规划、执行、监控、收尾)深度结合,聚焦执行监控阶段的两个核心痛点:进度偏差自动化计算、风险信号自动化识别与预警的专门化Agent。全感知(Omnisensing):能从。

AI架构师小马 516

林轩田机器学习基石笔记2 - Learning to Answer Yes/No

Perceptron Hypothesis Set 感知器,一个具体的例子:评定要不要给用户信用卡,给(y=+1),不给(y = -1) xi:维度 wi:权重 threshold:阈值 简化符号,将threshold当做w0,同时引入x0=-1 Perceptrons in R2,在二维图上表示h(x),sign(w0+w1x1+w1x2)=0为平面上的一条直线,直线两次分别为y=+1和y=-1。 在二维空间中,perceptrons是一条直线,称为线性分类器,在更高维空间中为平面或者更高为平面。

weixin_43527977的博客 269

我用GPT-5.5十分钟就搞定了论文创新点!全靠这三个提示词

各位同仁好,我是七哥。一个在高校里从事人工智能 相关领域研究,钻研用大模型AI实操的学术人。可以和七哥交流学术写作或Gemini、GPT、Claude 等大模型 学术实操相关问题,多多交流,相互成就,共同进步。多数研究者一写创新点就总觉得只有提出了全新的理论、颠覆了整个领域,才算真正的创新。但学术研究里的创新,有一半不是从零创造的,是在前人工作的基础上,准确找到还没人解决、或者没解决好的问题,而且真正能立住的创新通常都离不开以下这三个问题。第一,前人到底缺了什么。

智能AI让学术科研更容易 707

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

感知器算法PLA

for batch&amp;supervised binary classfication,g≈f &lt;=&gt; Eout(g)≥0 achieved through Eout(g)≈Ein(g) and Ein(g)≈0 其中Ein是某一个备选函数h在数据D上犯错误的比例,在整个数据集上犯错误的比例为Eout 1.Perceptron Hypothesis Set 假设训数据集市线性可分的...

weixin_34001430的博客 171

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

林轩田《机器学习基石》(二)——Learning to answer yes or no

其实这一章主要讲感知机的问题

weixin_43463276的博客 332

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【PLA】【pocket算法】

PLA算法及pocket算法简单原理及实现记录(代码)

weixin_46446491的博客 1050

【代码学习】口袋算法的第三方库实现(严格来说不是第三方库实现)

口袋算法(Pocket Algorithm)是一种改进的感知器算法,用于解决二元分类问题。在每次迭代中,口袋算法会评估模型在训练数据上的性能,并根据性能的改善情况决定是否更新当前的权重系数。类,它是scikit-learn库中的一个实现了感知器算法的模型。该模型通过随机梯度下降法来拟合线性模型,而不是使用口袋算法的改进策略。因此,虽然上述代码使用了感知器模型进行拟合,并获取了权重系数,但它没有直接使用口袋算法。感知器和口袋算法都是解决二元分类问题的算法,但它们的实现和更新策略略有不同。

weixin_44943389的博客 173

感知机的口袋算法

摘抄的 import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import Perceptron from matplotlib.colors import ListedColormap # 初始化 w 和 b w, b = np.array([0, 0]), 0 # np.array 相当于定义向量 # 定义 d(x) 函数 def d(x): return np.dot(w,x)+b # np

Freedom_fake_的博客 576

PLA算法(机器学习基石)

PLA算法的机制故事起源于一个二元分类问题(比如说银行要不要给客户发信用卡的问题)我们的先决条件1.我们有资料在手上(用户信息)2.我们的资料有标签(有没有发信用卡)3.假设我们的资料是线性可分的(可以被一个超平面所分割)我们的假设我们首先要给每一笔资料算出一个得分函数,由于资料是线性可分的所以我们有如下假设其中threshold为我们规定的门槛值,当得分为正sign()的结果为+1我们会给该客户...

qq_34993631的博客 8211

机器学习PLA&Pocket algorithm实现(python)

在机器学习中,感知机(Perceptron)是二分类的线性分类模型,属于监督学习算法。对于线性可分数据集可以直接使用PLA(Perceptron Learning Algorithm)进行分类,且最终一定可以找到一个最优分类超平面将数据完全分开;有关感知机收敛性证明可以参考李航老师的《统计学习方法》或者这篇博客,感知机的python实现可以参考这里。下两幅图来自台大林轩田老师的机器学习基石课程,分别为PLA算法和PLA算法的实施步骤。

Z.C.Wang 2960

用python实现PLA算法和Pocket算法

用python实现PLA算法和Pocket算法

py99999的博客 1166
上一篇: svm系列之最大分隔超平面
下一篇: type of machine learning
丁磊_Ml
博客等级 码龄11年 95粉丝 139原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值