在网络语怂是什么意思上特别怂怎么办

前面我们用 TensorFlow 写了简单的 cifar10 分类的代碼得到还不错的结果,下面我们来研究一下生成式对抗网络语怂是什么意思 GAN并且用 TensorFlow 代码实现。

自从 Ian Goodfellow 在 14 年发表了 论文 Generative Adversarial Nets 以来生成式对抗網络语怂是什么意思 GAN 广受关注,加上学界大牛 Yann Lecun 在 Quora 答题时曾说他最激动的深度学习进展是生成式对抗网络语怂是什么意思,使得 GAN 成为近年來在机器学习领域的新宠可以说,研究机器学习的人不懂 GAN,简直都不好意思出门

首先来看下第一篇论文,了解一下 GAN 的过程和原理:

GAN 啟发自博弈论中的二人零和博弈(two-player game)GAN 模型中的两位博弈方分别由生成式模型(generative model)和判别式模型(discriminative model)充当。生成模型 G 捕捉样本数据的分布用服从某一分布(均匀分布,高斯分布等)的噪声 z 生成一个类似真实训练数据的样本追求效果是越像真实样本越好;判别模型 D 是一个②分类器,估计一个样本来自于训练数据(而非生成数据)的概率如果样本来自于真实的训练数据,D 输出大概率否则,D 输出小概率鈳以做如下类比:生成网络语怂是什么意思 G 好比***制造团伙,专门制造***判别网络语怂是什么意思 D 好比***,专门检测使用的货币昰真币还是***G 的目标是想方设法生成和真币一样的货币,使得 D 判别不出来D 的目标是想方设法检测出来 G 生成的***。如图所示:

在训練的过程中固定一方更新另一方的网络语怂是什么意思权重,交替迭代在这个过程中,双方都极力优化自己的网络语怂是什么意思從而形成竞争对抗,直到双方达到一个动态的平衡(纳什均衡)此时生成模型 G 恢复了训练数据的分布(造出了和真实数据一模一样的样夲),判别模型再也判别不出来结果准确率为 50%,约等于乱猜

上述过程可以表述为如下公式:

当固定生成网络语怂是什么意思 G 的时候,對于判别网络语怂是什么意思 D 的优化可以这样理解:输入来自于真实数据,D 优化网络语怂是什么意思结构使自己输出 1输入来自于生成數据,D 优化网络语怂是什么意思结构使自己输出 0;当固定判别网络语怂是什么意思 D 的时候G 优化自己的网络语怂是什么意思使自己输出尽鈳能和真实数据一样的样本,并且使得生成的样本经过 D 的判别之后D 输出高概率。

第一篇文章在 MNIST 手写数据集上生成的结果如下图:

最右邊的一列是真实样本的图像,前面五列是生成网络语怂是什么意思生成的样本图像可以看到生成的样本还是很像真实样本的,只是和真實样本属于不同的类类别是随机的。

第二篇文章想法很简单就是给 GAN 加上条件,让生成的样本符合我们的预期这个条件可以是类别标簽(例如 MNIST 手写数据集的类别标签),也可以是其他的多模态信息(例如对图像的描述语言)等用公式表示就是:

式子中的 y 是所加的条件,结构图如下:

图中所加的条件 y 是类别标签

第三篇文章,简称(DCGAN)在实际中是代码使用率最高的一篇文章,本系列文的代码也是这篇攵章代码的初级版本它优化了网络语怂是什么意思结构,加入了 convbatch_norm 等层,使得网络语怂是什么意思更容易训练网络语怂是什么意思结構如下:

可以有加条件和不加条件两种网络语怂是什么意思,论文还做了好多试验展示了这个网络语怂是什么意思在各种数据集上的结果。有兴趣同学可以去看论文此文我们只从代码的角度理解去理解它。

参考资料

 

随机推荐