發表日期:2019-11 文章編輯:小燈 瀏覽次數:5343
學完 DeepLearning 系列課程后就想做一個小應用試試。一開始基于 RNN 訓練了個古詩機器人,這個做的人很多,于是換了宋詞。宋詞是基于詞牌生成,相對數據量比較少,基于 RNN 訓練效果很一般。后來了解到了 Transformer 算法感覺發現了生機,訓練了一下感覺效果真是不錯。
使用效果測試的話可以直接掃碼訪問這個小程序玩玩, 或者小程序搜索 【小詩一首】:
這是生成的例子:
Transformer 是 Google 于 2017 年在 Attention Is All You Need 論文中提出,基于 Attention 機制,在機器翻譯及其他語言理解任務有著以往無法比擬的效果,后 2018 年又提出 Universal Transformer, 在多項有難度的語言理解任務上泛化效果明顯更好。Transformer 解決 RNN 存在的長序列信息丟失的問題,像宋詞這種講究格式講究押韻的語句,在 RNN 中就很難訓練到好的效果,但是 Transformer 就可以很好的提取訓練宋詞中的格式以及押韻特征。
想深入學習 Transformer 以及算法可以看 Tensorflow 官方的教程. 等下篇文章我也詳細介紹如何基于 Transformer 訓練一個宋詞機器人,包括如何預處理訓練數據,如何使用模型生成序列文本。