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