全鏈接層和激活層

1. 全鏈接層網絡

通過前面若干次卷積+激勵+池化後,終於來到了輸出層,模型會將學到的一個高質量的特徵圖片全鏈接層。其實在全鏈接層以前,若是神經元數目過大,學習能力強,有可能出現過擬合。所以,能夠引入dropout操做,來隨機刪除神經網絡中的部分神經元,來解決此問題。還能夠進行局部歸一化、數據加強等操做,來增長魯棒性。分佈式

當來到了全鏈接層以後,能夠理解爲一個簡單的多分類神經網絡(如:BP神經網絡),經過softmax函數獲得最終的輸出。整個模型訓練完畢。函數

兩層之間全部神經元都有權重鏈接,一般全鏈接層在卷積神經網絡尾部。也就是跟傳統的神經網絡神經元的鏈接方式是同樣的: 學習

 https://images2018.cnblogs.com/blog/1226410/201809/1226410-20180910194649765-666983892.png

全鏈接層(fully connected layersFC)在整個卷積神經網絡中起到「分類器」的做用。若是說卷積層、池化層和激活函數層等操做是將原始數據映射到隱層特徵空間的話,全鏈接層則起到將學到的「分佈式特徵表示」映射到樣本標記空間的做用。spa

全鏈接的核心操做就是矩陣向量乘積:3d

y=W*xblog

本質就是由一個特徵空間線性變換到另外一個特徵空間。目標空間的任一維——也就是隱層的一個 cell——都認爲會受到源空間的每一維的影響。不考慮嚴謹,能夠說,目標向量是源向量的加權和。圖片

2.激活函數get

所謂激活函數(Activation Function),就是在人工神經網絡的神經元上運行的函數,負責將神經元的輸入映射到輸出端。input

激活函數(Activation functions)對於人工神經網絡 [1]  模型去學習、理解很是複雜和非線性的函數來講具備十分重要的做用。它們將非線性特性引入到咱們的網絡中。如圖1,在神經元中,輸入的 inputs 經過加權,求和後,還被做用了一個函數,這個函數就是激活函數。引入激活函數是爲了增長神經網絡模型的非線性。沒有激活函數的每層都至關於矩陣相乘。就算你疊加了若干層以後,無非仍是個矩陣相乘罷了。

若是不用激活函數,每一層輸出都是上層輸入的線性函數,不管神經網絡有多少層,輸出都是輸入的線性組合,這種狀況就是最原始的感知機Perceptron)。

若是使用的話,激活函數給神經元引入了非線性因素,使得神經網絡能夠任意逼近任何非線性函數,這樣神經網絡就能夠應用到衆多的非線性模型中。 

2.1 經常使用的激活函數

2.1.1 Sigmoid函數

Sigmoid函數是一個在生物學中常見的S型函數,也稱爲S型生長曲線。在信息科學中,因爲其單增以及反函數單增等性質,Sigmoid函數常被用做神經網絡的閾值函數,將變量映射到0,1之間 [2]  。公式以下

https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D101/sign=18c3b100f11f4134e437017e141d95c1/962bd40735fae6cdc554878203b30f2443a70f74.jpg

函數圖像以下

2.1.2 Tanh函數

Tanh是雙曲函數中的一個,Tanh()爲雙曲正切。在數學中,雙曲正切「Tanh」是由基本雙曲函數雙曲正弦和雙曲餘弦推導而來。公式以下

https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D106/sign=7f2eb2a43512b31bc36cc929b0193674/09fa513d269759ee31ce4e28befb43166c22dfb2.jpg

函數圖像以下

  2.1.3 ReLU函數

Relu激活函數(The Rectified Linear Unit),用於隱層神經元輸出。公式以下

https://gss1.bdstatic.com/-vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D117/sign=eb8624203687e9504617f76d2739531b/9a504fc2d5628535b85bf9c29cef76c6a6ef639d.jpg

函數圖像以下 

這裏要着重提一下Relu激活函數,它與其餘激活函數最大的不一樣在於它是線性的,於是不存在梯度爆炸的問題,在多層網絡結構下梯度會線性傳遞。

在深度學習中Relu是用的最普遍的一種激活函數。

相關文章
相關標籤/搜索