每周论文36

本周论文:

  1. From Softmax to Sparsemax: A Sparse Model of Attention and Multi-Label Classification
  2. On Controllable Sparse Alternatives to Softmax
  3. DropMax: Adaptive Variational Softmax
  4. Data Parameters: A New Family of Parameters for Learning a Differentiable Curriculum

[From Softmax to Sparsemax: A Sparse Model of Attention and Multi-Label Classification]

提出一种新的softmax变体,能够对部分output分配0权值。同时还探索了sparsemax的特性,以及提出专门的sparsemax的loss用于multi-label分类上;最后在snli上做了实验(在attention替换softmax的实验)。

简单地说,就是引入一个阈值,每个概率都会向该阈值平移,小于0的话就置为0。

当然这个阈值不是瞎想的,是经过推导的。平移后的权值具有和为1的性质。

和softmax的区别:

可以看出更加线性。

中间的性质探索不详细写了。
注意到,sparsemax是用在output上的,使得对于多标签分类任务上能够直接对不正确的label直接分配0的概率,这也更加符合直观。当然sparsemax也可以用在attention上,使得模型更加专注于少数几个点,也更加具有解释性(翻译中的alignment)。但论文中在snli上的实验似乎并没有比softmax attention更好。


[On Controllable Sparse Alternatives to Softmax]

提出一种映射向量到概率分布的框架。softmax,sparsemax都是其特殊形式,该框架还能够显式控制sparsity的程度;同时,在推导中发现还能够直接控制translation和scale invariance的trade-off。

其形式就是对sparsemax的拓展和一般化。

sparsemax:

其中$\boldsymbol{z}$是普通的向量,$\rho$则是将$\boldsymbol{z}$映射到一个单型(simplex)中。

在这里将其一般化为:

其实就是将$\boldsymbol{z}$的形式扩展了,不仅仅是线性的还可以是非线性的;第二是加了一个regularization,注意到这里是负的,所以会鼓励稀疏化。上式和sparsemax都有闭式解,且有很多相似的特性。

论文有很多特性分析,讲得不错。但我懒得记了。

在翻译和摘要的结果:

看起来提升不大,当然这篇的重点不是这个,而是提出一种框架。


[DropMax: Adaptive Variational Softmax]

提出在训练中直接drop non-target类,让模型每次训练不同的decision bound,该方法能够有ensemble不同分类器的效果。同时论文还进一步提出与输入instance相关的dropout概率,即根据输入决定对哪些class进行dropout以及多大的dropout概率。
注意到,这个在train和test都是要drop的,和普通dropout不一样。

大概意思是说,在训练过程中,drop掉一些不相关的类别,使得模型能够focus在难分辨的class上,同时,dropout class并不是随机drop掉就完事了,实际上模型需要根据输入来学习要将哪些drop掉,也即模型会习得class之间的内在联系,比如说在mnist中,4和9的关系比较紧密(因为二者长得比较像),那么在真实标签为4的时候,9的保留概率也会更高。

具体方法:

$z_{k}$指的就是第k类被drop的概率,从上述公式可以看到实际上这里并不是真的被drop掉,只是调整其概率。

下图中可以看到,当输入不同的cat图片时,对应有不同的容易confuse的class,左边的cat容易和lion混淆,而右边的cat容易和豹子混淆。所以需要将其他的无关class drop掉,使得模型能够专注于区分这二者。

(论文用了变分推断推出输入相关的dropout的概率,但我没看懂🤣后面学了VI之后再补🤪)。


[Data Parameters: A New Family of Parameters for Learning a Differentiable Curriculum]

通过给sample和类别分配一个可学习的变量,作为指示该sample或类的重要性的指标,隐式地学得一个动态的curriculum。

CL的主要问题:1)对于繁杂的问题而言,难以定义sample的难度;2)人类所定义的难度和模型所认为的难度可能并不对应;3)对于一个预定义好的curriculum,并不一定适合模型的所有时刻,因为模型是一个动态的学习过程。

实际上上述问题是狭义上的curriculum learning的通病,如果要动态调整,那其实就是self-paced learning而不是传统意义上的CL了。

在这里,通过在学习过程中梯度回传,更新每个instance或class的难度,通过该难度去影响学习该instance的快慢而不是CL中的被采样的概率;这种动态的可以不需要人的介入。

论文做了几个实验,一个是普通的分类和目标检测实验;第二是加入noisy label,看是否能够减小噪声的影响,将clean label的优先级提高;同时还做了一个完全random label的数据,发现curriculum能够避免直接记忆被污染的数据。

方法

Learning curriculum over classes

一种是给每个类别一个可学习的变量,以标示其难度。这个好理解,总有一些分类比其他的难。

记$\sigma^{c l a s s} \in \mathbb{R}^{k}$ 为$k$个类的类别parameter。每个类一个scalar记录该class的难度,该scalar用于softmax的缩放,也即:

$z$是logic,而$p$则是正确类别的概率(过完softmax)。
若所有的class的$\sigma$都为1,则和标准的cross-entropy一样。

下面看看有什么性质:
①对$z$求导:

②对$\sigma$求导:

其中$q$为$q_{j}^{i}=\frac{p_{j}^{i}}{1-p_{y}^{i}}$,可以理解为non-target分类的概率分布。

现在看看,如果$z_{y^{i}}^{i}<\sum_{j \neq y^{i}} q_{j}^{i} z_{j}^{i}$,也即正确标签的logic小于其他非target标签的expected value(期望)小的话,则更新梯度后$\sigma$增大,代表其难度大,很好理解,因为模型分配给正确标签的概率不够大,说明不好分;同时若$\sigma$大的话,那么对$z$的求导的值就小(因为分母大了),也即学习过程被decay了,间接对该instance的学习减速了。

Learning curriculum over instances

另一种是对每个instance分配一个parameter。其实和上面的一样的。
当然还可以将二者结合起来。

实验

实验结果(只列分类的)

确实效果不错。

将$\sigma$在训练过程的变化画出来可以发现,不同类和不同instance确实难度不同。

将一部分的label设成random,可以看到,影响相对控制得还行:

且可以较好的分辨出clean和noisy的数据:

之前的工作表明,如果一个数据集全是random的label,DNN能够将整个数据集都记下来,使用curriculum,可以避免/缓解这个过程(记忆sample)。

相关工作

和CL相比,是动态的,从student model的角度出发,所以倒不如说本质上是一种self-paced learning。
和self-paced相比,self-paced是通过loss来分配weight大小,这个问题在于DNN能够直接记忆hard example,使得用loss评判难度并不准确;但本文方法真的能从本质上解决这个问题吗,如果模型强行去学,也是可以记住的,上图如果一直训,可能也会达到很高的acc。

一点想法

这篇是不错的文章,简单易操作,方法虽简单,但很优雅。有几个点可以深入想一下:
1) curriculum learning也可以不像以前那样严格从简单到难,因为设计这样的课程是很难的;同时CL的sample难度作用体现在采样的概率上,而在这里并非体现在采样的概率,而是应用在softmax上,这启发了我们,是否可能从模型内部的某个component中去应用出这个难度大小。
2) 感觉data parameter会有延迟,比如一个模型刚开始给一个sample高的weight,到后面过了一遍数据之后这个weight就应该变小,但此时还很大,虽然从整体上来说效果还可以,但是否能够更精细一点?可能实现中的weight decay会稍微缓解这个问题?这个延迟是否可以用VI后验这套方法来解?(还不清楚应该怎么做,但只是想到latent alignment and variational attention的思路);或者是否可以通过加入一定的先验来缓解这个问题?
3) 粒度的拓展。multi-task中以task为单位,亦或NLP中以词为单位?


[本周论文小结]

读了几篇softmax相关的。同时读了这篇CL的论文感觉也挺有意思的。