本文主要是介绍李宏毅《机器学习》课程笔记(作业十一:GAN),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
GAN包含辨别器和生成器,是一个对抗的关系,用adversarial。是无监督的学习方式。
可以将其看成老师和学生的关系。
注意辨别器和生成器是轮流训练的,输入是一个随机的向量,最后的输出是一个标量。训练一个的时候把另外一个固定住不更新梯度值。对于辨别器,优化目标是两个部分,使得真实图像得分高而生成的图像得分低。
结构化学习,输出不再是一个简单的向量,而是一个句子,一张图片或者一棵树等等。
One-shot learning, 如果我们把每一张图片看做一个class,所以每个类别只出现一次,有些甚至一次也没有出现过。
理论上用之前讲的自动编码器也可以生成图片,但是自动编码器在判断生成的图片与真实图片的距离的时候,不好定义loss,因为一个像素差别可能还不如6个像素的差别。一般来说使用自动编码器生成图片往往需要更大的网络才能生成更GAN接近的图片。
用单独的生成器和辨别器也可以生成,单独用生成器的话,无法学习到全局的信息,如果用单独辨别器的话,要生成图片的话太困难了,要解一个很难的argmax的问题。
所以我们用GAN的话其实是用生成器来解那个argmax的问题
有条件的生成:比如输入一个文字,输出一个对应的图片,而不是输入一个随机值。原来的GAN中的辨别器不需要管输入的随机值,只要产生清晰的图就好了。现在需要同时看生成器的输入和输出。
注意这个时候需要输入图片和文字的pair,作为真实数据,另外生成虚假的数据。
现在的辨别器优化的目标包括,本身的好坏,配对的好坏,
StackGAN先产生小的图,再用小图作为输入产生大的图。
无监督的条件生成,有两种方法
这篇关于李宏毅《机器学习》课程笔记(作业十一:GAN)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!