机器学习——boosting之GBDT

现在要开始重点关注名字了,名字透漏了很多信息!名字暗藏线索!

GBDT,Gradient Boosting Decision Tree: 梯度提升决策树

果然信息很丰富

梯度:意味着计算有迭代递进关系,但还不明确是怎么迭代递进的

提升:意味着前向分布式+加法模型,并且分类器之间是有相关提升的

决策树:CART决策树、C4.5、忘记名字了...

em...还是要再深挖深挖,小小的boosting,挖呀挖呀挖呀挖。。。

经过推导。。。发现,我的GBDT回归,实际就是上一篇提升树的二叉回归树...

看来可以省点儿功夫,不写代码,但可以稍微推导一下

首先,明确回归问题采用平方损失函数: L o s s ( y , f ( x ) ) = ( y − f ( x ) ) 2 Loss(y,f(x)) =(y-f(x))^2 Loss(y,f(x))=(y−f(x))2

其中,f(x) 是强分类器,且当前强分类器 f m = f m − 1 + T m ( x , θ m ) f_m = f_{m-1}+T_m(x,θ_m) fm=fm−1+Tm(x,θm)

问题来了,我们现在要求Loss最小,原本是可以直接使Loss对x求导,进而求出θ,得到强分类器的

但书上说了,有时候Loss对x求导,是无法实现的,说实话,我不知道为什么

不过,不妨碍我对GBDT进行推导

首先,梯度,是想要Loss成梯度逐步下降,那就采用让Loss在 f ( x ) = f m − 1 ( x ) f(x)=f_{m-1}(x) f(x)=fm−1(x)处进行一阶泰勒展开

则有 L o s s ( y , f ( x ) ) = L o s s ( y , f m − 1 ( x ) ) + ə L ( y , f m − 1 ( x ) ) ə f m − 1 ( x ) ∗ [ f ( x ) − f m − 1 ( x ) ] Loss(y,f(x)) = Loss(y,f_{m-1}(x))+\frac{ə_{L(y,f_{m-1}(x))}}{ə_{f_{m-1}(x)}}*[f(x)-f_{m-1}(x)] Loss(y,f(x))=Loss(y,fm−1(x))+əfm−1(x)əL(y,fm−1(x))∗[f(x)−fm−1(x)]

令 f ( x ) = f m ( x ) f(x) = f_m(x) f(x)=fm(x),则有

L ( y , f m ( x ) ) = L ( y , f m − 1 ( x ) ) + ə L ( y , f m − 1 ( x ) ) ə f m − 1 ( x ) ∗ [ f m ( x ) − f m − 1 ( x ) ] L(y,f_m(x)) = L(y,f_{m-1}(x))+\frac{ə_{L(y,f_{m-1}(x))}}{ə_{f_{m-1}(x)}}*[f_m(x)-f_{m-1}(x)] L(y,fm(x))=L(y,fm−1(x))+əfm−1(x)əL(y,fm−1(x))∗[fm(x)−fm−1(x)]

Δ L o s s = L ( y , f m ( x ) ) − L ( y , f m − 1 ( x ) ) = ə L ( y , f m − 1 ( x ) ) ə f m − 1 ( x ) ∗ [ f m ( x ) − f m − 1 ( x ) ] ΔLoss = L(y,f_m(x)) - L(y,f_{m-1}(x))=\frac{ə_{L(y,f_{m-1}(x))}}{ə_{f_{m-1}(x)}}*[f_m(x)-f_{m-1}(x)] ΔLoss=L(y,fm(x))−L(y,fm−1(x))=əfm−1(x)əL(y,fm−1(x))∗[fm(x)−fm−1(x)]

其中 [ f m ( x ) − f m − 1 ( x ) ] = T ( x , θ m ) [f_m(x)-f_{m-1}(x)] = T(x,θ_m) [fm(x)−fm−1(x)]=T(x,θm)

要使下一次迭代时,Loss降低,则需要ΔLoss<0,那么对应的 ə L ( y , f m − 1 ( x ) ) ə f m − 1 ( x ) ∗ T ( x , θ m ) \frac{ə_{L(y,f_{m-1}(x))}}{ə_{f_{m-1}(x)}}*T(x,θ_m) əfm−1(x)əL(y,fm−1(x))∗T(x,θm)<0

那么,当 T ( x , θ m ) = − ə L ( y , f m − 1 ( x ) ) ə f m − 1 ( x ) T(x,θ_m)=-\frac{ə_{L(y,f_{m-1}(x))}}{ə_{f_{m-1}(x)}} T(x,θm)=−əfm−1(x)əL(y,fm−1(x))时,就可以保证 ə L ( y , f m − 1 ( x ) ) ə f m − 1 ( x ) ∗ T ( x , θ m ) \frac{ə_{L(y,f_{m-1}(x))}}{ə_{f_{m-1}(x)}}*T(x,θ_m) əfm−1(x)əL(y,fm−1(x))∗T(x,θm)<0

因此, T ( x , θ m ) = − ə L ( y , f m − 1 ( x ) ) ə f m − 1 ( x ) = ə ( y − f m − 1 ( x ) ) 2 ə f m − 1 ( x ) T(x,θ_m)=-\frac{ə_{L(y,f_{m-1}(x))}}{ə_{f_{m-1}(x)}}=\frac{ə_{(y-f_{m-1}(x))^2}}{ə_{f_{m-1}(x)}} T(x,θm)=−əfm−1(x)əL(y,fm−1(x))=əfm−1(x)ə(y−fm−1(x))2

为了求解简洁美观,可以 令 L o s s 为 1 2 ( y − f ( x ) ) 2 令Loss为\frac{1}{2}(y-f(x))^2 令Loss为21(y−f(x))2

这样 T ( x , θ m ) = − ə L ( y , f m − 1 ( x ) ) ə f m − 1 ( x ) = 1 2 ə ( y − f m − 1 ( x ) ) 2 ə f m − 1 ( x ) = y − f m − 1 ( x ) T(x,θ_m)=-\frac{ə_{L(y,f_{m-1}(x))}}{ə_{f_{m-1}(x)}}=\frac{\frac{1}{2}ə_{(y-f_{m-1}(x))^2}}{ə_{f_{m-1}(x)}}=y-f_{m-1}(x) T(x,θm)=−əfm−1(x)əL(y,fm−1(x))=əfm−1(x)21ə(y−fm−1(x))2=y−fm−1(x)

哦!这不就是残差嘛 r = y − f m − 1 ( x ) r = y-f_{m-1}(x) r=y−fm−1(x) ,相当于每个新的弱分类器(准确来说,应该是基函数)都应该尽可能地去拟合残差

所以啊!!!!实际上一轮的提升树,本质上就是GBDT

不管,就先这么确定,以后打脸再说...好困

相关推荐
wa的一声哭了几秒前
Stanford CS336 assignment1 | Transformer Language Model Architecture
人工智能·pytorch·python·深度学习·神经网络·语言模型·transformer
haidizym35 分钟前
ssc-FinLLM 金融大模型 相关链接
人工智能·算法
cxr8281 小时前
AI智能体赋能文化传承与创新领域:社群身份认同的数字空间重构与文化融合策略
大数据·人工智能·重构·提示词工程·ai赋能
常州晟凯电子科技1 小时前
海思SS626开发笔记之环境搭建和SDK编译
人工智能·笔记·嵌入式硬件·物联网
Apifox.1 小时前
Apifox 9 月更新| AI 生成接口测试用例、在线文档调试能力全面升级、内置更多 HTTP 状态码、支持将目录转换为模块
前端·人工智能·后端·http·ai·测试用例·postman
Macre Aegir Thrym1 小时前
逻辑回归实践
算法·机器学习·逻辑回归
武子康1 小时前
AI-调查研究-95-具身智能 机器人场景测试全解析:从极端环境仿真到自动化故障注入
人工智能·深度学习·机器学习·ai·机器人·自动化·具身智能
Light601 小时前
领码方案|微服务与SOA的世纪对话(3):方法论新生——DDD、服务网格与AI Ops的融合之道
运维·人工智能·微服务·ddd·soa·服务网格·ai ops
realhuizhu1 小时前
国庆收心指南:用AI提示词工程解决节后综合征
人工智能·ai·chatgpt·prompt·提示词·deepseek·假期综合征·节后综合征
老兵发新帖2 小时前
归一化分析2
人工智能