1. 全鏈接層網絡
通過前面若干次卷積+激勵+池化後,終於來到了輸出層,模型會將學到的一個高質量的特徵圖片全鏈接層。其實在全鏈接層以前,若是神經元數目過大,學習能力強,有可能出現過擬合。所以,能夠引入dropout操做,來隨機刪除神經網絡中的部分神經元,來解決此問題。還能夠進行局部歸一化、數據加強等操做,來增長魯棒性。分佈式
當來到了全鏈接層以後,能夠理解爲一個簡單的多分類神經網絡(如:BP神經網絡),經過softmax函數獲得最終的輸出。整個模型訓練完畢。函數
兩層之間全部神經元都有權重鏈接,一般全鏈接層在卷積神經網絡尾部。也就是跟傳統的神經網絡神經元的鏈接方式是同樣的: 學習
全鏈接層(fully connected layers,FC)在整個卷積神經網絡中起到「分類器」的做用。若是說卷積層、池化層和激活函數層等操做是將原始數據映射到隱層特徵空間的話,全鏈接層則起到將學到的「分佈式特徵表示」映射到樣本標記空間的做用。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] 。公式以下
函數圖像以下
2.1.2 Tanh函數
Tanh是雙曲函數中的一個,Tanh()爲雙曲正切。在數學中,雙曲正切「Tanh」是由基本雙曲函數雙曲正弦和雙曲餘弦推導而來。公式以下
函數圖像以下
2.1.3 ReLU函數
Relu激活函數(The Rectified Linear Unit),用於隱層神經元輸出。公式以下
函數圖像以下
這裏要着重提一下Relu激活函數,它與其餘激活函數最大的不一樣在於它是線性的,於是不存在梯度爆炸的問題,在多層網絡結構下梯度會線性傳遞。
在深度學習中Relu是用的最普遍的一種激活函數。