每周论文26

本周论文:

  1. Dynamic Curriculum Learning for Imbalanced Data Classification
  2. Simple and Effective Curriculum Pointer-Generator Networks for Reading Comprehension over Long Narratives
  3. CurriculumNet: Weakly Supervised Learning from Large-Scale Web Images

[Dynamic Curriculum Learning for Imbalanced Data Classification]

提出CL专注于分类中的不平衡问题。但实际上应该不算是CL。

本质是sampling+loss调整。核心思想是:先让模型学到一个正确的general representation,然后再让模型学会分类。

四种schedule的变体

先是提出四种schedule的变体,在下文中会用到。

Sampling

其中:$D(l)=D_{t r a i n} g(l)$,$g(l)$是递减函数(上述四种schedule function)。

上述公式的意思即对sample得到的batch内类的分布的重调整。假如当前的batch中第j个类期望的分布比整个训练分布${B_{j}}$大,则直接加强其weight;否则就做sample,被sample到的设为1,没被sample到的设为0。保证batch内的分布和期望的分布一致。一开始时,期望分布和总体分布一致,随着训练过程的进行,$g(l)$下降,到最后则是所有的类的期望分布是一致的。

这种imbalance到balance的motivation是,如果一开始就balance,会丢弃掉大量数据的有用信息,过于强调minority的特性,容易overfitting。
论文提到这里有CL的特性(也即从简单到难),我猜测作者的意思是数量多的class相对于数量少的class平均更为简单,因为更容易学。否则我没看出来有什么CL的思想。

Loss

对loss加了一项正则化metric learning loss,该方法是其他论文的方法(但我没看懂这个公式的具体作用),大概意思就是能够’avoid the dominant effect of majority classes‘,即减小数量大的类的主导影响。并且论文对该loss做了一定改进。

从:

改为:

该公式的作用:targets at learning a soft feature embedding to separate different samples in feature space without assigning labels。

因此总的loss由cross entropy与triplet loss组成,而组成的比例由$f$控制。

最后,论文还将DCL作为一种框架做泛化,将几个算法都容纳进来:几种算法都是他的一种特殊情况。

思考

本文的出发点是不错的,思想很简单有效,sampling部分的schedule我觉得不错,也可能是以前有前人的基础了。但如果说是CL,我觉得关系不是很大,虽然有输入数据的schedule,但没有事先的按难度排,感觉更像是是self-paced learning。


[Simple and Effective Curriculum Pointer-Generator Networks for Reading Comprehension over Long Narratives]

提出一种新的框架用以长文本的QA。具体模型我并不关心,这里讨论的主要是CL的策略。

在CL方面,提出Diverse curriculum learning scheme,通过两个指标来定义difficulty。answerability与understandability)

指标

Answerability

对于一个sample来说,基于question抽取的就是hard setting;基于answer的则是easy setting。
“we consider the set of documents retrieved based on questions as the hard setting, H. Conversely, the set of retrieved documents using answers is regarded as the easy setting, E.”

Understandability

依据document的长度来划分。预定义好的几个size,$\{50,100,200,500\}$。

所以按照size以及answerability将sample划分几个chunk。

也即小于50的有easy和hard两个chunk,同理其他size的一样。

方法

原则:从小的size到大的size,从easy setting到hard setting。论文认为Answerability应该优先于Understandability考虑。

具体而言:从$E_{50}$这个chunk开始,当valid没有提升时,将小百分比δ(比如5%)的数据从难的swap到简单的chunk里($H_k$到$E_k$)以提升answerability,当这么做1/δ次之后,chunk的所有数据就都是hard的了,然后此时将整个chunk swap,换成下一个size的$E_k$。重复步骤。

想法

通过定义难度的多维度将其分为多个chunk,并且提出了比较精巧的scheme(swap的思路与之前的Curriculum Learning and Minibatch Bucketing in Neural Machine Translation有些类似)。
diverse+chunk的思路


[CurriculumNet: Weakly Supervised Learning from Large-Scale Web Images]

提出了一种高效的方法能够在大量弱监督的网络图片(数据来源:输入query所获得的网络图片而不是人工标注的)上训练的方法,引入了CL。并且发现noisy label的数据也能够提升表现,并且有regularization的作用。

方法

三部曲:首先在整个数据上训练一个模型,能够大致学得图片的representation;接着通过该初始模型,将每张图片映射到一个feature space,其潜在的结构和之间的关系能够被挖掘,也即能够将图片按照复杂度排序且分成subset;第三,从简单到难训练,也即先训clean label的数据,然后不断添加noisy的数据。

initial feature generation

在整个数据集上训练一个模型。

curriculum design

假设:在每个category下,clean label的数据将会有较为接近的表示,而noisy label的数据则variance/diversity很大。

则我们可以通过聚类的方法将同一个category下的数据分为三个subset,分别对应clean; noisy 与highly noisy。

具体如何做/聚类?

首先CNN获得的feature进入fc层获得一个深层的feature space的表示

接着计算欧氏距离,获得一个任意i到j之间的距离矩阵

此时,计算每张image的local density:

也即,距离小于$d_c$的累计1。$d_c$是通过排序后取第$k$%得来的。则$\rho$越大代表其与其他image更接近。

接着计算:

也即,若对于图片i,若存在比他local density更大的,将与该最大local density的图片的距离设为图片i的距离;否则,就说明该图片就是cluster center。

那么有了中心之后,就可以聚类了,$δ$大的表示其就是中心。可以根据图像到中心的距离大小分为三类(这里不清楚是否理解得对)。对于一个类而言,大density意味着分布更密集;而小density则更加分散。

可以看到,clean data的分布会更加密集而noisy data更加分散:

Curriculum Learning

当分好三类后,训练就是不断将noisy数据放入到clean数据训练的过程。

注意subset是将不同category的同一类(clean/noisy/highly noisy)放在一起。

实验证明,noisy data能够增强模型的泛化性,使得模型不会overfitting到clean data;同时由于模型已经先在clean data上训练得到一个较好的模型了,因此也不会收到noisy data的不好的影响。

思考

我觉得这个思路不错,在category内部划分subset,能够更好保证clean data聚在一起。聚类倒不是很重要,因为可以有不同的聚类方法。同时,本篇论文证明了先训练一个能够获得representation表示且足够好到可以聚类是可行的。而CL训练方法上则没有什么新的东西,本质上就是分为几个shard/bucket,然后随着训练过程mix data,这在之前的论文An Empirical Exploration of Curriculum Learning for Neural Machine Translation还有其他的CL的论文里面都有。