机器之心|速度提升、准确率更胜一筹,周志华等人提出可微XGBoost算法sGBM( 二 )


最后 , 由于局部和全局的损失注入 , 软 GBM 会让基学习器之间的交互呈指数增长 , 使得该系统能比对多个基学习器使用软平均 (soft averaging, 可微加权平均集成) 的方法更有效和更高效 。
先从 GBM 讲起
在详细介绍新提出的方法之前 , 先来看看梯度提升机(GBM)的工作方式 。 具体来说 , 对于给定的数据集
, GBM 的目标是获得函数 F*(x) 的一个优良近似 , 而评估标准是看其能否在实验中最小化损失
机器之心|速度提升、准确率更胜一筹,周志华等人提出可微XGBoost算法sGBM
本文插图


GBM 假设 F*(x) 有这样的加法展开形式:
机器之心|速度提升、准确率更胜一筹,周志华等人提出可微XGBoost算法sGBM
本文插图


其中
机器之心|速度提升、准确率更胜一筹,周志华等人提出可微XGBoost算法sGBM
本文插图

由 θ_m 参数化 , 而 β_m 是第 m 个基学习器的系数 。
GBM 的训练过程是基于训练数据学习参数
机器之心|速度提升、准确率更胜一筹,周志华等人提出可微XGBoost算法sGBM
本文插图

。 GBM 首先假设
机器之心|速度提升、准确率更胜一筹,周志华等人提出可微XGBoost算法sGBM
本文插图

, 然后就能按顺序决定
机器之心|速度提升、准确率更胜一筹,周志华等人提出可微XGBoost算法sGBM
本文插图

和 β_m 。 首先 , 给定 y^i 和 GBM 前一轮获得的预测结果 ,
机器之心|速度提升、准确率更胜一筹,周志华等人提出可微XGBoost算法sGBM
本文插图

GBM 可为每个训练样本计算出所谓的残差:
机器之心|速度提升、准确率更胜一筹,周志华等人提出可微XGBoost算法sGBM
本文插图

其次 , 下一个基学习器 h_m 会与该残差进行拟合 。 系数 β_m 则通过最小二乘法确定或设定为常数 。 最后 , 完成对学习器 h_m 和系数 β_m 的参数更新之后 , 就可以将其用作条件来更新 GBM 的预测结果:
机器之心|速度提升、准确率更胜一筹,周志华等人提出可微XGBoost算法sGBM
本文插图

图 1:GBM 和 sGBM 示意图
然后进入下一轮训练流程 。 算法 1 总结了这个训练过程 , 图 1 左图也给出了其示意图 。
机器之心|速度提升、准确率更胜一筹,周志华等人提出可微XGBoost算法sGBM
本文插图

算法 1:常规(硬)GBM 的训练过程
sGBM 有何不同?
可以看出 , GBM 的训练过程难以并行化 , 因为只有在一个基学习器拟合之后才能转向下一个基学习器 。 也因为这个原因 , 这类算法也难以在线应用 。
软梯度提升机(sGBM)就是针对这些问题而提出的 。 该研究团队首先假设所有基学习器都是可微分的 。 然后 , 他们没有选择为相连的基学习器执行软平均 , 而是提出使用两种类型的损失函数——全局损失和局部损失;将这两种损失函数注入训练过程之后 , 可使得基学习器之间的交互成指数增长 , 进而实现梯度提升效果(而非所有基学习器的直接加权平均) 。
具体来说 , 令 M 为可微分基学习器的数量 , 其中每个基学习器的参数为 θ_m 。 这里 M 是预先确定的 , 指定了训练之前所使用的基学习器的数量 。 和硬 GBM 一样 , sGBM 的输出为所有基学习器的输出之和:
机器之心|速度提升、准确率更胜一筹,周志华等人提出可微XGBoost算法sGBM
本文插图

。 训练中整个结构的最终损失定义为
机器之心|速度提升、准确率更胜一筹,周志华等人提出可微XGBoost算法sGBM


推荐阅读