2019/12/31
《No.30: p235-p258, 最终章》《增强型分析-AI驱动的数据分析、业务决策与案例实践》读书笔记
第8章 深入探讨GAN
GAN: Generative Adversarial Networks,最显著的特征就是”对抗中学习”。
8.1 基本原理
8.1.1 构想
1.让机器学会创作,需要学习的过程
2.在让机器创作时,在给定特征值的情况下,计算机就可以创作图片。
3.GAN技术生成的图片,质量比Eigenfaces好很多。
8.1.2 GAN的基本结构
1.GAN是Goodfellow,在2014年提出。最大特点就是引入对抗概念,让创造者(generator)与鉴别者(Discriminator)在多轮迭代中相互挑战,而得到最佳结果。
2.GAN的组件包括: Latent Space、Real world data、Generator、Discriminator、Back Propagation
8.1.3 GAN模型训练过程及应用过程
1.GAN模型是一个多次迭代的过程。
2.GAN模型的关键过程:
1)Epoch: Epoch规定要多少次generator and discriminator间的对抗。
2)Generator and discriminator的对抗
3)discriminator的鉴别能力通过上一步的训练得到提升,可认为其具备鉴别generator假数据的能力。
8.1.4 GAN原理的再探索
Generator输出的子空间要求与来自real world data中的子空间的分布尽可能地相近,才能认为达到较好的效果。
8.2 让计算机书写数字
8.2.1 建模思路
1.通过GAN模型,让计算机能接收一个随机输入,然后输出一个手写体数字。
2.采用Keras自带的数字手写体的图片库来训练模型。
3.采用2014年GAN首次提出时的神经网络算法。
8.2.2基本实现过程
采用Keras来实现
1.先声明图片维度、Latent Space的维度
2.构建Generator
3.构建Discriminator
4.通过Model将Generator and Discriminator组合起来。
5.GAN模型学习过程
1)准备真数据
2)调用generator假数据
3)训练Discriminator
4)训练generator
8.2.3 采用DCGAN来实现
1.DCGAN就是deep Convolutional GAN,采用卷积神经网络来实现GAN模型。
2.GAN采用CNN有以下限制
1)去掉池化层
2)每层都采用Batch Normalization避免梯度消失或梯度爆炸。
3)取消全连接层
4)Generator采用ReLU和Tanh为激活函数
5)Discriminator采用ReLU和Tanh为激活函数
8.3 让机算机画人脸
1.采用CGAN来画人脸(Conditional Generative Adversarial Nets)
2.人脸有哪些维度,可从CelebA人脸数据库找到。此库提供20万张人脸,40个维度刻画人脸。
3.CGAN与GAN模型是类似的,差异在CGAN在generator and discriminator的输入需要加condition。