2016 年 9 月,F(xiàn)jodor Van Veen 寫了一篇名為《The Neural Network Zoo》的文章(詳見圖文并茂的神經(jīng)網(wǎng)絡(luò)架構(gòu)大盤點(diǎn):從基本原理到衍生關(guān)系 ),全面盤點(diǎn)了神經(jīng)網(wǎng)絡(luò)的大量框架,并繪制了直觀示意圖進(jìn)行說明。近日,他又發(fā)表了一篇題為《The Neural Network Zoo Prequel:Cells and Layers》文章,該文是其上篇文章的前篇,對(duì)于文中涉及但沒有深入展開的神經(jīng)網(wǎng)絡(luò)的單元與層的部分再次做了一個(gè)圖文并茂的介紹。
Cell(單元)
《The Neural Network Zoo》一文展示了不同類型的單元和不同的層連接風(fēng)格,但并沒有深入探討每個(gè)單元類型是如何工作的。大量的單元類型擁有彼此不同的顏色,從而更清晰地區(qū)分網(wǎng)絡(luò),但是自此之后我發(fā)現(xiàn)這些單元的工作方式大同小異,下面我對(duì)每個(gè)單元逐一描述。
基本的神經(jīng)網(wǎng)絡(luò)單元,屬于常規(guī)性前饋架構(gòu)之中的類型,且相當(dāng)簡(jiǎn)單。單元通過權(quán)重與其他神經(jīng)元相連接,即,它可以連接到前一層的所有神經(jīng)元。每個(gè)連接有其自身的權(quán)重,在開始時(shí)它常常是一個(gè)隨機(jī)數(shù)。一個(gè)權(quán)重可以是負(fù)數(shù)、正數(shù)、小值、大值或者為 0。它連接的每一個(gè)單元值被其各自的連接權(quán)重相乘,得到的結(jié)果值全部相加。在其頂部,也會(huì)相加一個(gè)偏置項(xiàng)。偏置項(xiàng)可以防止單元陷入零點(diǎn)輸出(outputting zero),加速其操作,并減少解決問題所需的神經(jīng)元數(shù)量。偏置項(xiàng)也是一個(gè)數(shù),有時(shí)是常數(shù)(通常是 -1 或 1),有時(shí)是變量。這一總和接著傳遞至激活函數(shù),得到的結(jié)果值即是單元值。
卷積單元和前饋單元很像,除了前者通常連接到前一層的僅僅少數(shù)幾個(gè)神經(jīng)元之外。它們常用于保護(hù)空間信息,因?yàn)槠溥B接到的不是少數(shù)幾個(gè)隨機(jī)單元,而是一定距離內(nèi)的所有單元。這使得它們很適合處理帶有大量局部信息的數(shù)據(jù),比如圖像和音頻(但大部分是圖像)。解卷積單元與卷積單元相反:前者傾向于通過局部連接到下一層來解碼空間信息。兩個(gè)單元通常有獨(dú)自訓(xùn)練的克?。╟lone),每個(gè)克隆各有其權(quán)重,并以相同的方式相互連接。這些克隆可被看做具有相同結(jié)構(gòu)的分離網(wǎng)絡(luò)。兩者本質(zhì)上和常規(guī)單元相同,但是使用不同。
池化和內(nèi)插單元(interpolating cell)頻繁地與卷積單元相連接。這些單元實(shí)際上并不是單元,而是原始操作。池化單元接收輸入的連接并決定哪些連接獲得通過。在圖像中,這可被看做是縮小圖片。你再也看不到所有的像素,并且它不得不學(xué)習(xí)哪些像素應(yīng)該保留哪些舍棄。內(nèi)插單元執(zhí)行相反的操作,它們接收一些信息并將其映射到更多的信息。額外信息是組成的,就像放大一個(gè)低分辨率圖片一樣。內(nèi)插單元不是池化單元唯一的反轉(zhuǎn)操作,但是二者相對(duì)來講比較普遍,因?yàn)槠鋵?shí)現(xiàn)快速而簡(jiǎn)單。它們各自連接,這很像卷積與解卷積。
平均值與標(biāo)準(zhǔn)差單元(幾乎完全是作為概率性單元被成對(duì)發(fā)現(xiàn))用于表征概率分布。平均值就是平均值,標(biāo)準(zhǔn)差是指在兩個(gè)方向上能偏離這個(gè)平均值有多遠(yuǎn)。例如,一個(gè)用于圖像的概率 cell 可以包含一個(gè)特定像素上有多少紅色的信息。比如說平均值為 0.5,標(biāo)準(zhǔn)差為 0.2。當(dāng)從這些概率單元中取樣時(shí),需要在高斯隨機(jī)數(shù)生成器中輸入這些值,值在 0.4 到 0.6 之間的為可能性相當(dāng)大的結(jié)果;那些遠(yuǎn)離 0.5 的值可能性則很低(但依然有可能)。平均值與標(biāo)準(zhǔn)差 cell 經(jīng)常全連接到前一層或下一層,并且沒有偏差。
循環(huán)單元不僅連接到層,并且隨著時(shí)間推移還會(huì)有連接。每個(gè)單元內(nèi)部存儲(chǔ)有先前的值。它們就像基本單元一樣被更新,但是帶有額外的權(quán)重:連接到單元的先前值,并且絕大部分時(shí)間也連接到同一層的所有單元。當(dāng)前值和存儲(chǔ)的先前值之間的這些權(quán)重更像是一個(gè)易失性存儲(chǔ)器(a volatile memory),就像 RAM,接收擁有一個(gè)特定「狀態(tài)」的屬性,同時(shí)如果沒被饋送則消失。由于先前值被傳遞到激活函數(shù),并且通過激活函數(shù)每一個(gè)更新傳遞這個(gè)激活的值連帶其他的權(quán)重,所以信息將不斷丟失。事實(shí)上,保留率是如此之低,以至于在 4 至 5 次迭代之后,幾乎所有的信息都丟失了。
長(zhǎng)短期記憶單元用于解決發(fā)生在循環(huán)單元中信息快速丟失的問題。LSTM 單元是邏輯回路,復(fù)制了為電腦設(shè)計(jì)內(nèi)存單元的方式。相較于存儲(chǔ)兩個(gè)狀態(tài)的 RNN 單元,LSTM 單元可存儲(chǔ)四個(gè):輸出的當(dāng)前值和最終值,以及「內(nèi)存單元」?fàn)顟B(tài)的當(dāng)前值和最終值。LSTM 單元包含三個(gè)「門」:輸入門、輸出門、遺忘門,并且也僅包含常規(guī)輸入。這些門中每一個(gè)各有其權(quán)重,這意味著連接到這種類型的 cell 需要設(shè)置四個(gè)權(quán)重(而不是僅僅一個(gè))。門函數(shù)很像流門(flow gate),而不像柵門(fence gates):它們可以讓任何東西通過,只是一點(diǎn)點(diǎn),沒有,或者之間的任何。這通過與值在 0 到 1(儲(chǔ)存在這一門值中)之間的輸入信息相乘而發(fā)揮作用。輸入門接著決定有多少輸入可被加入到單元值中。輸出門決定有多少輸出值可通過剩余的網(wǎng)絡(luò)被看到。遺忘門并不與輸出單元的先前值相連接,但卻與先前的內(nèi)存單元值相連接。它決定了保留多少最終的內(nèi)存單元狀態(tài)。由于它不連接到輸出,所以信息丟失更少,因?yàn)檠h(huán)中沒有放置激活函數(shù)。
Gated 循環(huán)單元是 LSTM 的一種變體。它們也是用門防止信息丟失,但也就兩種門:更新門(update) 和重置門(reset)。這略微缺乏表現(xiàn)力,但更快。因?yàn)樗鼈冊(cè)谔幪幎加懈俚倪B接。其實(shí),LSTM 和 GRU 之間有兩個(gè)不同:GRU 沒有輸出門保護(hù)的隱單元態(tài),而是把輸入和遺忘門結(jié)合成了一個(gè)更新門。其中的思路是,如果你想要大量的新信息,可以遺忘一些舊信息(或者相反)。
層
將神經(jīng)元連接成圖的最基礎(chǔ)方式是將一切相互連接,這可以在 Hopfield 網(wǎng)絡(luò)和玻爾茲曼機(jī)中看到。當(dāng)然,這意味著連接的數(shù)量會(huì)有指數(shù)級(jí)的增長(zhǎng),但表現(xiàn)力是不折不扣的。這被稱為全連接。
而后,有人發(fā)現(xiàn)將網(wǎng)絡(luò)分成不同的層是有用的,其中一層的一系列或一組神經(jīng)元之間不連接,但與其他組的神經(jīng)元相連接。例如受限玻爾茲曼機(jī)中的網(wǎng)絡(luò)層。如今,使用層的觀念已經(jīng)推廣到了任何數(shù)量的層,在幾乎所有的架構(gòu)中都能看到。這也被稱為全連接(可能有點(diǎn)混淆),因?yàn)閷?shí)際上完全連接的網(wǎng)絡(luò)很不常見。
卷積連接層要比全連接層更受限制:每個(gè)神經(jīng)元只與其他組相近的神經(jīng)元連接。圖像和音頻包含大量的信息,不能一對(duì)一地被用于直接饋送到網(wǎng)絡(luò)(例如,一個(gè)神經(jīng)元對(duì)應(yīng)一個(gè)像素)。卷積連接的思路來自于對(duì)保留重要的空間信息的觀察。結(jié)果證明,這是一個(gè)好的想法,被用于許多基于神經(jīng)網(wǎng)絡(luò)的圖像和語音應(yīng)用中。但這種設(shè)置沒有全連接層更具表達(dá)力。其實(shí)它是一種「重要性」過濾的方式,決定這些緊湊的信息數(shù)據(jù)包中哪些是重要的。卷積連接對(duì)降維也很棒。依靠其實(shí)現(xiàn),及時(shí)空間上非常遠(yuǎn)的神經(jīng)元也能連接,但量程高于 4 或 5 的神經(jīng)元就很少被用到了。注意,這里的「空間」通常指代二維空間,用這種二維空間表達(dá)神經(jīng)元互相連接的三維面。連接范圍在所有的維度都能被應(yīng)用。
另一個(gè)選擇當(dāng)然就是隨機(jī)連接神經(jīng)元了(randomly connected neurons)。它也有兩個(gè)主要變體:允許一部分所有可能的連接,或者連接層之間神經(jīng)元的一部分。隨機(jī)連接有利于線性地減少網(wǎng)絡(luò)的表現(xiàn),可被用于陷入表現(xiàn)問題的大型網(wǎng)絡(luò)的全連接層。在某些情況下,有更多神經(jīng)元的更稀疏的連接層表現(xiàn)更好,特別是當(dāng)有大量的信息需要存儲(chǔ),但不需要交換時(shí)(有點(diǎn)類似于卷積連接層的效力,但卻是隨機(jī)的)。就像 ELM、ESN 和 LSM 中看到的,非常稀疏的連接系統(tǒng)(1% 或 2%)也會(huì)被用到。特別是在脈沖網(wǎng)絡(luò)(spiking network)中,因?yàn)橐粋€(gè)神經(jīng)元有越多的連接,每個(gè)權(quán)重?cái)y帶的能量越少,意味著越少的傳播和模式重復(fù)。
延時(shí)連接是指神經(jīng)元間并非從前面的層獲得信息,而是從過去獲得信息(大部分是之前的迭代)。這使得時(shí)間信息(時(shí)間、時(shí)序)可被存儲(chǔ)。這類連接有時(shí)要手動(dòng)重置,從而清除網(wǎng)絡(luò)的「state」。與常規(guī)連接的主要不同是這些連接持續(xù)在變化,甚至在網(wǎng)絡(luò)沒被訓(xùn)練時(shí)。
下圖展示了以上描述內(nèi)容的一些小樣本網(wǎng)絡(luò)及其連接。在不知道什么連接什么時(shí),我就會(huì)使用它(特別是在做 LSTM 或 GRU cell 時(shí)):
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4779瀏覽量
101082
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論