「信息圖」神經網路動物園前序:Cell與層之間如何連接
1新智元編譯
信息圖表:神經網路基本單元
神經網路動物園展示了不同類型的神經網路基本單元和多樣化的神經網路層之間的連接。但是,它並沒有真正地展示每一個基本單元是如何工作的。許多基本單元的類型我最初會賦予不同的顏色來區分網路,但是現在我發現,這些基本單元或多或少是以相同的方式工作的,所以這裡只需要提供基本的單元圖像,就足以進行描述。
一個基本的神經網路單元是非常簡單的,這也就是你在常規的前饋架構中會看到的那一類。單元通過權重連接到其他神經元,即它可以連接到先前層中的所有神經元。每個連接都有自己的權重,這通常只是一個隨機數。權重可以是負數,正數,非常小,非常大或為零。每一個基本單元連接的值都會乘以相應的連接權重,得到的值再全部相加。除此之外,還增加了偏差(bias)。偏差可以防止單元在零輸出的情況下被卡住,並且可以加速一些操作,減少解決問題所需的神經元數量。偏差也是一個數字,有時是常數(通常為-1或1),有時是變數。然後,這個總和通過激活函數,其結果的值然後變為單元的值。
卷積單元非常像前饋單元,除了它們通常僅連接到前一層的幾個神經元。它們通常用於保存空間信息,因為它們不是連接到幾個隨機單元,而是連接到一定距離內的所有單元。這使得它們對於具有許多局部信息(例如圖像和聲波(但大多是圖像))的數據是非常實用的。去卷積(Deconvolutional)單元恰恰相反:它們傾向於通過局部連接到下一層來解碼空間信息。這兩個單元通常都有很多獨立進行訓練的克隆單元(clone);每個克隆單元都有自己的權重,但是連接的方式是完全一樣的。這些克隆單元可以被認為是位於具有相同結構的分開的網路中。兩者基本上與常規單元相同,但它們的使用方式不同。
池化和內插(interpolating)單元經常與卷積單元結合。這些單元不是真正的單元,而更多的是原始的操作。池化單元接收傳入的連接,並決定哪個連接能通過。在圖像中,這可以被認為是在縮小圖像,您將無法再看到所有像素,並且必須了解保留哪些像素、丟棄哪些像素。內插單元執行相反的操作:它們接收一些信息並將其映射到更多信息。額外的信息由它編造的,就像放在一張小解析度圖片上一樣。內插單元不是池化單元的唯一反向操作,但它們相對較為常見,因為它們實現起來很簡單。二者在連接上分別像卷積和去卷積單元。
均值和標準偏差單元(二者幾乎只能在概率單元中作為配對出現)用於表示概率分布。均值是平均的值,標準偏差表示偏離平均值(在兩個方向)有多遠。例如,用於圖像的概率單元可以包含關於特定像素中有多少紅色的信息。比如,平均值可能是0.5,標準偏差0.2。當從這些概率單元進行採樣時,可以在高斯隨機數發生器中輸入這些值,0.4到0.6之間的任何值都是非常可能的結果,遠離0.5的值會越來越少見(但仍然可能)。它們通常完全連接到上一層或下一層,並且它們沒有偏差。
循環單元的連接不僅表現在層次上,還表現在時間上。每個單元內部會存儲其先前的值。它們像基本單元格一樣更新,但具有額外的權重:連接到單元的以前的值,大部分時間也連接到同一層中的所有單元格。當前值和存儲的先前值之間的這些權重非常像一個易失性存儲器(如RAM),繼承了具有一定「狀態」的兩個屬性,如果不被饋送就會消失。因為先前的值是通過激活功能傳遞的值,並且每個更新通過激活功能與其他權重一起傳遞此激活值,信息將不斷丟失。實際上,保留率是如此之低,後來只要經過四五次迭代,幾乎所有的信息都會丟失。
長短期記憶單元被用來應對循環單元中信息快速損失的問題。 LSTM單元是邏輯循環,從如何為計算機設計存儲單元複製。與存儲兩種狀態的RNN單元相比,LSTM單元存儲四個:輸出的當前和最後值以及「存儲單元」狀態的當前和最後值。它們有三個「門」:輸入,輸出,忘記,它們也只有常規的輸入。這些門中的每一個都具有自己的重量,意味著連接到這種類型的單元需要設置四個權重(而不是僅一個)。門的功能很像流閘,而不是柵欄門:可以讓一切都通過,也可以只是一點點信息通過,或者不讓任何東西流過。這可以通過將輸入信息乘以0到1的值來實現,該值存儲在該門限值中。
然後,輸入門確定允許將多少輸入添加到單元格值中。輸出門確定網路的其餘部分可以看到多少輸出值。忘記門不連接到輸出單元的先前值,而是連接到先前的存儲單元值。它確定要保留的最後一個存儲單元狀態的多少。它沒有連接到輸出,所以信息丟失的發生會更少,因為沒有激活功能放置在循環中。
門循環單元是LSTM單元的變異。它們也使用門來消除信息丟失,但是只需要兩個門:更新和重啟。這使得他們的表現力稍遜一籌,但也稍微快一些,因為他們使用的連接數量更少。實質上,LSTM單元和GRU單元之間存在兩個區別:GRU單元不具有由輸出門保護的隱藏單元狀態,並且它們將輸入和忘記門組合成單個更新門。這個思路是,如果你想允許很多新的信息,你可能會忘記一些舊的信息 。
層
將神經元連接形成圖形的最基本的方法是將所有內容全部連接。這在 Hopfield 網路和 Boltzmann 機器中可以看到。當然,這意味著連接數量呈指數增長,但是性能卻不一定會如預期一般。這被稱為完全(或完全)連接。
一段時間後,有人發現將網路分成不同的層是一個有用的特徵,其中層的定義是一組或幾組神經元,它們彼此不相連,但僅與來自其他組的神經元相關聯。這個概念在限制玻爾茲曼機器中得到使用。使用層的想法現在廣泛應用於任意數量的層,並且可以在幾乎所有當前架構中找到。(也許令人困惑)這也被稱為完全連接或完全連接,因為實際上完全連接的網路是不常見的。
卷積連接的層比完全連接的層更受約束:我們將每個神經元僅連接到靠近的其他組中的神經元。如果一對一地將信息直接饋送到網路中(例如,每個像素使用一個神經元),圖像和聲波所包含的信息量會非常大。卷積連接的想法來自一種觀察:空間對於保留信息可能很重要。從本質上看,這是一個很好的猜測,因為它被用於許多基於圖像和聲波的神經網路應用中。然而,這種設置比完全連接的層更不具有表現力。實質上,它是一種「重要」過濾方式,決定了哪些緊密分組的信息包是重要的;卷積連接非常適合降維。在什麼空間距離神經元仍然可以連接取決於實現,但範圍高於4或5個神經元很少會使用。注意,「空間」通常是指二維空間,這是為什麼大多數表示顯示連接的是三維神經元片段的原因;連接範圍會被應用於所有維度。
另一個選擇當然是隨機連接的神經元。這也帶來了兩個主要的變化:通過允許所有可能連接的一部分,或者連接一些不同層之間的神經元。隨機連接有助於線性降低網路的性能,並且可以在完全連接的層遇到性能問題的大型網路中有用。在某些情況下,具有稍微更多神經元的稀疏連接層可以表現更好,特別是在需要存儲大量信息但沒有多少信息需要交換的情況下(有點類似於卷積連接層的有效性,只是隨後被隨機)。非常稀疏連接的系統(1或2%)也會被使用,如ELM,ESN和LSM所示。特別是在加速網路的情況下,這是很有意義的,因為神經元具有的連接越多,每個權重將承載的能量越少,意味著更少的傳播和重複的模式。
時間延遲連接是不從上一層獲取信息的神經元(通常來自與之相同的層,甚至與其自身連接)之間的連接,但是來自過去的層(主要是先前的迭代)。這允許暫時地存儲相關信息(時間,序列或順序)。這些類型的連接通常會需要經常手動重置,以清除網路的「狀態」。與常規連接的主要區別在於,即使網路未被訓練,這些連接也在不斷變化。
下圖顯示了上述類型的一些小樣本網路及其連接。當我要弄清楚到底連接是怎麼樣的時候,我會使用它(與使用LSTM或GRU單元格特別有關):
點擊閱讀原文可查看職位詳情,期待你的加入~
※令人吃驚的智能助理用戶畫像,典型用戶是52歲女性
※「深度學習看手相」台灣學生獲獎 AI 項目是科學還是偽科學?
※「薦書」機器學習需要的數學知識和基礎書籍推薦
※「Science」深度殘差網路SurfNet將2D圖像轉變為現實物體
TAG:新智元 |
※生物神經網路與機器學習的碰撞,Nature論文DNA試管網路識別
※如何用 Python 和深度神經網路尋找近似圖片?
※谷歌YouTube推薦系統的深度神經網路應用
※當Wi-Fi網路信號較弱時,如何讓iPhone自動開啟移動網路
※雙向循環神經網路及TensorFlow實現
※如何用 Python 和深度神經網路識別圖像?
※如何把神經網路keras模型轉PMML文件?
※生物神經網路與機器學習的碰撞,Nature論文提出DNA試管網路識別手寫數字
※神經元之間是如何形成「社交網路」的
※TensorFlow的使用之實現神經網路
※谷歌Android P停止監控網路活動的應用程序
※iOS 如何進行網路測速
※用Keras 實現的神經網路機器翻譯
※開啟移動AI大門,解讀PowerVR第九代圖形、神經網路產品
※乾貨:Excel圖解卷積神經網路結構
※互聯網化療——BrickerBot 殭屍網路創建者的行動
※借殼攻擊:殭屍網路利用Chrome擴展程序傳播
※來了!《Research》網路投稿系統正式上線
※推薦!PlayGround:可視化神經網路
※喜訊:WiFi聯網發布新標準解決不同路由廠商的網狀網路兼容問題