最近最流行的一种生成网络叫做GAN,又称生成对抗网络,也是Generative Adversarial Nets的简称。神经网络分很多种,有普通的前向传播网络,有分析图片的CNN卷积神经网络,有分析序列化数据比如语音或者文字的RNN循环神经网络,这些网络都是通过输入数据得到想要的结果,我们看中的是这些神经网络中很好的将数据与结果通过某种关系联系起来。
但是还有那么一种形式的神经网络,它不是用来把数据 对应上结果的,而是用来凭空捏造结果,这就是我们想要说的生成网络了,GAN就是其中的一种。那么怎么做到的呢?当然这里的凭空并不是什么都没有的盒子,而是一些随机数,对,就是没有意义的随机数来生成有意义的作品,比如著名画作。当然,这还不是全部,只是GAN的一部分而已,这一部分的神经网络我们可以想象成一个新手画家。
新手画家作画都需要一些灵感,他们依照自己的灵感来完成作品,有了灵感不一定有用,因为他的作画技术并没有我们想象的好,画出来的可能是一团糟,这可怎么办呢?聪明的新手画家找到一个自己正在学鉴赏的好朋友,新手鉴赏家。
可是新手鉴赏家并没有什么能耐,他也不知道怎么鉴赏著名的画作,所以坐在电脑旁的你实在看不下去了,拿起几个标签往屏幕上一甩,然后新手鉴赏家就被你这一次次的甩来甩去,甩乖了,慢慢的学会区分著名画作了,重要的是,新手画家和新手鉴赏家是好朋友,他们总爱分享学习到的新东西。
所以新手鉴赏家告诉新手画家你这些化实在太丑了,看看达芬奇你也学学他啊,比如这里要多加一点这里要画淡一点,就这样,新手鉴赏家把他从你这里学习到的知识分享给了新手画家,就这样,让好朋友新手画家也能越画越像达芬奇。这就是GAN的整套流程。
我们再来理一下,新手画家用随机灵感画画,新手鉴赏家会接收到一些画作,但是他不知道这是新手画家画的还是著名画家画的,他说出了自己的判断,你来纠正他的判断,新手鉴赏家一边学习如何判断,一边告诉新手画家怎么作画才能画的更像画家,新手画家就能学习到如何从自己的灵感画出更好的画作了,GAN就是这么一回事。
Generator会根据随机数生成有意义的数据,,discriminator会学习如何判断哪些是真是数据,哪些是生成数据,然后将学习到的经验方向传播给Generator,Generator能够根据随机数生成更像真是数据的数据,这样训练出来的Generator就能有很多用处。比如有人拿他来生成各种图片。
甚至你还能玩点新花样,比如让图片来做加减法,戴眼镜的男人减去男人加上女人,它居然生成了戴眼镜的女人。甚至你还能根据你随机画的几笔草图,来生成可能是你需要的蓝天白云大草地的图片。看来机器学习也能有想象力了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:莫烦视频笔记–什么是GAN(生成对抗网络)? - Python技术站