【編者按】使用前饋卷積神經(jīng)網(wǎng)絡(luò)(convnets)來解決計(jì)算機(jī)視覺問題,是深度學(xué)習(xí)最廣為人知的成果,但少數(shù)公眾的注意力已經(jīng)投入到使用遞歸神經(jīng)網(wǎng)絡(luò)來對(duì)時(shí)間關(guān)系進(jìn)行建模。而根據(jù)深度學(xué)習(xí)三大牛的闡述,LSTM網(wǎng)絡(luò)已被證明比傳統(tǒng)的RNNs更加有效。本文由加州大學(xué)圣迭戈分校(UCSD)研究機(jī)器學(xué)習(xí)理論和應(yīng)用的博士生Zachary Chase Lipton撰寫,用淺顯的語言解釋了卷積網(wǎng)絡(luò)的基本知識(shí),并介紹長短期記憶(LSTM)模型。 鑒于深度學(xué)習(xí)在現(xiàn)實(shí)任務(wù)中的廣泛適用性,它已經(jīng)吸引了眾多技術(shù)專家、投資者和非專業(yè)人員的關(guān)注。盡管深度學(xué)習(xí)最著名的成果是使用前饋卷積神經(jīng)網(wǎng)絡(luò)(convnets)來解決計(jì)算機(jī)視覺問題,少數(shù)公眾的注意力已經(jīng)投入到使用遞歸神經(jīng)網(wǎng)絡(luò)來對(duì)時(shí)間關(guān)系進(jìn)行建模。 (注:為了幫助你開始體驗(yàn)LSTM遞歸網(wǎng)絡(luò),我附上了一個(gè)簡單的微實(shí)例,預(yù)裝了numpy、theano和一個(gè)Jonathan Raiman的LSTM樣例Git克隆) 在最近的文章《學(xué)習(xí)閱讀遞歸神經(jīng)網(wǎng)絡(luò)》中,我解釋了為什么盡管前饋網(wǎng)絡(luò)有難以置信的成功,它們受制于無法明確模擬時(shí)間關(guān)系,以及所有數(shù)據(jù)點(diǎn)都是由固定長度的向量組成的假設(shè)。在那篇文章的結(jié)論部分,我承諾寫一篇的文章,解釋卷積網(wǎng)絡(luò)的基本知識(shí),并介紹長短期記憶(LSTM)模型。 首先,介紹一下神經(jīng)網(wǎng)絡(luò)的基本知識(shí)。一個(gè)神經(jīng)網(wǎng)絡(luò)可以表示為一個(gè)人工神經(jīng)元的圖,或者說節(jié)點(diǎn)和有向邊,用來對(duì)突觸建模。每個(gè)神經(jīng)元是一個(gè)處理單元,它將連接到它的節(jié)點(diǎn)的輸出作為輸入。在發(fā)出輸出之前,每個(gè)神經(jīng)元會(huì)先應(yīng)用一個(gè)非線性激活函數(shù)。正是由于這個(gè)激活函數(shù),神經(jīng)網(wǎng)絡(luò)具有對(duì)非線性關(guān)系進(jìn)行建模的能力。 現(xiàn)在,考慮這個(gè)最近的著名論文Playing Atari with Deep Reinforcement Learning,結(jié)合convnets和強(qiáng)化學(xué)習(xí)來訓(xùn)練電腦玩視頻游戲。該系統(tǒng)在某些游戲上有超越人類的表現(xiàn),比如Breakout!,這種游戲在任意時(shí)候的合適的策略,都可以通過查看屏幕推斷出來。但是,當(dāng)優(yōu)化策略是需要在長時(shí)間跨度規(guī)劃時(shí),系統(tǒng)就和人的表現(xiàn)相差甚遠(yuǎn),例如太空侵略者(Space Invaders)。 因此, 我們引入遞歸神經(jīng)網(wǎng)絡(luò)(RNN),一個(gè)賦予神經(jīng)網(wǎng)絡(luò)對(duì)時(shí)間進(jìn)行顯式建模的能力,通過添加跨越時(shí)間點(diǎn)的自連接隱藏層。換句話說,隱藏層的反饋,不僅僅進(jìn)入輸出端,而且還進(jìn)入了下一時(shí)間步驟隱藏層。在本文中,我將使用遞歸網(wǎng)絡(luò)的一些示意圖,從我即將審查的這一主題的文獻(xiàn)中摘錄。 現(xiàn)在,我們可以通過通過兩個(gè)時(shí)間步來展開這個(gè)網(wǎng)絡(luò),將連接以無環(huán)的形式可視化。注意權(quán)重(從輸入到隱藏和隱藏到輸出)在每個(gè)時(shí)間步是相同的。遞歸網(wǎng)絡(luò)有時(shí)被描述為深度網(wǎng)絡(luò),其深度不僅僅發(fā)生在輸入和輸出之間,而且還發(fā)生在跨時(shí)間步,每個(gè)時(shí)間步可以被認(rèn)為是一個(gè)層。 一旦被展開,這些網(wǎng)絡(luò)可以使用反向傳播,進(jìn)行端到端的訓(xùn)練。這種跨時(shí)間步的反向傳播擴(kuò)展,被稱為沿時(shí)間反向傳播(Backpropagation Through Time)。 然而有一個(gè)問題,在Yoshua Bengio經(jīng)常被引用的論文(Learning Long-Term Dependencies with Gradient Descent is Difficult)中提到,那就是消失的梯度。換句話說,后面時(shí)間步的錯(cuò)誤信號(hào),往往并不能回到足夠遠(yuǎn)的過去,像更早的時(shí)間步一樣,去影響網(wǎng)絡(luò)。這使它很難以學(xué)習(xí)遠(yuǎn)距離的影響,比如放過的那只小卒會(huì)在12步后回來將你。 補(bǔ)救這一問題的措施是1997年首先被Sepp Hochreiter和Jurgen Schmidhuber提出的長短期記憶(LSTM)模型。在這個(gè)模型中,常規(guī)的神經(jīng)元,即一個(gè)將S型激活應(yīng)用于其輸入線性組合的單位,被存儲(chǔ)單元所代替。每個(gè)存儲(chǔ)單元是與一個(gè)輸入門,一個(gè)輸出門和一個(gè)跨越時(shí)間步驟無干擾送入自身的內(nèi)部狀態(tài)相關(guān)聯(lián)。 在該模型中,對(duì)于每個(gè)存儲(chǔ)單元,三套權(quán)重從輸入訓(xùn)練而得,包括先前時(shí)間步中完整的隱藏狀態(tài)。一個(gè)饋送到輸入節(jié)點(diǎn),在上圖的底部。一個(gè)饋送到輸入門,在最右側(cè)的單元格底部顯示。另一個(gè)饋送到輸出門,在頂部最右側(cè)的顯示。每個(gè)藍(lán)色節(jié)點(diǎn)與一個(gè)激活函數(shù)相關(guān)聯(lián),典型情況是S型函數(shù),以及表示乘法的Pi節(jié)點(diǎn)。單元中最中央的節(jié)點(diǎn)稱為內(nèi)部狀態(tài),并且以1的權(quán)重跨越時(shí)間步,反饋回本身。內(nèi)部狀態(tài)的自連接邊,被稱為恒定誤差傳送帶或CEC。 就前傳遞而言,輸入門學(xué)習(xí)來決定何時(shí)讓激活傳入存儲(chǔ)單元,而輸出門學(xué)習(xí)何時(shí)讓激活傳出存儲(chǔ)單元。相應(yīng)的,關(guān)于后傳遞,輸出門是在學(xué)習(xí)何時(shí)讓錯(cuò)誤流入存儲(chǔ)單元,而輸入門學(xué)習(xí)何時(shí)讓它流出存儲(chǔ)單元,并傳到網(wǎng)絡(luò)的其余部分。這些模型已被證明在多種多樣的手寫識(shí)別和圖像加字幕任務(wù)上非常成功。也許得到多一些關(guān)愛,它們能在太空侵略者上獲勝。 作者介紹:Zachary Chase Lipton is a PhD student in the Computer Science department at UCSD. He researches machine learning theory and applications, and is a contributing editor to KDnuggets. |
|