全連接層和激活層


1. 全連接層

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

當來到了全連接層之后,可以理解為一個簡單的多分類神經網絡(如:BP神經網絡),通過softmax函數得到最終的輸出。整個模型訓練完畢。

兩層之間所有神經元都有權重連接,通常全連接層在卷積神經網絡尾部。也就是跟傳統的神經網絡神經元的連接方式是一樣的: 

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

全連接層(fully connected layers,FC)在整個卷積神經網絡中起到“分類器”的作用。如果說卷積層、池化層和激活函數層等操作是將原始數據映射到隱層特征空間的話,全連接層則起到將學到的“分布式特征表示”映射到樣本標記空間的作用

全連接的核心操作就是矩陣向量乘積

y=W*x

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

2.激活函數

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

激活函數(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是用的最廣泛的一種激活函數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM