https://www.toutiao.com/a6707818378641293836/
2019-06-29 13:21:10
边策 发自 凹非寺
量子位 报道 | 公众号 QbitAI
风格迁移是VGG网络架构的拿手好戏。难道其他架构的CNN,比如ResNet就不可以吗?可以,但是直接用它来做风格迁移,原来的风格仍然非常明显,几乎没有迁移。
就像这样:
有没有一种方法,在经过调整后,可以把非VGG架构用于风格迁移呢?
之前的确有人尝试过。但他们不是直接优化RGB空间中的输出图像,而是在傅立叶空间中对其进行优化,并在将图像传递到神经网络之前通过一系列变换(例如抖动、旋转、缩放)来操作图像。
△通过去相关参数化和变换鲁棒性,在非VGG架构上实现风格迁移
为何给图像做一个简单的旋转、抖动处理,就能实现非VGG架构的风格迁移?有位日本的科技博主Reiichiro Nakano受到MIT上个月发表的一篇论文启发,用实验结果解答了这个问题。
这篇论文叫做《对抗样本不是bug而是特征》(Adversarial Examples Are Not Bugs, They Are Features)。下面就让我们来分析分析。
鲁棒与非鲁棒特征
MIT的文章提出,用于训练分类器的图像中存在所谓的“鲁棒”和“非鲁棒”特征。
我们可以将鲁棒的特征视为人类用于分类的特征,例如,大耳朵指向某些品种的狗,而黑白条纹指向斑马。
另一方面,非鲁棒特征是人类对之不敏感的特征,但是它们却与整个训练、测试数据集上的类别相关联。
作者认为,可以通过用另一个类的非鲁棒特征替换图像中的非鲁棒特征来产生对抗样本。
有些图像分类模型的抵抗性较差,给熊猫照片加上一点噪声(非鲁棒特征),它就会把熊猫当成长臂猿:
论文中有一张图表特别值得注意,它显示了对抗样本的可迁移性与学习非鲁棒特征能力之间的相关性。
于是有人推测,由于VGG无法像ResNet那样捕获图像的非鲁棒特征,因此在图像分类准确率上吃亏,却能使VGG更好地进行风格迁移。
之前我们的问题得到了解释:
图像变换会削弱甚至破坏非鲁棒特征。经过优化后,CNN不再能够可靠地利用非鲁棒特征来降低损失,因此不得不利用鲁棒特征,可能会对图像变化产生更大的抵抗力(旋转和抖动的耳朵仍然看起来像一个大耳朵)。
测试这个假设是相当简单的:使用一个抵抗力强大(鲁棒)的分类器进行风格迁移,看看会发生什么。
博主对两个不同条件训练的ResNet-50模型进行比较。一个是MIT作者用鲁棒特征训练的模型(已开源),另一个是博主自己训练的常规ResNet-50模型(对非鲁棒特征敏感)。
此外,还有常规VGG-19风格转换的图片作为对比。
结果成功了!鲁棒ResNet模型相比常规ResNet模型显示出了巨大的改进。请记住,二者网络架构完全相同,执行风格迁移的代码完全相同,只是权重不同!
在VGG-19与鲁棒的ResNet之间进行比较,会得到更有趣的结果。乍一看,鲁棒ResNet模型生成的图片大致与VGG-19相同。然而,仔细观察却发现,ResNet的输出包含更多的噪点,伪造的痕迹更明显一些。
目前还不清楚究竟是什么原因导致这些痕迹。一种理论是它们是由不可分的核尺寸和卷积层中的步长引起的“棋盘伪影”(checkerboard artifacts),也有可能是由最大池化层的存在造成的。
这些伪影虽然存在问题,但似乎与对抗鲁棒性在神经风格迁移中解决的问题大不相同。
虽然这个实验是因为观察到VGG的一个特殊特征而开始的,但它没有对这种现象作出解释。实际上,如果我们要接受这样的理论,即对抗鲁棒性是VGG能直接用于神经风格转移的原因,我们肯定会在现有文献中找到一些迹象表明VGG自然比其他架构更强大。
不幸的是,我们找不到任何支持这个论点的东西。
也许对抗鲁棒性恰好修复或掩盖非VGG架构在风格迁移中失败的真正原因,即对抗鲁棒性是有良好风格迁移能力的充分不必要条件。
这位日本博主认为进一步研究VGG是未来工作一个非常有趣的方向。
最后,博主给出了一些未来工作的想法:
1、找出鲁棒ResNet伪造痕迹明显的原因,并尝试修复它们。
2、尝试使用超参数,尤其是用于风格和内容的图层。
3、本文使用的鲁棒ResNet模型来自Engstrom等人的成果。他们是在一组受限制的ImageNet上训练,只有9个分类。在完整的ImageNet数据集上训练分类器是否会产生更好的输出。
博客地址:
https://reiinakano.com/2019/06/21/robust-neural-style-transfer.html
论文解读地址:
http://gradientscience.org/adv/
鲁棒ResNet-50模型:
https://github.com/MadryLab/robust_representations
Cloab地址:
https://colab.research.google.com/github/reiinakano/adversarially-robust-neural-style-transfer/blob/master/Robust_Neural_Style_Transfer.ipynb
— 完 —