GAN相关知识整理

GAN相关知识整理

1.历史背景

Ian Goodfellow 因提出了生成对抗网络(GANs,Generative Adversarial Networks)而闻名, GAN 最早由 Ian Goodfellow 于 2014 年提出,以其优越的性能,在不到两年时间里,迅速成为一大研究热点。他也被誉为“GANs 之父”,甚至被推举为人工智能领域的顶级专家。
实验运行结果如下图所示,生成了对应的图像:
notion image
Yann LeCun 称 GAN 为“过去十年机器学习界最有趣的 idea”。GAN 在 github 上的火热程度如下图所示,呈指数增涨,出现各种变形。当然,其中也存在很多比较水的文章,推荐大家尽量学习比较经典的模型。
notion image

2.GAN 原理解析

2.1 原理简述

首先,什么是 GAN?
GANs(Generativeadversarial networks,对抗式生成网络)可以把这三个单词拆分理解。
Generative:生成式模型
Adversarial:采取对抗的策略
Networks:网络(不一定是深度学习)
首先,我们先说说 GAN 要做什么呢?
  • 最开始在图(a)中我们生成绿线,即生成样本的概率分布,黑色的散点是真实样本的概率分布,这条蓝线是一个判决器,判断什么时候应该是真的或假的。
  • 我们第一件要做的事是把判决器判断准,如图(b)中蓝线,假设在 0.5 的位置下降,之前的认为是真实样本,之后的认为是假的样本。
  • 当它固定完成后,在图©中,生成器想办法去和真实数据作拟合,想办法去误导判决器。
  • 最终输出图(d),如果你真实的样本和生成的样本完全一致,分布完全一致,判决器就傻了,无法继续判断。
notion image
可能大家还比较蒙,下面我们再详细介绍一个思路。
  • 生成器:学习真实样本以假乱真
  • 判别器:小孩通过学习成验钞机的水平
notion image
GAN 的整体思路是一个生成器,一个判别器,并且 GoodFellow 论文证明了 GAN 全局最小点的充分必要条件是:生成器的概率分布和真实值的概率分布是一致的时候。
Global Optimality of p_g=p_{data}GlobalOptimalityofpg=pdata
notion image
其次,GAN 还需要分析哪些问题呢?
  • 目标函数如何设定?
  • 如何生成图片?
  • G 生成器和 D 判决器应该如何设置?
  • 如何进行训练?
notion image
目标函数
该目标函数如下所示,其中:
  • max()式子是第一步,表示把生成器 G 固定,让判别器尽量区分真实样本和假样本,即希望生成器不动的情况下,判别器能将真实的样本和生成的样本区分开。
  • min()式子是第二步,即整个式子。判别器 D 固定,通过调整生成器,希望判别器出现失误,尽可能不要让它区分开。
这也是一个博弈的过程。
notion image
整个公式的具体含义如下:
  • 式子由两项构成,x 表示真实图片,z 表示输入 G 网络的噪声,而 G(z)表示 G 网络生成的图片。
  • D(x)表示 D 网络判断真实图片是否真实的概率(因为 x 就是真实的,所以对于 D 来说,这个值越接近 1 越好)。
  • D(G(z))是 D 网络判断 G 生成的图片是否真实的概率。G 的目的:G 应该希望自己生成的的图片越接近真实越好。
  • D 的目的:D 的能力越强,D(x)应该越大,D(G(x))应该越小,这时 V(D,G)会变大,因此式子对于 D 来说是求最大(max_D)。
  • trick:为了前期加快训练,生成器的训练可以把 log(1-D(G(z)))换成-log(D(G(z)))损失函数。
接着我们回到大神的原论文,看看其算法(Algorithm 1)流程。
  • 最外层是一个 for 循环,接着是 k 次 for 循环,中间迭代的是判决器。
  • k 次 for 循环结束之后,再迭代生成器。
  • 最后结束循环。
notion image
(2) GAN 图片生成
接着我们介绍训练方案,通过 GAN 生成图片。
  • 第一步(左图):希望判决器尽可能地分开真实数据和我生成的数据。那么,怎么实现呢?我的真实数据就是 input1(Real World images),我生成的数据是 input2(Generator)。input1 的正常输出是 1,input2 的正常输出是 0,对于一个判决器(Discriminator)而言,我希望它判决好,首先把生成器固定住(虚线 T),然后生成一批样本和真实数据混合给判决器去判断。此时,经过训练的判决器变强,即固定生成器且训练判决器。
  • 第二步(右图):固定住判决器(虚线 T),我想办法去混淆它,刚才经过训练的判决器很厉害,此时我们想办法调整生成器,从而混淆判别器,即通过固定判决器并调整生成器,使得最后的输出 output 让生成的数据也输出 1(第一步为 0)。
notion image
GAN 的核心就是这些,再简单总结下,即:
  • 步骤 1 是在生成器固定的时候,我让它产生一批样本,然后让判决器正确区分真实样本和生成样本。(生成器标签 0、真实样本标签 1)
  • 步骤 2 是固定判决器,通过调整生成器去尽可能的瞒混判决器,所以实际上此时训练的是生成器。(生成器的标签需要让判决器识别为 1,即真实样本)
GANs 是一类生成模型,从字面意思不难猜到它会涉及两个“对手”,一个称为 Generator(生成者),一个称为 Discriminator(判别者)。Goodfellow 最初 arxiv 上挂出的 GAN tutorial 文章中将它们分别比喻为伪造者(Generator)和警察(Discriminator)。伪造者总想着制造出能够以假乱真的钞票,而警察则试图用更先进的技术甄别真假。两者在博弈过程中不断升级自己的技术。
从博弈论的角度来看,如果是零和博弈(zero-sum game),两者最终会达到纳什均衡(Nash equilibrium),即存在一组策略(g, d),如果 Generator 不选择策略 g,那么对于 Discriminator 来说,总存在一种策略使得 Generator 输得更惨;同样地,将 Generator 换成 Discriminator 也成立。
如果 GANs 定义的 lossfunction 满足零和博弈,并且有足够多的样本,双方都有充足的学习能力情况,在这种情况下,Generator 和 Discriminator 的最优策略即为纳什均衡点,也即:Generator 产生的都是“真钞”(材料、工艺技术与真钞一样,只是没有得到授权),Discriminator 会把任何一张钞票以 1/2 的概率判定为真钞。
那么,GAN 究竟能做什么呢?
如下图所示,这是一张非常有意思的图,最左边是真实的图,我们希望去预测视频后几帧的模样,中间这张图是用 MSE 做的,最右边的图是生成对抗网络做的。通过细节分析,我们可以看到中间这张图的耳朵和眼睛都是模糊的,而 GAN 生成的效果明显更好。
notion image
接着我们在看一个超分辨率的实例。首先给出一张超分辨率的图,最左边的图像是原始高分辨率图像(original),然后要对其进行下采样,得到低分辨率图像,接着采用不同的方法对低分辨率图像进行恢复,具体工作如下:
bicubic:第二张图是 bicubic 方法恢复的图像。经过压缩再拉伸还原图像,通过插值运算实现,但其图像会变得模糊。
SRResNet:第三张图像是通过 SRResNet 实现的恢复,比如先压缩图像再用 MSE 和神经网络学习和真实值的差别,再进行恢复。(SRResNet is a neural network trained with mean squared error)
SRGAN:第四张图是通过 SRGAN 实现的,其恢复效果更优。SRGAN 是在 GAN 基础上的改进,它能够理解有多个正确的答案,而不是在许多答案中给出一个最佳输出。
notion image
我们注意观察图像头部雕饰的细节,发现 GAN 恢复的轮廓更清晰。该实验显示了使用经过训练的生成模型从多模态分布生成真实样本的优势。
notion image
在这里,我们也科普下超分辨率——SRCNN。它最早是在论文《Learning a Deep Convolutional Network for Image Super-Resolution》中提出,这篇文章的四位作者分别为董超,Chen Change Loy,何凯明,汤晓欧,也都是妥妥的大神。从 CV 角度来看,这篇论文是真的厉害。
现假设要解决一个问题:能不能解决超分辨率,从一个低分辨率的图像恢复成一个高分辨率的图像,那怎么做呢? 他们通过增加两个卷积层的网络就解决了一个实际问题,并且这篇文章发了一个顶会。
notion image
更详细的介绍参考知乎 oneTaken 大佬的分享。
这是第一篇将端到端的深度学习训练来进行超分的论文,整篇论文的的过程现在看起来还是比较简单的,先将低分辨率图片双三次插值上采样到高分辨率图片,然后再使用两层卷积来进行特征映射,最后使用 MSE 来作为重建损失函数进行训练。从现在来看很多东西还是比较粗糙的,但这篇论文也成为很多超分论文的 baseline。
整篇论文的创新点有:
(1) 使用了一个卷积神经网络来进行超分,端到端的学习低分辨率与超分辨率之间的映射。
(2) 将提出的神经网络模型与传统的稀疏编码方法之间建立联系,这种联系还指导用来设计神经网络模型
(3) 实验结果表明深度学习方法可以用于超分中,可以获得较好的质量和较快的速度。
整个的模型架构非常的简单,先是对于输入图片进行双三次插值采样到高分辨空间,然后使用一层卷积进行特征提取,再用 ReLU 进行非线性映射,最后使用一个卷积来进行重建,使用 MSE 来作为重建损失。中间一个插曲是将传统用于超分的稀疏编码算法进行了延伸,可以看作是一种具有不同非线性映射的卷积神经网络模型。

2.2 原理推导

GAN 包含了两个神经网络,生成器(generator)和辨别器(discriminator),两者互相博弈不断变强,即生成器产出的东西越来越逼真,辨别器的识别能力越来越牛逼。
notion image
生成器辨别器之间的关系很像造假者(counterfeiter)和鉴定者(Appraiser)之间的关系。
  • 造假者不断造出假货,目的就是蒙骗鉴定者,在此过程中其造假能力越来越高。
  • 鉴定者不断检验假货,目的就是识破造假者,在此过程中其鉴定能力越来越高。
GAN 是造假者的,也是鉴定者的,但归根结底还是造假者的。GAN 的最终目标是训练出一个“完美”的造假者,即能让生成让鉴定者都蒙圈的产品。
一动图胜千言,下图展示“造假者如何一步步生成逼真的蒙娜丽莎画而最终欺骗了鉴定者”的过程。
notion image
造假者用生成器来建模,鉴定者用辨别器来建模。根据动图可知,辨别器的任务是区分哪些图片是真实的,哪些图片是生成器产生的。
notion image
辨别器:从像素矩阵到概率
notion image
notion image
生成器:从随机数 z 到像素矩阵
notion image
notion image

2.3 原理图

notion image
notion image

2.4 相关视频讲解

  • GAN论文逐段精读【论文精读】
notion image
  • 李宏毅对抗生成网络(GAN)
notion image

3.GAN 经典案例

3.1典型应用

GNN 究竟能做什么呢?
下面来看看一些比较有趣的 GAN 案例。
首先是一个视频,这篇文章中介绍了 Zhu 等人开发了交互式(interactive)生成对抗网络(iGAN),用户可以绘制图像的粗略草图,就使用 GAN 生成相似的真实图像。在这个例子中,用户潦草地画了几条绿线,就把它变成一块草地,用户再花了一条黑色的三角形,就创建了一个山包。
notion image
另一个比较经典的案例是左侧输入的皮包简图最终生成接近真实包的图像,或者将卫星照片转换成地图,将阈值车辆图像转换为现实中逼真的图像。
notion image
再比如通过 GAN 去预测视频中下一帧动画会发生什么,比如右下角给了一张火车的静态图片,会生成一段火车跑动的动态视频。
notion image
Wu 等在 NIPS 2016 中通过 GAN 实现了用噪声去生成一张 3D 椅子模型。
notion image
下图是 starGAN。左侧输入的是一张人脸,然后 GAN 会生成对应的喜怒哀乐表情,这篇文章的创新不是说 GAN 能做这件事,而是提出一个方案,所有的核心功能都在一起,只训练一个生成器,即不是生成多对多的生成器,而只训练一个生成器就能实现这些功能。
starGAN 转移从 RaFD 数据集中学到的知识,在 CelebA 数据集上的多域图像转换结果。第一和第六列显示输入图像,其余列是由 starGAN 生成的图像。请注意,这些图像是由一个单一的生成器网络生成的,而愤怒、快乐和恐惧等面部表情标签都来自 RaFD,而不是 CelebA。
notion image

3.2效果图GIF

动漫风格化
notion image
虚拟技术
notion image
notion image
notion image
notion image
notion image
notion image

3.3 常见 GAN 网络

(1) CGAN

首先,GAN 如何输出指定类的图像呢?
CGAN 出场。这里简单介绍下 GAN 和 CGAN 的区别:GAN 只能判断生成的东西是真的或假的,如果想指定生成图像如 1、2、3 呢?GAN 会先生成 100 张图像,然后从中去挑选出 1、2、3,这确实不方便。
在 2014 年提出 GAN 时,CGAN 也被提出来了。CGAN 除了生成以外,还要把条件带出去,即带着我们要生成一个什么样的图条件去混淆,如下右图:噪声 z 向量+条件 c 向量去生成。
notion image
所以整套流程大体不变,接着我们看看公式,它在 D(x|y)和 G(z|y)中增加了 y。其中,y 不一定是指定类的输出,可以是一些条件。
notion image

(2) DCGAN

DCGAN(Deep Convolutional Generative Adversarial Networks)
卷积神经网络和对抗神经网络结合起来的一篇经典论文,核心要素是:在不改变 GAN 原理的情况下提出一些有助于增强稳定性的 tricks。注意,这一点很重要。因为 GAN 训练时并没有想象的稳定,生成器最后经常产生无意义的输出或奔溃,但是 DCGAN 按照 tricks 能生成较好的图像。
notion image
DCGAN 论文使用的 tricks 包括:
  • 所有 pooling 都用 strided convolutions 代替,pooling 的下采样是损失信息的,strided convolutions 可以让模型自己学习损失的信息
  • 生成器 G 和判别器 D 都要用 BN 层(解决过拟合)
  • 把全连接层去掉,用全卷积层代替
  • 生成器除了输出层,激活函数统一使用 ReLU,输出层用 Tanh
  • 判别器所有层的激活函数统一都是 LeakyReLU
notion image

(3) ACGAN

ACGAN(既能生成图像又能进行分类)
Conditional Image Synthesis with Auxiliary Classifier GANs,该判别器不仅要判断是真(real)或假(fake),还要判断其属于哪一类。
notion image
notion image

(4) infoGAN

InfoGAN:Interpretable Representation Learning by Information Maximizing Generative Adversarial Networks。这个号称是 OpenAI 在 2016 年的五大突破之一。
  • D 网络的输入只有 x,不加 c
  • Q 网络和 D 网络共享同一个网络,只是到最后一层独立输出
  • G(z)的输出和条件 c 区别大
notion image
其理论如下:
notion image
整个网络的训练在原目标函数的基础上,增加互信息下界 L(G,Q),因此 InfoGAN 的目标函数最终表示为:
notion image
实验结果如下图所示:
notion image

(5) LAPGAN

下面介绍一个比较有趣的网络拉普拉斯 GAN。我们的目标是如何通过噪音生成一张图片,噪声本身生成图片比较困难,不可控量太多,所以我们逐层生成(生成从右往左看)。
  • 首先用噪声去生成一个小的图片,分辨率极低,我们对其拉伸。
  • 拉伸之后,想办法通过之前训练好的 GAN 网络生成一个它的残差。
  • 残差和拉伸图相加就生成一张更大的图片,以此类推,拉普拉斯生成一张大图。
那么,如何训练呢?对原来这个大图的鸟进行压缩,再生成一张图去判别,依次逐层训练即可。
notion image

(6) EBGAN

再来看一个 EBGAN(Energy-based GAN),它抛弃了之前说的对和错的概念。它增加了一个叫能量的东西,经过自动编码器 Enc(中间提取特征)和 Dec 解码器(输出),它希望生成一个跟真实图片的能量尽可能小,跟假的图片能量更大。
《Energy-based Generative Adversarial Network》Junbo Zhao, arXiv:1609.03126v2
notion image
其生成器和判别器的损失函数计算公式如下(分段函数):
notion image
下图展示了 GAN、EBGAN、EBGAN-PT 模型生成的图像。
notion image

4.改进策略

4.1 本文所讨论的局限性

对蜷缩睡觉的猫效果较差。因为这个姿势对模型来说似乎有点复杂。事实上猫总是会做出很复杂的动作,并没有那么多数据集可学习。
notion image
notion image
对毕加索的画风效果较差,可能因为它画风比较特别。
notion image
notion image

4.2 GAN的改进策略

如下图所示误差,我们无法判断 GAN 训练的好坏。
notion image
GAN 需要重视:稳定(训练不奔)、多样性(各种样本)、清晰度(质量好),现在很多工作也是解决这三个问题。
  • G、D 迭代的方式能达到全局最优解吗?大部分情况是局部最优解。
  • 不一定收敛,学习率不能高,G、D 要共同成长,不能其中一个成长的过快
– 判别器训练得太好,生成器梯度消失,生成器 loss 降不下去
– 判别器训练得不好,生成器梯度不准,四处乱跑
  • 奔溃的问题,通俗说 G 找到 D 的漏洞,每次都生成一样的骗 D
  • 无需预先建模,模型过于自由,不可控
为什么 GAN 存在这些问题,这是因为 GAN 原论文将 GAN 目标转换成了 KL 散度的问题,KL 散度就是存在这些坑。
notion image
最终导致偏向于生成“稳妥”的样本,如下图所示,目标 target 是均匀分布的,但最终生成偏稳妥的样本。
  • “生成器没能生成真实的样本” 惩罚小
  • “生成器生成不真实的样本” 惩罚大
notion image
那么,有没有解决方法呢?
WGAN(Wasserstein GAN)在 2017 年被提出,也算是 GAN 中里程碑式的论文,它从原理上解决了 GAN 的问题。具体思路为:
  • 判别器最后一层去掉 sigmoid
  • 生成器和判别器的 loss 不取 log
  • 每次更新判别器的参数之后把它们的绝对值截断到不超过一个固定的常数 c
  • 不要用基于动量的优化算法(包括 Momentum 和 Adam),推荐使用 RMSProp、SGD
  • 用 Wasserstein 距离代替 KL 散度,训练网络稳定性大大增强,不用拘泥 DCGAN 的那些策略(tricks)
notion image
后续接着改进,提出了 WGAN-GP(WGAN with gradient penalty),不截断,只对梯度增加惩罚项生成质量更高的图像。它一度被称为“state of the art”。
notion image
接下来,做 GAN 的就会出来反驳“谁说 GAN 就不如 WGAN,我们加上 Gradient Penalty,大家效果都差不多”。
notion image
效果如下图所示:
notion image
《Google Brain: Are GANs Created Equal? A Large-Scale Study》 这篇论文详细对比了各 GAN 模型点心 LOSS 优化变种。
notion image
这篇文章比较的结论为:特定的数据集说特定的事情,没有哪一种碾压其他。好的算法还得看成本,时间短的效果某家强,但训练时间长了,反倒会变差。根据评价标准的不同,场景的不同,效果差的算法也可以逆袭。工业界更看重稳定性,比如 WGAN。
参考知乎苏剑林老师的回答
首先,从理论完备的角度来看,原始的 GAN(SGAN)就是一个完整的 GAN 框架,只不过它可能存在梯度消失的风险。而论文比较的是 “大家都能稳定训练到收敛的情况下,谁的效果更好” 的问题,这答案是显然易见的:不管是 SGAN 还是 WGAN,大家都是理论完备的,只是从不同角度看待概率分布的问题而已,所以效果差不多是正常的。
甚至可以说,SGAN 的理论更完备一些(因为 WGAN 需要 L 约束,而目前 L 约束的各种加法都有各自的缺点),所以通常来说 SGAN 的效果还比 WGAN 效果好一些。那么 WGAN 它们的贡献是什么呢?WGAN 的特点就是基本上都能 “稳定训练到收敛”,而 SGAN 相对而言崩溃的概率更大。所以,如果在“大家都能稳定训练到收敛”的前提下比较效果,那对于 WGAN 这些模型本来就很不公平的,因为它们都是致力于怎么才能“稳定训练到收敛”,而这篇论文直接将它作为大前提,直接抹杀了 WGAN 所作的贡献了。
notion image
notion image
个人感觉 GAN 有一部分很大的应用是在做强化学习,同时在推荐领域、对抗样本、安全领域均有应用。
notion image

5.总结全文与升华主题

5.1 花絮:程序员与猫

为什么程序员喜欢养猫?知名的服务器框架叫Tomcat,全球最大的代码分享网站GitHub的logo是一只猫,最早的程序员甚至还把调制解调器音译成了猫。
不光网上,现实里身边的程序员们也很多都是猫奴。在程序员们周末晒加班的照片里,动不动就有莫名其喵的猫入镜,很多程序员都喜欢用猫当头像或者内网照片。
1.有猫主子陪写代码效率高
女朋友不会陪程序员写代码,但是猫可以。写代码的时候,猫主子总会在电脑旁20cm内默默躺着,冬天冷的时候抱着暖手,能显著加快写代码的效率,而没猫的孤寡程序员只能在电脑前瑟瑟发抖。猫还喜欢趁你不注意在键盘上走来走去,而且它们最喜欢按的往往是delete键,这一点和吵架时的女朋友很像,所以你不敢轻易起身去做别的事,有猫的程序员往往加班期间效率奇高。
2. 养猫不容易头秃
猫还能帮程序员debug,在遇到bug的时候,没猫的程序员只能薅头发苦思冥想,而有猫的程序员可以把代码一行行地讲给猫听,期间总能恍然大悟发现bug所在,这就叫做“吸猫调试法”
notion image
3. 养猫的程序员更容易找到女朋友
首先程序员没时间养狗,作为每天忙到连自己都没时间遛的程序员,即使是再坚定的狗党,面对这个残酷的现实也只能含泪转头选择养猫。而俗话说,狗是人类的朋友,猫是人类的女朋友,娇小,傲娇,心情好的时候还会向你撒娇,能适应得了猫的程序员,将来谈恋爱肯定表现不会很差。不过就怕有猫之后,程序员发现自己不需要女朋友了。
4. 喜欢猫的程序员事业运都不会太差
在编程的世界里,接触猫的机会越多,了解猫的程度越深,意味着你离大神的距离就更近。为什么呢?首先,很多程序员在训练模型的时候都会用猫来做测试。
知名数据科学家吴恩达在谷歌建立第一个大型神经网络的时候,最早做的功能就是猫脸识别,当时程序员们给机器看了超过16000幅猫的图片,最终让机器识别出了猫。
notion image
其次,很多大神程序员都是猫奴,比如甲骨文的CEO拉里埃里森,几年前曾经买下了夏威夷的一个小岛,岛上的猫咪收容所和400只喵星人也就变成了他的私有财产,堪称猫奴典范。
notion image
5. 因为“cat”真的很好用
这是程序员专属的冷笑话时间。为什么Linux程序员们更喜欢cat呢?因为cat真的很好用,毕竟Linux程序员打印需要cat,统计行数需要cat,grep也需要先cat,可以说离开了cat寸步难行,养一只猫也顺理成章。
notion image

5.2 人工智能与人工智障

notion image
notion image

5.3 原理概括总结

用一句话描述GAN:GAN是在重复一个概率分布。
(插入让子弹飞镜头)
notion image
notion image
(插入GAN训练的可视化演示)
notion image
演示:GAN lab
notion image

5.4 哲学层面

图灵测试(英语:Turing test)是英国计算机科学家图灵于1950年提出的思想实验,目的在测试机器能否表现出与人等价或无法区分的智能。测试中的谈话管道仅限于使用文本,例如计算机键盘和屏幕,这样的结果不依赖于计算机把单词转换为音频的能力。
机器能否思考这个问题历史悠久,这是二元并存理念和唯物论思想之间的区别。笛卡尔在1637年《谈谈方法》中预言了图灵测试。
笛卡尔指出,机器能够与人类交互,但认为这样的机器不能作出适当的反应,但是任何人都可以。因此,笛卡尔借此区分机器与人类。笛卡尔没有考虑到机器语言能力未来能够被克服。
狄德罗对于图灵测试的标准:
如果他们发现一只鹦鹉可以回答一切问题,我会毫不犹豫宣布它存在智能。 ——狄德罗,Pensées philosophiques, Texte établi par J. Assézat et M. Tourneux, Garnier, I (p. 127-155).
这并不意味着他同意这一点,但它已经是唯物主义者当时普遍的说法。
根据二元论者心态,心灵是非物理物质(最起码具有非物理性),因此不能以纯物理来解释。根据唯物主义,头脑可以用物理解释,这让那些人工智能可能性产生。
1936年,哲学家阿尔弗雷德·艾耶尔思考心灵哲学问题:我们怎么知道其他人曾有同样的体验。在《语言,真理与逻辑》中,艾尔建议有意识的人类及无意识的机器之间的区别。
1956年达特茅斯会议之前,英国研究者已经探索十几年的机器人工智能研究。比率俱乐部是一个非正式的英国控制论和电子产品研究团体,成员包括艾伦·图灵。
1950年,图灵发表了一篇划时代的论文,文中预言了创造出具有真正智能的机器的可能性。由于注意到“智能”这一概念难以确切定义,他提出了著名的图灵测试:如果一台机器能够与人类展开对话(通过电传设备)而不被辨别出其机器身份,那么称这台机器具有智能。这一简化使得图灵能够令人信服地说明“思考的机器”是可能的。论文中还回答了对这一假说的各种常见质疑。图灵测试是人工智能哲学方面首个严肃的提案。
2014年6月8日,首次有计算机通过图灵测试,尤金·古斯特曼成功在雷丁大学(University of Reading)所举办的测试中骗过研究人员,令他们以为“它”是一个名为Eugene Goostman的13岁男孩,但后来有文章指它其实并没有真正通过测试。

5.5 人工智能的艺术

2018年早些时候,一则秘密的媒体通稿出现在了许多记者的邮箱中。通稿的黑白风格就像是电子游戏机的“游戏结束”页面,稿件中这样写道:“创意已经不再是人类的专属。”作者是名为“Obvious”的法国三人组,他们声称自己打造的人工智能已经成功地创造出了艺术。这是一系列公关活动的初始,目的是为了拍卖一幅神秘肖像画。佳士得拍卖行对这幅画的估价低于1万美元,结果这幅画的最终成交价为43万美元。
notion image
这幅肖像画本身看上去充满颗粒感,而且像是仍未完成的状态。眯着眼睛看,这幅画几乎可以放在伦敦的国家肖像馆接受观众的检阅;睁大眼睛看,画作看上去模糊而奇怪:白色的圆脸浮现在阴暗的画布上,三块深色的区域代表两只眼睛和一张嘴。“笔触”看上去是像素化的,右下角的签名是算法的名字。这是机器“眼中”的我们吗?也许在去除人类感知的偏见之后,这就是我们的样子。
这是第一幅在拍卖会上售出的人工智能艺术作品,“Obvious”成为了媒体笔下新艺术的开道者。他们的营销旨在利用人们对人工智能的焦虑情绪来激起人们内心的激动,却让人们失去了理性。媒体圈内涌现了各种惊慌的问题:这是艺术吗?艺术家是谁?这幅画属于谁?机器也有创造力了吗?
这些疑问虽然有根据,但却是不成熟的。这项科技的发展绝没有“Obvious”声称的那样完善,公众也不了解人工智能究竟是什么以及究竟能够做什么。“Obvious”的市场营销正是充分利用了这一点。
notion image
人工智能已经发展了50年,但“Obvious”的肖像画是新浪潮的一部分。过去,利用计算机创作艺术的人们通常得为特定的审美撰写特定的程序。相反,新浪潮使用的算法可以自学审美,然后用生成对抗网络(Generative Adversarial Network)等工具生成新的图像。
“Obvious”肖像画右下角的签名是生成对抗网络的算法。从本质上来说,生成对抗网络不是只用一个网络来工作,而是通过让两个神经网络相互博弈的方式进行学习。这模仿了画作伪造者和艺术鉴定者之间的互动。它们接受了同样的数据训练,从中习得了审美。之后,一个负责模仿它看到的作品,另一个负责鉴别画作的真假。如果伪造者的诡计被揭穿,它就得学着改进。随着这样的互动不断反复,鉴定者就再也无法辨别画作的真假。在佳士得拍卖的作品就是一幅顺利通过鉴定的作品。
notion image
使用人工智能技术的艺术家们并不担心自己的地位被取代。他们亲自制作了机器,并天天利用其进行工作。他们了解机器的局限性。人工智能艺术家更感兴趣的是二者之间的合作:人工智能可以让人类挑战原本的能力。将人工智能和艺术结合的先锋艺术家马里奥·克林吉门认为,这种合作可以扩展人类认知的界限。“最后,你只局限在自己所看、所听和所读的范围内,这是很难出问题的,”马里奥·克林吉门说,“有些人通过嗑药来达到这种状态,去获取和建立一些更荒唐的联系,但机器可以更有效地帮你达到这一点。和人类大脑相比,机器更容易出现小故障和偏差。这个过程中,通常会有意料之外的有趣事情发生。 ”
人工智能有创造力的说法会引来绝大多数艺术家的嘲笑,但这个说法的对错取决于我们对“创造力”的定义。人工智能确实能创造出东西,有时候方式也很新颖实际,但它们没有目的,也不知怎样引起共鸣,要靠人类解读和研究这些作品来发现。“机器没有任何创造的目的,”克林吉门说,“点一把火会产生有意思的形状,但这并不是火焰本身有创造力——是人类幻想出了形状,看到了规律——人工智能就是美化了的篝火。”
我们应该问的问题,不是机器是否能有创造力,而是我们需要什么才能相信机器的创造力。该领域的老前辈侯世达(Douglas Hofstadter)曾经写过,“我们朝人工智能的发展每迈出一步,都并没有产出人们都认可的真正的智能产品,而是反映了什么是不智能的产品。”创造力也可以用同样的话来解释:机器取得的成就越大,标准就越高,我们也就越来越理解人类的创造力。“最后,竞争反而激励人们寻求改进,”克林吉门说,“这让我们知道,人类依然是特殊的。”
![img](
notion image
如果GAN只是用来生成一些像真是数据一样的数据的话,那不会有像现在这么火。更多的,或者对于机器学习研究员来说,看待的最关键一点应该是GAN可以用来 拟合数据分布 。 就是给你一个训练数据,你能通过GAN这个工具,产生和这个数据分布相似的一些数据。有了拟合数据分布的思想,并在这上面做文章,才是一个真正的机器学习研究人员的素质。
深度学习,得天独厚的一大优势就是:一旦给定模型,剩下的就是不断迭代,然后参数会慢慢向一个“你更想要”的方向去收敛而一般情况下,这种收敛的计算只是一种纯粹的无干预的形式,你最多只能用定型的样本去进行约束Gan的好处则是,“样本”是处于不断变化的过程的。这样,不仅仅生成路线,做出的东西越来越真。判断路线判断的水平也会越来越高。
深度学习本身,就是数据量越大越好,有时候一个优秀的框架,也会受到“数据不充足”而限制性能。
从研究角度,GAN给众多生成模型提供了一种新的训练思路,催生了许多后续作品。这些作品的效果无一不令人惊叹。同时,难人可贵的是这篇论文有很强的数学论证,不同于前几年的套模型的结果说话,而是从理论上保证了模型的可靠性。从通用人工智能高层次来看,这个模型率先使用神经网络来指导神经网络,颇有一种奇妙的美感:仿佛是在辩日的两小儿一样,一开始两者都是懵懂的幼儿,但通过观察周围,相互讨论,逐渐进化出了对外界的认知。 这不正是吾等所期望的终极智能么 -- 机器的知识来源不再局限于人类,而是可以彼此之间相互交流相互学习。也难怪Yann Lecun赞叹GAN是机器学习近十年来最有意思的想法。

6.参考文献