基于 boosting 原理训练深层残差神经网络

作者: 极客头条 2017-07-19 11:39:25

1. 背景

1.1 Boosting

Boosting[1] 是一种训练 Ensemble 模型的经典方法,其中一种具体实现 GBDT 更是广泛应用在各类问题上。介绍boost的文章很多,这里不再赘述。简单而言,boosting 方法是通过特定的准则,逐个训练一系列弱分类,这些弱分类加权构成一个强分类器(图1)。

图1 Boosting 方法原理图【src】

1.2 残差网络

残差网络[2]目前是图像分类等任务上最好的模型,也被应用到语音识别等领域。其中核心是 skip connect 或者说 shortcut(图2)。这种结构使梯度更易容向后传导,因此,使训练更深的网络变得可行。

图2. 残差网络基本block[2]

在之前的博文作为 Ensemble 模型的 Residual Network中,我们知道,一些学者将残差网络视一种特殊的 Ensemble 模型[3,4]。论文作者之一是Robert Schapire(刚注意到已经加入微软研究院),AdaBoost的提出者(和 Yoav Freund一起)。Ensemble 的观点基本算是主流观点(之一)了。

2. 训练方法

2.1 框架

图3. BoostResNet 框架

  • 残差网络

即这是一个线性分类器(Logistic Regression)。

  • hypothesis module

其中 $C$ 为分类任务的类别数。

  • weak module classifier

其中 $\alpha$ 为标量,也即 $h$ 是相邻两层 hypothesis 的线性组合。第一层没有更低层,因此,可以视为有一个虚拟的低层,$\alpha_0=0$ 并且 $、o_0(x)=0$。

  • 将残差网络显示表示为 ensemble

令残差网络的最后输出为 $F(x)$,并接合上述定义,显然有:

这里用到了裂项求和的技巧(telescoping sum),因此作者称提出的算法为 telescoping sum boosting.

我们只需要逐级(residual block)训练残差网络,效果上便等同于训练了一系列弱分类的 enemble。其中,除了训练残差网络的权值外,还要训练一些辅助的参数——各层的 $\alpha$ 及 $W$(训练完成后即可丢弃)。

2.2 Telescoping Sum Boosting(裂项求和提升)

文章正文以二分类问题为例展开,我们更关心多分类问题,相关算法在附录部分。文章给出的伪代码说明相当清楚,直接复制如下:

其中,$\gamma_t$ 是一个标量;$C_t$ 是一个 m 乘 C (样本数乘类别数)的矩阵,$C_t(i, j)$ 表示其中第 $i$ 行第 $j$ 列的元素。

需要特别说明的是,$st(x, l)$ 表示 $s_t(x)$的第 $l$ 个元素(此处符号用的略随意:-);而 $st(x) = \sum{\tau=1}^t h\tau(x) = \alpha_t \cdot o_t(x) $。

与算法3中类似,$f(g(x_i), l)$ 表示 $f(g(x_i))$ 的第 $l$ 个元素,$g(x_i, y_i)$ 表示 $g(x_i)$ 的第 $i$ 个元素。

显然 Algorithm 4 给的最小化问题可以用 SGD 优化,也可以数值的方法求解([1] 4.3 节)。

3. 理论

理论分部没有详细看。大体上,作者证明了 BoostResNet 保留为 boost 算法是优点:1)误差随网络深度(即弱分类器数量)指数减小;2)抗过拟合性,模型复杂度承网络深度线性增长。详细可参见论文。

4. 讨论

BoostResNet 最大的特点是逐层训练,这样有一系列好处:

  • 减少内存占用(Memory Efficient),使得训练大型的深层网络成为可能。(目前我们也只能在CIFAR上训练千层的残差网络,过过干瘾)
  • 减少计算量(Computationally Efficient),每一级都只训练一个浅层模型。
  • 因为只需要训练浅层模型,在优化方法上可以有更多的选择(非SGD方法)。
  • 另外,网络层数可以依据训练情况动态的确定。

4.2 一些疑问

文章应该和逐层训练的残差网络(固定或不固定前面各层的权值)进行比较多,而不是仅仅比较所谓的 e2eResNet。
作者这 1.1 节最后也提到,训练框架不限于 ResNet,甚至不限于神经网络。不知道用来训练普通深度模型效果会怎样,竞争 layer-wise pretraining 现在已经显得有点过时了。

References

  1. Schapire & Freund. Boosting: Foundations and Algorithms. MIT.
  2. He et al. Deep Residual Learning for Image Recognition.
  3. Veit et al. Residual Networks Behave Like Ensembles of Relatively Shallow Networks.
  4. Xie et al. Aggregated Residual Transformations for Deep Neural Networks.
深度学习 人工智能 boosting
上一篇:国美深度学习初体验,开启社交电商的智能时代! 下一篇:一文读懂矩阵的秩和行列式的意义
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

AI行业寒潮下,智能物流机器人产业迎来“风口”

“人工智能,前景很好,但‘钱’景不好 ” 、“2018年,人工智能的进展就是没有进展”、“2019年的AI行业已如石墨烯一样,尽显疲态”……一篇《投资人逃离人工智能》文章又给人工智能行业泼了一身冷水。人工智能融资难、“寒冬论”再一次戳痛每个人工智能从业者的心,激起大众的焦虑情绪。

AI报道 ·  15h前
人工智能应用在智慧社区五大场景

物联网、云计算、大数据、人工智能正逐步从概念走向应用。越来越多的传统产业也开始探索和创新,积极拥抱互联网和新技术。未来,人工智能技术可能会颠覆社区管理。

有熊 ·  16h前
基于PyTorch的CV模型框架,北大学生出品TorchCV

在机器学习带来的所有颠覆性技术中,计算机视觉领域吸引了业内人士和学术界最大的关注。

张倩、泽南 ·  17h前
高位截瘫患者重新行走:靠意念指挥外骨骼,法国脑机接口新突破

依靠介入头部的 2 个传感器,法国里昂的一名瘫痪男子 Thibault 实现了操控外骨骼装备来助力行走。

孙滔 ·  21h前
2008 年预测 2020 年生活方式:基本都实现了

美国皮尤研究中心曾在 2008 年预测 2020 年的生活方式,目前来看,该研究的预测基本已经实现。而对于未来 10 年,也就是 2030 年左右人们的生活,在 2017 年底的世界经济论坛上,800 多名信息和通讯技术领域的技术高管和专家给出了如下预测。

佚名 ·  21h前
机器学习的正则化是什么意思?

正则化的好处是当特征很多时,每一个特征都会对预测y贡献一份合适的力量;所以说,使用正则化的目的就是为了防止过拟合。

佚名 ·  21h前
为什么我的CV模型不好用?没想到原因竟如此简单……

机器学习专家 Adam Geitgey 近日发布了一篇文章探讨了这一简单却又让很多人头痛的问题,并分享了他为解决这一问题编写的自动图像旋转程序。

机器之心 ·  21h前
中文自动转SQL,准确率高达92%,这位Kaggle大师刷新世界纪录

首届中文NL2SQL挑战赛上,又一项超越国外水平的NLP研究成果诞生了。在NL2SQL这项任务上,比赛中的最佳成绩达到了92.19%的准确率,超过英文NL2SQL数据集WikiSQL目前完全匹配精度86.0%,执行匹配精度91.8%的最高成绩。

郭一璞 ·  22h前
Copyright©2005-2019 51CTO.COM 版权所有 未经许可 请勿转载