標籤:

深度學習小實驗1:使用RNN教AI學會吟詩作賦

本教程已更新,數據集和路徑均已修正。 --2017-12-30


離職以後有時間專心體會一下深度學習的神奇之處,順便把自己的練習過程記錄在這裡。

本次練習使用TensorFlow實現,在RussellCloud平台運行,感謝斗大的熊貓提供參考博客。

本文主要分為下面三個部分

1. RNN簡介

2. RNN常見用途

3. 使用RussellCloud復現練習過程

RNN簡介

RNN,recurrent neural network,中文名為 循環神經網路,與傳統的神經網路區別在於傳統神經網路的每一步都是相對獨立的過程,而RNN的每一步操作會依賴前面的計算結果,下面是一張RNN的經典介紹圖,可以看出RNN會將上一步的輸出結果作為下一步的輸入數據,由此實現利用數據中隱藏的順序信息。

RNN常見用途

1. 文本生成

給你一個單詞序列,我們需要根據前面的單詞預測每一個單詞的可能性。語言模型能夠一個語句正確的可能性,這是機器翻譯的一部分,往往可能性越大,語句越正確。另外也可以使用生成模型預測下一個單詞的概率,從而生成新的文本根據輸出概率的採樣。語言模型中,典型的輸入是單詞序列中每個單詞的詞向量(如 One-hot vector),輸出時預測的單詞序列。當在對網路進行訓練時,如果ot=xt+1,那麼第t步的輸出便是下一步的輸入。

2. 機器翻譯

機器翻譯與語言模型相似,輸入是源語言中的一個詞的序列(例如,德語),輸出是目標語言(例如,英語)的一個詞的序列。一個關鍵不同點在於在接收到了完整的輸入後才會開始輸出,因為我們要翻譯得到的句子的第一個詞可能需要前面整個輸入序列的信息。

3. 看圖說話

和卷積神經網路一起,RNN可以作為生成無標註圖像描述模型的一部分。對於這個如何工作的看起來非常令人驚訝。這個聯合模型甚至可以對齊生成的詞和圖像中的特徵。

4. 語音識別

給定一段從聲波中產生的輸入聲學信號序列,我們想要預測一個語音片段序列及其概率。

復現過程:

前提:

  1. 使用邀請碼在官網進行註冊
  2. 在本地安裝 cli 客戶端
  3. 在cli客戶端通過login登錄

第一步:在官網創建項目

點擊 項目創建頁 創建名為poetry_generator項目,默認環境選:keras (注意不要選 kera:py2 )

第二步:綁定本地項目

#clone項目代碼ngit clone https://github.com/RussellCloud/poetry_generator.gitnn#進入項目目錄ncd poetry_generatornn#創建項目nrussell init --name poetry_generatorn

第二步:訓練模型(可跳過,直接使用在下一步使用預先訓練好的model)

#運行模型訓練代碼並引用數據云上已經準備好的數據集nrussell run "python trainer.py" --data ee3da33467b04b4680ab31f523aeea6f:datann#查看訓練日誌nrussell logs <run_id> nn#由於封測期間暫未採用GPU機器,因此訓練需要一個晚上的時間n#訓練結束後通過info命令獲取項目輸出output_idnrussell info <run_id>n

現在可以直接瀏覽輸出的模型目錄:訓練好的模型

第三步:使用預訓練模型生成詩詞

#運行詩詞生成代碼並引用上一步中生成的模型數據n#<output_id>是上一步訓練過程中通過info命令獲取到的idn#如跳過上一步,可直接使用預先訓練好model的數據集:f030014be22b4965987d5b45f7093711nrussell run "python gen_poetry.py" --data f030014be22b4965987d5b45f7093711:modelnn#從日誌中查看生成的詩詞nrussell logs <run_id_2>nn#順利結束n

下一個小實驗:預測鐵路客運量


推薦閱讀:

[NLP] 秒懂詞向量Word2vec的本質
recsys(acm recommender sysytems) 2016 有哪些值得關注的論文?
【專知薈萃23】深度強化學習RL知識資料全集(入門/進階/論文/綜述/代碼/專家,附查看)
深度學習——分類之Densenet
地平線重磅發布 AI 視覺晶元「征程」與「旭日」,落地三大場景打造智能方案

TAG:人工智能 |