发表日期:2019-11 文章编辑:小灯 浏览次数:5427
学完 DeepLearning 系列课程后就想做一个小应用试试。一开始基于 RNN 训练了个古诗机器人,这个做的人很多,于是换了宋词。宋词是基于词牌生成,相对数据量比较少,基于 RNN 训练效果很一般。后来了解到了 Transformer 算法感觉发现了生机,训练了一下感觉效果真是不错。
使用效果测试的话可以直接扫码访问这个小程序玩玩, 或者小程序搜索 【小诗一首】:
这是生成的例子:
Transformer 是 Google 于 2017 年在 Attention Is All You Need 论文中提出,基于 Attention 机制,在机器翻译及其他语言理解任务有着以往无法比拟的效果,后 2018 年又提出 Universal Transformer, 在多项有难度的语言理解任务上泛化效果明显更好。Transformer 解决 RNN 存在的长序列信息丢失的问题,像宋词这种讲究格式讲究押韵的语句,在 RNN 中就很难训练到好的效果,但是 Transformer 就可以很好的提取训练宋词中的格式以及押韵特征。
想深入学习 Transformer 以及算法可以看 Tensorflow 官方的教程. 等下篇文章我也详细介绍如何基于 Transformer 训练一个宋词机器人,包括如何预处理训练数据,如何使用模型生成序列文本。