参与:王灏、吴沁桐 David Aslan 是一个传统油画家,但他同时也对与艺术相关的科学技术有着浓厚的兴趣。他想要通过撰写这篇博客来分享他使用神经网络创作艺术作品的经验与知识,从而帮助其他的艺术家也能理解神经网络,甚至让他们也能在日后的工作里找到更有趣更炫酷的方式来实现并呈现他们的作品。 David 把神经网络看成一种用来解决问题的运算工具,不过,它和传统的计算工具还是有很大区别的。他认为神经网络把一堆数据当作输入来进行处理,但是却输出并不是太相关的结果。但是,神经网络却可以从这些错误中进行学习,直到它达到一种平衡以至于得到一个近似「正确」的结果。David 打了一个比方来解释这一处理过程: 你扔进了一堆数据,你得到了一堆垃圾;你告诉计算机输出的结果是过热还是过冷,然后计算机再进行下一次尝试。 和那些希望通过神经网络直接产生出艺术作品的计算机科学家不同,David 却是把神经网络当作一种创作艺术的工具。 他使用「Deep Style」将原始的照片或者绘画作品转化成拥有其他艺术风格的图像。基于这些通过神经网络转换出来的图像,他再利用 Photoshop 来修改并完善图像中的细节。 具体来说,他的工作流程是这个样子: 准备好一张打算转换的图像(被称作「内容图像」,content image)和若干张风格图像(用于提取图像中的艺术风格,style image)。 通过 Deep Style,他可以获得若干张转换好的,拥有不同的艺术风格,但是内容一致的输出图像(被称作「风格化图像」)。 将这些风格化图像通过图层功能堆叠在原始的内容图像之上,最后再在 Photoshop 里用蒙版功能有选择性地保留或删去风格化图像的部分内容。 最后再添加一个图层用于完善细节以及将上述步骤中最终保留下来的拥有不同风格的部分混合在一张图像里。 他将第三步和第四步统称为「混合神经技术」(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. 一些其他的思考 (责任编辑:本港台直播) |