IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 集成学习之AdaBoost原理详解 -> 正文阅读

[人工智能]集成学习之AdaBoost原理详解



参考:
https://www.cnblogs.com/massquantity/p/9063033.html

1. AdaBoost的思想

回顾一下boosting的思想:将多个弱学习器“提升”为强学习器。AdaBoost也是基于此思想提出的,它的全称是Adaptive Boosting,即能够适应弱学习器的各自训练误差率。
它的流程可以概括为:先对每个样本赋予相同的初始权重,每一轮学习器训练后都会根据该学习器的表现对每个样本的权重进行调整,增加错分样本的权重,使得下一个学习器对错分样本有更多的关注度。最后对多个学习器进行加权求和。

2. 数学定义和推导

2.1. 决策推理过程的输出表达式定义

以二分类为例,正类输出为+1,负类输出为-1.假设AdaBoost的学习过程得到了M个学习器 G m ( x ) , m = 1 , 2 , ? ? , M G_m(x),m=1,2,\cdots,M Gm?(x),m=1,2,?,M,对于某个输入 x x x,对应的输出分别为 y m ( x ) , m = 1 , 2 , ? ? , M y_m(x),m=1,2,\cdots,M ym?(x),m=1,2,?,M。则该算法的最终输出为:
Y M ( x ) = s i g n ( ∑ m = 1 M α m y m ( x ) ) (2-1) Y_M(x)=sign(\sum_{m=1}^{M}\alpha_my_m(x))\tag{2-1} YM?(x)=sign(m=1M?αm?ym?(x))(2-1)

2.2. 优化训练过程中的迭代表达式推导

由上面的定义可以知道,AdaBoost算法得到的强学习器是多个弱学习期的线性组合:
f ( x ) = ∑ m = 1 M α m G m ( x ) (2-2) f(x)=\sum_{m=1}^{M}\alpha_mG_m(x)\tag{2-2} f(x)=m=1M?αm?Gm?(x)(2-2)
记训练集为 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ? ? , ( x N , y N ) (x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N) (x1?,y1?),(x2?,y2?),?,(xN?,yN?).每一步的损失函数是固定的形式,记为 L ( y , f m ( x ) ) L(y,f_m(x)) L(y,fm?(x)),则第M步时我们的优化目标是:
arg ? min ? ( α m , G m ) ∑ i = 1 N L ( y i , ∑ m = 1 M α m G m ( x ) ) (2-3) \arg\min \limits_{(\alpha_m,G_m)}\sum_{i=1}^NL\left(y_i,\sum_{m=1}^M\alpha_m G_m(x)\right)\tag{2-3} arg(αm?,Gm?)min?i=1N?L(yi?,m=1M?αm?Gm?(x))(2-3)
上式中需要优化的参数有M组(每一步的参数都要更新),实际求解比较复杂,我们可以简化一下,假设前M-1次迭代的系数 α \alpha α和基学习器 G ( x ) G(x) G(x)都是固定的,而 f M ( x ) = f M ? 1 + α M G M ( x ) f_M(x)=f_{M-1}+\alpha_MG_M(x) fM?(x)=fM?1?+αM?GM?(x),因此我们只需要优化 α N , G M ( x ) \alpha_N,G_M(x) αN?,GM?(x)即可。其实这里有点贪心算法的思想。

损失函数 L ( y , f m ( x ) ) L(y,f_m(x)) L(y,fm?(x))的具体表达式一般采用指数损失函数:
L ( y , f m ( x ) ) = e ? y f ( x ) (2-4) L(y,f_m(x))=e^{-yf(x)}\tag{2-4} L(y,fm?(x))=e?yf(x)(2-4)
因此优化目标为:
( α M , G M ( x ) ) = arg ? min ? ( α , G ) ∑ i = 1 N e ? y i ( f M ? 1 ( x i ) + α G ( x i ) ) (2-5) (\alpha_M,G_M(x))=\arg \min \limits_{(\alpha,G)}\sum_{i=1}^Ne^{-y_i(f_{M-1}(x_i)+\alpha G(x_i))}\tag{2-5} (αM?,GM?(x))=arg(α,G)min?i=1N?e?yi?(fM?1?(xi?)+αG(xi?))(2-5)
由于前M-1轮迭代的系数和基学习器与上述的 α , G \alpha,G α,G无关,可以记 w i ( M ) = e ? y i f M ? 1 ( x i ) w_i^{(M)}=e^{-y_i f_{M-1}(x_i)} wi(M)?=e?yi?fM?1?(xi?),它代表了第M轮迭代前,每个样本被赋予的权重(其实是每个样本对应的损失函数的权重)。而且注意到, w i ( M ) w_i^{(M)} wi(M)?是会在每次迭代的时候更新的,第m次迭代的时候会更新第m+1次对应的权重。
于是乎,{2-5}中的目标函数可以化为:
∑ i = 1 N w i ( M ) e ? y i α G ( x i ) = e ? α ∑ y i = G ( x i ) w i ( M ) + e α ∑ y i ≠ G ( x i ) w i ( M ) = ( e α ? e ? α ) ∑ i = 1 N w i ( M ) 1 ( y i ≠ G ( x i ) ) + e ? α ∑ i = 1 N w i ( M ) (2-6) \begin{aligned} \sum_{i=1}^Nw_i^{(M)}e^{-y_i\alpha G(x_i)}&=e^{-\alpha}\sum_{y_i=G(x_i)}w_i^{(M)}+e^{\alpha}\sum_{y_i\neq G(x_i)}w_i^{(M)}\\ &=(e^{\alpha}-e^{-\alpha})\sum_{i=1}^Nw_i^{(M)}1_{(y_i\neq G(x_i))}+e^{-\alpha}\sum_{i=1}^Nw_i^{(M)}\\ \tag{2-6} \end{aligned} i=1N?wi(M)?e?yi?αG(xi?)?=e?αyi?=G(xi?)?wi(M)?+eαyi??=G(xi?)?wi(M)?=(eα?e?α)i=1N?wi(M)?1(yi??=G(xi?))?+e?αi=1N?wi(M)??(2-6)

2.3. 由迭代过程表达式得到的几个结论

由上一小节可以知道几个重要推论

2.3.1. 基学习器 G M ( x ) G_M(x) GM?(x)

使{2-6}最小化的 G ( x ) G(x) G(x)等价于使 ( e α ? e ? α ) ∑ i = 1 N w i ( M ) 1 ( y i ≠ G ( x i ) ) (e^{\alpha}-e^{-\alpha})\sum_{i=1}^Nw_i^{(M)}1_{(y_i\neq G(x_i))} (eα?e?α)i=1N?wi(M)?1(yi??=G(xi?))?最小化的 G ( x ) G(x) G(x),也即每一轮的基学习器是通过最小化的带权重误差得到。

2.3.3. 下一轮样本权重 w i ( M + 1 ) w_i^{(M+1)} wi(M+1)?

w i ( M + 1 ) = e ? y i f M ( x i ) = e ? y i ( f M ? 1 ( x i ) + α M G M ( x i ) ) = w i ( M ) e ? y i α M G M ( x i ) w_i^{(M+1)}=e^{-y_i f_{M}(x_i)}=e^{-y_i (f_{M-1}(x_i)+\alpha_MG_M(x_i))}=w_i^{(M)}e^{-y_i\alpha_MG_M(x_i)} wi(M+1)?=e?yi?fM?(xi?)=e?yi?(fM?1?(xi?)+αM?GM?(xi?))=wi(M)?e?yi?αM?GM?(xi?)。可以看到,若 α M > 0 \alpha_M>0 αM?>0,则对于第M轮分正确的样本,下一轮的权重会减小;对于第M轮分错误的样本,下一轮的权重会增大。

2.3.4. 各基学习器的系数 α M \alpha_M αM?

G M ( x ) G_M(x) GM?(x)在训练集上的加权误差率 ? M = ∑ i = 1 N w i ( M ) 1 ( y i ≠ G ( x i ) ) ∑ i = 1 N w i ( M ) \epsilon_M=\frac{\sum_{i=1}^Nw_i^{(M)}1_{(y_i\neq G(x_i))}}{\sum_{i=1}^Nw_i^{(M)}} ?M?=i=1N?wi(M)?i=1N?wi(M)?1(yi??=G(xi?))??.而如果我们对{2-6}中的 α \alpha α求偏导使其等于0,则有 ? e ? α ∑ y i = G ( x i ) w i ( M ) + e α ∑ y i ≠ G ( x i ) w i ( M ) = 0 -e^{-\alpha}\sum_{y_i=G(x_i)}w_i^{(M)}+e^{\alpha}\sum_{y_i\neq G(x_i)}w_i^{(M)}=0 ?e?αyi?=G(xi?)?wi(M)?+eαyi??=G(xi?)?wi(M)?=0,两边乘 e α e^{\alpha} eα,得: e 2 α = ∑ y i = G ( x i ) w i ( M ) ∑ y i ≠ G ( x i ) w i ( M ) = 1 ? ? M ? M e^{2\alpha}=\frac{\sum_{y_i=G(x_i)}w_i^{(M)}}{\sum_{y_i\neq G(x_i)}w_i^{(M)}}=\frac{1-\epsilon_M}{\epsilon_M} e2α=yi??=G(xi?)?wi(M)?yi?=G(xi?)?wi(M)??=?M?1??M??,从而有 α M = 1 2 l n 1 ? ? M ? M \alpha_M=\frac{1}{2}ln\frac{1-\epsilon_M}{\epsilon_M} αM?=21?ln?M?1??M??.
因此,准确率越高的基学习器会有越大的权重。

3. Adaboost流程图

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-14 21:38:18  更:2021-11-14 21:39:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 6:34:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码