《Destruction and Construction Learning for Fine-grained Image Recognition》对抗损失理解
看到有些讲解的文章,说DCL中的对抗损失是gan的思想,优化目标是让判别器不能分辨原图和破坏图,但是我的理解完全相反。以下是我的理解,如有不对,请指出。
1.作者原文中的图2 有明显的说明,“an adversarial loss is applied to distinguish original images from destructed ones.”也就是说对抗损失的目的是为了区分原图和破坏图。
2)在3.1.2节中,作者说分类loss和对抗loss是以对抗的形式进行工作。分类loss是不区分原图和破坏图的,对抗loss区分原图和对抗图,这样才是对抗的。
3)认为是以不区分原图和破坏图为目的的人,大多是因为以下的公式,
认为不论d为0还是1的时候,及不论是原图还是破坏图,D的优化方向都是1.但是这只是在单个二分类中才是 这样的理解,但是作者论文中说明了输出维度是2,
那此公式就是一个softmax loss!跟分类loss是一个形式,用于区分是原图还是不是原图。也就是说和 不是一个二分类器的输出,不是经过这个二分类器后原图输出1,破坏后的图也输出1.而是相当于有两个分类器,一个判别是不是原图,一个判别是不是破坏后的图,具体原理详见softmax。
4)作者的代码也证实了这一观点,2分类模式下的输出层(实际还可以有另一种模式,具体可以自己看代码)
拿到这个输出之后是直接一个ce loss!
最后,探讨一下为什么对抗网络能有效果,对抗网络其实相当于让模型学习到了什么是RCM引入的噪声信息,也就是将原来的视觉特征空间分割成了噪声空间和有用空间,能让模型在分类的时候不要去拟合噪声空间。