浅显易懂 | 小孩都看得懂的逐步提升算法

机器学习(七):提升(boosting)方法 引言:     提升(boosting)方法是一族可将弱学习器提升为强学习器的算法。这族算法的工作机制类似:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。     本文主要介绍提升方法... 阅读详情

640?wx_fmt=jpeg

全文共  2573  字, 13  幅图,
预计阅读时间  14  分钟。

本文所有思路都来自林轩田教授的「机器学习技法」的第八节课件 Adaptive Boosting,纯纯的致敬!我只是加了点场景使得内容更通俗点。

1

斯蒂文是一名幼儿园教师,有一天,他要教小朋友如何从一堆水果中辨识一堆苹果。斯蒂文有 10 张苹果图片和 10 张非苹果图片,如下图所示。

首先,斯蒂文告诉悠悠、乐乐、丫丫和多多

  • 上面 10 张图片中显示的是苹果

  • 下面 10 张图片中显示的不是苹果

之后他希望用这 20 个例子来教会他们识别苹果,即让他们学会提取苹果的特征,在看到新的水果时一下子就能辨别它是否是苹果。

2

斯蒂文:看对于这 20 张水果图片,你怎么来描述苹果?

悠悠:苹果是圆的。

悠悠认为「圆」是辨别苹果的一个特征,根据这个特征,悠悠可以从香蕉图片里识别出苹果,因为香蕉不是圆的,但是这个特征永远适用吗?不!悠悠用「圆」这个特征来识别苹果可能会犯两种错误:

  1. 没识别出不圆的苹果(灰色叉子)

  2. 误识别了圆的非苹果(粉色叉子)

斯蒂文记下了悠悠犯了错的图并将其放大,同时也缩小了悠悠没犯错的图,见下图。

3

现在识别苹果的第一个特征是「苹果是圆的」。

斯蒂文准备叫乐乐来识别苹果的其他特征。

4

注意,乐乐看到的图片和悠悠看到的图片不大一样,因为斯蒂文根据悠悠的作答,放大她犯错误的图片而缩小没有犯错的图,因此乐乐(任何人)会把注意力放在大图上。

在那些大图里,好像「红」是一个可以很好的区分苹果和其他水果的特征。

5

斯蒂文:除悠悠说的之外,你还能怎么描述苹果?

乐乐:苹果是红的。

但是「红」这个特征是否适用那些小图(即悠悠没犯错的图)?不!乐乐用「红」这个特征来识别苹果可能会犯两种错误:

  1. 没识别出不红(绿)的苹果(灰色叉子)

  2. 误识别了红的非苹果(粉色叉子)

斯蒂文又记下了乐乐犯了错的图并将其放大,同时也缩小了乐乐没犯错的图,见下图。

6

现在识别苹果的特征是「苹果有的是圆的,有的是红的」。

斯蒂文准备叫丫丫来识别苹果的其他特征。

7

和乐乐把注意力放在悠悠犯的错的图片一样,丫丫的注意力也在乐乐和悠悠同时犯的错的图片。

在那些大图里,好像「绿」是一个可以很好的区分苹果和其他水果的特征。

8

斯蒂文:除悠悠和乐乐说的之外,你还能怎么描述苹果?

丫丫:苹果是绿的。

但是「绿」这个特征是否适用那些小图(即悠悠和乐乐没犯错的图)?不!丫丫用“绿”这个特征来识别苹果可能会犯两种错误:

  1. 没认出不绿(红)的苹果(很多灰色叉子)

  2. 误认了绿的非苹果(粉色叉子)

斯蒂文又记下了丫丫犯了错的图并将其放大,同时也缩小了丫丫没犯错的图,见下图。

9

现在识别苹果的特征是「苹果有的是圆的,有的是红的,有的是绿的」。

最后,斯蒂文准备叫多多来识别苹果的其他特征。

10

像正常人一样,多多把注意力放在前面三位犯错最多的两个图上。

在那些大图里,好像「带把儿」是一个可以很好的区分苹果和其他水果的特征。

11

斯蒂文:除悠悠、乐乐和丫丫说的之外,你还能怎么描述苹果?

多多:苹果是带把儿的。

最后识别苹果的特征是“苹果是有的圆、有的红、有的绿,带把儿”。斯蒂文当然还可以继续问其他小朋友,随着这个过程,小朋友学到的如何识别苹果的特征会越来越全。

即便每个小朋友只能从一个方面识别苹果,但是结合起来的结论就很厉害了,有可能比一个专家来识别苹果还要准确,这个过程就是个增强或提升(boosting)过程。这个故事的寓意是,如果有一群「弱鸡」假设,也可能提升成「战斗机」假设。

全过程最妙的点就是斯蒂文

  • 放大认错的图片

  • 缩小认对的图片

这跟逐步提升法(adaboost)里面把「分类错误的数据权重增大,把分类正确的数据权重减小」的道理是一样一样一样的。

推荐阅读

XGBoost算法原理小结

我的python学习之路 Python 是一门功能强大且易于学习的编程语言,广泛应用于数据分析、人工智能、Web 开发、自动化等领域。以下是一个 Python 学习路径的总结,帮助你系统地掌握 Python 编程。 阅读详情

相关推荐

用VINS-Fusion跑通EuRoC数据集:Ubuntu22.04+ROS2环境下的保姆级评测指南

本文详细介绍了在Ubuntu22.04和ROS2 Humble环境下使用VINS-Fusion处理EuRoC数据集的完整流程。从环境配置、数据集转换到参数调优和性能评估,提供了一套全面的多传感器融合分析方案,帮助开发者在无人机精准定位场景中实现高效部署与优化。

weixin_29212867的博客 518

小孩都看得懂的逐步提升

全文共2573字,13幅图,预计阅读时间14分钟。本文是「小孩都看得懂」系列的第三篇,本系列的特点是没有公式,没有代码,只有图画,只有故事。内容不长,碎片时间完...

weixin_38753422的博客 312

CTF逆向-[GWCTF 2019]babyvm-WP-虚机模拟流程反向编码和z3约束求解器解方程工具的使用

CTF逆向-[GWCTF 2019]babyvm-WP-虚机模拟流程反向编码和z3约束求解器解方程工具的使用 来源:https://buuoj.cn/ 内容: 附件:https://pan.baidu.com/s/1FKkXN6JDI0QkGw-UE2crNA?pwd=grb0 提取码:grb0 答案:Y0u_hav3_r3v3rs3_1t! 总体思路 发现是虚机模拟 形成每个指令的逆向 找到加密值位置(有可能不止一个位置,该题就给了一个误导的) 找到命令执行的流程(也是不止一个) 逆向编写反向加密得到f

serfend's blog 979

机器学习(5):提升算法(boosting algorithm)

最近自己会把自己个人博客中的文章陆陆续续的复制到优快云上来,欢迎大家关注我的 个人博客,以及我的github。 本文将讲解有关提升算法的知识,主要包括提升算法的基本思想,以及几个具体的提升算法——AdaBoost算法、梯度提升决策树。以及梯度提升、加法模型和前向分步算法等内容。在本文中会先给出每个算法的思想和算法流程,最后再对其中用到的某些定义做总结。 本文主要是依据李航老师的《统计学习方法》...

zuzhiang的博客 1886

瑞芯微RK3506开发板Ethercat主站性能优化实战:从内核配置到微秒级延迟控制

本文详细介绍了在瑞芯微RK3506开发板上实现EtherCAT主站微秒级延迟控制的实战优化方案。核心在于部署Preempt-RT实时内核,并进行深度系统调优,包括CPU隔离、中断亲和性设置、内存锁定及电源管理调整。通过绕过Linux网络栈的专用驱动加载与配置,最终实现了稳定的高性能实时控制,满足工业自动化需求。

tcp8optimizer的博客 317

GD32F103程序烧录全攻略:从SWD到串口的实战指南

本文提供了GD32F103微控制器程序烧录的全面实战指南,详细介绍了SWD、JTAG和串口(ISP)三种主流下载方式。文章重点解析了在Keil MDK中使用ST-Link进行SWD下载的完整步骤,包括硬件连接、软件配置和Flash算法设置,并针对烧录过程中的常见问题提供了实用的排坑解决方案,帮助开发者高效完成程序部署。

weixin_29191669的博客 438

趣味算法图解

IDEA 是由 SándorP. Fekete、Sebastian Morr 和 Sebastian Stiller 共同推出的图解算法系列。 它们最初是为 Sándor 在德国不伦瑞克工业大学开设的算法和数据结构讲座而设计的,作者希望它们能够有更广的用途,因此在网上发布了这个项目,希望能够帮助到教师、学生和有好奇心的人们。算法将会不断更新,可以访问页面了解更多信息: https://ide

qq_37788711的博客 2199

ros_control硬件接口实战:从零构建机器人控制框架

本文详细介绍了ros_control硬件接口在机器人控制框架中的核心作用与实践方法。通过解析硬件接口类型、实现标准接口、构建主控制循环及自定义功能扩展,帮助开发者从零构建高效的机器人控制系统,提升硬件与ROS的协同效率。

lstm7chronicler的博客 500

看懂这十步,8岁的小朋友都能理解深度学习

点击 机器学习算法与Python学习 加星标精彩内容不迷路本文转自AI新媒体量子位(公众号ID:QbitAI)如何用最浅显的方式,给大众解释什么是深度学习呢?法国博主Jean-Lou...

机器学习算法与Python学习 678

AI辅助SCI论文大修:一键生成回复信+同步修改稿,效率提升300%

AI可以针对多位审稿人的意见进行逐点(point-by-point)回复,语言地道流畅,能够处理邮件格式、礼貌性回复和部分内容修正。最新的LLM:GPT-5, Claude 4.1都是带有agentic功能,能规划复杂任务,并调用工具执行复杂任务的大模型。有时候审稿人意思模棱两可,你的反复揣摩ta关注的点是什么,回复的不好,很有可能下一轮被reject。这个2.0升级版,除了在response中完美rebuttle,在文中对应部分的修改,也会帮你一并呈现,基本上就是可以直接拿来用的版本;

dinaxuejie的博客 1667

使用AI预测彩票的架构思路

彩票是随机的数字游戏,不要过度依赖AI,本文仅供娱乐研究

淘淘小窝 9413

程序员提升自我修养的具体方法

程序员具体如何达成“较高的修养”,每个人各有自己的办法,我无法说到很细,就和如何提高做人修养一样,一句两句话是说不清楚的,但是有些说法也通俗易懂,比如一个小孩,有教育良好的父母,父母彬彬有礼,小孩从小开始接受正规教育,小学、初中、高中、大学,然后文化课程和社会实践良好,那么这个小孩最终的做人修养,一定比没有经历过这个过程的小孩更好一些。 同样的,写程序也是如是,下面我就讲一些最基本的、最浅显易懂...

weixin_34242509的博客 143

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

提升自我修养的具体方法有哪些?

----来自网络 在编写代码的过程中,善于学习、掌握方法、勤加思考、勤奋努力、持之以恒,长此以往,在编程中,你会发现不一样的自己。 以上这些还是比较抽象,那么 提升自我修养的具体方法有哪些? 程序员具体如何达成“较高的修养”,每个人各有自己的办法,我无法说到很细,就和如何提高做人修养一样,一句两句话是说不清楚的,但是有些说法也通俗易懂,比如一个小孩,有教育良好的父母,父母彬...

weixin_30520015的博客 185

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

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

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

AP 计算机 华丽逆袭-----被麻省理工计算机博士老师反复劝退的学生逆袭的肺腑之言

计算机林振营,专注教学22年,用心用力,惟精惟一,培养兴趣爱好,激发学习热情,提升学习效率,节省宝贵时间,复制成功之路,将竭尽所能帮到每一位学子,让每一位学子在轻松愉快中成长,成功,成为社会栋梁之材!

weixin_39552097的博客 321

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

5年内被辞退3次,35岁程序员该何去何从?百度,kotlin函数参数

我想,有些人可能已经明白我要说什么,有些人可能还不明白,具体的话我也说不出来,只能用一句话来概括就是: 在编写代码的过程中,善于学习、掌握方法、勤加思考、勤奋努力、持之以恒,长此以往,在编程中,你会发现不一样的自己。 以上这些还是比较抽象,那么 提升自我修养的具体方法有哪些? 程序员具体如何达成“较高的修养”,每个人各有自己的办法,我无法说到很细,就和如何提高做人修养一样,一句两句话是说不清楚的,但是有些说法也通俗易懂,比如一个小孩,有教育良好的父母,父母彬彬有礼,小孩从小开始接受正规教育,小学、初中、高中

m0_66144765的博客 219

月入3.8w的美丽动人北航计算机博士小姐姐原创公众号

shenjian58的博客 650

聊一聊程序员的自我修养

首先要谈的是,今天的话题所聊的程序员包含哪些人?在中国,写程序,不仅仅是一种兴趣,更多的时候,还是一种普通职业和谋生工具大公司有厉害的程序员,优秀的架构师,但大量的小公司也有很多普通的程序员。在我这些年的工作经历中,也越来越深刻的感受到普通程序员的影响和力量。对于高阶程序员,所谓八仙过海各有神通,各有各的成就,各有各的修养,但程序员在达成较高的水平之前,有一些“自我修养”,是最基础的,是普世的。

wofacailo的博客 76

何为程序员的自我修养?

何为程序员的自我修养?正面论述很难说清楚,反向描述可能更通俗易懂一些,自我修养的对立面是“没有修养”,先说一说在这么多年的工作、学习、生活中,遇到的重点内容一些我认为“没有修养”的程序员形态:1、程序员小张遇到了一个开发问题,很着急,想到了有几个群,于是到群里发了他的问题,坐等回答,发现没有人回答,就直接对话群主的QQ,群主也不回答,于是小张就搜索,突然搜到博客园有个帖子讲解了相关话题,他看完就给博

Hh19900902的博客 686

【转发】仅以此篇

首先要谈的是,今天的话题所聊的程序员包含哪些人? 在中国,写程序,不仅仅是一种兴趣,更多的时候,还是一种普通职业和谋生工具 大公司有厉害的程序员,优秀的架构师,但大量的小公司也有很多普通的程序员。在我这些年的工作经历中,也越来越深刻的感受到普通程序员的影响和力量。对于高阶程序员,所谓八仙过海各有神通,各有各的成就,各有各的修养,但程序员在达成较高的水平之前,有一些“自我修养”,是最基础的,是普...

weixin_30662849的博客 118

给编程生涯充电的 10 本书

作为程序员,我们都喜欢编写代码,都喜欢挑战艰深的算法,喜欢设计并创建炫酷的新技术。我们厌倦那些不得不处理的日常琐碎、工作中的官僚作风,以及无关的应酬(比如工作无关的聚会)。 回想起大概十年前,我毕业之后直接进入微软的时候,我想要的生活就是早晨 10 点上班,码上 8-10 个小时,创造一些炫酷的玩意儿,然后回家。我所需要的就是这些,它让我开心、让我满足、让我充满了成就感。不过随着时间的流逝,我开

Bingo 875
上一篇: 模型评估指标AUC和ROC,这是我看到的最透彻的讲解
下一篇: Python数据分析实战基础 | 灵活的Pandas索引
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值