一、动机
用大量的数据去训练多个互补的神经网络去embedding,以达到去提升错误率高的类别的精度同时保持易分类高精度的目的。
二、背景
通过将训练多个弱分类器聚合为一个,boosting可以通过分配更大的权重去给hard sample更多的注意力,以此来提升分类器在大规模图像分类上的精确度。
但是现在存在的一些deep boosting算法仅仅使用weight error去替换之前的softmax error,这使得深度网络对待来自hard classes和easy classes的error依然是同等重要的,并没有注意到不同的类别在学习复杂度上可能有着很大的不同,所以不同的类别在优化过程中所占的重要性应该也是不同的。所以,简单的替换error去boosting多个分类器,并不能有效提升分类器在hard classes上的效果。
为了在大规模图像分类上实现高准确率,现在主要有三类解决方法:
a)weighting the train samples,
b)learning multiple deep networks by using differen model parameters or using various sample subsets and some deep embedding algorithm,
c)training multiple complementary deep networks。 (本文属于该方法)
以前的方法有分配不同的权重给训练样本,有使用不同的模型参数和多个子集去进行训练的,它们的局限性都在于在网络中hard classes 和 easy classes的error依旧是同等重要的。在本文的方法中:a)来自hard object classes的error将被分配更大的重要性,b)多个互补深度网络被依序训练和每个网络都以一种易于理解的方式为对象类别的不同子集实现更高的准确率,从而使它们可以彼此增强。
三、方法
整个算法流程可以概括为:(a)训练当前的第t个深度网络,专注于在第t-1个网络中错误率高的类别上实现更高的准确率; (b)计算当前第t个深度网络的weight error(weight指的是当前网络给N个类别分配的重要性); (c)根据错误率更新重要性的分配; (d)迭代:当达到最大迭代次数或达到一定水平的准确率时,此迭代过程将停止。
3.1 互补深度网络的学习
训练集: