以上技术所实现的仅仅是一种形式的改变图像纹理,或者叫纹理迁移。如果风格参考图像具有明显的纹理结构且高度自相似,并且内容目标不需要高层次细节就能够被识别,那么这种方法的效果最好。它通常无法实现比较抽象的迁移,比如将一幅肖像的风格迁移到另一幅中
上面这个风格迁移算法的运行速度很慢。但这种方法实现的变换足够简单,只要有适量的训练数据,一个小型的快速前馈卷积神经网络就可以学会这种变换。因此,实现快速风格迁移的方法是,首先利用这里介绍的方法,花费大量的计算时间对一张固定的风格参考图像生成许多输入 - 输出训练样例,然后训练一个简单的卷积神经网络来学习这个特定风格的变换。一旦完成之后,对一张图像进行风格迁移是非常快的,只是这个小型卷积神经网络的一次前向传递而已
用变分自编码器生成图像从图像的潜在空间中采样,并创建全新图像或编辑现有图像,这是目前最流行也是最成功的创造性人工智能应用。该领域的两种主要技术分别为变分自编码器(VAE,variational autoencoder)和生成式对抗网络(GAN,generative adversarial network)
从图像的潜在空间中采样
图像生成的关键思想就是找到一个低维的表示潜在空间(latent space,也是一个向量空间),其中任意点都可以被映射为一张逼真的图像。能够实现这种映射的模块,即以潜在点作为输入并输出一张图像(像素网格),叫作生成器(generator,对于 GAN 而言)或解码器(decoder,对于 VAE 而言)。一旦找到了这样的潜在空间,就可以从中有意地或随机地对点进行采样,并将其映射到图像空间,从而生成前所未见的图像
生成图像过程示例
想要学习图像表示的这种潜在空间,GAN 和 VAE 是两种不同的策略。VAE 非常适合用于学习具有良好结构的潜在空间,其中特定方向表示数据中有意义的变化轴。GAN 生成的图像可能非常逼真,但它的潜在空间可能没有良好结构,也没有足够的连续性
VAE 生成的人脸连续空间
概念向量(concept vector):给定一个表示的潜在空间或一个嵌入空间,空间中的特定方向可能表示原始数据中有趣的变化轴
变分自编码器是一种生成式模型,特别适用于利用概念向量进行图像编辑的任务。它是一种现代化的自编码器,将深度学习的想法与贝叶斯推断结合在一起。自编码器是一种网络类型,其目的是将输入编码到低维潜在空间,然后再解码回来
经典的图像自编码器接收一张图像,通过一个编码器模块将其映射到潜在向量空间,然后再通过一个解码器模块将其解码为与原始图像具有相同尺寸的输出。然后,使用与输入图像相同的图像作为目标数据来训练这个自编码器,也就是说,自编码器学习对原始输入进行重新构建。通过对代码(编码器的输出)施加各种限制,我们可以让自编码器学到比较有趣的数据潜在表示。最常见的情况是将代码限制为低维的并且是稀疏的(即大部分元素为 0),在这种情况下,编码器的作用是将输入数据压缩为更少二进制位的信息
自编码器模型表示