2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 论文评析-Incremental Boosting Convolutional Neural Network for Facial Action Unit Recognition NIPS

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

时间:2021-06-23 17:23:39

相关推荐

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

Incremental Boosting Convolutional Neural Network for Facial Action Unit Recognition

前言文章亮点模型结构CNNBoosting CNNLoss functionIB-CNN弱分类器的更新增量强分类器的更新:Loss functionIB-CNN的优化

前言

这篇论文是将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方式所构建的强分类器HHH的输出,定义如下:

其中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​)经过如下变换得来的:

该变换实际上模拟了符号函数signsignsign,

Loss function

动机传统的boosting算法只考虑了强分类器的损失,这种损失可能会被一些权重较大的弱分类器所控制,从而可能导致过度拟合

因此,作者综合考虑了强分类器的损失和弱分类器的损失,定义如下:

其中,强分类器损失如下

弱分类器损失如下:

其中MMM为Batch大小,KKK为弱分类器的数量,

由于在构建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对比如下图:

具体讲,

弱分类器的更新

每个弱分类器ht−1(⋅)h^{t-1}(\cdot)ht−1(⋅)通过更新自身的参数——λjt−1→λjt\lambda_{j}^{t-1} \rightarrow \lambda_{j}^{t}λjt−1​→λjt​更新为ht(⋅)h^{t}(\cdot)ht(⋅)。具体来讲,分两种情况:

(1)第j个弱分类器之前没有被选择过

在当前Iteration, λjt\lambda_{j}^{t}λjt​通过boosting被估计。

(2)第j个弱分类器之前被选择过

通过反向传播来更新λjt\lambda_{j}^{t}λjt​,如下:

其中εHI\varepsilon^{H_{I}}εHI​为强分类器的损失。

增量强分类器的更新:

在第ttt个Iteration时,当前Iteration被激活的神经元(蓝色neuron)与之前Iterations被激活的神经元(红色neuron)增量结合一起构建所谓的Incremental strong classifier, 定义如下:

其中, HIt−1H_{I}^{t-1}HIt−1​为第t-1 iteration之后的Incremental strong classifier, HtH^{t}Ht为在当前Batch上构建的GBDT强分类器,将HtH^{t}Ht的定义(即HHH)带入,可得:

示意图如下:

Loss function

总的损失定义如下(与B-CNN的loss类似):

其中增量强分类器损失如下:

该损失关于activate feature—xijx_{ij}xij​以及threshold—λj\lambda_{j}λj​的梯度计算如下。

特别注意

∂∂xijεIB\frac{\partial}{\partial x_{ij}}\varepsilon^{IB}∂xij​∂​εIB可以进一步传递到FC module以及CNN Module.

IB-CNN的优化

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。