史上最好記的神經網絡結構速記表(上)

本文講的是史上最好記的神經網絡結構速記表(上),

新的神經網絡結構不斷涌現,我們很難一一掌握。哪怕一開始只是記住所有的簡稱( DCIGN,BiLSTM,DCGAN ),也會讓同學們吃不消。

所以我決定寫篇文章歸納歸納,各種神經網絡結構。它們大部分都是神經網絡,也有一些是完全不同的結構。雖然所有結構說起來都是新穎而獨特的,但當我畫出結點的結構圖時……它們之間的內在聯系顯得更有意思。

總表

史上最好記的神經網絡結構速記表(上)

當我們在畫節點圖的時候發現了一個問題:這些圖并沒有展示出來這些神經結構是怎么使用的。

打個比方,變分自編碼器( VAE )看起來跟自編碼器( AE )真的差不多,但它們的訓練過程卻相差很遠。在使用訓練好的網絡時更為不同,因為 VAE 是生成器,是通過添加噪音來獲得新樣本的。而 AE 只是簡單地通過搜索記憶,找到與輸入最接近的訓練樣本。

我需要強調的是,這個圖并不能反映不同節點結構內部是如何運作的(這已經不是今天的話題了)。

需要注意的是,雖然我們使用的大部分簡稱是被普遍接受的,仍有一些并非如此。RNN 有的時候指的是遞歸神經網絡( recursive neural networks ),但大部分時候指的是循環神經網絡( recurrent neural networks )。有時能看到 RNN 會被用來代表任何循環結構,包括 LSTM, GRU 甚至是雙向網絡的變型。 AE 偶爾也有類似的問題, VAE 和DAE 有時也被稱為 AE 。許多簡稱在末尾的 N 的數量上有區別,因為你可以管卷積神經網絡( convolutional neural network )叫成卷積網絡( convolutional network )(就會形成兩種簡稱: CNN 和 CN )。

因為新的網絡一直在不斷地出現,構建一張完整的列表實際上是不可能的。就算是有這么一張表格,你在表格里找某一個也相當吃力,有時你會忽視掉一部分。所以雖然這張列表或許可以為你打開人工智能世界的大門, 但決不能認為這張表格列出了所有的結構,特別是當這篇文章寫完很久之后,你才讀到它。

對每個圖片里的結構,我都寫了一個非常非常簡短的說明。如果你對某類結構很熟悉但對具體某個結構不熟的話,你可能會覺得這些說明挺有用的。

1

史上最好記的神經網絡結構速記表(上)

前饋神經網絡( FF 或 FFNN )和感知機( P )十分直接,信息從前端一路傳遞到后端(從輸入到輸出)。神經網絡通常有層的概念,每層可能是輸入單元,隱藏單元或者輸出單元組成。單個層內沒有連接,通常是兩個相鄰的層之間全連接,(一層的所有神經元都和另一層的所有神經元互相連接)。

最簡單但有效的神經網絡有兩個輸入單元,一個輸出單元,可以用于構建邏輯門。通常給網絡的是成對的信息,輸入和我們希望的輸出,用反向傳播來訓練 FFNN 。這種叫做監督學習,和無監督學習相反,無監督學習是我們只給網絡輸入,讓網絡自己填補空缺。反向傳播的誤差通常是模型給定的輸出和應該的輸出之間的差距的某種變型(比如說 MSE 或者就是線性的做差)。如果網絡有足夠多的隱藏神經元,理論上它總可以給出輸入和輸出之間的關系建模。實際運用它們中有一定的局限性,但經常和其他網絡組合起來構成新的網絡。

Rosenblatt, Frank. “The perceptron: a probabilistic model for information storage and organization in the brain.” Psychological review 65.6 (1958): 386.

2

史上最好記的神經網絡結構速記表(上)

徑向基函數( RBF )網絡是 FFNN 網絡附上徑向基函數作為激活函數。就只是這樣而已。我不是說它沒什么用,而是大部分用其他激活函數的 FFNN 沒有專用的名字。 這個有名字主要只是因為它恰巧在對的時間被發現了。

Broomhead, David S., and David Lowe. Radial basis functions, multi-variable functional interpolation and adaptive networks. No. RSRE-MEMO-4148. ROYAL SIGNALS AND RADAR ESTABLISHMENT MALVERN (UNITED KINGDOM), 1988.

3

史上最好記的神經網絡結構速記表(上)

Hopfield 網絡( HN )是一個每個神經元都和其他的神經元互相連接的網絡; 它就是一盤徹底糾纏在一起的意大利面,每個節點也是如此。每個節點既是訓練前的輸入,又是訓練中的隱藏節點,還是最后的輸出。網絡中的訓練過程先計算出權重,然后每個神經元設置成我們想要的值。這個值將不再變動。一旦訓練了一種或多種模式,網絡最終會收斂到某個學習好的模式,因為網絡只在這些狀態上穩定。

請注意,網絡不一定符合想要的結果。(可惜它并不是一個有魔法的黑箱子)它能夠穩定部分源于網絡的總能量或是隨著訓練逐漸降低的溫度。每個神經元有一個對應于溫度的激活閾值,如果輸入的值加起來的和超過了這個閾值,神經元就會返回兩個狀態之一(通常是 -1 或 1 ,有時是 0 或 1 )。網絡的更新可以同步完成,更通常的做法是一個一個更新參數。如果一個一個更新的話,會產生一個公平隨機的序列來決定單元更新的順序(公平隨機指的是一共 n 個選項一個個地更新,一共循環 n 次)。

所以你可以說當每個單元都更新過而且每個都不變了,這個網絡穩定(退火)了(完成了收斂)。這個網絡通常被稱為聯想記憶因為它能夠收斂到和輸入最相近的狀態。如果人們能看到一半的桌子,我們能想出另一半桌子,同樣地這個網絡也會由殘缺的半個桌子和一些噪音收斂到一個完整的桌子。

Hopfield, John J. “Neural networks and physical systems with emergent collective computational abilities.” Proceedings of the national academy of sciences 79.8 (1982): 2554-2558.

4

史上最好記的神經網絡結構速記表(上)

馬爾可夫鏈( MC 或離散時間馬爾可夫鏈, DTMC )是 BM 和 HN 的前身。它可以這樣理解:從我在的節點,到達我周圍的節點的概率是多少?它們是無記憶的(這就是馬爾可夫性質),這意味著下一狀態轉移到哪里完全依賴于上一個狀態。這不能算是一個神經網絡,但是有一點類似神經網絡,而且是 BM 和 HN 的理論基礎。 MC 通常我們認為它不是一個神經網絡, BM,RBM,HN 也是。馬爾可夫鏈不一定是全連接的。

Hayes, Brian. “First links in the Markov chain.” American Scientist 101.2 (2013): 252.

5

史上最好記的神經網絡結構速記表(上)

玻爾茲曼機( BM )和 HN 非常相似,但有些神經元被標注為輸入神經元,其他的仍然是隱藏的。這些輸入神經元在完成了整個網絡更新后會成為輸出神經元。它從隨機權重開始通過反向傳播學習,最近也會使用對比散度(一個用來決定兩個信息增益之間梯度的馬爾科夫鏈)學習。對比 HN, 神經元通常有二元激活模式。由于使用 MC 訓練,BM 是一個隨機網絡。?

BM 的訓練和使用和 HN 很相似:把輸入神經元設到箝位值然后這個網絡就自由了(不用外力了)。這些單元在自由之后可以取任何值,我們在輸入神經元和隱藏神經元間而反復迭代。激活模式是由全局溫度控制的,更低的全局溫度會降低單元的能量并令激活模式穩定下來。網絡會在合適的溫度下達到平衡點。

Hinton, Geoffrey E., and Terrence J. Sejnowski. “Learning and releaming in Boltzmann machines.” Parallel distributed processing: Explorations in the microstructure of cognition 1 (1986): 282-317.

6

史上最好記的神經網絡結構速記表(上)

限制玻爾茲曼機( RBM )和 BM 非常類似(驚不驚喜)所以也和 HN 類似。RBM 和 BM最大的區別是 RBM 更利于使用因為它是受限制的。它們不是每個神經元都和其他相連,而是每個組的神經元和別的組的神經元連接,所以沒有輸入神經元直接連接到其他輸入神經元,也沒有隱藏神經元連接到其他隱藏神經元。 RBM 可以類似于 FFNN 的訓練方式來訓練,但要做一點點改變:不是把信息從頭傳到末再反向傳播誤差,而是先把信息從頭傳到末,再把信息反向傳回(到第一層)。然后接著開始用前向和反向傳播來訓練。

Smolensky, Paul. Information processing in dynamical systems: Foundations of harmony theory. No. CU-CS-321-86. COLORADO UNIV AT BOULDER DEPT OF COMPUTER SCIENCE, 1986.

7

史上最好記的神經網絡結構速記表(上)

自編碼( AE )有一點類似 FFNN, 因為 AE 更像是一個 FFNN 的別的用法而不是一個完全新的結構。自編碼的基本思想是對信息自動地編碼(像是壓縮但不是加密),由此得名。整個網絡的形狀像一個沙漏,隱藏層比輸入層和輸出層都小。 AE 通常是關于中間層(一層或兩層,因為層數可以是奇數或偶數)對稱的。最小的一層通常在最中間,這里是信息最為壓縮的地方(網絡的阻塞點)。中間層的上方都稱為編碼區,下方都稱為解碼區,中間(意不意外)稱為編碼。我們可以給定輸入,誤差設置為輸入和輸出的差異,并用反向傳播誤差來訓練網絡。 AE 可以設計成對稱的權重結構,這樣編碼權重和解碼權重就一樣了。

Bourlard, Hervé, and Yves Kamp. “Auto-association by multilayer perceptrons and singular value decomposition.” Biological cybernetics 59.4-5 (1988): 291-294.

8

史上最好記的神經網絡結構速記表(上)

稀疏自編碼( SAE )某種程度上是 AE 的反面。我們并不是教網絡把一堆信息用更少的空間或者節點表示,而是試圖把信息編碼到更大的空間中。所以我們并不把網絡在中間收縮,再放大到輸入的規模,反而是把中間層的規模擴大。這種網絡可以用來在數據集中提取許多小特征。

如果我們用訓練 AE 的方式訓練 SAE 的話,那大概率我們會得到一個完全沒用的恒等網絡 (進去什么樣出來還是什么樣,什么轉換函數或者分解都沒有)。為了防止這種情況發生,我們不反饋輸入,而是反饋輸入加稀疏驅動器。這個稀疏驅動器是一種閾值過濾器,只能讓某個特定的誤差回傳參與到訓練中,其他的誤差都是無關的并被置為 0 。這樣它就模擬了脈沖神經網絡,不是所有的神經元都一起激活(具有生物合理性)。

Marc’Aurelio Ranzato, Christopher Poultney, Sumit Chopra, and Yann LeCun. “Efficient learning of sparse representations with an energy-based model.” Proceedings of NIPS. 2007.

9

史上最好記的神經網絡結構速記表(上)

變分自編碼器( VAE )和 AE 有一樣的結構, 但被教授了一些別的東西:一個近似輸入樣本的概率分布。有一點不忘初心的意思,它和 BM 和 RBM 聯系更緊密。但它總歸還是基于貝葉斯模型作為概率推斷和獨立性,以及重新參數化的技巧來完成不一樣的表征。概率推斷和獨立性的部分解釋起來挺直觀,但它們其實是基于復雜的數學。

這些基礎可以這樣理解:把影響考慮進來。如果一件事在某個地方發生了,另一件事在另一個地方發生,它們不一定相關的。如果它們不相關,那么誤差傳播應該考慮到這一點。這是一個很有用的方法因為神經網絡(某種程度上來說)是一個很大的圖模型,所以這個方法可以幫助我們排除某些節點對其他節點的影響,幫助我們深入更深的層。

Kingma, Diederik P., and Max Welling. “Auto-encoding variational bayes.” arXiv preprint arXiv:1312.6114 (2013).

10

史上最好記的神經網絡結構速記表(上)

去噪自編碼器( DAE )是一個 AE ,但我們不只給它輸入信息,而給它帶有噪聲的(比如把圖片調成更有顆粒感)信息輸入。我們有一樣計算誤差,但網絡的輸出和原有的不帶噪聲的輸入進行比較。這樣有利于網絡不拘泥于學習細節,而是學習一些更廣泛的特征,因為小的特征往往是錯的,會隨著噪音經常變動。

Vincent, Pascal, et al. “Extracting and composing robust features with denoising autoencoders.” Proceedings of the 25th international conference on Machine learning. ACM, 2008.

11

史上最好記的神經網絡結構速記表(上)

深度信念網絡( DBN )是一個堆疊的結構,往往是 RBM 或是 VAE 堆疊起來的。這個網絡被證實能夠逐層地有效地訓練,每個 AE 或 RBM 只要學會對前一層的網絡進行編碼。這個技巧也稱為貪心訓練,貪心意味著對于局部最優解決方案找到了一個不錯的解但不一定是最優解。 DBN 可以通過對比散度或是反向傳播來訓練,學習用概率模型的方式表征數據,就像普通的 RBM 或是 VAE 。一旦非監督學習訓練或者收斂到一個比較穩定的狀態,這個模型可以用來生成新的數據。如果是使用對比散度來訓練的,那這個網絡甚至還可以用來對已有的數據進行分類,因為神經元被訓練于尋找不同的數據特征。

Bengio, Yoshua, et al. “Greedy layer-wise training of deep networks.” Advances in neural information processing systems 19 (2007): 153.

12

史上最好記的神經網絡結構速記表(上)

卷積神經網絡( CNN 或深度卷及神經網絡 DCNN )和其他大部分網絡很不一樣。它們最初是用來處理圖像的,但現在也被用來處理其他形式的輸入比如說音頻。

CNN 的一種典型的用途是給網絡輸入圖片,讓網絡來分類這些數據,比如說當我們給它一張貓的圖片,網絡輸出 “貓”;當我們給出一張狗的圖片,網絡輸出“狗”。 CNN 通常由一個輸入“掃描儀”開始,而不是一次性分析全部的輸入。打個比方,我們輸入一張 200 x 200 像素的圖片,我們并不想要一層 40000 個節點的一層,相反,我們創建一個 20 x 20 的輸入掃描儀層,就是說從一開始的 20 x 20 個像素點進行輸入(通常是圖片的左上角)。

當我們把這個輸入完成后(有可能是用于訓練),我們輸入下一個 20 x 20 個像素:我們把這個掃描儀往右平移一個像素。注意到我們并不把一下子平移 20 個像素(或者掃描儀的寬度),我們并不把圖片拆解成 20 x 20 的塊,而是一點點地爬過去。輸入數據被送入卷積層,而不是普通的層,卷積層里面的節點不是和其他所有節點相連接的。

每個節點只關注與自身和周邊的節點(多近的周邊取決于具體實現,但通常不會很多)。卷積層往往會隨著層次更深而收縮,大部分是按照可以整除輸入層大小的倍數收縮(比如說 20 后面的層可能是 10 接下來是 5)。2 的冪次更為常用,因為它們可以被整除干凈:32,16,8,4,2,1。除開卷積層,網絡里常常還有池化層。池化是一種過濾掉細節的方法:一種常見的池化技巧是最大池化,比如我們取 2 x 2 的像素,傳遞出的是紅色值最大的像素點。

把 CNN 用在音頻上,我們通常輸入音頻波形,一片段一片段地緩慢移動音頻片段。CNN 的實際實現往往在網絡末端加上一個 FFNN 用于進一步處理信息,這樣可以加入一些高度非線性的抽象。這種網絡被稱為 DCNN ,但這兩個名字和簡稱往往可以混用。

LeCun, Yann, et al. “Gradient-based learning applied to document recognition.” Proceedings of the IEEE 86.11 (1998): 2278-2324.

歡迎關注雷鋒網雷鋒字幕組專欄,獲得更多AI知識~感謝雷鋒網(公眾號:雷鋒網)雷鋒字幕組志愿者對本期內容作出貢獻。

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

史上最好記的神經網絡結構速記表(上)







本文作者:雷鋒字幕組
本文轉自雷鋒網禁止二次轉載,原文鏈接

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280051.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280051.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280051.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

厚積薄發,微軟OFFICE云時代宏腳本來臨,Excel Srcipt已經推進到桌面端可用

前一陣子,已經發現微軟在Excel上發布了Office Script For Excel,當時只能在網頁端的Excel上使用,今天打開桌面端的Excel,發現多了一個【自動執行】選項卡。再一次看了下,比起以前的Office Addin,要先進得多…

如何使用Amazon Echo控制您的Eero Wi-Fi網絡

Thanks to the power of Alexa and its open API, you’re able to control a vast number of devices using just your voice. If you have an Eero Wi-Fi system, you can even control your home network with the Amazon Echo. 得益于Alexa的強大功能及其開放的API&#xf…

H5在WebView上開發小結

背景 來自我司業務方要求,需開發一款APP。但由于時間限制,只能采取套殼app方式,即原生app內嵌webview展示前端頁面。本文主要記述JavaScript與原生app間通信,以及內嵌webview開發時,前端方面可能踩的一些坑。 技術架構…

C#的?和??

1.?? 為了實現Nullable數據類型轉換成non-Nullable類型數據,才有的一個操作符; 意義:一變量取值,取符號左邊的值,若左邊為null,那么取賦值??右邊的&#xff1…

odoo 自定義視圖_如何使用Windows的五個模板自定義文件夾視圖

odoo 自定義視圖If you’re particular about how Windows displays the contents of your folders, you can cut your customization time down considerably by taking advantage of File Explorer’s five built-in folder templates. 如果您特別想知道Windows如何顯示文件夾…

C#之ILC和C++的CLR前者更快?

楔子ILC是C#寫的,CLR是C。.Net 7中,為何微軟執意用一個托管的模型去嘗試取代非托管框架呢?至少native code方面它是這么做的這個問題一直縈繞腦海。非托管和托管十年前出版的那本久負盛名的《CLR via C#》至今都是不可或缺的存在,…

歷史

python的歷史 kfsaldkfsdf fdskfdsa fdsjkafsjda fdshkfjsdja View Codefjdskaffdsjkaffdsjakflsad;fjdsklaf 轉載于:https://www.cnblogs.com/jin-xin/articles/10448286.html

typescript+react+antd基礎環境搭建

typescriptreactantd基礎環境搭建(包含樣式定制) tsconfig.json 配置 // 具體配置可以看上面的鏈接 這里module moduleResolution的配置都會影響到antd的顯示 // allowSyntheticDefaultImports 是antd官網給的配置 必須加上 {"compilerOptions&quo…

最小生成樹Prim算法和Kruskal算法

https://www.cnblogs.com/JoshuaMK/p/prim_kruskal.html 轉載于:https://www.cnblogs.com/DixinFan/p/9225105.html

如何重新打開Windows防火墻提示?

If you are setting up a new program that needs network access, but are not paying close enough attention, you might end up accidentally causing Windows firewall to block the program. How do you fix such a mistake? Today’s SuperUser Q&A post helps a f…

判斷字符串出現次數最多的字符 及 次數

分析 題目的意思大致就是找出每個字符出現的次數,然后比較大小。那么每個字符都應該對應它出現的次數。既然是一一對應的,那我們就想到用對象的key和value來儲存字符和其出現的次數。具體做法 新建一個空對象obj 遍歷給定的字符串接下來就是最重要的 把字…

AI x 量化:華爾街老司機解密智能投資正確姿勢

隨著中國經濟的騰飛,中產階級的崛起,投資管理逐漸步入尋常百姓家。 值得注意的是,在十年前“無財可理”問題解決后,另一個矛盾愈發凸顯——層次不齊的投資素質。據wind數據統計,2004年至2015年12年間,只有3…

如何遠程調試 MAUI blazor / Blazor Hybrid

我們知道瀏覽器模式下 Blazor 可以使用 F12 打開開發工具,調試js查看頁面元素,那當 Maui Blazor 提示煩人的 an unhandled error has occurred 該怎么進行調試呢?1. VS 運行工程于 Debug 模式下,只要 BlazorWebview 控件處于焦點,直接按F12就可以打開開發工具了. 沒有焦點就鼠…

筆記本觸摸鍵盤驅動自動禁用_如何為iPad的藍牙鍵盤禁用自動更正

筆記本觸摸鍵盤驅動自動禁用The take-for-granted features we enjoy when using an on-screen keyboard—like auto-corrections and auto-capitalization–quickly become a hindrance if you’re using a physical keyboard with your iOS device. Let’s look at how to qu…

發票的作用

目錄 發票上的兩個章:稅種:發票的作用:征稅方式:發票限額:參考鏈接發票上的兩個章: 稅務局的發票監制章商家的發票專用章稅種: 增值稅:商家在賣東西時為獲利,而提高價格的…

opencv-原圖基礎上添加指定顏色

前言 項目中需要將某些區域使用不同的顏色表示出來&#xff0c;同時能夠看到原圖作為底色。 代碼 #include "opencv2/highgui/highgui.hpp" #include <opencv2/imgproc.hpp> #include <iostream> using namespace cv;int main() {Mat image imread( &q…

微軟發布Azure Application Insights for Node.js 1.0版本

在北美舉行的Node.js交互大會上&#xff0c;微軟發布了用于Node.js的Application Insights SDK。\\來自微軟JavaScript平臺和工具部門的高級經理Arunesh Chandra在博客上發布了這一消息&#xff0c;他說&#xff0c;微軟“希望能夠提升開發者在Azure上構建和運行Node.js應用程序…

正則表達式應用:實現一個簡單的計算器

實現一個簡單的計算器&#xff0c;代碼如下&#xff1a; 下面的函數用來檢驗數學表達式的合規性&#xff0c;當然此處只實現兩個檢驗&#xff1a;(1)括號應該閉合 (2)不能出現字母 def check_expression(str):check_result Trueif str.count(() ! str.count()):print(表達式有…

軟考復盤:我的一些復習經驗分享

大家好&#xff0c;我是Edison。最近全身乏力頭疼&#xff0c;38.5度高燒&#xff0c;好在癥狀較輕&#xff0c;經過一天躺平加吃了芬必得&#xff08;簡直神藥&#xff09;后&#xff0c;退燒了&#xff0c;也不乏力了&#xff0c;也就趁娃娃睡覺時間跟大家分享一下軟考的復習…

自定義注解在攔截器中為空_如何在Android中為特定聯系人設置自定義鈴聲

自定義注解在攔截器中為空Everyone likes to know who’s calling before they actually pick up the phone, and the easiest way to achieve that is with custom ringtones for specific callers. That way, when your phone starts blasting “Cherry Pie,” you know it’…