GANs(对抗神经算法)

“如果人工智能是一块蛋糕,那么强化学习是蛋糕上的一粒樱桃,监督学习是外面的一层糖霜,无监督/预测学习则是蛋糕胚。目前我们只知道如何制作糖霜和樱桃,却不知如何制作蛋糕胚。” -- Yann LeCun(Facebook人工智能研究院)

GANs(对抗神经算法)_第1张图片
Yann LeCun.png

我个人认为,Gan是深度学习算法中最牛的武器之一,下面我尽可能用通俗的文字,来表达出这个神奇的算法;

1. 什么是Gan

Gan其实就是使劲的PK;
打个比方:两个人比赛,看是 A 的矛厉害,还是 B 的盾厉害。
我们有一些真实数据,同时也有一把乱七八糟的假数据。
A 拼命地把随手拿过来的假数据模仿成真实数据,并揉进真实数据里。
B 则拼命地想把真实数据和假数据区分开。
这里,A 就是一个生成模型,类似于卖假货的,一个劲儿地学习如何骗过 B。
而 B 则是一个判别模型,类似于警察叔叔,一个劲儿地学习如何分辨出 A 的骗人技巧。
如此这般,随着 B 的鉴别技巧的越来越牛,A 的骗人技巧也是越来越纯熟。
一个造假一流的 A,就是我们想要的生成模型!

这里会用到最小最大博弈(minimax game):两个人的零和博弈,一个想最大,另一个想最小。那么,我们要找的均衡点(也就是纳什均衡)就是 J(D) 的鞍点(saddle point)。

GANs用到机器学习的两种模型:Generative生成模型和Discriminative判别模型。

GANs类比:假设G是大伪艺术家,以制作古董赝品为生,G的终极目标是以假乱真。但是呢,又有一些人以鉴宝为生(D)。开始你给D展示了一些古董真品,告诉D这是正品。然后G开始制作赝品,想骗过D,让他分辨不出真假。随着D看到越来越多的真品,G要骗过D就越来越难,当然,G也不是吃闲饭的,它会加倍努力的试图骗过D。随着这种对抗的持续,不仅D鉴宝的本领提高了,G也会越来越擅长制作赝品。这就是名字中生成-对抗的意思。


GANs(对抗神经算法)_第2张图片
image.png
应用场景:

可以解决模糊的图片,变的更清晰;

  1. 标清变高清;
  2. 修复照片;比如修复残损老照片;去掉马赛克;
  3. 仿真。你随手涂鸦了一个狗的图样,但是画的很丑,不专业,我帮你生成一个专业的图样,之前谷歌有这样的一个涂鸦网站;
  4. 生成明星脸
  5. 音频降噪,基于segan

看下面三张图:


GANs(对抗神经算法)_第3张图片
2.png
GANs(对抗神经算法)_第4张图片
3.png
GANs(对抗神经算法)_第5张图片
4.png

DCGAN

在应用上,这套 GAN 理论最火的构架是 DCGAN(深度卷积生成对抗网络/Deep Convolutional Generative Adversarial Network)。

首先,我要解释下什么是特征?
假如我们想编写一个程序来检测照片中的车。我们知道,汽车有轮子,所以我们可能会想用车轮的存在与否作为特征,遗憾的是,我们难以准确地根据像素值来描述车轮看上去像什么。虽然车轮具有简单的几何形状,但它的图像可能会因场景而异,如落在车轮上的阴影、太阳照亮的车轮的金属零件、汽车的挡泥板或者遮挡的车轮一部分的前景物体等。

卷积神经网络最基础的部分,就是能够先提取出轮子这个特征,然后提取出汽车这个特征;

卷积神经网络的原理是用一个叫做 convolutinoal filter(卷积过滤器,类似于滤镜)的东西把图片过滤(转化)成各种样式(就好像美图软件里面的滤镜效果)。很多这样的滤镜就可以把图片变成很多种样式。我们假设这些样式是原图片各种不同的特征表达(比如,黑白滤镜可以把图片变黑白,让你可以看出更多彩色世界里关注不到的重点;边缘虚化滤镜是把图片虚化,你也许又能看到不同的端倪。一层层这样跑下去,你就会得到原图片的各种非常详尽的特征表达。注意:这个滤镜也不是人选的,而是被慢慢学习到的,不用你操心)。

相反,DCGAN目的是创造图片,其实就类似于把一组特征值慢慢恢复成一张图片。

GANs(对抗神经算法)_第6张图片
Paste_Image.png

这其实就是一个反向的 CNN。 这就很像NLP中常用的 word2vec 里面的:
king - man + woman = queen。
做个向量/矩阵加减并不难,难的是把加减后得到的向量/矩阵还原成「图义」上代表的图片。
在 NLP 中,word2vec 是把向量对应到有意义的词;
在这里,DCGAN 是把矩阵对应到有意义的图片。


GANs(对抗神经算法)_第7张图片
Paste_Image.png

你可能感兴趣的:(GANs(对抗神经算法))