Gradient Boosting Neural Networks: GrowNet

一元@炼丹笔记

1. 简介

本文提出了一种新的梯度Boosting框架,将浅层神经网络作为“弱学习者”。在此框架下,我们考虑一般的损失函数,并给出了分类、回归和排序的具体实例。针对经典梯度boosting决策树贪婪函数逼近的缺陷,提出了一种完全修正的方法。在多个数据集的所有三个任务中,该模型都比最新的boosting方法都得了来更好的结果。

2. 背景

尽管在理论上和实践中都有着无限的可能性,但由于其固有的复杂性,为新应用领域开发定制的深度神经网络仍然是出了名的困难。为任何给定的应用程序设计架构都需要极大的灵活性,往往需要大量的运气。

在本文中,我们将梯度增强的能力与神经网络的灵活性和多功能性相结合,引入了一种新的建模范式GrowNet,它逐层建立DNN。代替决策树,我们使用浅层神经网络作为我们的弱学习者,在一个通用的梯度增强框架中,可以应用于跨越分类、回归和排名的各种任务。

我们做了进一步创新,比如在训练过程中加入二阶统计数据,同时还引入了一个全局校正步骤,该步骤已在理论和实际评估中得到证明,对提高效果并对特定任务进行精确微调。

  • 我们开发了一种现成的优化算法,比传统的深度神经网络更快、更容易训练。
  • 我们引入了新的优化算法,相较于传统的NN,它更快也更加易于训练;此外我们还引入了二阶统计和全局校正步骤,以提高稳定性,并允许针对特定任务对模型进行更细粒度的调整。
  • 我们通过实验评估证明了我们的技术的有效性,并在三种不同的ML任务(分类、回归和学习排名)中的多个真实数据集上显示了优异的结果。

3. 相关工作

3.1 Gradient Boosting Algorithms

Gradient Boosting算法是一种使用数值优化的函数估计方法,决策树是梯度提升框架中最常用的函数(predictive learner)。梯度提升决策树(GBDT),其中决策树按顺序训练,每棵树通过拟合负梯度来建模。本文中,我们将XGBoost作为基线。和传统的GBDT不一样,本文提出了Gradient Boosting Neural Network,使用千层的NN来训练gradient boosting。

我们认为神经网络给我们一种优于GBDT模型的策略。除了能够将信息从先前的预测器传播到下一个预测器之外,我们可以在加入新的层时纠正之前模型(correct step)。

3.2 Boosted Neural Nets

尽管像决策树这样的弱学习者在boosting和集成方法中很受欢迎,但是将神经网络与boosting/集成方法相结合以获得比单个大型/深层神经网络更好的性能已经做了大量的工作。在之前开创性工作中,全连接的MLP以一层一层的方式进行训练,并添加到级联结构的神经网络中。他们的模型并不完全是一个boosting模型,因为最终的模型是一个单一的多层神经网络。

在早期的神经网络设计中,集成的策略可以带来巨大的提升,但是早期都是多数投票,简单的求均值或者加权的均值这些策略。在引入自适应的boosting算法之后(Adaboost),就有一些工作开始将MLP和boosting相结合并且取得了很棒的效果。

在最新的一些研究中,AdaNet提出自适应地构建神经网络层,除了学习网络的权重,AdaNet调整网络的结构以及它的增长过程也有理论上的证明。AdaNet的学习过程是boosting式的,但是最终的模型是一个单一的神经网络,其最终输出层连接到所有的底层。与AdaNet不同的是,我们以梯度推进的方式训练每一个弱学习者,从而减少了entangled的训练。最后的预测是所有弱学习者输出的加权和。我们的方法还提供了一个统一的平台来执行各种ML任务。

最近有很多工作来解释具有数百层的深度残差神经网络的成功,表明它们可以分解为许多子网络的集合

4. 模型

在每一个boosting步骤中,我们使用当前迭代倒数第二层的输出来增强原始输入特性。

通过使用当前残差的增强机制,将增强后的特征集作为输入来训练下一个弱学习者。模型的最终输出是所有这些顺序训练模型的得分的加权组合。

4.1 Gradient Boosting Neural Network: GrowNet

4.2 Corrective Step (C/S)

传统的boosting框架,每个弱学习器都是贪心学习的,这意味着只有第个弱学习器是不变的。

短视学习过程可能会导致模型陷入局部极小,固定的增长率ak会加剧这个问题。因此,我们实施了一个纠正步骤来解决这个问题。

  • 在纠正步骤中,我们允许通过反向传播更新先前t-1弱学习者的参数,而不是修复先前t-1弱学习者。

此外,我们将boosting rate ak纳入模型参数,并通过修正步骤自动更新。

  • 除了获得更好的性能之外,这一举措可以让我们避免调整一个微妙的参数。

C/S还可以被解释为一个正则化器,以减轻弱学习器之间的相关性,因为在纠正步骤中,我们主要的训练目标变成了仅对原始输入的特定任务损失函数。这一步的有用性在论文《Learning nonlinear functions using regularized greedy forest》中对梯度提升决策树模型进行了实证和理论研究。

5. 模型应用

5.1 回归的GrowNet

此处我们以MSE为案例。

5.2 分类的GrowNet

5.3 LTR的GrowNet

6. 实验

6.1 实验效果

模型中加入的预测函数都是具有两个隐层的多层感知器。我们将隐藏层单元的数量设置为大约输入特征维数的一半或相等。当模型开始过拟合时,更多的隐藏层会降低效果。我们实验中采用了40个加法函数对三个任务进行测试,并根据验证结果选择了测试时间内的弱学习器个数。Boosting rate最初设置为1,并在校正步骤中自动调整。我们只训练了每个预测函数一个epoch,整个模型在校正过程中使用Adam optimizer也训练了一个epoch。epoch的个数在ranking任务中被设置为2;

  • 该方法在诸多方案上都取得了好于XGBoost的效果。

6.2 消融实验

  • C/S的影响非常大;C/S模式缓解了learner之间潜在的相关性;
  • 二阶导数是有必要的;
  • 自动化学习是有价值的ai;我们加了boosting rate ,它是自动调整的,不需要任何调整;

6.3 隐藏单元的影响

  • 改变隐藏单元的数量对效果的影响较小。
  • 测试了具有不同隐藏单元的最终模型(具有两个隐藏层的弱学习者)。Higgs数据有28个特征,我们用2、4、8、16、32、64、128和256个隐藏单元对模型进行了测试。隐层维度越小,弱学习者获得的信息传播越少。另一方面,拥有大量的单元也会导致在某个点之后过度拟合。
  • 上图显示了这个实验在Higgs 1M数据上的测试AUC分数。最高的AUC为0.8478,只有128个单元,但当数量增加到256个单元时,效果会受到影响。

6.4 GrowNet versus DNN

如果我们把所有这些浅层网络合并成一个深神经网络,会发生什么?

这种方法存在几个问题:

  • 对DNN参数进行优化非常耗时,如隐藏层数、每个隐藏层单元数、总体架构、Batch normalization、dropout等;
  • DNN需要巨大的计算能力,总体运行速度较慢。我们将我们的模型(30个弱学习器)与DNN进行了5、10、20和30个隐藏层配置的比较。
    • 在1000个epoch,在Higgs的1M数据上,最好的DNN(10个隐藏层)得到0.8342,每个epoch花费11秒。DNN在900个epoch时取得了这一成绩(最好)。GrowtNet在相同的配置下取得了0.8401 AUC;

7. 小结

本文提出了GrowNet,它可以利用浅层神经网络作为梯度推进框架中的“弱学习者”。这种灵活的网络结构使我们能够在统一的框架下执行多个机器学习任务,同时结合二阶统计、校正步骤和动态提升率,弥补传统梯度提升决策树的缺陷。

我们通过消融研究,探讨了神经网络作为弱学习者在boosting范式中的局限性,分析了每个生长网络成分对模型性能和收敛性的影响。结果表明,与现有的boosting方法相比,该模型在回归、分类和学习多数据集排序方面具有更好的性能。我们进一步证明,GrowNet在这些任务中是DNNs更好的替代品,因为它产生更好的性能,需要更少的训练时间,并且更容易调整。

更多干货,请关注公众号:炼丹笔记

https://mp.weixin.qq.com/s/2WnXo_Iuf5wfY9RUjCIKgA

PurdueUCLA提出梯度Boosting网络,效果远好于XGBoost模型!相关推荐

  1. 面试必备|ID3、C4.5、CART、RF、boosting、Adaboost、GBDT、xgboost模型

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:知乎,笑个不停,https://zhuanlan.zhihu ...

  2. Netflix提出梯度提升决策树网络Hammock!

    梯度提升决策树网络(ArXiv19) 一元@炼丹笔记 目前神经网络为很多业务带来了巨大的提升,但是对于神经网络的解释性,以及在某些表格数据的效果不如树模型依旧存在很多可以研究的方向,今天就看看Netf ...

  3. 【深度森林第三弹】周志华等提出梯度提升决策树再胜DNN

    [深度森林第三弹]周志华等提出梯度提升决策树再胜DNN 技术小能手 2018-06-04 14:39:46 浏览848 分布式 性能 神经网络 还记得周志华教授等人的"深度森林"论 ...

  4. 残差连接 (及 梯度消失 网络退化)详解

    本文就说说用残差连接解决梯度消失和网络退化的问题. 一.背景 1)梯度消失问题 我们发现很深的网络层,由于参数初始化一般更靠近0,这样在训练的过程中更新浅层网络的参数时,很容易随着网络的深入而导致梯度 ...

  5. RANet : 分辨率自适应网络效果和性能的best trade-off | CVPR 2020

    作者 | VincentLee 来源 | 晓飞的算法工程笔记 简介 深度CNN带来了性能提升的同时也带来了过高的计算量,许多研究放在了如何进行网络加速上面,其中比较直接的是根据样本难易程度进行自动调整 ...

  6. 谷歌提出新型卷积网络EfficientNet: 推理速度升5.1倍参数减少88%,需要我们的验证

    推理速度升5.1倍参数减少88%:谷歌提出新型卷积网络EfficientNet 谷歌提出了一项新型模型缩放方法:利用复合系数统一缩放模型的所有维度,该方法极大地提升了模型的准确率和效率.谷歌研究人员基 ...

  7. AAAI21最佳论文Informer:效果远超Transformer的长序列预测神器???

    Informer:最强最快的序列预测神器??? AAAI21最佳论文Informer:效果远超Transformer的长序列预测神器! 01 简介 在很多实际应用问题中,我们需要对长序列时间序列进行预 ...

  8. AAAI21最佳论文Informer:效果远超Transformer的长序列预测神器!

    Informer:最强最快的序列预测神器 AAAI21最佳论文Informer:效果远超Transformer的长序列预测神器! 作者:一元,公众号:炼丹笔记 01 简介 在很多实际应用问题中,我们需 ...

  9. 【CVPR 2018热文】MIT提出“透明设计”网络,揭开视觉黑盒

    根据看到的图像来回答问题,需要在图像识别和分类的基础上再进一步,形成对图中物体彼此关系的推理和理解,是机器完成复杂任务所需的一项基本能力,也是视觉研究人员目前正在努力攻克的问题. 最近,在视觉推理任务 ...

最新文章

  1. Swift 中的内存管理详解
  2. Yahoo网站性能优化的34条军规
  3. C#之 VS2008 之 Extension Methods
  4. Visual Studio Code启动项目
  5. 【数据结构与算法】之深入解析“最长公共前缀”的求解思路与算法示例
  6. EPSON 机器人多任务下的互锁处理
  7. 剪纸游戏(博弈论)(SG函数)
  8. jmeter修改redis_jmeter如何访问redis服务缓存
  9. 仅展示近三天的动态设置_不要把朋友圈设置成3天可见……
  10. 会声会影x4素材_小技巧!灵活使用会声会影
  11. 关于InnoDB索引长度限制的tips
  12. appium架构分析
  13. 《数位板这样玩——Photoshop+Painter数码手绘必修课(第2版)》目录—导读
  14. 不会点SQLite,都不好意思说自己是开发的 1
  15. FR公式形态定义及运用范例
  16. windows中的hosts文件
  17. python requests接收chunked编码问题
  18. 计算机图形学及前沿应用讲座心得,王泽晶-计算机图形学技术前沿讲座总结报告...
  19. 淘宝接口 http://ip.taobao.com/service/getIpInfo.php?ip=myip 获取不到手机ip地址
  20. 打光篇-Radiometric Photometric概念

热门文章

  1. 今天刚刚开通了写播客的功能,以后记录工作学习的点点滴滴
  2. 常见浏览器兼容性问题与解决方式
  3. T-SQL and XML
  4. java 页面换行处理
  5. “已删除的应用” 流量高
  6. ThinkPHP框架使用心得二 CURD操作
  7. 疾病相关数据查找,Our world in data使用指南
  8. numpy学习笔记(莫烦python)
  9. java父进程获取子进程异常_如何在perl的父进程中获取死亡的子进程的PID?
  10. python多元线性回归模型案例_Python 实战多元线性回归模型,附带原理+代码