CNN
对抗鲁棒性和准确度的矛盾及策略
神经网络的训练过程,本质是一个不断矫正的过程。
1. 谨防矫正过度
需要注意的是,为了提高模型的鲁棒性,必然需要对原始数据进行数据增强,但模型在训练增强后的数据和原始数据的时候,由于两种数据变化相对较大,很容易出现矫正过度的情况。也就是说提高鲁棒性的同时,降低了原始数据的准确度。
2. 矫正过度的原因
之所以会出现矫正过度,是因为正常数据和增强的对抗数据是在不同的batch
中作为两次单独训练的,后一次的梯度下降过程为了降低损失,很大几率在调整权重过程中,误伤了正常数据。
3. 鲁棒性训练策略
3.1 拒绝过度矫正
为了防止过度矫正,采用的策略是,使正常样本和增强的对抗样本始终处于一个batch
的训练中,不给它过度矫正的机会。使得模型能同时保证两类样本的准确度,达到提高鲁棒性的同时确保准确度不会下降。
3.2 增强的对抗样本平滑
如果没办法做到以上的方法,就只能使对抗样本相对于原始样本平滑,而不是突变,突变会使模型在满足对抗样本的同时误伤原始样本。
平滑的程度基于不同的增强策略是不同的,比如平移旋转,可以分别做平移和旋转,且单次平移尺度为梯度渐增,旋转增强同理。训练时,按照递增的排序训练,而非乱序,可以减少因过度矫正引起的误伤行为。
3.3 训练迭代次数远大于样本总数
通过反复的矫正,总能使模型在对抗样本和原始样本中找到一个合适的权重来达到好的准确度,代价就是需要超高的算力或时间。