神经结构化学习(NSL)最近被引入到 tensorflow 2.0 中。我已经阅读了tensorflow 网站上关于 NSL 的本指南以及关于“图像分类的对抗正则化”的本教程。从概念上讲,我不清楚这是如何工作的。如何生成额外的对抗样本,对抗训练的含义是什么,以及它如何帮助实现更高的准确性/性能?附加代码确实很短,但这段代码在幕后做了什么尚不清楚。将不胜感激从外行的角度一步一步的内部解释。
问问题
116 次
1 回答
2
通常,对抗性示例是通过获取输入与输出的梯度然后最大化损失来创建的。例如,如果你有一个猫和狗的分类任务并且你想创建对抗样本,你输入一个 256 x 256 的猫图像到你的网络中,得到输入的损失梯度,这也是一个 256 x 256张量,然后将负梯度(扰动)添加到您的图像中,直到网络将其分类为狗。通过使用正确的标签再次对这些生成的图像进行训练,网络对噪声/扰动变得更加鲁棒。
还有其他更复杂的方法。例如,本文解释了输入中的模式如何破坏光流估计网络的输出。
于 2019-11-11T09:29:05.120 回答