Learning to Reweight Examples for Robust Deep Learning

Learning to Reweight Examples for Robust Deep Learning

一、总结

用meta learning做的可解释性学习,很不错

二、翻译

abstract

深度神经网络已被证明是非常强大的建模工具,为许多监督学习任务涉及复杂的输入模式。然而,它们也可以很容易地过度适应训练集的偏差和标签噪声。除了各种正则化器外,示例重加权算法是解决这些问题的流行解决方案,但它们需要仔细调整额外的超参数,例如挖掘计划(mining schedule)和正则化超参数。与过去的重加权方法不同,过去的重加权通常由每个例子的成本值的函数(cost function)组成,在本工作中,我们提出了一种新的元学习算法,学习基于梯度方向为训练样本分配权重。为了确定示例权值,我们的方法对当前的mini-batch样本权值(从零初始化)执行一个元梯度下降步骤,以最小化一个干净的无偏验证集上的损失。我们提出的方法可以很容易地在任何类型的深度网络上实现,不需要任何额外的超参数微调,并且在只有少量干净验证数据的类不平衡和标签损坏问题上实现了令人印象深刻的性能。

introduction

深度神经网络(DNNs)由于其建模复杂输入模式的强大能力,已被广泛应用于机器学习应用。尽管它们成功了,但已经表明dnn容易产生训练集偏差,即训练集的分布 p ( x , y ) p(x,y) p(x,y),不同于验证集的分布 p ( x v 、 y v ) p(x^v、y^v) pxvyv。这种分布不匹配可能有许多不同的形式。训练集中的类不平衡就是一个非常常见的例子。在自动驾驶中的物体检测等应用中,绝大多数训练数据都由标准车辆组成,但模型也需要非常高精度地识别罕见的类别,如紧急车辆或动物。这有时会导致有偏移的训练模型在实践中表现不佳。
另一种流行的训练集偏差类型是标签噪声。为了训练一个合理的监督深度模型,我们在理想情况下,需要一个具有高质量标签的大数据集,这需要许多昂贵的人类质量保证(QA)。虽然粗标签便宜且可用性高,但噪声的存在会损害模型的性能。张等人已经表明,一个标准的CNN可以在训练集中拟合任何比例的标签翻转噪声,并最终导致较差的泛化性能。
训练集的偏差和错误规范有时可以通过数据集重采样来解决。选择正确比例的标签去训练一个网络,或者更一般地说,通过为每个样本设定一个权重然后最小化加权后的损失。示例权重通常是基于训练损失计算的,如许多经典算法,如AdaBoost、硬负挖掘、自节奏学习(self-paced learning)和其他近期工作。
然而,在基于训练损失的训练方法中,存在着两种相互矛盾的观点。在噪声标签问题中,我们更喜欢训练损失较小的例子,因为它们更有可能是干净的图像;然而,在类不平衡问题中,如硬负挖掘的算法优先考虑训练损失较高的例子,因为它们更有可能是少数类。在训练集既不平衡又有噪声的情况下,这些现有的方法会有错误的模型假设。事实上,如果没有对无偏测试集的正确定义,解决训练集偏差问题本质上是不能正确定义的。由于模型不能区分是非,更强的正则化通常可以在某些合成噪声设置下效果很好。在这里,我们认为,为了学习一般形式的训练集偏差,有必要有一个小的无偏验证来指导训练。实际上,构建一个带有两部分的数据集并不罕见——一个相对较小但标记非常准确,另一个是大量但标记粗糙。粗糙的标签可以来自廉价的众包服务或弱监督的数据。
与现有的基于训练损失的方法不同,我们遵循一个元学习范式,而建模最基本的假设:最佳样本加权应该尽量减少一组无偏干净验证样本的损失。传统上,验证是在训练结束时执行的,如果我们将样本权值视为一些超参数来优化,这可能会非常昂贵;为了规避这一点,我们在每次训练迭代中执行验证,以动态确定当前批的样本权重。为了实现这个目标,我们提出了一种在线重加权方法,该方法利用一个额外的小验证集,并自适应地为每次迭代中的例子分配重要性权重。我们对类不平衡和标签损坏问题进行了实验,发现我们的方法显著提高了对训练集偏差的鲁棒性。

Learning to Reweight Examples

在本节中,我们从一个元学习目标中推导出我们的模型,转到一个在线近似,可以适应任何常规的监督训练。我们给出了一个适用于任何深度网络类型的实际实现,并提供了算法收敛速度为 O ( 1 ϵ ) O(\frac{1}{\epsilon}) O(ϵ1)的理论保证。请注意,这与随机梯度下降(SGD)相同。

From a meta-learning objective to an online approximation

( x , y ) (x,y) (x,y)是输入对, { ( x i , y i ) , 1 ≤ i ≤ N } \{(x_i,y_i),1\leq i\leq N\} {(xi,yi),1iN}是训练集。我们假设有一个小的无偏和干净的验证集 { ( x i v , y v i ) , 1 ≤ i ≤ M } \{(x_i^v,y^i_v),1\leq i \leq M\} {(xiv,yvi)1iM} M ≪ N M\ll N MN。此后,我们将使用上标v表示验证集,下标i表示第i个数据。我们假设训练集包含验证集;否则,我们总是可以将这个小的验证集添加到训练集中,并在训练期间利用更多的信息。
Φ ( x , θ ) \Phi (x,\theta) Φ(xθ)为我们的神经网络模型, θ \theta θ为模型参数。我们考虑一个损失函数 C ( y ^ , y ) C(\hat y,y) C(y^y)在训练过程中最小化,其中 y ^ = Φ ( x , θ ) \hat y=\Phi(x,\theta) y^=Φ(xθ)
在标准训练中,我们的目标是将训练集的预期损失最小化: 1 N ∑ i = 1 N C ( y ^ i , y i ) = 1 N ∑ i = 1 N f i ( θ ) \frac{1}{N}\sum_{i=1}^NC(\hat y_i,y_i)=\frac{1}{N}\sum_{i=1}^Nf_i(\theta) N1i=1NC(y^iyi)=N1i=1Nfi(θ),其中每个输入例子的权重相同, f i ( θ ) f_i(\theta) fi(θ)代表与数据 x i x_i xi相关的损失函数。在这里,我们的目标是学习输入的重新加权。我们最小化加权损失 θ ∗ ( w ) = arg min ⁡ θ ∑ i = 1 N w i f i ( θ ) \theta^{*}(w)=\argmin_\theta\sum_{i=1}^Nw_if_i(\theta) θ(w)=θargmini=1Nwifi(θ) w i w_i wi在开始时未知。请注意, { w i } i = 1 N \{w_i\}_{i=1}^N {wi}i=1N可以理解为训练超参数,w是基于其验证性能的最佳选择: w ∗ = arg min ⁡ w , w > 0 1 M ∑ i = 1 M f i v ( θ ∗ ( w ) ) w^{*}=\argmin_{w,w>0}\frac{1}{M}\sum_{i=1}^Mf_i^v(\theta^{*}(w)) w=w,w>0argminM1i=1Mfiv(θ(w))对于所有的i,都需要 w i ≥ 0 w_i\geq0 wi0,因为最小化负训练损失通常会导致不稳定的行为。

Online approximation

计算最优 w i w_i wi需要两个嵌套的优化循环,而每个循环都可能非常昂贵。我们的方法的动机是通过一个优化循环来适应在线w。对于每一次训练迭代,我们在训练损失表面局部检查一些训练实例的下降方向,并根据它们与验证损失表面下降方向的相似性对它们进行重加权。
对于大多数深度神经网络的训练,SGD或其变体被用来优化这种损失函数。在训练的每一步t中,采样一小批训练示例 { ( x i , y i ) , 1 ≤ i ≤ n } \{(x_i,y_i),1\leq i\leq n\} {(xi,yi),1in},其中n为batch size, n ≪ N n\ll N nN,然后根据mini-batch上预期损失的下降方向对参数进行调整。让我们考虑原始的SGD: θ t + 1 = θ − ▽ ( 1 N ∑ i = 1 N f i ( θ t ) ) \theta_{t+1}=\theta-\bigtriangledown(\frac{1}{N}\sum_{i=1}^Nf_i(\theta_t)) θt+1=θ(N1i=1Nfi(θt))
我们想了解训练样本i在训练步骤t时对验证集的性能有什么影响。根据与Koh&Liang(2017)类似的分析,我们考虑给mini-batch中每个训练样本的增加扰动加权 ϵ i \epsilon_i ϵi f i , ϵ = ϵ i f i ( θ ) , θ ^ t + 1 ( ϵ ) = θ t − ▽ ∑ i = 1 n f i , ϵ ( θ ) ∣ θ = θ t f_{i,\epsilon}=\epsilon_if_i(\theta),\hat\theta_{t+1}(\epsilon)=\theta_t-\bigtriangledown\sum_{i=1}^nf_{i,\epsilon}(\theta)|_{\theta=\theta_t} fi,ϵ=ϵifi(θ),θ^t+1(ϵ)=θti=1nfi,ϵ(θ)θ=θt
然后我们可以寻找最优的 ϵ i \epsilon_i ϵi,在步骤t中减少验证损失 f v f^v fv ϵ t ∗ = arg min ⁡ ϵ 1 M ∑ i = 1 M f i v ( θ t + 1 ( ϵ ) ) \epsilon^{*}_t=\argmin_\epsilon\frac{1}{M}\sum_{i=1}^Mf_i^v(\theta_{t+1}(\epsilon)) ϵt=ϵargminM1i=1Mfiv(θt+1(ϵ))不幸的是,这仍然可能相当耗时。为了在步骤t处得到 w i w_i wi的廉价估计,我们在一小批验证样本上采取了一个单一的梯度下降步骤。然后校正输出,得到一个非负的权重: u i , t = − η ∂ ∂ ϵ i , t 1 m ∑ j = 1 m f j v ( θ t + 1 ( ϵ ) ) ∣ ϵ i , t = 0 u_{i,t}=-\eta\frac{\partial}{\partial \epsilon_{i,t}}\frac{1}{m}\sum_{j=1}^mf_j^v(\theta_{t+1}(\epsilon))|_{\epsilon_{i,t}=0} ui,t=ηϵi,tm1j=1mfjv(θt+1(ϵ))ϵi,t=0 w ~ i , t = max ⁡ ( u i , t , 0 ) \widetilde{w}_{i,t}=\max(u_{i,t},0) w i,t=max(ui,t,0)为了匹配原始的训练步长,在实践中,我们可以考虑将训练批中所有实例的权重归一化,以便它们的总和为一个。换句话说,我们选择在集合 { w : ∥ w ∥ 1 = 1 } ∪ { 0 } \{w:\|w\|_1=1\}∪\{0\} {w:w1=1}{0}内有一个硬约束 w i , t = w ~ i , t ∑ j w ~ j , t + δ ∑ j w ~ j , t w_{i,t}=\frac{\widetilde w_{i,t}}{\sum_j\widetilde w_{j,t}+\delta\sum_j\widetilde w_{j,t}} wi,t=jw j,t+δjw j,tw i,t其中, δ ( ⋅ ) \delta(\cdot) δ()是为了防止当一个mini batch中的所有 w i w_i wi都为零时的退化情况,即。如果a=为0,则 δ ( a ) \delta(a) δ(a)为1,否则等于0。如果没有批归一化步骤,该算法可能会修改其对训练进度的有效学习率,而我们的一步展望在学习率的选择方面可能过于保守(Wuetal.,2018)。此外,通过批处理归一化,我们有效地取消了元学习率参数 η \eta η

你可能感兴趣的:(论文,可解释性机器学习,深度学习,机器学习,人工智能)