來自硅谷工程師的Google TensorFlow教程:開始訓練你的第一個RNN吧》,有讀者反饋希望了解更多關(guān)于RNN的相關(guān)內(nèi)容。因此,在接下來的幾周中,科技行者為大家準備了一套RNN系列的入門教程,供大家參考。
4.建立基于門控循環(huán)單元(GRU)或者長短時記憶(LSTM)的RNN模型
那么今天,我們將先對RNN做一個基本介紹。
在這一教程里,我們將會建立一個基于RNN的語言模型。語言模型的應用有雙重目的:第一,可以根據(jù)句子在現(xiàn)實中出現(xiàn)的可能性和概率對任意句子進行評分。這給了我們語法和語義上的度量,在機器翻譯系統(tǒng)中,這類模型非常常見。第二,一個語言模型可以生成新文本。例如,Andrej Karpathy的這篇博文(http://karpathy.github.io/2015/05/21/rnn-effectiveness/)就展示了RNN模型的作用和有效性,它可以訓練莎士比亞的詩集,從而生成類似莎士比亞詩集的文本。
在開始本次教程前,需要您對神經(jīng)網(wǎng)絡(NNs)的基本概念有了一定的了解。神經(jīng)網(wǎng)絡是是一種應用類似于大腦神經(jīng)突觸聯(lián)接的結(jié)構(gòu)進行信息處理的數(shù)學模型。
-1-
何為RNN?
RNN的本質(zhì)概念是利用時序信息,在傳統(tǒng)神經(jīng)網(wǎng)絡中,假設所有的輸入(以及輸出)都各自獨立。但是,對于很多任務而言,這非常局限。舉個例子,假如你想根據(jù)一句沒說完的話,預測下一個單詞,最好的辦法就是聯(lián)系上下文的信息。而RNN(循環(huán)神經(jīng)網(wǎng)絡)之所以是“循環(huán)”,是因為它們對序列的每個元素執(zhí)行相同的任務,而每次的結(jié)果都獨立于之前的計算。
另一種思考RNN的方式是,它擁有“記憶”模塊,可以獲取已經(jīng)計算過的信息。理論上講,RNN可以利用任意長度的序列信息,但只可以利用有限的前幾步的信息。
下面便是一個典型的RNN模型:
上圖顯示的是RNN模型全部展開時的情況。“展開”指的是用網(wǎng)絡描述出所有序列。
例如,如果序列中的句子有5個單詞,那么,橫向展開網(wǎng)絡后將有五層神經(jīng)網(wǎng)絡,一層對應一個單詞。
下面解釋一下其中的計算公式:
需要注意的有幾點:
-2-
RNN有何用處?
在眾多自然語言處理的任務中,RNN已經(jīng)取得了巨大成功。這里,需要指出的是RNN中最常用的類型是長短時記憶(LSTMs)模型,相比較于原始的RNN,LSTM可以存儲更長的時序信息。并且,本教程中LSTM在本質(zhì)上和我們所要開發(fā)的RNN是一致的,只不過LSTM計算隱藏狀態(tài)的方式有所不同。在下一個教程中,我們將會更詳細地講解LSTM。
接下來,我們主要介紹一下在自然語言處理中應用RNN的例子:
2.1 語言建模和文本生成
通過訓練RNN模型,我們可以基于給出的一個單詞序列,預測下一個單詞。這對于語言建模和文本生成而言是非常有價值的。
同時,語言模型可以用于評估一個句子出現(xiàn)的可能性,這對機器翻譯而言也是非常重要的(因為高概率的句子通常是正確的)。
能夠預測下一個單詞出現(xiàn)的概率,那是因為我們所得到的衍生模型能夠根據(jù)輸出的可能性來生成新文本。而根據(jù)我們的訓練數(shù)據(jù),模型還可以得到所有類型的文本。在語言建模中,我們的輸入屬于典型的單詞序列(例如利用one-hot載體進行編碼),而在訓練該神經(jīng)網(wǎng)絡時,我們希望t時刻的輸出是精確的,因此,我們會設定。
下面是關(guān)于語言建模和文本生成的研究論文:
Recurrent neural network based language model
《基于循環(huán)神經(jīng)網(wǎng)絡的語言模型》
Extensions of Recurrent neural network based language model
《基于循環(huán)神經(jīng)網(wǎng)絡拓展的語言模型》
Generating Text with Recurrent Neural Networks
《利用循環(huán)神經(jīng)網(wǎng)絡生成文本》
2.2 機器翻譯
機器翻譯類似于語言建模,我們首先輸入源語(例如德語),需要輸出是目標語(例如英語)。關(guān)鍵區(qū)別是,在機器翻譯中,翻譯的第一個字可能會需要所有已輸入句子的信息,所以只有看到全部輸入之后才能輸出。
▲ 上圖是用于機器翻譯的RNN模型
圖片來源:http://cs224d.stanford.edu/lectures/CS224d-Lecture8.pdf
下面是關(guān)于機器翻譯的研究論文:
A Recursive Recurrent Neural Network for Statistical Machine Translation
《用于統(tǒng)計類機器翻譯的遞歸型循環(huán)神經(jīng)網(wǎng)絡》
Sequence to Sequence Learning with Neural Networks
《利用神經(jīng)網(wǎng)絡進行序列至序列的學習》
Joint Language and Translation Modeling with Recurrent Neural Networks
《利用循環(huán)神經(jīng)網(wǎng)絡進行語言和翻譯的建?!?br />
2.3 語音識別
根據(jù)從聲音中得到的一系列聲波信號,并以此作為輸入,可以預測出一系列語音片段及其可能性。
下面是關(guān)于語音識別的研究論文:
Towards End-to-End Speech Recognition with Recurrent Neural Networks
《利用循環(huán)神經(jīng)網(wǎng)絡進行端對端的語音識別》
2.4 生成圖片的文字描述
和CNN(卷積神經(jīng)網(wǎng)絡)一樣,RNN也被應用于生成描述未被標簽的圖片模型。并且,兩者結(jié)合的模型組合甚至可以依據(jù)圖片特征排列生成文字,以及圖片中特征的對應位置。如下圖:
▲用于生成圖像描述的深度視覺 - 語義示例
來源:http://cs.stanford.edu/people/karpathy/deepimagesent/
2.5 訓練RNN模型
訓練RNN模型與訓練傳統(tǒng)的神經(jīng)網(wǎng)絡類似。我們同樣采用反向傳播算法,但也有不同。因為在RNN中,橫向展開的每一層都是共享權(quán)重的,每一個輸出的梯度(gradient)不僅僅依賴于當下這個時間點,還依賴于過去的時間點。舉個例子,想要計算時間點t=4的梯度,我們需要反向傳播3個時間點,并把梯度相加。這個算法就叫做BPTT(Backpropagation Through Time)?,F(xiàn)在只需要知道,BPTT算法本身是有局限性的,它不能長期記憶,還會引起梯度消失和梯度爆炸問題,LSTM就是用來解決這個問題的。
2.6 RNN模型的拓展
多年以來,為了克服傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(vanilla RNN)的弱點,研究人員已經(jīng)開發(fā)出更多統(tǒng)計型的循環(huán)神經(jīng)網(wǎng)絡。之后的部分,我們將更細致地對此進行講解,但是,我希望這部分概要有助于大致了解一下模型分類。下面是一些典型的模型:
雙向循環(huán)神經(jīng)網(wǎng)絡(Bidirectional RNN)的理念是,時間t時的輸出不僅僅取決于過去的記憶,也同樣取決于后面發(fā)生的事情。例如,某一序列中,想要預測一個單詞,會聯(lián)系前文和后文。雙向循環(huán)神經(jīng)網(wǎng)絡便是如此簡單。僅僅是兩套循環(huán)神經(jīng)網(wǎng)絡前后交疊在一起而已。輸出的計算結(jié)果便基于這兩套循環(huán)神經(jīng)網(wǎng)絡的隱藏狀態(tài)。如下圖:
深度(雙向)(Deep (Bidirectional) RNN)循環(huán)神經(jīng)網(wǎng)絡類似于雙向循環(huán)神經(jīng)網(wǎng)絡,只不過是每個時長內(nèi)都有多層。實際上,這一點意味著它有更強的學習能力(但是相應地,也需要大量訓練數(shù)據(jù))。
LSTM網(wǎng)絡:近來,LSTM非常流行。本質(zhì)上,LSTM與RNN的基礎架構(gòu)并無不同,但是,LSTM在計算隱藏狀態(tài)時會采用不同的函數(shù)。LSTM中的記憶被稱為“細胞”,而可以把這些“細胞”視作黑匣子,記憶之前狀態(tài)為的輸入和當前為x_t的輸入。本質(zhì)上,這些“細胞”將決定將保留或剔除相關(guān)記憶,“細胞”可以整合之前的狀態(tài)、當前的記憶和輸入。而結(jié)果證明,對于長期的記憶來說,這些單元的類型非常高效。
-3-
總結(jié)
希望通過第一篇教程,你已經(jīng)對RNN的定義和作用有了一個基本的了解。下周,我們將介紹如何利用Python和Theano建立起第一個基于RNN的語言模型。
好文章,需要你的鼓勵
這項研究提出了"高效探測"方法,解決了掩碼圖像建模AI難以有效評估的問題。通過創(chuàng)新的多查詢交叉注意力機制,該方法在減少90%參數(shù)的同時實現(xiàn)10倍速度提升,在七個基準測試中均超越傳統(tǒng)方法。研究還發(fā)現(xiàn)注意力質(zhì)量與分類性能的強相關(guān)性,生成可解釋的注意力圖譜,展現(xiàn)出優(yōu)異的跨域適應性。團隊承諾開源全部代碼,推動技術(shù)普及應用。
伊利諾伊大學研究團隊開發(fā)了CLAIMSPECT系統(tǒng),通過層次化分解復雜爭議、智能檢索相關(guān)文獻、多角度收集觀點的方法,將傳統(tǒng)的"真假"判斷轉(zhuǎn)變?yōu)槎嗑S度分析。該系統(tǒng)能夠自動構(gòu)建爭議話題的分析框架,識別不同觀點及其支撐證據(jù),為科學和政治爭議提供更全面客觀的分析,已在生物醫(yī)學和國際關(guān)系領(lǐng)域驗證有效性。
清華大學研究團隊首次提出情感認知融合網(wǎng)絡(ECFN),讓AI能像人類一樣理解和表達情感。該系統(tǒng)通過多層次情感處理架構(gòu),在情感識別準確率上比現(xiàn)有最佳系統(tǒng)提升32%,情感表達自然度提升45%。研究突破了傳統(tǒng)AI情感理解的局限,實現(xiàn)了跨模態(tài)情感融合、動態(tài)情感追蹤和個性化情感建模,為醫(yī)療、教育、客服等領(lǐng)域帶來革命性應用前景。
哈佛大學研究團隊通過創(chuàng)新的多智能體強化學習方法,讓AI在戰(zhàn)略游戲中學會復雜推理。研究發(fā)現(xiàn)AI通過游戲競爭能發(fā)展出類人思維能力,在邏輯推理、創(chuàng)造性解決問題等方面表現(xiàn)顯著提升。這項突破性成果為未來AI在醫(yī)療、教育、城市管理等領(lǐng)域的應用奠定基礎,展現(xiàn)了通過模擬人類學習過程培養(yǎng)真正智能AI的新路徑。