本文结构:
- 什么是 GAN?
- 优点?
- keras 例子?
什么是 GAN?
GAN,全称为 Generative Adversarial Nets,直译为生成式对抗网络,是一种非监督式模型。
一种应用是生成在原始数据集中不存在的但是却比较合理的数据,还可以拓展一张图片,生成下一帧影像,由简单几笔生成一幅画:
模型:
主要有两部分:
The Generative Model:通过输入任意随机数据,尝试生成一些真实的东西(曲线,图像,声音,文本,…)
The Discriminative Model:试图判定哪些是虚假的数据,来减小对真实数据的误报。
优点:
Markov chains are never needed
避免了计算复杂度特别高的过程,直接进行采样和推断,应用效率相应提高。
a wide variety of functions can be incorporated into the model
针对不同的任务就可以设计不同类型的损失函数。
can represent very sharp, even degenerate distributions
Keras 例子:
任务:生成 sin 曲线。
%matplotlib inline
import os
import random
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from tqdm import tqdm_notebook as tqdm
from keras.models import