• <sub id="pqc61"><p id="pqc61"></p></sub><sub id="pqc61"></sub>
    在线精品视频一区二区,亚洲中文字幕无码一久久区,正在播放肥臀熟妇在线视频,国内精品视频一区二区三区八戒 ,国产毛片三区二区一区,国产精品一区中文字幕,丰满少妇被猛烈进出69影院,国产成人无码
    您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強(qiáng)烈建議使用更快更安全的瀏覽器
    此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
    人工智能開發(fā)者 正文
    發(fā)私信給AI研習(xí)社-譯站
    發(fā)送

    0

    我們分析了超過50萬首詩歌,教你用代碼寫詩(附代碼)

    本文作者: AI研習(xí)社-譯站 2018-03-08 11:36
    導(dǎo)語:我能用代碼寫詩嗎?我可不可以做一個可以寫出原創(chuàng)詩歌的機(jī)器人?為了找出方法,我做了一個實驗。

    本文為雷鋒字幕組編譯的技術(shù)博客,原標(biāo)題To a Poem is a Bott the Stranger,作者 Carly Stambaugh。

    翻譯 | 于澤平  馬雪潔    整理 |  凡江    編輯  |   吳璇

    代碼即詩歌。這是WordPress軟件的哲學(xué)。

    作為一位程序員和詩人,我一直很喜歡這句話。我決定換種方式思考這句話。

    我想問,我能用代碼寫詩嗎?我可不可以做一個可以寫出原創(chuàng)詩歌的機(jī)器人?為了找出方法,我做了一個實驗。

    首先,我知道如果我的機(jī)器人想寫詩,首先要讓它讀詩。2017年,許多作者用WordPress發(fā)表了超過50萬個標(biāo)簽為詩歌的帖子。我聯(lián)系了一些寫了許多詩的詩人,并問他們是否愿意和我一起進(jìn)行一個有趣的實驗:他們是否允許我的機(jī)器人讀他們的作品,讓它可以從中學(xué)習(xí)出詩歌的形式和結(jié)構(gòu),從而可能學(xué)會自己寫詩?特別感謝這些為了科學(xué)而合作的很棒的作家們!

    什么是LSTM,它如何生成文本?

    我使用一種名為LSTM的神經(jīng)網(wǎng)絡(luò)創(chuàng)建我的機(jī)器人,它也叫作長短期記憶網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)使用“層”將問題分解為許多小問題。

    舉個例子,假設(shè)你正在訓(xùn)練一個可以識別正方形的神經(jīng)網(wǎng)絡(luò)??赡芤粋€層負(fù)責(zé)識別直角,另一個層負(fù)責(zé)識別平行邊。它們同時存在時圖像才是正方形。神經(jīng)網(wǎng)絡(luò)通過訓(xùn)練數(shù)百萬張正方形圖像,從中學(xué)習(xí)到這些層。它可以學(xué)習(xí)到圖像中的哪些方面對于識別正方形是重要的,哪些是不重要的。

    現(xiàn)在假設(shè)你用一個神經(jīng)網(wǎng)絡(luò)預(yù)測這個序列的下一個字母:

    th_

    作為一個普通人,這個任務(wù)真是太簡單了。你會猜e,我打賭,如果你會說英文,你肯定不會猜q。因為你知道在英文中th后面不會接q。前面的字母和預(yù)測的接下來的字母關(guān)聯(lián)性非常強(qiáng)。LSTM可以“記住”以前的狀態(tài)并以此作出當(dāng)前的決定。如果想深入了解LSTM是如何工作的,可以查看這個很贊的帖子,作者是谷歌大腦的Chris Olah。

    與許多用LSTM生成文本的例子相同,機(jī)器人生成文本時每一時刻生成一個字符。想要把單詞聚集成有意義的詩句,首先它要學(xué)會如何產(chǎn)生單詞。為了達(dá)到這個目標(biāo),它需要數(shù)百萬個包含有效單詞的序列例子。有一件好事就是:WordPress有很多詩歌!

    準(zhǔn)備數(shù)據(jù)集

    我從上面的鏈接中獲得了所有的詩歌。我使用一個很簡單的規(guī)則,通過判斷每個字符\n對應(yīng)多少個單詞判斷文本是否是詩歌。如果文本有許多單詞但字符\n很少,它可能是一段或多段文字的集合。相反地,如果同樣的文本有許多行,那么它是詩歌的可能性更大。

    當(dāng)然,這是一個很簡單的方法,我能想出來很多好詩并不符合這樣的測試方法!但為了這個實驗的目的,我特別感興趣的是LSTM是否可以學(xué)習(xí)出如斷行和節(jié)奏等結(jié)構(gòu)特點(diǎn),以及詩歌中包含的押韻、諧音、頭韻等特點(diǎn)。所以,把訓(xùn)練數(shù)據(jù)限制在有結(jié)構(gòu)的詩歌中是有道理的。

    如果一段文本被判斷為一首詩,我把它寫到一個文件中,用++++\n作為前綴,表示一首新詩歌的開始。最終獲得了500KB的訓(xùn)練數(shù)據(jù)。通常,我嘗試訓(xùn)練LSTM時都要用至少1MB的數(shù)據(jù)集,因此我需要尋找更多的詩歌!我在去年發(fā)表的標(biāo)簽為詩歌的公共帖子中隨機(jī)選擇樣本作為特色詩人的補(bǔ)充。如果你在WordPress中點(diǎn)擊過詩歌這一標(biāo)簽,你可能會發(fā)現(xiàn)你對它們很熟悉。我在每一個作者中選擇一個帖子作為詩歌。

    訓(xùn)練LSTM網(wǎng)絡(luò)

    當(dāng)我獲得1MB的詩歌時,我開始建立LSTM網(wǎng)絡(luò)。我使用Python中的keras工具建立神經(jīng)網(wǎng)絡(luò),keras的GitHub中有許多例子,可以幫助你學(xué)習(xí)使用幾種不同類型的神經(jīng)網(wǎng)絡(luò),其中有一個例子就是使用LSTM生成文本。我在這個例子后貼出了我的代碼,并開始嘗試不同的模型配置。模型的目標(biāo)是生成原始的詩歌。在這個例子中,過擬合--將訓(xùn)練數(shù)據(jù)學(xué)習(xí)得太好以至于模型無法概括數(shù)據(jù)的特點(diǎn)--會使生成的文本和輸入文本非常相似。(這就像剽竊一樣,沒有詩人喜歡這樣?。┍苊膺^擬合的一種方式是在網(wǎng)絡(luò)中添加dropout。它迫使在每一步驟中有隨機(jī)權(quán)重下降到0。這有點(diǎn)像強(qiáng)迫網(wǎng)絡(luò)“忘記”一些它剛剛學(xué)到的東西。(為了防止詩人的作品沒有被機(jī)器人復(fù)制,我增加了額外的后期檢查。)

    我使用FloydHub的GPU完成訓(xùn)練我的網(wǎng)絡(luò)這一繁重工作。這使我可以用比我的筆記本電腦快10倍的速度訓(xùn)練我的網(wǎng)絡(luò)。我的第一個網(wǎng)絡(luò)使用一個LSTM層,后面接入一個dropout層。這真的產(chǎn)生了像詩歌的文本!它有斷行和闋,幾乎所有的字符組合都是真正的單詞。有時整句話略微一致,事實上,第一個迭代后產(chǎn)生了這句如寶石般精彩的話:


    我們分析了超過50萬首詩歌,教你用代碼寫詩(附代碼)

    添加LSTM層,在每一層中試驗dropout的參數(shù),直到最終獲得了下面的模型。最終選擇使用3個LSTM層,因為再增加層數(shù)會讓訓(xùn)練時間變得不合理,而且3層的結(jié)果已經(jīng)很不錯了。

    1. model = Sequential()

    2. model.add(LSTM(300, input_shape=(maxlen, len(chars)), return_sequences=True, dropout=

    3. 20, recurrent_dropout=.20))

    4. model.add(LSTM(300, return_sequences=True, dropout=.20, recurrent_dropout=.20))

    5. model.add(LSTM(300, dropout=.20, recurrent_dropout=.20))

    6. model.add(Dropout(.20))

    7. model.add(Dense(len(chars)))

    8. model.add(Activation('softmax'))

    9. model.compile(loss='categorical_crossentropy', optimizer='adam')

    這是一張圖表,對比了增加不同LSTM層的模型對應(yīng)的損失曲線。

    我們分析了超過50萬首詩歌,教你用代碼寫詩(附代碼)

    網(wǎng)絡(luò)中LSTM層數(shù)越多,驗證損失下降的速率就越快。

    哎呀!尖峰!表明這種情況通常發(fā)生在使用adam作為優(yōu)化器時。注意到在網(wǎng)絡(luò)中增加LSTM層數(shù)時,模型的驗證損失下降得更多,而且下降的速率也更快。這意味著遍歷更少的epoch就可以收斂,但增加LSTM層也增加了每一個epoch的訓(xùn)練時間。網(wǎng)絡(luò)中有一層LSTM時,訓(xùn)練一個epoch需要大約600秒,全部訓(xùn)練結(jié)束需要一夜。然而,3個LSTM層的網(wǎng)絡(luò)訓(xùn)練一個epoch需要7000秒,完成訓(xùn)練需要幾天。因此,驗證損失下降得更快并不意味著更快得到結(jié)果。但在我看來,即使訓(xùn)練時間很長,3個LSTM層的網(wǎng)絡(luò)得到了最好的詩歌。

    生成詩歌

    為了產(chǎn)生完全原創(chuàng)的文本,也需要改變生成文本的方式。在keras的例子中,這個例子從訓(xùn)練數(shù)據(jù)中選擇一個隨機(jī)的字符序列作為種子,輸入到訓(xùn)練好的網(wǎng)絡(luò)中。我要的是一個可以自己寫詩的機(jī)器人,而不是完成其他詩人的提示!因此,我在文本生成步驟中嘗試了不同的種子。因為我之前在訓(xùn)練集中使用++++\n作為每首詩歌的開始,我認(rèn)為它可以創(chuàng)作出原始的詩歌。然而結(jié)果是\n,_,.和&的無意義的組合。

    經(jīng)過一些嘗試和失敗之后,我發(fā)現(xiàn)種子序列需要與訓(xùn)練序列具有相同數(shù)量的字符,這在事后看起來是顯而易見的!最終,我使用300個字符的序列,我將++++\n重復(fù)到300個字符作為種子,機(jī)器人可以通過偶爾將++++\n分開以此生成每一輪詩歌。

    劇本產(chǎn)生新一輪詩歌后,進(jìn)行了最后的抄襲檢查。因此,首先在訓(xùn)練集中創(chuàng)建了所有獨(dú)特的4-grams(包含4個詞的短語)的集合,且對機(jī)器人詩歌創(chuàng)建相同集。計算兩集之間的交集。為驗證實驗?zāi)康?,手動檢查了4-grams,以確保在兩個集合中出現(xiàn)的短語為inane。通常情況下,這個交點(diǎn)包含如下內(nèi)容: 

    • 我不想要

    • 我不能夠

    • 我想成為

    • …的聲音

    然后重復(fù)這個過程,使用5-grams和6-grams進(jìn)行良好測量。若要使該過程自動化,可能會采取一種基頻法,排除在多個著作中常見的n-gram,認(rèn)為是剽竊的情況。

    詩歌!

    每個時期輸出模型權(quán)重意味著我們可以在訓(xùn)練期間的幾個點(diǎn)上加載模型快照?;仡欁詈竽P偷脑缙跁r代,明顯機(jī)器人掉線很快。期望可以將其用于設(shè)計上,訓(xùn)練數(shù)據(jù)最顯著的特征是每行幾個字符。下面是一個例子,訓(xùn)練結(jié)束后生成的詩歌: 

    眉頭緊皺 魔杖,一me一me
    你會我們穿著和咬
    在什么叫什么東西你所有的勇敢

    它已經(jīng)學(xué)到了一些實際的詞語,并且模仿了每行之間空行的慣例。從遠(yuǎn)處看,如果你不仔細(xì)看,看起來的確像是一首詩!在單個LSTM模型的損失收斂之后,模型學(xué)習(xí)了斷節(jié)和斷行,甚至展示一些常見的詩歌性重復(fù)。 

    和美麗的指示

    飛翔的方式  
    我是言語的空間
    我曾看見
    但你的心將會看到這張臉

    單一的LSTM模型的強(qiáng)大套裝毫無疑問是個別性的。除了標(biāo)題行之外,我喜歡的另一個是:  

    風(fēng)只為我

    Inspirobot熱烈的精神之下,Demet從她最喜歡的一行詩創(chuàng)造了寶石:  

    我們分析了超過50萬首詩歌,教你用代碼寫詩(附代碼)

    單一的LSTM模型不能夠精準(zhǔn)地掌握詩歌主題,似乎在所有工作中一個共同的線索。即由單一LSTM模型生成的整個詩集詞匯云。  

    我們分析了超過50萬首詩歌,教你用代碼寫詩(附代碼)

    迷人!機(jī)器人沉迷于太陽和星星。  

    若太陽成為訓(xùn)練數(shù)據(jù)中最普遍的話題,并不令人驚訝,但事實并非如此!這里有由訓(xùn)練數(shù)據(jù)生成的文字云。  

    我們分析了超過50萬首詩歌,教你用代碼寫詩(附代碼)

    詩人喜歡寫愛情。  

    艾米莉狄金森寫了關(guān)于自然和死亡的詩歌。機(jī)器人給個人寫有關(guān)天體的詩!

    添加第二個LSTM圖層后,可以開始看到其他詩歌技巧,如頭韻和韻律。

    可見,會發(fā)現(xiàn)  
    種子微笑
    染紅我的一天
    一天之法
    善良終結(jié)

    它也開始產(chǎn)生一些非常有詩意的詩歌。與之前模型訓(xùn)練的單行詩歌類似,有時不知一行。例如, 

    黑暗之中有一部分世界

    陰影縈繞

    哇,那很深刻!

    目前為止,已經(jīng)看到了行,節(jié),韻(內(nèi)部和行結(jié)尾),重復(fù)和頭韻。不錯!但是,偶爾戲劇性的天賦,這時機(jī)器人模仿的詩歌通常是不連貫的詞匯集。廢話絕大部分都沒有語法結(jié)構(gòu)。

    然而發(fā)生了一些變化即增加了第三個LSTM層。這種模式更有可能產(chǎn)生在語法上合理的單行詩,即使仍是荒謬的。例如: 

    父親的光芒不是骨骼的拳

    這句詩沒有任何意義,但卻正確地放置了詞性。具有一致性,名詞從句具有一般的詩意。三層LSTM模型同樣創(chuàng)作了這些,我認(rèn)為是很穩(wěn)定,詩情畫意地講:  

    這世界是蝴蝶島
    我深覺孤獨(dú)

    但三層LSTM模式的最高成就正是這首完整的詩。 

    來自你內(nèi)心的陰暗
    我待著
    靈魂中掙扎

    這不是大段文字的摘錄。這些單行詩被牢牢地定位在兩個++++\n分隔符之間。  

    我們分析了超過50萬首詩歌,教你用代碼寫詩(附代碼)

    哇,人們好有趣啊,我們將創(chuàng)造奇跡!  

    特別感謝我的詩人合伙人幫助我進(jìn)行這個有趣的實驗!一定要訪問他們的網(wǎng)站,閱讀他們的作品!

    博客原址 https://data.blog/2018/01/19/to-a-poem-is-a-bott-the-stranger/?from=singlemessage&isappinstalled=0


    更多文章,關(guān)注雷鋒網(wǎng) 雷鋒網(wǎng)雷鋒網(wǎng)

    添加雷鋒字幕組微信號(leiphonefansub)為好友

    備注「我要加入」,To be a  AI  Volunteer !


    我們分析了超過50萬首詩歌,教你用代碼寫詩(附代碼)

    我們分析了超過50萬首詩歌,教你用代碼寫詩(附代碼)

    雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

    我們分析了超過50萬首詩歌,教你用代碼寫詩(附代碼)

    分享:
    相關(guān)文章

    知情人士

    AI研習(xí)社(yanxishe.com)譯站頻道,傳播前沿人工智能知識,讓語言不再成為學(xué)習(xí)知識的門檻。(原雷鋒字幕組)
    當(dāng)月熱門文章
    最新文章
    請?zhí)顚懮暾埲速Y料
    姓名
    電話
    郵箱
    微信號
    作品鏈接
    個人簡介
    為了您的賬戶安全,請驗證郵箱
    您的郵箱還未驗證,完成可獲20積分喲!
    請驗證您的郵箱
    立即驗證
    完善賬號信息
    您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
    立即設(shè)置 以后再說
    主站蜘蛛池模板: 亚洲va一区二区三区视频| 亚洲国产精品一区二区久| 五月色色网| 成人做爰69片免费看网站野花| 狠狠撸| 亚洲人妻av伦理| 国产成人高清亚洲综合| 一区二区三区欧美| 亚洲一本色道****AV| 六月丁香网| 在线成人精品国产区免费| 中文字幕av一区二区| 日本一卡二卡三卡四卡五卡六卡| 丁香五月婷婷网| 中文字幕久区久久中文字幕| 粗大猛烈进出高潮视频| 含羞草亚洲AV无码久久精品| 亚洲精品综合网二三区| 另类av| 人妻综合在线| 中国极品少妇videossexhd| 国产精品久久久久影院| 人妻无码第一区二区三区| 男人桶女人18禁止网站| 国产成人精品日本亚洲第一区| 国产精品va在线观看h| 亚洲人成网站观看在线观看| 成人无码A区在线观看视频| AV最新高清无码专区| 久久久综合九色合综| 国产成人91高清精品免费| 九九热视频在线播放| 激情偷拍av| 国产一区二区在线视频| 无码不卡一区二区三区在线观看 | 亚洲熟妇精品一区二区| 亚洲午夜无码久久yy6080| 国产av仑乱内谢| 3p视频在线| 亚洲aⅴ无码一区二区波多野结衣| 国产熟妇婬乱一区二区|