????????自对抗训练(Self-Adversarial Training,简称SAT)是一种新型的数据增强技术,旨在通过神经网络自身进行的对抗式攻击来提高模型的鲁棒性和泛化能力。其主要分为两个阶段:
????????第一阶段,神经网络会对其原始图像进行修改,制造出图像上没有目标的假象。这种修改是通过一种对抗的方式进行的,即神经网络改变原始图像而不是网络权值。具体来说,神经网络在训练过程中会生成一种对抗性的攻击,这种攻击可以改变原始图像,使其看起来像没有目标物体一样。
????????第二阶段,训练神经网络对修改后的图像进行正常的目标检测。
????????这种自对抗训练的方式可以提高模型的鲁棒性和泛化能力,因为模型在训练过程中需要面对各种不同的假象和挑战,从而更好地适应不同的数据分布和场景。
????????那么,什么是对抗样本呢?
????????简单来说,对抗样本是在原图像中增加扰动噪声生成,也可以说是会使机器学习的算法产生误判的样本,如下图所示。
左-狗 || 右-鸵鸟
????????对抗样本容易使得模型输出错误判断,这给模型的鲁棒性造成了重大挑战。
????????那么,打不过,就加入它。因此在训练时将对抗样本加入训练集一起训练,即为对抗训练。进行对抗训练能扩充训练集的可能性,使得数据集逼近我们想要的数据分布,训练后的模型鲁棒性和泛化性能可以得到大大增强。
????????(1)提高模型的鲁棒性:SAT通过对原始图像进行修改,使其看起来像没有目标物体一样,训练模型对这些修改后的图像进行正常的目标检测。这样可以增强模型对噪声和其他干扰的鲁棒性,使其在实际应用中能够更好地应对不同的挑战和场景。
????????(2)增强模型的泛化能力:SAT通过引入神经网络自身的对抗性攻击,使得模型在训练过程中需要面对各种不同的假象和挑战。这样可以使得模型更好地适应不同的数据分布和场景,提高其泛化能力。
????????(3)改善决策边界:SAT通过神经网络的对抗性攻击,可以改善学习决策边界中的薄弱环节。这有助于模型更好地理解数据分布和特征,从而更好地进行目标检测。
????????(1)计算效率低:SAT自对抗训练需要生成大量的修改图像,并对其进行正常的目标检测,这使得计算复杂度较高,训练效率相对较低。
????????(2)需要调整参数:SAT自对抗训练需要调整一些参数,例如攻击的强度、数量等。这些参数的选择对于训练效果具有重要影响,需要进行精细的调整和优化。
????????(3)对某些场景的适应性有限:虽然SAT自对抗训练可以应用于各种目标检测任务中,但对于某些特定的场景和任务,其适应性可能有限。因此,在实际应用中需要根据具体任务和数据集进行评估和调整。