1. 艺术家如何理解神经网络?
David Aslan 是一个传统油画家,但他同时也对与艺术相关的科学技术有着浓厚的兴趣。他想要通过撰写这篇博客来分享他使用神经网络创作艺术作品的经验与知识,从而帮助其他的艺术家也能理解神经网络,甚至让他们也能在日后的工作里找到更有趣更炫酷的方式来实现并呈现他们的作品。
David 把神经网络看成一种用来解决问题的运算工具,不过,它和传统的计算工具还是有很大区别的。他认为神经网络把一堆数据当作输入来进行处理,但是却输出并不是太相关的结果。但是,神经网络却可以从这些错误中进行学习,直到它达到一种平衡以至于得到一个近似「正确」的结果。David 打了一个比方来解释这一处理过程:
你扔进了一堆数据,你得到了一堆垃圾;你告诉计算机输出的结果是过热还是过冷,然后计算机再进行下一次尝试。
2. 艺术家如何通过神经网络创作艺术作品?
和那些希望通过神经网络直接产生出艺术作品的计算机科学家不同,David 却是把神经网络当作一种创作艺术的工具。
他使用「Deep Style」将原始的照片或者绘画作品转化成拥有其他艺术风格的图像。基于这些通过神经网络转换出来的图像,他再利用 Photoshop 来修改并完善图像中的细节。
具体来说,他的工作流程是这个样子:
1、准备好一张打算转换的图像(被称作「内容图像」,content image)和若干张风格图像(用于提取图像中的艺术风格,style image)。
2、通过 Deep Style,他可以获得若干张转换好的,拥有不同的艺术风格,但是内容一致的输出图像(被称作「风格化图像」)。
3、将这些风格化图像通过图层功能堆叠在原始的内容图像之上,最后再在 Photoshop 里用蒙版功能有选择性地保留或删去风格化图像的部分内容。
4、最后再添加一个图层用于完善细节以及将上述步骤中最终保留下来的拥有不同风格的部分混合在一张图像里。
他将第三步和第四步统称为「混合神经技术」(Fusion Neural Technique),这也是他整个处理流程里的亮点。以下的这张动图则粗略地展示了他的处理过程。
3. 实验中的关键点
神经网络和 Photoshop 中传统滤镜功能的区别
David 发现 Photoshop 中的艺术滤镜功能并不能识别出输入图像里的物体,因此这些滤镜只是对每一个像素都做了同一个简单运算。这种情况下,输入图像就失去了自己的「特异性」。与之相反,神经网络不仅能够识别出图像中的物体,也就是图像的内容,同时还可以鉴别出图像的纹理特征,从而使最终的输出结果更加真实。
「混合神经技术」的作用
合成图像通常有着模糊的边界以及相对来说较低的分辨率。因此,人为增加的混合图层可以补偿一些由于神经网络处理而导致的信息或分辨率的损失,从而使最终的输出结果有着更加锐利的边缘以及更高的分辨率。这一部分的处理过程正是艺术家的」再创作「,也正如他所说,他将神经网络看成创作的工具之一。
David 对神经网络和艺术的一些独到观点
艺术与科技的关系:他认为艺术的发展和技术的发展是密不可分的。打比方来说,「印象派」的出现正源自于光学领域的科学发现;具备电子放大器的乐器则为我们带来了摇滚乐。因此,从这个角度来说,神经网络也可以当成艺术创作的一种工具。
4. 他的艺术工作背后的技术细节
在这篇博客里,David 使用 Deep Style 来创作艺术作品。其中,Deep Style 则是基于《A Neural Algorithm of Artistic Style》这篇论文的一个具体实现。
这篇论文使用 VGG-Net 来分别从内容图像和风格图像中提取内容信息和风格信息,然后再分别计算它们和随机噪音图像之间的损失。通过反向传播算法,随机噪音图像最终可以被转换成拥有给定图像内容,但拥有另外的艺术风格的图像。
以下插图展示了这个网络的概览:
将内容图像和生成图像分别记为vec{p} 和 vec{x},而它们对应在 l 层的特征表达分别记为 P^l 和 F^l。那么内容损失则可以定义成以下式子:
该式相关的偏导数记为:
通过使用反向传播算法,初始的随机输入图像 vec{x} 能够不断改变直到它的特征表达非常接近 P^l,也就意味着内容被重构出来了。
这篇论文同样定义了一副图像的「风格」。G^l 是 Gram 矩阵用来表示 l 层的风格特征表达。该矩阵的每个元素可以通过以下式子计算得到:
风格图像和生成图像分别记为 vec{a} 和 vec{x},A^l 和 G^l 分别是它们的特征表达。这样一来,风格损失则可以定义成:
这里,N_I 是 l 层的滤波器的个数。它的偏导数可以通过以下式子计算:
结合内容损失和风格损失,我们可以得到最终的目标优化函数:
通过优化该式子,就可以生成目标图像 vec{x}。最终目标图像不仅拥有内容图像的内容,同时还拥有给定的风格,如下图所示:
5. 一些其他的思考
显然,艺术家更愿意将神经网络看成「绘画」的工具。与之相反的是,计算机科学家则致力于设计能够真正自己「创造」艺术的神经网络。我认为就目前在该领域的研究成果来说,神经网络更适合成为一种「创作工具」而不是「创作者」。因为目前的神经网络或多或少都是基于概率模型设计的,也就是说,这些网络都是在给定条件下,通过输入的数据来预测一个输出结果。
不能否认,人也是从过往的经验里来学习新的知识与能力,正如机器学习中的「监督学习」。但是人学习的这一过程则要复杂得多。对前文提到的神经网络来说,训练集仅仅只是「真实的照片」和「绘画作品」,我们希望从中能够找到某种能够将它们两者联系起来的映射关系。然而,除了基于实实在在的场景(也就是所谓「真实的照片」)以外,艺术家更会结合自己的个人体验与经验来进行创作——这些个人的体验与经验是极难被量化成计算机所能理解的数据。
这篇博客同时也从艺术家的角度提供了一些很有趣的观点。在艺术家眼中,自然图像(也就是真实的场景)中的噪音要远比图画这类艺术作品中的噪音多。这一观点其实是和部分计算机科学家的理解相悖的,比如论文《ArtGAN-Artwork Synthesis with Conditional Categorical GANs》。
博客作者也指出目前这种生成类的神经网络存在的一个问题是:生成的图像通常会有很模糊的边缘。因此他不得不使用「混合神经技术」在 Photoshop 中来手动锐化这些边缘。的确,这种附带的模糊效果是很难在这一类神经网络中避免的。对此,论文《Face Aging with Conditional Generative Adversarial Networks》的作者提出可以使用一个训练好的用于识别的神经网络来分别提取原图和生成图像的深层次特征,然后计算二者的 L2 损失来进行优化,从而减弱边缘模糊的效应。尽管如此,这也仅仅只能「改善」输出结果而非彻底解决这一问题。