GAN(对抗生成网络)的数学原理及基本算法
GAN在生成任务上与其他方法对比 Machine Learning (ML) 本质上是寻找一个函数 f : X → Y f:X\to Y f : X → Y ,通过网络来近似这个函数。 Structured Learning (SL) 输出相对于ML更加复杂,可能是图、树、序列……通常ML的问题,每个类别都会有一些样本,但是SL则不会——输出可能是输入从来没见过的东西。 在 GAN 之前, auto-encoder (AE) 非常常用。AE结构:输入 → \to → encoder → \to → vector c → \to → decoder → \to → 输出。训练的时候要使得输入输出尽可能相近。当做生成任务的时候,截取AE的decoder部分,随机给vector c,输出即生成的结果。所以可见AE可以用于做生成——即将decoder输出视为生成信息。但是这种训练方式面对一个问题,假设A、B都是训练集信息,针对A、B网络能够很好的进行生成,但是当面对 0.5 A + 0.5 B 0.5A+0.5B 0 . 5 A + 0 . 5 B 网络将会不知道输出应该是什么(最大的可能是两个图像的堆叠)。 对AE的改进叫做 variational-AE (VAE) 在之前模型结构的基础上,对输入加上了噪声,其余不变。这种操作能够让模型能加稳定。 VAE同样有一个问题