生成对抗网络(Generative Adversarial Nets,简称GAN)。神经网络分很多种,有普通的前向传播网络,有分析图片的CNN卷积神经网络,有分析系列化数据比如语言、文字的RNN循环神经网络,这些神经网络都是用来输入数据,得到想要的结果,我们看中的是这些神经网络中很好地将数据与结果通过某种关系联系起来。
但是还有那么一种形式的神经网络,它不是用来把数据对应上结果的,而是用来凭空捏造结果,这就是我们想要说的生成网络了,GAN就是其中的一种。当然这里的凭空,并不是什么都没有,而是一些随机数,就是说没有意义的随机数来生成有意义的作品,比如著名画作。当然这还不是全部,只是GAN的一部分而已,这一部分神经网络我们可以看作是新手画家。
新手画家作画都需要一些灵感,他们依照自己的灵感来完成作品,有了灵感不一定有用,因为他的作画技术并没有我们想象中的那么好,画出来的可能是一团糟。
新手画家找到了自己一个正在学鉴赏的好朋友——新手鉴赏家。可是新手鉴赏家并没有什么能耐,他也不知道怎么样鉴赏著名的画作,所以坐在电脑旁的你实在是看不下去了,拿起几个标签往屏幕上进行标注,新手画家就慢慢学会了如何区分著名画作了。
新手鉴赏家和新手画家是好朋友,彼此之间总爱分享学到的东西,所以新手鉴赏家告诉新手画家哪里做的不好,学习一下别人达芬奇,新手鉴赏家从你这里学到的知识,都教给了新手画家, 让好朋友新手画家也越来越厉害。这就是GAN的整套流程。
新手画家用随机灵感画画,新手鉴赏家接收到一些画作,但是不知道是新手画的还是著名画家画的,他说出了自己的判断,你来纠正他的判断,新手鉴赏家一边学习如何判断,一边告诉新手画家如何作画才能更像著名画家,新手画家就能学习到如何从自己的灵感中画出更好的著名画作了,GAN也就那么一回事。
Ggnerator会根据随机数来生成有意义的数据,Discirminator会如何判断哪些是真实数据,哪些是生成数据,然后将学习到的经验反向传给Generator,让Generater能够根据随机数生成更新真实数据的数据,这样训练处理的Generator就可以有很多用途。
比如生成各式各样的卧室图片:
也可以晚点新花样,戴眼镜的男人减去男人加上女人,就可以生成戴眼镜的女人的图片。
甚至可以根据随机画的几笔草图来生成,可能是你需要的蓝天、白云、大草地的图片。
什么GAN生成对抗网络?生成对抗网络可以干什么?
最新推荐文章于 2024-07-06 00:06:29 发布