基于LSTM的許嵩風(fēng)格歌詞生成
發(fā)布時(shí)間:2020-12-18 15:31
文本生成是人工智能和自然語(yǔ)言處理領(lǐng)域中一項(xiàng)熱門(mén)研究的課題,作為一種在自然語(yǔ)言文本生成方面廣泛應(yīng)用的網(wǎng)絡(luò),長(zhǎng)短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)可以解決在訓(xùn)練傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)時(shí)可能遇到的梯度消失問(wèn)題。對(duì)于間隙長(zhǎng)度的相對(duì)不敏感性是LSTM相對(duì)于RNN,隱馬爾可夫模型和其他序列學(xué)習(xí)方法在許多應(yīng)用中的優(yōu)勢(shì)。本文通過(guò)采用帶門(mén)結(jié)構(gòu)的LSTM生成許嵩風(fēng)格歌詞的模型,使機(jī)器具有初步模擬人類(lèi)創(chuàng)作歌詞的能力。實(shí)驗(yàn)結(jié)果表明,LSTM具有良好的歌詞文本自動(dòng)生成效果。
【文章來(lái)源】:網(wǎng)絡(luò)安全技術(shù)與應(yīng)用. 2020年08期
【文章頁(yè)數(shù)】:4 頁(yè)
【部分圖文】:
char-rnn模型示例3實(shí)驗(yàn)
年第08期安全模型、算法與編程||51||圖3char-rnn模型示例3實(shí)驗(yàn)3.1數(shù)據(jù)源本實(shí)驗(yàn)所用的數(shù)據(jù)集為百度文庫(kù)上搜索到的許嵩歌詞大全[9],此數(shù)據(jù)集中包含了許嵩自出道以來(lái)148首較流行歌曲的歌詞,總共7643行歌詞文本。其部分?jǐn)?shù)據(jù)集展示如圖4所示。3.2實(shí)驗(yàn)環(huán)境本實(shí)驗(yàn)采用Tensorflow作為主要框架,numpy進(jìn)行基本數(shù)據(jù)處理,所用優(yōu)化器為AdamOptimizer。需要注意的是,下載下來(lái)的txt數(shù)據(jù)集默認(rèn)是ANSI編碼,需要通過(guò)“另存為”轉(zhuǎn)為UTF-8編碼,否則會(huì)編碼錯(cuò)誤。圖4VAE_lyrics_UTF8.txt數(shù)據(jù)集部分示例3.3實(shí)現(xiàn)代碼主要類(lèi)和函數(shù)(1)classHParam()此類(lèi)用來(lái)對(duì)超參數(shù)進(jìn)行設(shè)置,如batch_size、學(xué)習(xí)率、AdamOptimizer中的衰減率、衰減步數(shù)、神經(jīng)網(wǎng)絡(luò)層數(shù)等,這些參數(shù)的選擇十分重要。模型設(shè)置的參數(shù)如表1所示。表1HParam()中超參數(shù)的設(shè)置參數(shù)值單次訓(xùn)練所選取的樣本數(shù)32學(xué)習(xí)速度0.01衰減步數(shù)1000衰減率0.9神經(jīng)網(wǎng)絡(luò)層數(shù)3單個(gè)序列長(zhǎng)度20狀態(tài)向量維度100(2)classDataGenerator()此類(lèi)中的__init__()方法對(duì)文本中的漢字進(jìn)行拆分并進(jìn)行序號(hào)編碼,char2id()方法把字轉(zhuǎn)換成數(shù)字編碼,id2char()方法把數(shù)字編碼轉(zhuǎn)換成漢字,save_metadata()將漢字與數(shù)字編碼的映射關(guān)系存儲(chǔ)下來(lái),next_batch()根據(jù)self.batch_size生成下一批訓(xùn)練數(shù)據(jù)。(3)classModel()此類(lèi)定義了模型的輸入、結(jié)構(gòu)、優(yōu)化器等核心結(jié)構(gòu)內(nèi)容。其中,withtf.name_scope()語(yǔ)法用于在tensorboard中可視化查看模型結(jié)構(gòu)。神經(jīng)單元調(diào)用了rnn_cell.BasicLSTMCell(),多層神經(jīng)元調(diào)用了rnn_cell.MultiRNN
【參考文獻(xiàn)】:
期刊論文
[1]基于神經(jīng)網(wǎng)絡(luò)的集句詩(shī)自動(dòng)生成[J]. 梁健楠,孫茂松,矣曉沅,楊成,陳慧敏,劉正皓. 中文信息學(xué)報(bào). 2019(03)
[2]一種宋詞自動(dòng)生成的遺傳算法及其機(jī)器實(shí)現(xiàn)[J]. 周昌樂(lè),游維,丁曉君. 軟件學(xué)報(bào). 2010(03)
本文編號(hào):2924233
【文章來(lái)源】:網(wǎng)絡(luò)安全技術(shù)與應(yīng)用. 2020年08期
【文章頁(yè)數(shù)】:4 頁(yè)
【部分圖文】:
char-rnn模型示例3實(shí)驗(yàn)
年第08期安全模型、算法與編程||51||圖3char-rnn模型示例3實(shí)驗(yàn)3.1數(shù)據(jù)源本實(shí)驗(yàn)所用的數(shù)據(jù)集為百度文庫(kù)上搜索到的許嵩歌詞大全[9],此數(shù)據(jù)集中包含了許嵩自出道以來(lái)148首較流行歌曲的歌詞,總共7643行歌詞文本。其部分?jǐn)?shù)據(jù)集展示如圖4所示。3.2實(shí)驗(yàn)環(huán)境本實(shí)驗(yàn)采用Tensorflow作為主要框架,numpy進(jìn)行基本數(shù)據(jù)處理,所用優(yōu)化器為AdamOptimizer。需要注意的是,下載下來(lái)的txt數(shù)據(jù)集默認(rèn)是ANSI編碼,需要通過(guò)“另存為”轉(zhuǎn)為UTF-8編碼,否則會(huì)編碼錯(cuò)誤。圖4VAE_lyrics_UTF8.txt數(shù)據(jù)集部分示例3.3實(shí)現(xiàn)代碼主要類(lèi)和函數(shù)(1)classHParam()此類(lèi)用來(lái)對(duì)超參數(shù)進(jìn)行設(shè)置,如batch_size、學(xué)習(xí)率、AdamOptimizer中的衰減率、衰減步數(shù)、神經(jīng)網(wǎng)絡(luò)層數(shù)等,這些參數(shù)的選擇十分重要。模型設(shè)置的參數(shù)如表1所示。表1HParam()中超參數(shù)的設(shè)置參數(shù)值單次訓(xùn)練所選取的樣本數(shù)32學(xué)習(xí)速度0.01衰減步數(shù)1000衰減率0.9神經(jīng)網(wǎng)絡(luò)層數(shù)3單個(gè)序列長(zhǎng)度20狀態(tài)向量維度100(2)classDataGenerator()此類(lèi)中的__init__()方法對(duì)文本中的漢字進(jìn)行拆分并進(jìn)行序號(hào)編碼,char2id()方法把字轉(zhuǎn)換成數(shù)字編碼,id2char()方法把數(shù)字編碼轉(zhuǎn)換成漢字,save_metadata()將漢字與數(shù)字編碼的映射關(guān)系存儲(chǔ)下來(lái),next_batch()根據(jù)self.batch_size生成下一批訓(xùn)練數(shù)據(jù)。(3)classModel()此類(lèi)定義了模型的輸入、結(jié)構(gòu)、優(yōu)化器等核心結(jié)構(gòu)內(nèi)容。其中,withtf.name_scope()語(yǔ)法用于在tensorboard中可視化查看模型結(jié)構(gòu)。神經(jīng)單元調(diào)用了rnn_cell.BasicLSTMCell(),多層神經(jīng)元調(diào)用了rnn_cell.MultiRNN
【參考文獻(xiàn)】:
期刊論文
[1]基于神經(jīng)網(wǎng)絡(luò)的集句詩(shī)自動(dòng)生成[J]. 梁健楠,孫茂松,矣曉沅,楊成,陳慧敏,劉正皓. 中文信息學(xué)報(bào). 2019(03)
[2]一種宋詞自動(dòng)生成的遺傳算法及其機(jī)器實(shí)現(xiàn)[J]. 周昌樂(lè),游維,丁曉君. 軟件學(xué)報(bào). 2010(03)
本文編號(hào):2924233
本文鏈接:http://sikaile.net/wenyilunwen/musictheory/2924233.html
最近更新
教材專(zhuān)著