生成式对抗网络(GAN)
简介
生成式对抗网络的框架主要有两个模型,一个是生成模型(Generator),记为为 G,是用来生成数据,通过大量的样本学习,生成一些能够以假乱真的数据样本。第二个是辨别模型(Discriminator),记为D,主要是接受 G生成的样本数据和真实样本数据,进行辨别和分类。生成网络G接受一个随机的噪声z并生成图片,记为G(z);判别网络D的作用是判别一张图片x是否真实,对于输入x,D(x)是x为真实图片的概率。G和D相互博弈,通过学习,G的生成能力和D的辨别能力逐渐增强直到收敛。
原理
一个随机生成符合随机分布的噪音 z, 生成器G通过一个复杂的映射关系生成假样本
辨别器对于真实样本和假的样本,输出一个0到1之间的值,越大就越有可能是真实样本
总的目标函数
代码
# encoding: utf-8
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
import os
from tensorflow.examples.tutorials.mnist import input_data
mnist = inpu