GAN 是当前最流行的深度学习理论之一,在计算机视觉领域取得了非常棒的效果,然而大家一直关心 GAN 何时可以在自然语言处理领域有所作为?本文带来了一些答案和相关讨论。
GAN 自从被提出以来,就广受大家的关注,尤其是在计算机视觉领域引起了很大的反响,但是这么好的理论是否可以成功地被应用到自然语言处理(NLP)任务呢?
一年前,网友在 reddit 上提问道,生成式对抗网络 GAN 是否可以应用到自然语言处理上。 GAN 理论的提出者,OpenAI 的科学家,深度学习理论奠基人之一 Yoshua Bengio 的得意门生 Ian Goodfellow 博士回答了这个问题:
GANs 目前并没有应用到自然语言处理(NLP)中,因为 GANs 仅仅定义在真值数据中,GANs 通过训练出的生成器来产生合成数据,然后在合成数据上运行判别器,判别器的输出梯度将会告诉你,如何通过略微改变合成数据而使其更加现实。
只有在数据连续的情况下,你才可以略微改变合成的数据,而如果数据是离散的,绝对不可以改变合成数据,一点都不可以。
例如,如果你输出了一张图片,其像素值是1.0,那么接下来你可以将这个值改为1.0001。如果你输出了一个单词“penguin”,那么接下来就不能将其改变为“penguin + .001”,因为没有“penguin +.001”这个单词。如果想改的话,你必须将“penguin”变为“ostrich”或其他。因为所有的自然语言处理(NLP)的基础都是离散值,如“单词”、“字母”或者“音节”,没有人真正知道怎样才能在 NLP 中应用 GANs。
一般而言,我们会想到采用增强学习算法,但是增强算法的运行效果并不十分理想。目前据我所知,还没有人真正的开始研究利用增强算法解决 NLP 问题。
我看到有人说, GANs 在递归神经网络(RNN)方面并不奏效。这是不对的。从理论上来看,GANs 和 RNN 的生成器或判别器之间,并没有什么矛盾。但是,对于这一点,目前并没有人严肃而又认真的测试过。因此,在实际应用中还是存在一定的困难的。
顺便说一下,VAEs 对可见的离散单元是有效的,但是对隐藏的离散单元却并不奏效(除非你在运用增强算法,比如 DARN 或者 NVIL)。而另一方面,GANs 对隐藏的离散单元奏效,对可见的离散单元却并不奏效