DL入门(三)powered by @李宏毅
第九课(GAN概念)
1 Basic Idea of GAN
(1) Generator
generator就是一个neural network或者一个function,输入一个vector,输出一个vector。
(2) Discriminator
discriminator就是一个neural network或者一个function,输入为一张图片或者一个句子…
输出为一个scalar,scalar越大表示越真实。
(3) 总览
Generator不接触真实数据,Discriminator接触真实数据,第一代的G和D非常弱,可以说是随机生成的,接下来G1开始进化为G2使得D1检测G2的效果下降,D1根据G2同样进行相应的进化(训练)直到对G2达到较好的效果,接下来G和D在不断竞争中进化。
(4) 算法步骤
第一步:初始化Generator和Discriminator
第二步:固定住Generator的参数,update Discriminator的参数
第三步:固定住Discriminator的参数,update Generator的参数
第四步:迭代第二步至第三步
具体步骤:
图中公式表示为:
Learning D:最大化sample出来的真实的m张图片的分数,最小化G产生出来的m张图片的分数。
Learning G:最大化G生成的图片在D中的分数,意味着G必须调整自己的参数使得生成的图片越来越接近真实的图片。
2 GAN as Structured learning
3 Can generator learn by itself?
generator完全可以自己训练,generator就相当于auto-encoder中的decoder模块,输入一个vector输出一个图片或者句子等…甚至可以直接拿出decoder模块作为generator。
但是单纯地使用auto-encoder和GAN做对比地话,往往auto-encoder需要更大的neural才能和GAN达到近似的结果。
4 Can Discriminator generator?
Discriminator自己可以完成产生图片的过程。只要穷举所有的image然后丢到discriminator中并找出得分最高的那张图片(此处假设穷举可以由某种演算法实现)。
但是我们的训练数据全部都是真实的,并没有一些negetive的图片,这样会导致训练出来的discriminitor对全部的图片都打高分的情况。
那么如何得到一批negetive的图片呢?
由下图所示:
第一步:先随机产生图片进行training
第二步:然后经由演算法穷举得出分数较好的图片
第三步:将分数较好的图片替代training中的随机图片继续train
第四步:循环第二到第三步