文章目录

  • 概念介绍
  • 生成模型
  • MLE
  • 变分子编码器 VAE
  • GAN 对抗生成网络
  • 常见改进GAN
  • DCGAN
  • WGAN
  • SRGAN


概念介绍

生成模型

计算机视觉 图片深度 计算机视觉图像生成_计算机视觉 图片深度


生成式模型,给一个概念,然后扩展它的细节。

判别模型例子:幼儿园老师给小朋友2张图片,让他们分辨猫和狗。

生成模型例子:老师告诉小朋友猫和狗的概念,让他们画出来。这个要求就更高了。

计算机视觉 图片深度 计算机视觉图像生成_计算机视觉 图片深度_02


计算机视觉 图片深度 计算机视觉图像生成_计算机视觉_03

MLE

计算机视觉 图片深度 计算机视觉图像生成_图像识别_04


计算机视觉 图片深度 计算机视觉图像生成_生成器_05

变分子编码器 VAE

计算机视觉 图片深度 计算机视觉图像生成_人工智能_06


绿色部分其实就是图像的压缩。保存了图像的大部分信息。

如果我们自己随便写一个向量来代替绿色训练出来的向量,那么生成的图片将没有任何语义特征。有人就想,如何给假定一个向量,然后可以输出图片呢?这就是自编吗器的由来。

计算机视觉 图片深度 计算机视觉图像生成_计算机视觉 图片深度_07


z是高维的,每一维都符合高斯分布。也就是当我们可以生成一个符合的高斯分布,那么从高斯分布抽样出的样本,再decoder解码,就会是一张有语义特征的图片。

计算机视觉 图片深度 计算机视觉图像生成_人工智能_08


所以当我们要学习encoder时候,我们就要去学习隐变量,也就是去学习原来分布的参数(注意,这里是每一维的高斯参数,每一维是不同的高斯分布)。这就是机器学习的本质,用样本数据,去拟合原始数据的分布。

计算机视觉 图片深度 计算机视觉图像生成_计算机视觉 图片深度_09


由上图,我们可以举个例子,在警察办案的时候,总是根据人物的特征描述,来画出嫌疑人的样貌。这里就是学习原始图片每一维度的高斯分布进行encoder,最后每一个维度都有一个框架,在这个框架里进行的VAE,最终decoder出来的图片,才是和原图差不多的。

计算机视觉 图片深度 计算机视觉图像生成_图像识别_10


这就通过VAE,增加了训练样本数据。

计算机视觉 图片深度 计算机视觉图像生成_计算机视觉 图片深度_11


计算机视觉 图片深度 计算机视觉图像生成_计算机视觉 图片深度_12


计算机视觉 图片深度 计算机视觉图像生成_计算机视觉 图片深度_13


相对熵是说P(X)和Q(X)差异有多大。如果他们一样,KL散度为0.

JS散度是KL的变体,是对称的。

计算机视觉 图片深度 计算机视觉图像生成_人工智能_14


计算机视觉 图片深度 计算机视觉图像生成_生成器_15


z那里是reparameterization。就是在0~1分布抽样。

计算机视觉 图片深度 计算机视觉图像生成_图像识别_16

GAN 对抗生成网络

计算机视觉 图片深度 计算机视觉图像生成_计算机视觉_17


伪造的图片和真实图片分别放进去,让模型判断谁是真的,谁是假的。

计算机视觉 图片深度 计算机视觉图像生成_图像识别_18


计算机视觉 图片深度 计算机视觉图像生成_图像识别_19


计算机视觉 图片深度 计算机视觉图像生成_计算机视觉 图片深度_20


计算机视觉 图片深度 计算机视觉图像生成_生成器_21


判别器希望可以分清真假样本图片。但是生成器却希望它造出来的图片,判别器鉴别不出来。

计算机视觉 图片深度 计算机视觉图像生成_图像识别_22


那么如何让第2代生成器骗过第1代判别器呢?

将第2代的生成器和第1代的判别器连接到一个NN网络中,并且让第2代产生的图片在第1代判别器中,预测为1.

计算机视觉 图片深度 计算机视觉图像生成_计算机视觉_23


一开始第1代的判别器,可能判别第2代生成器的图片是能叛别出来的,比如0.13.但是由于我们给y设置为1,它的网络就会误认为分对了。这样,通过多次训练,第一代的判别器就无法分别出来了。这时,我们将训练好的第2代生成器生成的图片,当作第2代生成样本图片。

注意,判别器网络参数不能动,只能改变生成器网络参数。

计算机视觉 图片深度 计算机视觉图像生成_计算机视觉_24


这里为什么用log,是可以将0-1空间,映射到负无穷到0.这样目标函数的范围就大了,差异的凸显了。

关于纳什均衡,是博弈论的知识。所以GAN本质上就是一个零和博弈。

计算机视觉 图片深度 计算机视觉图像生成_人工智能_25


计算机视觉 图片深度 计算机视觉图像生成_生成器_26


计算机视觉 图片深度 计算机视觉图像生成_人工智能_27


计算机视觉 图片深度 计算机视觉图像生成_人工智能_28


计算机视觉 图片深度 计算机视觉图像生成_计算机视觉_29


最后蓝线平了,说明判别器最后已经无法判断生成的图片和真实的图片了,只能猜了。

计算机视觉 图片深度 计算机视觉图像生成_人工智能_30

常见改进GAN

DCGAN

计算机视觉 图片深度 计算机视觉图像生成_人工智能_31


计算机视觉 图片深度 计算机视觉图像生成_图像识别_32


计算机视觉 图片深度 计算机视觉图像生成_图像识别_33


计算机视觉 图片深度 计算机视觉图像生成_计算机视觉 图片深度_34


可以达到一些有趣的效果,给女士戴墨镜。GAN有很多有趣的玩法。

计算机视觉 图片深度 计算机视觉图像生成_计算机视觉_35


计算机视觉 图片深度 计算机视觉图像生成_人工智能_36

WGAN

计算机视觉 图片深度 计算机视觉图像生成_计算机视觉 图片深度_37


计算机视觉 图片深度 计算机视觉图像生成_计算机视觉_38


不能让判别器很快的达到最优,这样训练不下去。得给生成器一个成长的空间。不然就会崩掉。

计算机视觉 图片深度 计算机视觉图像生成_计算机视觉 图片深度_39


计算机视觉 图片深度 计算机视觉图像生成_计算机视觉_40


注意KL是因为不平衡,才采用的JS。所以他们两个有密切的关系。所以损失函数KL是正,JS是负,目标函数可以说是不明确,损失函数不稳定。也就没法学习了。

计算机视觉 图片深度 计算机视觉图像生成_计算机视觉 图片深度_41


计算机视觉 图片深度 计算机视觉图像生成_计算机视觉 图片深度_42


计算机视觉 图片深度 计算机视觉图像生成_计算机视觉 图片深度_43


计算机视觉 图片深度 计算机视觉图像生成_人工智能_44


计算机视觉 图片深度 计算机视觉图像生成_人工智能_45

SRGAN

计算机视觉 图片深度 计算机视觉图像生成_计算机视觉 图片深度_46


LR低分辨率图像,HR高分辨率的图像。

SRGAN就是生成和原图一样的图片。

超分辨率的GAN。

计算机视觉 图片深度 计算机视觉图像生成_计算机视觉_47


k是kernel,n是特征图的数量。

计算机视觉 图片深度 计算机视觉图像生成_计算机视觉 图片深度_48


计算机视觉 图片深度 计算机视觉图像生成_人工智能_49


计算机视觉 图片深度 计算机视觉图像生成_图像识别_50