当前位置: 首页 > news >正文

机器学习---Boosting

1. Boosting算法

Boosting思想源于三个臭皮匠,胜过诸葛亮。找到许多粗略的经验法则比找到一个单一的、高度预

测的规则要容易得多,也更有效。

预测明天是晴是雨?传统观念:依赖于专家系统(A perfect Expert)

以“人无完人”为基础,结合普通reporter,获得完美专家。

弱学习机(weak learner):  对一定分布的训练样本给出假设(仅仅强于随机猜测),根据有云猜测

可能会下雨。强学习机(strong learner): 根据得到的弱学习机和相应的权重给出假设(最大程度上

符合实际情况:almost perfect expert),根据CNN、ABC、CBS以往的预测表现及实际天气情况作

出综合准确的天气预测。

 

 

Boosting算法流程:

①原始训练集输入,带有原始分布

②给出训练集中各样本的权重

③将改变分布后的训练集输入已知的弱学习机,弱学习机对每个样本给出假设

④对此次的弱学习机给出权重

⑤转到②, 直到循环到达一定次数或者某度量标准符合要求

⑥将弱学习机按其相应的权重加权组合形成强学习机

样本的权重:没有先验知识的情况下,初始的分布应为等概分布,也就是训练集如果有N个样本,

每个样本的分布概率为1/N,每次循环一后提高错误样本的分布概率,分错样本在训练集中所占权

重增大, 使得下一次循环的弱学习机能够集中力量对这些错误样本进行判断。

弱学习机的权重:准确率越高的弱学习机权重越高。

循环控制:损失函数达到最小,在强学习机的组合中增加一个加权的弱学习机,使准确率提高,损

失函数值减小。

2. 算法思想

训练集

Dt为第t次循环时的训练样本分布(每个样本在训练集中所占的概率, Dt总和应该为1)。

ht:X∈{-1,+1} 为第t次循环时的Weak learner,对每个样本给出相应的假设,应该满足强于随机猜

测:

wtht的权重,t次循环得到的Strong learner。

思想:提高分错样本的权重

反映了strong learner对样本的假设是否正确。

      采用什么样的函数形式?

思想:错误率越低,该学习机的权重应该越大

为学习机的错误概率,采用什么样的函数形式?

和指数函数遥相呼应:

算法伪代码:

3. 理论分析 

如何求弱学习机的权重?

最基本的损失函数表达形式:

为了便于计算,采用以下的目标函数:

Boosting的循环过程就是沿着损失函数的负梯度方向进行最优化的过程。通过调整样本分布Dt和选

择弱学习机权重wt来达到这个目的。每循环一次,增加一项,使损失函数以最快速度下降。

给定当前分布和选定的弱学习机,如何求下一次的分布? 

Boosting的设计思想:

改变分布,提高错误样本概率,使下一次的弱学习机能够集中精力针对那些困难样本。

调整分布后的训练集对当前学习机具有最大的随机性,正确率50%(恰好为随机猜测)。

相对熵原理(最小鉴别信息原理):

已知随机变量X(样本集)的先验分布(Dt),并且已知所求未知分布Dt+1满足条件

,那么所求得的未知分布估计值具有如下形式:

 。

物理意义:在只掌握部分信息的情况下要对分布作出判断时,应该选取符合约束条件但熵值取得最

大概率分布。从先验分布到未知分布的计算应该取满足已知条件,不确定度(熵)变化最小的解。

人脸识别方面的应用:

 

相关文章:

  • 代理ip一般适用于什么行业,什么场景
  • linux下部署frp客户端服务端-内网穿透
  • Linux下的软硬链接
  • 生产派工自动化:MES系统的关键作用
  • 第三十二章 控制到 XML 模式的映射 - %ListOfObjects
  • 金融专题 | 对复杂的金融工具进行设计、定价和对冲分析
  • Redis第1讲——入门简介
  • 【MODBUS】Modbus主站云端服务器和边缘设备部署区别
  • yarn或者pnpm第一次执行的时候遇到报错yarn : 无法加载文件......因为在此系统上禁止运行脚本
  • flex布局,换行的元素上下设置间距
  • 计算机毕业设计 基于SpringBoot的乡村政务办公系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 汽车IVI中控开发入门及进阶(十一):ALSA音频
  • 【APP安卓测试工具】adb(Android Debug Bridge)
  • 【Docker】进阶之路:(十三)Docker Swarm
  • 基于Python+WaveNet+MFCC+Tensorflow智能方言分类—深度学习算法应用(含全部工程源码)(三)
  • JavaScript 如何正确处理 Unicode 编码问题!
  • Android交互
  • css布局,左右固定中间自适应实现
  • ERLANG 网工修炼笔记 ---- UDP
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • JavaScript学习总结——原型
  • laravel with 查询列表限制条数
  • markdown编辑器简评
  • oldjun 检测网站的经验
  • React Transition Group -- Transition 组件
  • Spring-boot 启动时碰到的错误
  • 程序员最讨厌的9句话,你可有补充?
  • 翻译:Hystrix - How To Use
  • 分类模型——Logistics Regression
  • 区块链共识机制优缺点对比都是什么
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 以太坊客户端Geth命令参数详解
  • 用jQuery怎么做到前后端分离
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​香农与信息论三大定律
  • (2020)Java后端开发----(面试题和笔试题)
  • (8)STL算法之替换
  • (windows2012共享文件夹和防火墙设置
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (四)鸿鹄云架构一服务注册中心
  • (转)Windows2003安全设置/维护
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET项目中存在多个web.config文件时的加载顺序
  • .Net小白的大学四年,内含面经
  • .net中的Queue和Stack
  • .sh
  • @JsonSerialize注解的使用
  • @media screen 针对不同移动设备
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • [2023年]-hadoop面试真题(一)
  • [Android]Android开发入门之HelloWorld
  • [Android]通过PhoneLookup读取所有电话号码