導航:首頁 > 異常信息 > 神經網路全連接熱力圖

神經網路全連接熱力圖

發布時間:2022-10-01 13:21:16

1. 為什麼在卷積神經網路中全連接層4096維特徵向量

通常為了計算的優化等緣故,維度一般取2的指數。
全連接層後續計算loss,總共類別應該會有上千類,所以之前的layer最好也是1000這種規模,所以一般取1024,2048,4096等。

通過在數據集上進行測試,可以跑出來一個結果比較好的網路結構

2. 卷積神經網路為什麼最後接一個全連接層

在常見的卷積神經網路的最後往往會出現一兩層全連接層,全連接一般會把卷積輸出的二維特徵圖(feature map)轉化成(N*1)一維的一個向量
全連接的目的是什麼呢?因為傳統的端到到的卷積神經網路的輸出都是分類(一般都是一個概率值),也就是幾個類別的概率甚至就是一個數--類別號,那麼全連接層就是高度提純的特徵了,方便交給最後的分類器或者回歸。

但是全連接的參數實在是太多了,你想這張圖里就有20*12*12*100個參數,前面隨便一層卷積,假設卷積核是7*7的,厚度是64,那也才7*7*64,所以現在的趨勢是盡量避免全連接,目前主流的一個方法是全局平均值。也就是最後那一層的feature map(最後一層卷積的輸出結果),直接求平均值。有多少種分類就訓練多少層,這十個數字就是對應的概率或者叫置信度。

3. Hopfield神經網路用python實現講解

神經網路結構具有以下三個特點:

神經元之間全連接,並且為單層神經網路。

每個神經元既是輸入又是輸出,導致得到的權重矩陣相對稱,故可節約計算量。

在輸入的激勵下,其輸出會產生不斷的狀態變化,這個反饋過程會一直反復進行。假如Hopfield神經網路是一個收斂的穩定網路,則這個反饋與迭代的計算過程所產生的變化越來越小,一旦達到了穩定的平衡狀態,Hopfield網路就會輸出一個穩定的恆值。

Hopfield網路可以儲存一組平衡點,使得當給定網路一組初始狀態時,網路通過自行運行而最終收斂於這個設計的平衡點上。當然,根據熱力學上,平衡狀態分為stable state和metastable state, 這兩種狀態在網路的收斂過程中都是非常可能的。

為遞歸型網路,t時刻的狀態與t-1時刻的輸出狀態有關。之後的神經元更新過程也採用的是非同步更新法(Asynchronous)。

Hopfield神經網路用python實現

4. 神經網路BP模型

一、BP模型概述

誤差逆傳播(Error Back-Propagation)神經網路模型簡稱為BP(Back-Propagation)網路模型。

Pall Werbas博士於1974年在他的博士論文中提出了誤差逆傳播學習演算法。完整提出並被廣泛接受誤差逆傳播學習演算法的是以Rumelhart和McCelland為首的科學家小組。他們在1986年出版「Parallel Distributed Processing,Explorations in the Microstructure of Cognition」(《並行分布信息處理》)一書中,對誤差逆傳播學習演算法進行了詳盡的分析與介紹,並對這一演算法的潛在能力進行了深入探討。

BP網路是一種具有3層或3層以上的階層型神經網路。上、下層之間各神經元實現全連接,即下層的每一個神經元與上層的每一個神經元都實現權連接,而每一層各神經元之間無連接。網路按有教師示教的方式進行學習,當一對學習模式提供給網路後,神經元的激活值從輸入層經各隱含層向輸出層傳播,在輸出層的各神經元獲得網路的輸入響應。在這之後,按減小期望輸出與實際輸出的誤差的方向,從輸入層經各隱含層逐層修正各連接權,最後回到輸入層,故得名「誤差逆傳播學習演算法」。隨著這種誤差逆傳播修正的不斷進行,網路對輸入模式響應的正確率也不斷提高。

BP網路主要應用於以下幾個方面:

1)函數逼近:用輸入模式與相應的期望輸出模式學習一個網路逼近一個函數;

2)模式識別:用一個特定的期望輸出模式將它與輸入模式聯系起來;

3)分類:把輸入模式以所定義的合適方式進行分類;

4)數據壓縮:減少輸出矢量的維數以便於傳輸或存儲。

在人工神經網路的實際應用中,80%~90%的人工神經網路模型採用BP網路或它的變化形式,它也是前向網路的核心部分,體現了人工神經網路最精華的部分。

二、BP模型原理

下面以三層BP網路為例,說明學習和應用的原理。

1.數據定義

P對學習模式(xp,dp),p=1,2,…,P;

輸入模式矩陣X[N][P]=(x1,x2,…,xP);

目標模式矩陣d[M][P]=(d1,d2,…,dP)。

三層BP網路結構

輸入層神經元節點數S0=N,i=1,2,…,S0;

隱含層神經元節點數S1,j=1,2,…,S1;

神經元激活函數f1[S1];

權值矩陣W1[S1][S0];

偏差向量b1[S1]。

輸出層神經元節點數S2=M,k=1,2,…,S2;

神經元激活函數f2[S2];

權值矩陣W2[S2][S1];

偏差向量b2[S2]。

學習參數

目標誤差ϵ;

初始權更新值Δ0

最大權更新值Δmax

權更新值增大倍數η+

權更新值減小倍數η-

2.誤差函數定義

對第p個輸入模式的誤差的計算公式為

中國礦產資源評價新技術與評價新模型

y2kp為BP網的計算輸出。

3.BP網路學習公式推導

BP網路學習公式推導的指導思想是,對網路的權值W、偏差b修正,使誤差函數沿負梯度方向下降,直到網路輸出誤差精度達到目標精度要求,學習結束。

各層輸出計算公式

輸入層

y0i=xi,i=1,2,…,S0;

隱含層

中國礦產資源評價新技術與評價新模型

y1j=f1(z1j),

j=1,2,…,S1;

輸出層

中國礦產資源評價新技術與評價新模型

y2k=f2(z2k),

k=1,2,…,S2。

輸出節點的誤差公式

中國礦產資源評價新技術與評價新模型

對輸出層節點的梯度公式推導

中國礦產資源評價新技術與評價新模型

E是多個y2m的函數,但只有一個y2k與wkj有關,各y2m間相互獨立。

其中

中國礦產資源評價新技術與評價新模型

中國礦產資源評價新技術與評價新模型

設輸出層節點誤差為

δ2k=(dk-y2k)·f2′(z2k),

中國礦產資源評價新技術與評價新模型

同理可得

中國礦產資源評價新技術與評價新模型

對隱含層節點的梯度公式推導

中國礦產資源評價新技術與評價新模型

E是多個y2k的函數,針對某一個w1ji,對應一個y1j,它與所有的y2k有關。因此,上式只存在對k的求和,其中

中國礦產資源評價新技術與評價新模型

中國礦產資源評價新技術與評價新模型

設隱含層節點誤差為

中國礦產資源評價新技術與評價新模型

中國礦產資源評價新技術與評價新模型

同理可得

中國礦產資源評價新技術與評價新模型

4.採用彈性BP演算法(RPROP)計算權值W、偏差b的修正值ΔW,Δb

1993年德國 Martin Riedmiller和Heinrich Braun 在他們的論文「A Direct Adaptive Method for Faster Backpropagation Learning:The RPROP Algorithm」中,提出Resilient Backpropagation演算法——彈性BP演算法(RPROP)。這種方法試圖消除梯度的大小對權步的有害影響,因此,只有梯度的符號被認為表示權更新的方向。

權改變的大小僅僅由權專門的「更新值」

確定

中國礦產資源評價新技術與評價新模型

其中

表示在模式集的所有模式(批學習)上求和的梯度信息,(t)表示t時刻或第t次學習。

權更新遵循規則:如果導數是正(增加誤差),這個權由它的更新值減少。如果導數是負,更新值增加。

中國礦產資源評價新技術與評價新模型

RPROP演算法是根據局部梯度信息實現權步的直接修改。對於每個權,我們引入它的

各自的更新值

,它獨自確定權更新值的大小。這是基於符號相關的自適應過程,它基

於在誤差函數E上的局部梯度信息,按照以下的學習規則更新

中國礦產資源評價新技術與評價新模型

其中0<η-<1<η+

在每個時刻,如果目標函數的梯度改變它的符號,它表示最後的更新太大,更新值

應由權更新值減小倍數因子η-得到減少;如果目標函數的梯度保持它的符號,更新值應由權更新值增大倍數因子η+得到增大。

為了減少自由地可調參數的數目,增大倍數因子η+和減小倍數因子η被設置到固定值

η+=1.2,

η-=0.5,

這兩個值在大量的實踐中得到了很好的效果。

RPROP演算法採用了兩個參數:初始權更新值Δ0和最大權更新值Δmax

當學習開始時,所有的更新值被設置為初始值Δ0,因為它直接確定了前面權步的大小,它應該按照權自身的初值進行選擇,例如,Δ0=0.1(默認設置)。

為了使權不至於變得太大,設置最大權更新值限制Δmax,默認上界設置為

Δmax=50.0。

在很多實驗中,發現通過設置最大權更新值Δmax到相當小的值,例如

Δmax=1.0。

我們可能達到誤差減小的平滑性能。

5.計算修正權值W、偏差b

第t次學習,權值W、偏差b的的修正公式

W(t)=W(t-1)+ΔW(t)

b(t)=b(t-1)+Δb(t)

其中,t為學習次數。

6.BP網路學習成功結束條件每次學習累積誤差平方和

中國礦產資源評價新技術與評價新模型

每次學習平均誤差

中國礦產資源評價新技術與評價新模型

當平均誤差MSE<ε,BP網路學習成功結束。

7.BP網路應用預測

在應用BP網路時,提供網路輸入給輸入層,應用給定的BP網路及BP網路學習得到的權值W、偏差b,網路輸入經過從輸入層經各隱含層向輸出層的「順傳播」過程,計算出BP網的預測輸出。

8.神經元激活函數f

線性函數

f(x)=x,

f′(x)=1,

f(x)的輸入范圍(-∞,+∞),輸出范圍(-∞,+∞)。

一般用於輸出層,可使網路輸出任何值。

S型函數S(x)

中國礦產資源評價新技術與評價新模型

f(x)的輸入范圍(-∞,+∞),輸出范圍(0,1)。

f′(x)=f(x)[1-f(x)],

f′(x)的輸入范圍(-∞,+∞),輸出范圍(0,

]。

一般用於隱含層,可使范圍(-∞,+∞)的輸入,變成(0,1)的網路輸出,對較大的輸入,放大系數較小;而對較小的輸入,放大系數較大,所以可用來處理和逼近非線性的輸入/輸出關系。

在用於模式識別時,可用於輸出層,產生逼近於0或1的二值輸出。

雙曲正切S型函數

中國礦產資源評價新技術與評價新模型

f(x)的輸入范圍(-∞,+∞),輸出范圍(-1,1)。

f′(x)=1-f(x)·f(x),

f′(x)的輸入范圍(-∞,+∞),輸出范圍(0,1]。

一般用於隱含層,可使范圍(-∞,+∞)的輸入,變成(-1,1)的網路輸出,對較大的輸入,放大系數較小;而對較小的輸入,放大系數較大,所以可用來處理和逼近非線性的輸入/輸出關系。

階梯函數

類型1

中國礦產資源評價新技術與評價新模型

f(x)的輸入范圍(-∞,+∞),輸出范圍{0,1}。

f′(x)=0。

類型2

中國礦產資源評價新技術與評價新模型

f(x)的輸入范圍(-∞,+∞),輸出范圍{-1,1}。

f′(x)=0。

斜坡函數

類型1

中國礦產資源評價新技術與評價新模型

f(x)的輸入范圍(-∞,+∞),輸出范圍[0,1]。

中國礦產資源評價新技術與評價新模型

f′(x)的輸入范圍(-∞,+∞),輸出范圍{0,1}。

類型2

中國礦產資源評價新技術與評價新模型

f(x)的輸入范圍(-∞,+∞),輸出范圍[-1,1]。

中國礦產資源評價新技術與評價新模型

f′(x)的輸入范圍(-∞,+∞),輸出范圍{0,1}。

三、總體演算法

1.三層BP網路(含輸入層,隱含層,輸出層)權值W、偏差b初始化總體演算法

(1)輸入參數X[N][P],S0,S1,f1[S1],S2,f2[S2];

(2)計算輸入模式X[N][P]各個變數的最大值,最小值矩陣 Xmax[N],Xmin[N];

(3)隱含層的權值W1,偏差b1初始化。

情形1:隱含層激活函數f( )都是雙曲正切S型函數

1)計算輸入模式X[N][P]的每個變數的范圍向量Xrng[N];

2)計算輸入模式X的每個變數的范圍均值向量Xmid[N];

3)計算W,b的幅度因子Wmag

4)產生[-1,1]之間均勻分布的S0×1維隨機數矩陣Rand[S1];

5)產生均值為0,方差為1的正態分布的S1×S0維隨機數矩陣Randnr[S1][S0],隨機數范圍大致在[-1,1];

6)計算W[S1][S0],b[S1];

7)計算隱含層的初始化權值W1[S1][S0];

8)計算隱含層的初始化偏差b1[S1];

9))輸出W1[S1][S0],b1[S1]。

情形2:隱含層激活函數f( )都是S型函數

1)計算輸入模式X[N][P]的每個變數的范圍向量Xrng[N];

2)計算輸入模式X的每個變數的范圍均值向量Xmid[N];

3)計算W,b的幅度因子Wmag;

4)產生[-1,1]之間均勻分布的S0×1維隨機數矩陣Rand[S1];

5)產生均值為0,方差為1的正態分布的S1×S0維隨機數矩陣Randnr[S1][S0],隨機數范圍大致在[-1,1];

6)計算W[S1][S0],b[S1];

7)計算隱含層的初始化權值W1[S1][S0];

8)計算隱含層的初始化偏差b1[S1];

9)輸出W1[S1][S0],b1[S1]。

情形3:隱含層激活函數f( )為其他函數的情形

1)計算輸入模式X[N][P]的每個變數的范圍向量Xrng[N];

2)計算輸入模式X的每個變數的范圍均值向量Xmid[N];

3)計算W,b的幅度因子Wmag

4)產生[-1,1]之間均勻分布的S0×1維隨機數矩陣Rand[S1];

5)產生均值為0,方差為1的正態分布的S1×S0維隨機數矩陣Randnr[S1][S0],隨機數范圍大致在[-1,1];

6)計算W[S1][S0],b[S1];

7)計算隱含層的初始化權值W1[S1][S0];

8)計算隱含層的初始化偏差b1[S1];

9)輸出W1[S1][S0],b1[S1]。

(4)輸出層的權值W2,偏差b2初始化

1)產生[-1,1]之間均勻分布的S2×S1維隨機數矩陣W2[S2][S1];

2)產生[-1,1]之間均勻分布的S2×1維隨機數矩陣b2[S2];

3)輸出W2[S2][S1],b2[S2]。

2.應用彈性BP演算法(RPROP)學習三層BP網路(含輸入層,隱含層,輸出層)權值W、偏差b總體演算法

函數:Train3BP_RPROP(S0,X,P,S1,W1,b1,f1,S2,W2,b2,f2,d,TP)

(1)輸入參數

P對模式(xp,dp),p=1,2,…,P;

三層BP網路結構;

學習參數。

(2)學習初始化

1)

2)各層W,b的梯度值

初始化為零矩陣。

(3)由輸入模式X求第一次學習各層輸出y0,y1,y2及第一次學習平均誤差MSE

(4)進入學習循環

epoch=1

(5)判斷每次學習誤差是否達到目標誤差要求

如果MSE<ϵ,

則,跳出epoch循環,

轉到(12)。

(6)保存第epoch-1次學習產生的各層W,b的梯度值

(7)求第epoch次學習各層W,b的梯度值

1)求各層誤差反向傳播值δ;

2)求第p次各層W,b的梯度值

3)求p=1,2,…,P次模式產生的W,b的梯度值

的累加。

(8)如果epoch=1,則將第epoch-1次學習的各層W,b的梯度值

設為第epoch次學習產生的各層W,b的梯度值

(9)求各層W,b的更新

1)求權更新值Δij更新;

2)求W,b的權更新值

3)求第epoch次學習修正後的各層W,b。

(10)用修正後各層W、b,由X求第epoch次學習各層輸出y0,y1,y2及第epoch次學習誤差MSE

(11)epoch=epoch+1,

如果epoch≤MAX_EPOCH,轉到(5);

否則,轉到(12)。

(12)輸出處理

1)如果MSE<ε,

則學習達到目標誤差要求,輸出W1,b1,W2,b2

2)如果MSE≥ε,

則學習沒有達到目標誤差要求,再次學習。

(13)結束

3.三層BP網路(含輸入層,隱含層,輸出層)預測總體演算法

首先應用Train3lBP_RPROP( )學習三層BP網路(含輸入層,隱含層,輸出層)權值W、偏差b,然後應用三層BP網路(含輸入層,隱含層,輸出層)預測。

函數:Simu3lBP( )。

1)輸入參數:

P個需預測的輸入數據向量xp,p=1,2,…,P;

三層BP網路結構;

學習得到的各層權值W、偏差b。

2)計算P個需預測的輸入數據向量xp(p=1,2,…,P)的網路輸出 y2[S2][P],輸出預測結果y2[S2][P]。

四、總體演算法流程圖

BP網路總體演算法流程圖見附圖2。

五、數據流圖

BP網數據流圖見附圖1。

六、實例

實例一 全國銅礦化探異常數據BP 模型分類

1.全國銅礦化探異常數據准備

在全國銅礦化探數據上用穩健統計學方法選取銅異常下限值33.1,生成全國銅礦化探異常數據。

2.模型數據准備

根據全國銅礦化探異常數據,選取7類33個礦點的化探數據作為模型數據。這7類分別是岩漿岩型銅礦、斑岩型銅礦、矽卡岩型、海相火山型銅礦、陸相火山型銅礦、受變質型銅礦、海相沉積型銅礦,另添加了一類沒有銅異常的模型(表8-1)。

3.測試數據准備

全國化探數據作為測試數據集。

4.BP網路結構

隱層數2,輸入層到輸出層向量維數分別為14,9、5、1。學習率設置為0.9,系統誤差1e-5。沒有動量項。

表8-1 模型數據表

續表

5.計算結果圖

如圖8-2、圖8-3。

圖8-2

圖8-3 全國銅礦礦床類型BP模型分類示意圖

實例二 全國金礦礦石量品位數據BP 模型分類

1.模型數據准備

根據全國金礦儲量品位數據,選取4類34個礦床數據作為模型數據,這4類分別是綠岩型金礦、與中酸性浸入岩有關的熱液型金礦、微細浸染型型金礦、火山熱液型金礦(表8-2)。

2.測試數據准備

模型樣本點和部分金礦點金屬量、礦石量、品位數據作為測試數據集。

3.BP網路結構

輸入層為三維,隱層1層,隱層為三維,輸出層為四維,學習率設置為0.8,系統誤差1e-4,迭代次數5000。

表8-2 模型數據

4.計算結果

結果見表8-3、8-4。

表8-3 訓練學習結果

表8-4 預測結果(部分)

續表

5. 什麼是全連接神經網路,怎麼理解「全連接」

1、全連接神經網路解析:對n-1層和n層而言,n-1層的任意一個節點,都和第n層所有節點有連接。即第n層的每個節點在進行計算的時候,激活函數的輸入是n-1層所有節點的加權。

2、全連接的神經網路示意圖:


3、「全連接」是一種不錯的模式,但是網路很大的時候,訓練速度回很慢。部分連接就是認為的切斷某兩個節點直接的連接,這樣訓練時計算量大大減小。

6. 什麼是全連接神經網路怎麼理解「全連接」

1、全連接神經網路解析:對n-1層和n層而言,n-1層的任意一個節點,都和第n層所有節點有連接。即第n層的每個節點在進行計算的時候,激活函數的輸入是n-1層所有節點的加權。

2、全連接的神經網路示意圖:


3、「全連接」是一種不錯的模式,但是網路很大的時候,訓練速度回很慢。部分連接就是認為的切斷某兩個節點直接的連接,這樣訓練時計算量大大減小。

7. 一文看懂四種基本的神經網路架構

原文鏈接:
http://blackblog.tech/2018/02/23/Eight-Neural-Network/

更多干貨就在我的個人博客 http://blackblog.tech 歡迎關注

剛剛入門神經網路,往往會對眾多的神經網路架構感到困惑,神經網路看起來復雜多樣,但是這么多架構無非也就是三類,前饋神經網路,循環網路,對稱連接網路,本文將介紹四種常見的神經網路,分別是CNN,RNN,DBN,GAN。通過這四種基本的神經網路架構,我們來對神經網路進行一定的了解。

神經網路是機器學習中的一種模型,是一種模仿動物神經網路行為特徵,進行分布式並行信息處理的演算法數學模型。這種網路依靠系統的復雜程度,通過調整內部大量節點之間相互連接的關系,從而達到處理信息的目的。
一般來說,神經網路的架構可以分為三類:

前饋神經網路:
這是實際應用中最常見的神經網路類型。第一層是輸入,最後一層是輸出。如果有多個隱藏層,我們稱之為「深度」神經網路。他們計算出一系列改變樣本相似性的變換。各層神經元的活動是前一層活動的非線性函數。

循環網路:
循環網路在他們的連接圖中定向了循環,這意味著你可以按照箭頭回到你開始的地方。他們可以有復雜的動態,使其很難訓練。他們更具有生物真實性。
循環網路的目的使用來處理序列數據。在傳統的神經網路模型中,是從輸入層到隱含層再到輸出層,層與層之間是全連接的,每層之間的節點是無連接的。但是這種普通的神經網路對於很多問題卻無能無力。例如,你要預測句子的下一個單詞是什麼,一般需要用到前面的單詞,因為一個句子中前後單詞並不是獨立的。
循環神經網路,即一個序列當前的輸出與前面的輸出也有關。具體的表現形式為網路會對前面的信息進行記憶並應用於當前輸出的計算中,即隱藏層之間的節點不再無連接而是有連接的,並且隱藏層的輸入不僅包括輸入層的輸出還包括上一時刻隱藏層的輸出。

對稱連接網路:
對稱連接網路有點像循環網路,但是單元之間的連接是對稱的(它們在兩個方向上權重相同)。比起循環網路,對稱連接網路更容易分析。這個網路中有更多的限制,因為它們遵守能量函數定律。沒有隱藏單元的對稱連接網路被稱為「Hopfield 網路」。有隱藏單元的對稱連接的網路被稱為玻爾茲曼機。

其實之前的帖子講過一些關於感知機的內容,這里再復述一下。
首先還是這張圖
這是一個M-P神經元

一個神經元有n個輸入,每一個輸入對應一個權值w,神經元內會對輸入與權重做乘法後求和,求和的結果與偏置做差,最終將結果放入激活函數中,由激活函數給出最後的輸出,輸出往往是二進制的,0 狀態代表抑制,1 狀態代表激活。

可以把感知機看作是 n 維實例空間中的超平面決策面,對於超平面一側的樣本,感知器輸出 1,對於另一側的實例輸出 0,這個決策超平面方程是 w⋅x=0。 那些可以被某一個超平面分割的正反樣例集合稱為線性可分(linearly separable)樣例集合,它們就可以使用圖中的感知機表示。
與、或、非問題都是線性可分的問題,使用一個有兩輸入的感知機能容易地表示,而異或並不是一個線性可分的問題,所以使用單層感知機是不行的,這時候就要使用多層感知機來解決疑惑問題了。

如果我們要訓練一個感知機,應該怎麼辦呢?
我們會從隨機的權值開始,反復地應用這個感知機到每個訓練樣例,只要它誤分類樣例就修改感知機的權值。重復這個過程,直到感知機正確分類所有的樣例。每一步根據感知機訓練法則來修改權值,也就是修改與輸入 xi 對應的權 wi,法則如下:

這里 t 是當前訓練樣例的目標輸出,o 是感知機的輸出,η 是一個正的常數稱為學習速率。學習速率的作用是緩和每一步調整權的程度,它通常被設為一個小的數值(例如 0.1),而且有時會使其隨著權調整次數的增加而衰減。

多層感知機,或者說是多層神經網路無非就是在輸入層與輸出層之間加了多個隱藏層而已,後續的CNN,DBN等神經網路只不過是將重新設計了每一層的類型。感知機可以說是神經網路的基礎,後續更為復雜的神經網路都離不開最簡單的感知機的模型,

談到機器學習,我們往往還會跟上一個詞語,叫做模式識別,但是真實環境中的模式識別往往會出現各種問題。比如:
圖像分割:真實場景中總是摻雜著其它物體。很難判斷哪些部分屬於同一個對象。對象的某些部分可以隱藏在其他對象的後面。
物體光照:像素的強度被光照強烈影響。
圖像變形:物體可以以各種非仿射方式變形。例如,手寫也可以有一個大的圓圈或只是一個尖頭。
情景支持:物體所屬類別通常由它們的使用方式來定義。例如,椅子是為了讓人們坐在上面而設計的,因此它們具有各種各樣的物理形狀。
卷積神經網路與普通神經網路的區別在於,卷積神經網路包含了一個由卷積層和子采樣層構成的特徵抽取器。在卷積神經網路的卷積層中,一個神經元只與部分鄰層神經元連接。在CNN的一個卷積層中,通常包含若干個特徵平面(featureMap),每個特徵平面由一些矩形排列的的神經元組成,同一特徵平面的神經元共享權值,這里共享的權值就是卷積核。卷積核一般以隨機小數矩陣的形式初始化,在網路的訓練過程中卷積核將學習得到合理的權值。共享權值(卷積核)帶來的直接好處是減少網路各層之間的連接,同時又降低了過擬合的風險。子采樣也叫做池化(pooling),通常有均值子采樣(mean pooling)和最大值子采樣(max pooling)兩種形式。子采樣可以看作一種特殊的卷積過程。卷積和子采樣大大簡化了模型復雜度,減少了模型的參數。
卷積神經網路由三部分構成。第一部分是輸入層。第二部分由n個卷積層和池化層的組合組成。第三部分由一個全連結的多層感知機分類器構成。
這里舉AlexNet為例:

·輸入:224×224大小的圖片,3通道
·第一層卷積:11×11大小的卷積核96個,每個GPU上48個。
·第一層max-pooling:2×2的核。
·第二層卷積:5×5卷積核256個,每個GPU上128個。
·第二層max-pooling:2×2的核。
·第三層卷積:與上一層是全連接,3*3的卷積核384個。分到兩個GPU上個192個。
·第四層卷積:3×3的卷積核384個,兩個GPU各192個。該層與上一層連接沒有經過pooling層。
·第五層卷積:3×3的卷積核256個,兩個GPU上個128個。
·第五層max-pooling:2×2的核。
·第一層全連接:4096維,將第五層max-pooling的輸出連接成為一個一維向量,作為該層的輸入。
·第二層全連接:4096維
·Softmax層:輸出為1000,輸出的每一維都是圖片屬於該類別的概率。

卷積神經網路在模式識別領域有著重要應用,當然這里只是對卷積神經網路做了最簡單的講解,卷積神經網路中仍然有很多知識,比如局部感受野,權值共享,多卷積核等內容,後續有機會再進行講解。

傳統的神經網路對於很多問題難以處理,比如你要預測句子的下一個單詞是什麼,一般需要用到前面的單詞,因為一個句子中前後單詞並不是獨立的。RNN之所以稱為循環神經網路,即一個序列當前的輸出與前面的輸出也有關。具體的表現形式為網路會對前面的信息進行記憶並應用於當前輸出的計算中,即隱藏層之間的節點不再無連接而是有連接的,並且隱藏層的輸入不僅包括輸入層的輸出還包括上一時刻隱藏層的輸出。理論上,RNN能夠對任何長度的序列數據進行處理。
這是一個簡單的RNN的結構,可以看到隱藏層自己是可以跟自己進行連接的。

那麼RNN為什麼隱藏層能夠看到上一刻的隱藏層的輸出呢,其實我們把這個網路展開來開就很清晰了。

從上面的公式我們可以看出,循環層和全連接層的區別就是循環層多了一個權重矩陣 W。
如果反復把式2帶入到式1,我們將得到:

在講DBN之前,我們需要對DBN的基本組成單位有一定的了解,那就是RBM,受限玻爾茲曼機。
首先什麼是玻爾茲曼機?
[圖片上傳失敗...(image-d36b31-1519636788074)]
如圖所示為一個玻爾茲曼機,其藍色節點為隱層,白色節點為輸入層。
玻爾茲曼機和遞歸神經網路相比,區別體現在以下幾點:
1、遞歸神經網路本質是學習一個函數,因此有輸入和輸出層的概念,而玻爾茲曼機的用處在於學習一組數據的「內在表示」,因此其沒有輸出層的概念。
2、遞歸神經網路各節點鏈接為有向環,而玻爾茲曼機各節點連接成無向完全圖。

而受限玻爾茲曼機是什麼呢?
最簡單的來說就是加入了限制,這個限制就是將完全圖變成了二分圖。即由一個顯層和一個隱層構成,顯層與隱層的神經元之間為雙向全連接。

h表示隱藏層,v表示顯層
在RBM中,任意兩個相連的神經元之間有一個權值w表示其連接強度,每個神經元自身有一個偏置系數b(對顯層神經元)和c(對隱層神經元)來表示其自身權重。
具體的公式推導在這里就不展示了

DBN是一個概率生成模型,與傳統的判別模型的神經網路相對,生成模型是建立一個觀察數據和標簽之間的聯合分布,對P(Observation|Label)和 P(Label|Observation)都做了評估,而判別模型僅僅而已評估了後者,也就是P(Label|Observation)。
DBN由多個限制玻爾茲曼機(Restricted Boltzmann Machines)層組成,一個典型的神經網路類型如圖所示。這些網路被「限制」為一個可視層和一個隱層,層間存在連接,但層內的單元間不存在連接。隱層單元被訓練去捕捉在可視層表現出來的高階數據的相關性。

生成對抗網路其實在之前的帖子中做過講解,這里在說明一下。
生成對抗網路的目標在於生成,我們傳統的網路結構往往都是判別模型,即判斷一個樣本的真實性。而生成模型能夠根據所提供的樣本生成類似的新樣本,注意這些樣本是由計算機學習而來的。
GAN一般由兩個網路組成,生成模型網路,判別模型網路。
生成模型 G 捕捉樣本數據的分布,用服從某一分布(均勻分布,高斯分布等)的雜訊 z 生成一個類似真實訓練數據的樣本,追求效果是越像真實樣本越好;判別模型 D 是一個二分類器,估計一個樣本來自於訓練數據(而非生成數據)的概率,如果樣本來自於真實的訓練數據,D 輸出大概率,否則,D 輸出小概率。
舉個例子:生成網路 G 好比假幣製造團伙,專門製造假幣,判別網路 D 好比警察,專門檢測使用的貨幣是真幣還是假幣,G 的目標是想方設法生成和真幣一樣的貨幣,使得 D 判別不出來,D 的目標是想方設法檢測出來 G 生成的假幣。
傳統的判別網路:

生成對抗網路:

下面展示一個cDCGAN的例子(前面帖子中寫過的)
生成網路

判別網路

最終結果,使用MNIST作為初始樣本,通過學習後生成的數字,可以看到學習的效果還是不錯的。

本文非常簡單的介紹了四種神經網路的架構,CNN,RNN,DBN,GAN。當然也僅僅是簡單的介紹,並沒有深層次講解其內涵。這四種神經網路的架構十分常見,應用也十分廣泛。當然關於神經網路的知識,不可能幾篇帖子就講解完,這里知識講解一些基礎知識,幫助大家快速入(zhuang)門(bi)。後面的帖子將對深度自動編碼器,Hopfield 網路長短期記憶網路(LSTM)進行講解。

8. 卷積神經網路中的局部連接是什麼意思

網路的下一層和上一層之間通過卷積核連接,或者說上一層的數據和卷積核卷積之後得到下一層。在全連接網路中,上一層的每個數據和下一層的每個數據都會有關,局部連接的意思就是說下一層只和上一層的局部數據有關。

這張圖就是局部連接,可以看到上一層只有3個單元和下一層連接(這張圖的流程是從下到上,所以我說的上一層是最底層,下一層是按照箭頭方向的上邊那層)。

局部連接的作用是減少計算參數。

9. 為什麼全連接神經網路在圖像識別中不如卷積神經網路

輸入數據是n*n的像素矩陣,再使用全連接神經網路,那麼參數的個數會是指數級的增長,需要訓練的數據太多。
而CNN的話,可以通過共享同一個參數,來提取特定方向上的特徵,所以訓練量將比全連接神經網路小了很多。

10. DenseNet詳解

作為CVPR2017年的Best Paper, DenseNet 脫離了 加深網路層數(ResNet) 加寬網路結構(Inception)來提升網路性能的定式思維 ,從特徵的角度考慮,通過 特徵重用和旁路(Bypass)設置 ,既大幅度減少了網路的參數量,又在一定程度上緩解了gradient vanishing問題的產生.結合信息流和特徵復用的假設,DenseNet當之無愧成為2017年計算機視覺頂會的年度最佳論文.

卷積神經網路在沉睡了近20年後,如今成為了深度學習方向最主要的網路結構之一.從一開始的只有五層結構的LeNet, 到後來擁有19層結構的VGG, 再到首次跨越100層網路的Highway Networks與ResNet, 網路層數的加深成為CNN發展的主要方向之一.

隨著CNN網路層數的不斷增加, gradient vanishing和model degradation問題 出現在了人們面前, BatchNormalization的廣泛使用在一定程度上緩解了gradient vanishing的問題 ,而 ResNet和Highway Networks通過構造恆等映射設置旁路,進一步減少了gradient vanishing和model degradation的產生 .Fractal Nets通過將不同深度的網路並行化,在獲得了深度的同時保證了梯度的傳播,隨機深度網路通過對網路中一些層進行失活,既證明了ResNet深度的冗餘性,又緩解了上述問題的產生. 雖然這些不同的網路框架通過不同的實現加深的網路層數,但是他們都包含了相同的核心思想,既將feature map進行跨網路層的連接.

何愷明在提出ResNet時做出了這樣的假設:若某一較深的網路多出另一較淺網路的若干層有能力學習到恆等映射,那麼這一較深網路訓練得到的模型性能一定不會弱於該淺層網路.通俗的說就是如果對某一網路中增添一些可以學到恆等映射的層組成新的網路,那麼最差的結果也是新網路中的這些層在訓練後成為恆等映射而不會影響原網路的性能.同樣DenseNet在提出時也做過假設:與其多次學習冗餘的特徵,特徵復用是一種更好的特徵提取方式.

ResNet的一個最主要的優勢便是梯度可以流經恆等函數來到達靠前的層.但恆等映射和非線性變換輸出的疊加方式是相加, 這在一定程度上破壞了網路中的信息流.

為了進一步優化信息流的傳播,DenseNet提出了圖示的網路結構

如圖所示,第i層的輸入不僅與i-1層的輸出相關,還有所有之前層的輸出有關.記作:

由於在DenseNet中需要對不同層的feature map進行cat操作,所以需要不同層的feature map保持相同的feature size,這就限制了網路中Down sampling的實現.為了使用Down sampling,作者將DenseNet分為多個Denseblock,如下圖所示:

在同一個Denseblock中要求feature size保持相同大小,在不同Denseblock之間設置transition layers實現Down sampling, 在作者的實驗中transition layer由BN + Conv(1×1) +2×2 average-pooling組成.

在Denseblock中,假設每一個非線性變換H的輸出為K個feature map, 那麼第i層網路的輸入便為K 0 +(i-1)×K, 這里我們可以看到DenseNet和現有網路的一個主要的不同點:DenseNet可以接受較少的特徵圖數量作為網路層的輸出,如下圖所示

原因就是在同一個Denseblock中的每一層都與之前所有層相關聯,如果我們把feature看作是一個Denseblock的全局狀態,那麼每一層的訓練目標便是通過現有的全局狀態,判斷需要添加給全局狀態的更新值.因而每個網路層輸出的特徵圖數量K又稱為Growth rate,同樣決定著每一層需要給全局狀態更新的信息的多少.我們之後會看到,在作者的實驗中只需要較小的K便足以實現state-of-art的性能.

雖然DenseNet接受較少的k,也就是feature map的數量作為輸出,但由於不同層feature map之間由cat操作組合在一起,最終仍然會是feature map的channel較大而成為網路的負擔.作者在這里使用1×1 Conv(Bottleneck)作為特徵降維的方法來降低channel數量,以提高計算效率.經過改善後的非線性變換變為BN-ReLU-Conv(1×1)-BN-ReLU-Conv(3×3),使用Bottleneck layers的DenseNet被作者稱為DenseNet-B.在實驗中,作者使用1×1卷積生成channel數量為4k的feature map.

為了進一步優化模型的簡潔性,我們同樣可以在transition layer中降低feature map的數量.若一個Denseblock中包含m個feature maps,那麼我們使其輸出連接的transition layer層生成⌊θm⌋個輸出feature map.其中θ為Compression factor, 當θ=1時,transition layer將保留原feature維度不變.

作者將使用compression且θ=0.5的DenseNet命名為DenseNet-C, 將使用Bottleneck和compression且θ=0.5的DenseNet命名為DenseNet-BC

由於DenseNet對輸入進行cat操作,一個直觀的影響就是每一層學到的feature map都能被之後所有層直接使用,這使得特徵可以在整個網路中重用,也使得模型更加簡潔.

從上圖中我們可以看出DenseNet的參數效率:左圖包含了對多種DenseNet結構參數和最終性能的統計,我們可以看出當模型實現相同的test error時,原始的DenseNet往往要比DenseNet-BC擁有2-3倍的參數量.中間圖為DenseNet-BC與ResNet的對比,在相同的模型精度下,DenseNet-BC只需要ResNet約三分之一的參數數量.右圖為1001層超過10M參數量的ResNet與100層只有0.8M參數量的DenseNet-BC在訓練時的對比,雖然他們在約相同的訓練epoch時收斂,但DenseNet-BC卻只需要ResNet不足十分之一的參數量.

解釋DenseNet為何擁有如此高性能的另一個原因是 網路中的每一層不僅接受了原始網路中來自loss的監督 ,同時由於 存在多個bypass與shortcut,網路的監督是多樣的 .Deep supervision的優勢同樣在deeply-supervised nets (DSN)中也被證實.(DSN中每一個Hidden layer都有一個分類器,強迫其學習一些有區分度的特徵).與DSN不同的是,DenseNet擁有單一的loss function, 模型構造和梯度計算更加簡易.

在設計初,DenseNet便被設計成讓一層網路可以使用所有之前層網路feature map的網路結構,為了探索feature的復用情況,作者進行了相關實驗.作者訓練的L=40,K=12的DenseNet,對於任意Denseblock中的所有卷積層,計算之前某層feature map在該層權重的絕對值平均數.這一平均數表明了這一層對於之前某一層feature的利用率,下圖為由該平均數繪制出的熱力圖:

從圖中我們可以得出以下結論:

a) 一些較早層提取出的特徵仍可能被較深層直接使用

b) 即使是Transition layer也會使用到之前Denseblock中所有層的特徵

c) 第2-3個Denseblock中的層對之前Transition layer利用率很低,說明transition layer輸出大量冗餘特徵.這也為DenseNet-BC提供了證據支持,既Compression的必要性.

d) 最後的分類層雖然使用了之前Denseblock中的多層信息,但更偏向於使用最後幾個feature map的特徵,說明在網路的最後幾層,某些high-level的特徵可能被產生.

作者在多個benchmark數據集上訓練了多種DenseNet模型,並與state-of-art的模型(主要是ResNet和其變種)進行對比:

由上表我們可以看出,DenseNet只需要較小的Growth rate(12,24)便可以實現state-of-art的性能,結合了Bottleneck和Compression的DenseNet-BC具有遠小於ResNet及其變種的參數數量,且無論DenseNet或者DenseNet-BC,都在原始數據集和增廣數據集上實現了超越ResNet的性能.

DenseNet詳解

閱讀全文

與神經網路全連接熱力圖相關的資料

熱點內容
網路共享中心沒有網卡 瀏覽:523
電腦無法檢測到網路代理 瀏覽:1374
筆記本電腦一天會用多少流量 瀏覽:586
蘋果電腦整機轉移新機 瀏覽:1378
突然無法連接工作網路 瀏覽:1069
聯通網路怎麼設置才好 瀏覽:1227
小區網路電腦怎麼連接路由器 瀏覽:1044
p1108列印機網路共享 瀏覽:1213
怎麼調節台式電腦護眼 瀏覽:707
深圳天虹蘋果電腦 瀏覽:943
網路總是異常斷開 瀏覽:615
中級配置台式電腦 瀏覽:1003
中國網路安全的戰士 瀏覽:634
同志網站在哪裡 瀏覽:1417
版觀看完整完結免費手機在線 瀏覽:1461
怎樣切換默認數據網路設置 瀏覽:1111
肯德基無線網無法訪問網路 瀏覽:1287
光纖貓怎麼連接不上網路 瀏覽:1487
神武3手游網路連接 瀏覽:967
局網列印機網路共享 瀏覽:1002