本篇文章4370字,读完约11分钟
雷锋。(公开号码:雷锋。com)出版社:这篇文章的作者是《达文西》,最初发表在作者志虎和雷锋的专栏里。com被授权发布。
机器学习和优化问题许多机器学习方法可以归结为优化问题。对于参数模型,如神经网络,y = f(x;θ),训练模型实际上是以下参数的优化问题:
其中l是一个损失函数,例如通常用于神经网络分类的交叉熵。
有线电视新闻网学到了什么?特征(表示)。将原始图像视为一个尺寸为像素×通道的矢量。经过各种复杂的有线电视新闻网结构,它只是成为另一个向量。该向量所在的空可能具有更好的线性可分性,或者相似样本的“距离”可能更近。原始数据在这里转换后,它就是一个特征。
可视化有线电视新闻网然后有一个问题,如何可视化有线电视新闻网结构学习的特征?答案有很多,其中之一就是本文的主题:求解输入图像而不是优化网络参数。
优化网络的输入与“正统”的机器学习优化参数相关。当一个有线电视网络训练完成后,我们可以确定参数,将输入作为一个可训练量,并根据目的给出一个新的目标函数。
这种方法在深度学习中的最早应用可能是本吉奥集团在2009年的一份技术报告:“对深层网络的高层特征进行可视化。”文章提出了以下优化问题
其中hij代表第七层的第七个神经元的反应。凭直觉,这是为了找出什么样的图像可以最大程度地激活这个神经元。这种方法被称为激活最大化。使用这种方法,原始文本被可视化如下,从左到右,在dbn中从低到高有三层:
也许当许多人提到特征可视化时,首先想到的是可视化特征图或直接绘制卷积核,就像在caffe的教程中一样。事实上,这种可视化是不直观的,尤其是卷积核的可视化。第一层后的卷积核只能通过大脑来补充。基于这个想法,康奈尔大学的杰森·约辛斯基改变了公式
实际上,正则项r(x)被放入目标函数中。然后,他把这种可视化作为功能之一,并基于caffe:yos inski/deep-visualization-toolbox(地址:t/r2rxwi3)制作了一个cnn可视化工具包。对alexnet的影响如下:
请注意,该可视化结果还考虑了感受野,即实际优化目标是响应图的中心点,因此可视化图像越高,它就越大。
直接将某个类别的得分作为优化值,可以得到关于该类别更直观的可视化结果。例如,下图显示了该工具包对几个类别的可视化:
每个类别中学习到的视觉特征一目了然。此外,请注意,此方法是基于优化的,因此每次优化的结果都是不同的。
有了这种可视化,我们可以分析网络是否真正了解了我们希望它了解的特征。例如,谷歌的研究博客提到了哑铃的例子:
视觉类别是哑铃,但结果包含一些我们不想出现的元素:手臂。这是因为大多数用于训练的哑铃图片都有举哑铃的手臂。
有很多方法可以可视化网络,最明显的特征就是激活最大化。
敌对样本也是机器学习中的一个常见概念,它通常指的是在机器学习模型中人为制造并导致错误的样本。Anh nguyen的论文《深层神经网络很容易被愚弄:不可识别图像的高置信度预测》有一个更生动的说明:
为了理解这个数字,我们还应该提到机器学习的一个基本问题:学习数据的分布。具体方法是从训练数据中学习。如果学习成功,它可以推广到所有的数据,包括以前从未见过的测试数据。回到这个数字,数据分布是前三位。创建反向样本的一种方法是从一个类别的样本开始,做一些小的修改,这样模型就可以将修改后的样本判断为另一个类别,但事实上(或者人类的,明显的判断),该样本仍然是原始类别。这是图中从蓝色原点到白色正方形的方法。
当然,更容易利用分类边界的不确定性。例如,空,除了上图中的顶部,可以被认为是一个数据存在概率极低的区域,甚至可以被认为是一个从实际应用的角度来看我们根本不关心的区域。由于该算法学习的样本只有实心点,很难控制分类边界远离实心点。算法很容易得到被认为是一个类的对立样本,但实际上是难以辨认的。
因此,一般来说,对抗性样本的存在是因为数据维数通常太高,即使考虑到子区域,它仍然太高,并且不可能搜索整个(数据分布)空.在训练样本未覆盖的区域,无论该区域是否属于数据分布区域,无论模型的容量是否足够,都存在样本对立的可能性。尽管深度学习一直主张分布式表示比局部泛化好得多,但维数灾难仍然是一个难题。
具体到cnn,下面的例子可能已经被很多人看到了:
熊猫的照片被添加了一个难以察觉的噪音,在人类的眼里,它看起来像一只熊猫,但是对于美国有线电视新闻网来说,右边的照片被判断为长臂猿的概率高达99%。事实上,上面的句子已经清楚地指出,获得正确图像的方法仍然是优化输入图像的问题:添加尽可能小的噪声,并且优化该噪声以使优化的图像具有另一个类别的高概率:
其中n是所需的噪声,α是相应的系数,l是属于某一类别的x+n的损失,c是错误类别的标签。这可能是第一个讨论如何在基于深度学习的计算机视觉中创建对抗样本的方法,这可以在克里斯蒂安·塞格迪的论文《神经网络的有趣特性》中找到。在同一篇论文中,克里斯蒂安描述了一个令人担忧的发现:这种样本可以推广,在不同数据子集下训练的模型对于不同的cnn结构可以达到一定程度的“普遍性”。也就是说,对于一些与安全相关的应用程序,攻击者可以获得有效的攻击样本,即使他们不知道部署的模型是什么,也可以通过某种方式猜测数据的分布。
语义信息和高级神经元对cnn有一个非常基本的理解:低级部分学习简单的信息,如纹理,高级部分学习语义信息。神经网络有趣特性的另一个发现是,在cnn中,并不是某个神经元代表了更高级别的语义信息,而是由更高级别的神经元组成的空。证明这个看似显而易见的结论的一种方法是优化输入图像:
其中φ (x)是对应于神经元激活值的向量,v是随机向量。此外,这与之前的优化略有不同,x的值范围仅限于现有的图片集。事实上,在高级响应的空中,沿着某个方向选择在该方向具有最高值的一些图片。最后的结论是,无论是沿随机方向找到的图片还是某个神经元响应最大的图片,都可以看到一些语义上的共性,如下图所示:
黑线上方是使某个神经元的反应最大化的样本,这具有明显的共性。在黑线下面是在空特征的某一层中在某一方向上最大化响应的样本,这也具有明显的共性。
许多深陷梦境的人年轻时都有过这样的经历:仰望天空中的云空,或者观察地面上的线条,甚至盯着厕所里肮脏的墙壁,他们看到了各种各样的机器人战争,武术图片,或者卡通人物和故事。
深梦与此非常相似。当您输入任何图像时,您将得到不同级别的响应。如前所述,较低层次的响应是纹理和细节之间的对应,而较高层次的响应是语义信息的响应。所以深梦的想法是:
对某一高层次获得的语义信息做出反应,强化信息。这相当于让网络决定它从输入图像中“看到”什么,并强化它“看到”什么,因此这是一个优化问题。
优化的目标是在某个高水平上最大化输入图像的现有响应。优化的初始值是输入图像。当然,还有其他一些项目,如不同的规模,或限制梯度和高频成分。是否添加这些取决于具体情况。这不是一个典型的优化问题,但更像一个简单的梯度下降问题,所以梯度下降通常不会走到最后,而是经过几个步骤,直到一个“梦想”出现在输入图像。以下是张量流官方教程图片上的初始模型产生的梦:
基于《盗梦空间》的《深度梦》的一个特点是梦里有很多狗,就像上面的图片一样。
在电影《盗梦空间》中,梦可以被操纵,深度梦也可以被使用。根据可视化的思想,优化目标在响应图的某一层变为某一通道,这是一个传统的优化问题:
与第一部分不同的是,图像是初始化的,优化不会进行到最后。例如,对与花相同的图案敏感的通道将在相应的梦中充满花:
事实上,那些隐藏在白云和墙壁中的图案长大后可以看到,但大多数人不会看着它们。
2016年,如果你想选择与神经网络相关的最热门应用,那一定是prisma。其背后的算法也是输入图像的优化。关于神经网络的艺术风格学习,我们应该首先追溯到早期的论文“通过反转来理解深层图像表示”,其中讨论的问题之一是通过优化算法和神经网络中的特征来重构图像:
其中φ 0是网络中图像的特征,它可以是某些层的响应或所有响应。如果φ 0是一个低级特征,那么细节的恢复程度会很好。如果φ 0是一个高级特征,图片中的纹理和细节会丢失很多信息。例如,下图:
使用vgg16模型进行一次正演计算,然后将relu1~relu5的特性分别取为φ 0。重建结果如下:
在基于神经网络的图像艺术风格中,通常输入的是原始图像,经过处理后还有其他图像,如油画的艺术风格。所以它是原始图像的内容+其他图像的样式,所以上面讨论的部分是内容的重建,所以下一个是样式的重建。
图像风格实际上很难定义,但在神经网络中,当谈到风格时,它通常指的是纹理。纹理的特征是什么?这是另一件很难定义的事情...然而,纹理有一个与它的位置无关的特征。基于这一特征,只要是与它的位置无关的统计信息,就可以尝试表达纹理的特征。gram matrix是cnn表达这一特性的方式之一:
Gl表示对应于第l层的响应图的gram矩阵,而fil表示对应于该层的第I卷积校验的响应图。通常,响应图是二维的。这里,响应图被扩展成一维向量,其中fikl表示该层的ith响应图的第k个元素。因此,gram矩阵的每个元素都是内积,两个响应图之间的位置无关的相关性被发现。
下一个例程与前一部分相同。将每层gram矩阵作为一个特征,使重建图像的gram矩阵尽可能接近原始图像的gram矩阵也是一个优化问题:
其中E1是每层的损耗,w1是该层损耗的重量。el的形式是考虑各层响应图的大小后的gram矩阵差:
同样,vgg16被用来重建梵高的《空》的风格,结果如下:
对于为什么格矩阵可以作为重构风格的基础,文章《揭开神经风格转换的神秘面纱》(感谢@lyken在评论中的分享)给出了一个想法,很好的参考。与原文中对相关性的解释相比,本文进一步将gram矩阵转化为最大均方误差的平方,直接联系了图像与cnn之间的响应分布,并可以通过替代mmd计算来尝试其他风格重构的目标计算方法。
总之,已经有了重建内容和风格的方法,然后通过将更高级的特征作为内容重建的目标,并且将每一层的响应的gram矩阵以一定的比例相加作为风格重建的目标来优化输入图像是很自然的:
这是《艺术风格的神经算法》中的方法,也是prisma背后的算法。
雷锋。com相关阅读:
卷积神经网络不能处理“图”结构数据吗?这篇文章告诉你答案
教你用张量流实现卷积神经网络(用代码)
开发者特别会议|英伟达深度学习学院现场授课
英伟达dli高级工程师现场指导,理论联系实际,深入学习!
课程链接:mooc.ai/course/90
雷锋文章版权所有。严禁擅自转载。详情请参考转载说明。
标题:杂谈CNN:如何通过优化求解输入图像
地址:http://www.hcsbodzyz.com/hcxw/4826.html