机器学习|李宏毅机器学习GAN的笔记


笔记仅供参考,加入了很多自己的理解
Generator z和x以一定的方式作用,不一定是直接相加
相当于这个network是一个两输入(x和noise)的网络,这种network称作一个generator
让输出是有概率的,即加入一个random distribution让输出变成一个distribution
这样的话就是说要让这个network有一定的创造力,因为输出的值是不一定的
GAN 先不看x
从z里面sample出一个low-dim vector的向量
generator就是把一个低维的向量变成一个高维的向量
z只需要一个简单的distribution就行,可以是normal当然也可以是其他的,但是一般都取normal
discriminatior:
分类和regression的区别
步骤
step1:初始化完成后,generator产生一个picture,然后这个picture和真的数据(一些正确的数据)拿给discriminator训练,就是fix generator然后训练discriminator
step2:然后fix这个discriminator,调整generator的参数,使得在这代discriminator中,能够通过discriminator的检测
step3:... 重复step1和step2,即交叉反复训练discriminator和generator
generator和discriminator可以看做是一个大的network,其中的一个hidden layer就是图片的输出,整个network的输出是一个评分(可以把这个output的加一个负号,当做一个loss看待)
机器学习|李宏毅机器学习GAN的笔记
文章图片



背后的theory 机器学习|李宏毅机器学习GAN的笔记
文章图片



这个divergence不好计算,现在只需要做一个sample就可以了
机器学习|李宏毅机器学习GAN的笔记
文章图片



就是说要用sample出来的值去得到使两个完整分布的divergence最小的generator的参数
机器学习|李宏毅机器学习GAN的笔记
文章图片



我先当成一个binary classifier去处理,解释一下这个objective function,意思就是D(y)就代表给y打的分数
训练discriminator的时候,有real data 和 generated data,discriminator就是把real data打高分,把generated data打低分,相当于是做了一个二分类问题,于是我们有objective function
机器学习|李宏毅机器学习GAN的笔记
文章图片


前半部分代表了real 图片的打分,后面是用1减去了generated 图片的打分,就是说要使得这个objective function最大,就是real 高分,generated 低分
最巧妙的地方在于,依据这样的一个转换,把divergence的问题化为了二分类问题,而在第一篇gan paper里面作者给出了详细的推导,理论上说明了这个objective function和那个divergence是等价的

机器学习|李宏毅机器学习GAN的笔记
文章图片

机器学习|李宏毅机器学习GAN的笔记
文章图片



【机器学习|李宏毅机器学习GAN的笔记】两个分布的重合部分可以看做很小,第一个理由就是,图片是高维空间的一部分,而高维空间很大很大,可以基本看做没有,所以很难重叠
第二个理由是就算重叠了,我们只是sample了一小部分,如果sample的点不够多,不够密的话也不好说重叠

用wasserstain distribution
机器学习|李宏毅机器学习GAN的笔记
文章图片


机器学习|李宏毅机器学习GAN的笔记
文章图片



D必须变化不是特别剧烈,就是这里说的1-lipschitz
spectral normalization
GAN is still challenging
两个东西都要训练,要是有一个出问题了,都会出问题
机器学习|李宏毅机器学习GAN的笔记
文章图片



这个地方不能做gradient descent,因为这种情况下每次decoder输出的值变化很小,所以对于discriminator来说每次输出的值差不多不变
机器学习|李宏毅机器学习GAN的笔记
文章图片



good quality
不要memory 的GAN
conditional的data,需要成对的资料去训练
机器学习|李宏毅机器学习GAN的笔记
文章图片



Cycle GAN 就是把normal distribution改成已知数据的分布
机器学习|李宏毅机器学习GAN的笔记
文章图片



不能直接套用,因为这样的话generator生成的图和输入的照片不一定有关系
但是这里和conditional GAN不太一样,因为没有成对的资料学习
需要两个generator,一个是x变y,一个是从y变成x的,但是有可能网络可能学一个很奇怪的转换,但是实际操作上不会出现这种
机器学习|李宏毅机器学习GAN的笔记
文章图片

最后总结几句自己的话:
一个noise 分布通过generator然后得到一个新的分布,generator的作用是把一个分布变成了另外一个分布,至于generator是怎么训练的,以及最后训练完成过后要满足什么要求是这样的
最后要满足generator的训练结果,就是noise的分布转化得到的分布和x的分布一样,或者说尽量近似
换句话说是不能把noise单独拎走单独说我已经把x的分布学好了
学习x分布的过程是依赖于noise的
noise的选择可以是高斯也可以是其他的这个没关系,但是取定了就不要换了,因为后面的训练是依赖于这个noise的
如果换成另外一组数据,再加一组generator和discriminator就是cycle GAN的原理了

    推荐阅读