GAN生成古诗词:拙劣但是高效的模仿

  1. 背景

    人工智能在提出之时,人们就希望计算机能像人一样看(计算机视觉)、像人一样听(语音识别)、像人一样说(语言合成)、像人一样写(自然语言生成)。如果一个人无法区分计算机生成的语言、人类写的语言,那么就说明计算机已经具备人类一样的思维能力了。

    而在早期,古诗词的生成模型包括:(1)随机生成模型:词语进行随机组合和堆砌,这样生成的古诗词往往不符合语法要求;(2)基于模板和模式的方法,这种方法生成的古诗词质量较高,但是可扩展性、灵活性很差;(3)基于遗传算法、摘要生成、统计机器翻译的算法。最近的古诗词生成算法主要是基于神经网络模型。从简单的RNN到层次化、添加Attention、基于规划、迭代求精的复杂神经网络,再到基于GAN的古诗词生成模型。基于神经网络的模型利用了神经网络强大的建模能力,生成的古诗词流畅性很好。

    代码:这里

  2. 模型

    2.1 普通的最大似然模型

    简单的MLE模型[1],核心部件在于RNN(可以是LSTM、GRU等),根据内部的状态向量、以及上一次输出的字符,来更新状态,并且产生输出。即

        \[h_j = RNN(h_{i-1}, Ey_{i-1})\]

        \[p=softmax(h_i)\]

        \[y_i =sample(p)\]

    而hi则是状态,这边的E表示字符的embedding,将每个字符都映射到一个向量。yi则是输出的字符,使用一个softmax计算字典中的字符作为输出的概率,并从中采样得到输出的字符。这样不断迭代产生每个字符。我们使用一个特殊字符作为古诗的开始,使用一个字符来表示古诗的结束。

    训练的时候,通过最大化训练样本的似然值来得到。即:

        \[L = \sum_{d\in D}\sum_{w_i\in d} \log (p(w_i))\]

    2.2 GAN模型

    GAN模型[2]使用不同的一个目标函数。它拥有一个生成器、一个判别器。判别器尽量从所有的古诗词中识别出真实的古诗词,而生成器尽量生成能够骗过判别器的古诗词。两者通过玩一个min-max的游戏,不断提高生成古诗词的质量。详细原理参见:

    http://www.hackcha.cn/?p=190

  3. 结果

    有部分研究使用了BLEU对生成结果进行评价。但是BLEU这个指标本身并不能反映生成古诗词的质量。因此我们直接看生成的古诗词。

    最大似然模型生成的结果:

    乱岸危牛顶上收,曲桥流处又从畴。早秋醉著鸬鹚侣,信酒非闲语让钱。

    夜枕溪帆来入寺,茫茫拍水近湖山。正向无如鞭织客,何人骤雨洒春时。

    知公虽此物,千载与谁施。子食耄迟少,恩功石上开。神渊阴不喻,故帅转沧波。艰事纷足虑,吾徒不可遑。

    舟上朝阳一易程,流波不动更登一。由来有俗怀人稳,唤得槐滩具柄长。

    江水明头向层树,柴亭春日幽情。几从未审去年,世外如何九万钱。

    说实话,这些诗词看上去有些不明觉厉。有意思的是,这个模型并没有强制要求押韵,但是计算机却从数据中自动学会了押韵。

    预训练的GAN模型生成的古诗词样本:

    一声拍知罗,对此心如影,照。落水声杳,拍手。
    三五斗门扃,艾檀助仙风。
    默闻今然水两耳,困来网步未惊起。画手见,相忘在天,至今合在沧海。
    物情虚寂自明遥,先过纱窗不作文。
    临边升月,空汉用追。著维去藏,无鉤。欲昏君在,天下葵龙归。

    训练好的GAN模型生成的古诗词样本:

    云微无踪。家家出苍天。红林酒,不著工书钓手经。弄著头头颇足。醉归舍市。
    微回数叶青苔遍,无佛书。火星万重黄金。殃投。邪家绝。吾耶江后。而今活。踏雪千回万里。天人方背语。万机
    草木垂垂空殷通。诗坛下与有谈诗。花仙字然称更敏。我书今望何名尝。
    朝阳,挥丝尘上几回旋。元无诗,须烦子正雨撞。驴。勿言方别。
    悠悠亭亭何翅分。二分鼓声创。予行苦未息。巢断。正念松声。正须诗坛老更良。
    诗坛近公车引得。火暖。空休相照自珍。也无款段日明晚居,可以酌君风味。

    可以看出GAN模型生成的结果反而不如MLE模型,可能是因为判别器使用的是CNN模型,很难捕捉句子的连贯性。另外GAN模型的不稳定性也可能是原因。我们将继续调试这个GAN模型。

  4. 总结

    很多人批评计算机生成的古诗词虽然像模像样,但是缺少一丝灵动。但是计算机生成古诗词的模型训练速度十分快,大约几十分钟就能写出像模像样的古诗,而人类要学习几年时间,这是十分可怕的。而且人类往往需要灵感才能写出一首诗,而计算机利用随机数就可以产生古诗词,它不需要什么灵感。计算机不像人类,随着年龄增长会衰老、精力能力与才华会下降、还会死亡,一个程序、一个模型可以长久不变的存在,而且可以迅速的传播与复制。就像工业化革命刚开始的时候,由机器制作的产品可能没有手工制作的精细,但是在机器强大生产力、快速的更新速度面前,手工业的市场只能被无情的侵蚀。

    可以说很难找到一个评价指标来方便的评价生成的古诗词质量,而如果还要考虑艺术性的话,就更加难了。这也是古诗词生成模型发展中的一个阻碍。

  5. 参考文献

    [1] http://m.blog.csdn.net/longji/article/details/75194990 (代码:https://github.com/5455945/tensorflow_demo

    [2] Yu, Lantao, et al. “SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient.”?AAAI. 2017. (代码: https://github.com/LantaoYu/SeqGAN)

    [3] 更多模型:http://www.sohu.com/a/125440908_500659

38 评论

  1. Pingback: Nike Outlet
  2. Pingback: Nike Shoes
  3. Pingback: Yeezy
  4. Pingback: Nike Outlet Store
  5. Pingback: Yeezy Shoes
  6. Pingback: Travis Scott jordan 1
  7. Pingback: Yeezy 350
  8. Pingback: tenis adidas top ten
  9. Pingback: Yeezy
  10. Pingback: Yeezy 350
  11. Pingback: Cheap NFL Jerseys

发表评论