这篇文章是-dist net的v2版本,前面大体内容一致,这里提出不同之处

首先作者定义了r-离散的概念,并证明了-dist net可以完全满足在扰动等于r的情况下完全鲁棒。

image-20211225144053717

表为下的情况

image-20211225144423645

image-20211225144807140

改进-dist net的训练

image-20211225145123768

之前使用的hinge loss

image-20211225144916309

设为大于两倍的,想让网络在的扰动下完全鲁棒

image-20211225145539547

但是因为绝大多数样本的输出margin都是小于的,我们的loss退化成了上面的式子,是不变的,训练过程就去优化整个数据集的平均margin了,不管我们给它的条件

然后在net v1中这个被设的很高,我们发现它如果低了以后,CR就会很低

image-20211225145421436

这是因为早期训练取的norm p的p很小,导致利普希兹常数很大

image-20211225150854510

使得image-20211225151009667失效,导致数据点的margin满足条件时,实际上也很靠近决策边界,这样hinge loss在早期训练就陷入了错误解,而后期p大了,梯度就已经离散,无法使得参数回到正确解

For small θ, the margin optimization becomes insufficient at early training stages when the Lipschitz constant is exponentially large, leading to worse performance even on the training dataset.

解决方法

为了训练网络,松弛是必要的,所以只能改loss

cross-entropy也能扩大正确类和错误类的logit距离,但是很粗糙,当模型逼近1-Lipschitz时,hinge loss仍然比cross entropy要好,可以说他们是互补的

所以我们将其缝合在了一起:

image-20211225153018738

image-20211225153052976

Scaled cross-entropy loss

它处理p很小时的优化问题。我们知道交叉熵是对shift操作不变的(对每一个logit加一个常数),但对scaling操作不是。

但是-dist net不像传统网络一样可以做scaling操作,因此我们对网络的输出乘上了可学习的参数来做缩放操作,直接初始化为1,它不会影响分类结果,训练完就可以去掉

Clipped hinge loss

它是为了使p接近无穷时获得鲁棒性,与传统hinge loss不同之处在于,clipped版本loss在分类错误时是稳定的(值为1)

原因是(1)scaled cross entropy已经让模型注意于获得高的clean acc,因此不必再重复用hinge loss去优化,而且cross entorpy在分类优化上比hinge loss好

(2)在晚期训练阶段,优化很困难,错误的分类样本可能几乎不可能变得鲁棒,于是clipped hinge loss忽略了它们,集中注意力去优化更好训练的样本(正确分类的)

(3)它是image-20211225161742831的更好替代,由于cross entropy的存在,hinge threshold可以设为更小的值,避免了loss退化现象

混合系数

是一个超参,在训练过程中逐步衰减到0

实验结果

image-20211225162215378

image-20211225162257679

可以看到现在输出margin大于的样本不会跌落到0%

总结

可做的方面:较小的情况下或许还可以优化,设计出更好的结构而不是简单的全连接网络来做图像分类,设计更好的优化算法来解决模型的非平滑和梯度稀疏问题s