论文评析-Incremental Boosting Convolutional Neural Network for Facial Action Unit Recognition,NIPS, 2016

前言

这篇论文是将GBDT与CNN结合用于 Facial Action Unit Recognition。文章挺不错,就是有些图画的有些抽象,符号比较多,导致细节的地方看了好几遍才看明白。

文章亮点

1.AU训练集小导致训练的CNN model泛化能力差,作者提出了Incremental Boosting CNN (IB-CNN): 通过Incremental boosting layerboosting treeCNN进行结合。
2.综合考虑Incremental boosting classifier与各个weak classifier提出了新的损失函数用于训练。


模型结构

在这里插入图片描述
如上图所示, 因为Incremental boosting classifier是随着Batch增量更新的,因此上面的图是沿着Iteration/Batch展开后的效果,以便于说明。图比较抽象,为了更好的说明一些概念,笔者花了一个草图:
在这里插入图片描述
为了介绍IB-CNN,作者沿着CNN -> Boosting CNN (B-CNN) -> IB-CNN 的顺序逐步深入,这里也按照同样的顺序。

CNN

传统CNN的话就没有中间那个GBDT了, 最后一层FC的神经元数目=类别数,decision layer 使用的score function即:导数第二层FC的输出 x 权重 然后再经过sigmoid/softmax激活, 原文中的原话是:

The score function used by the decision layer is generally the inner
product of the activations in the FC layer and the corresponding
weights.


Boosting CNN

Boosting CNN相比于CNN的变化在于决策层使用了GBDT, 这样可以获得更复杂的决策边界。原文中的描述:

. In this paper, we substitute the inner-product score function with a
boosting score function to achieve a complex decision boundary

因此,最终的预测输出为boosting方式所构建的强分类器 H H H的输出,定义如下:在这里插入图片描述
其中 f ( ⋅ , λ j ) f(\cdot, \lambda_{j}) f(,λj)为决策树桩,其threshold参数记为 λ j \lambda_{j} λj, 弱学习器 h ( ⋅ , λ j ) h(\cdot, \lambda_{j}) h(,λj)就是决策树桩 f ( ⋅ , λ j ) f(\cdot, \lambda_{j}) f(,λj)经过如下变换得来的:
在这里插入图片描述
该变换实际上模拟了符号函数 s i g n sign sign,

Loss function

动机传统的boosting算法只考虑了强分类器的损失,这种损失可能会被一些权重较大的弱分类器所控制,从而可能导致过度拟合
因此,作者综合考虑了强分类器的损失和弱分类器的损失,定义如下:
在这里插入图片描述
其中,强分类器损失如下
在这里插入图片描述

弱分类器损失如下:
在这里插入图片描述
其中 M M M为Batch大小, K K K为弱分类器的数量,
由于在构建GBDT时,Boosting本身具有feature selection的功能,只有那些被选择的feature (实际上就是FC中的神经元,这些feature的状态称之为active)参与损失的计算以及训练,因此上式中N (N<K)等于处于active状态的神经元 (对应的 α j > 0 \alpha_{j}>0 αj>0) 的数量。


IB-CNN

动机:B-CNN存在的问题是:,先前捕获的信息,例如,活跃神经元的权重 α j ( > 0 ) \alpha_{j} (>0) αj(>0)和threshold— λ j \lambda_{j} λj,在下一个batch上训练新的GBDT时被完全丢弃。由于每个Batch的样本量很少,经过训练的B-CNN (特别是GBDT部分)非常容易出现过拟合
为了克服上述问题,作者借助了增量学习

IB-CNNB-CNN对比如下图:
在这里插入图片描述
具体讲,

弱分类器的更新

每个弱分类器 h t − 1 ( ⋅ ) h^{t-1}(\cdot) ht1()通过更新自身的参数—— λ j t − 1 → λ j t \lambda_{j}^{t-1} \rightarrow \lambda_{j}^{t} λjt1λjt更新为 h t ( ⋅ ) h^{t}(\cdot) ht()。具体来讲,分两种情况:
(1)第j个弱分类器之前没有被选择过
在当前Iteration, λ j t \lambda_{j}^{t} λjt通过boosting被估计。
(2)第j个弱分类器之前被选择过
通过反向传播来更新 λ j t \lambda_{j}^{t} λjt,如下:

在这里插入图片描述
其中 ε H I \varepsilon^{H_{I}} εHI为强分类器的损失。

增量强分类器的更新:

在第 t t t个Iteration时,当前Iteration被激活的神经元(蓝色neuron)与之前Iterations被激活的神经元(红色neuron)增量结合一起构建所谓的Incremental strong classifier, 定义如下:
在这里插入图片描述
其中, H I t − 1 H_{I}^{t-1} HIt1为第t-1 iteration之后的Incremental strong classifier, H t H^{t} Ht为在当前Batch上构建的GBDT强分类器,将 H t H^{t} Ht的定义(即 H H H)带入,可得:
在这里插入图片描述
示意图如下:
在这里插入图片描述

Loss function

总的损失定义如下(与B-CNN的loss类似):
在这里插入图片描述
其中增量强分类器损失如下:
在这里插入图片描述
该损失关于activate feature— x i j x_{ij} xij以及threshold— λ j \lambda_{j} λj的梯度计算如下。
在这里插入图片描述
特别注意

  1. ∂ ∂ x i j ε I B \frac{\partial}{\partial x_{ij}}\varepsilon^{IB} xijεIB可以进一步传递到FC module以及CNN Module.

IB-CNN的优化

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MasterQKK 被注册

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值