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