人工神經網絡(Artificial Neural Networks,簡稱ANNs)的激活函數-5

神經網絡中的激活函數-5

建議在閱讀本文之前先了解 神經網絡 。

在構建神經網絡的過程中,您需要做出的選擇之一是在隱藏層和網絡的輸出層使用什么激活函數。本文討論了神經網絡中的激活函數。

目錄

? 什么是激活函數?

? 神經網絡的元素

? 為什么我們需要非線性激活函數?

? 激活函數的變體

? ?    線性函數

? ?    Sigmoid 函數

? ?    Tanh 功能

? ?    RELU 函數

? ?    Softmax 功能

? 什么是激活函數?

神經網絡上下文中的激活函數是應用于神經元輸出的數學函數。激活函數的目的是在模型中引入非線性,允許網絡學習和表示數據中的復雜模式。如果沒有非線性,神經網絡的行為基本上就像線性回歸模型,無論它有多少層。

激活函數通過計算加權和并進一步為其添加偏差來決定是否應該激活神經元。激活函數的目的是將非線性引入神經元的輸出中。

解釋:我們知道,神經網絡的神經元與權重、偏差和它們各自的激活函數相對應。在神經網絡中,我們將根據輸出處的誤差更新神經元的權重和偏差。此過程稱為反向傳播 。激活函數使反向傳播成為可能,因為梯度與更新權重和偏差的誤差一起提供。

? 神經網絡的元素

Input Layer:此層接受輸入特征。它從外部世界向網絡提供信息,這一層不進行計算,這里的節點只是將信息(特征)傳遞給隱藏層。

隱藏層該層的節點不暴露在外部世界,它們是任何神經網絡提供的抽象的一部分。隱藏層對通過輸入層輸入的特征執行各種計算,并將結果傳輸到輸出層。

Output Layer:該層將網絡學習到的信息帶到外部世界。

? 為什么我們需要非線性激活函數?

沒有激活函數的神經網絡本質上只是一個線性回歸模型。激活函數對輸入進行非線性變換,使其能夠學習和執行更復雜的任務。

? 數學證明

假設我們有一個這樣的神經網絡 :- 

人工神經網絡(Artificial Neural Networks,簡稱ANNs)的激活函數-5的圖1

該圖的元素如下:

隱藏層,即第1層:

z(1) = W(1)X + b(1) a(1)

這里:

? z(1) 是第 1 層的矢量化輸出

? W(1) 是分配給隱藏層神經元的矢量化權重,即 w1、w2、w3 和 w4

? X 是矢量化的輸入特征,即 i1 和 i2

? b 是分配給隱藏層中神經元的矢量化偏差,即 b1 和 b2

? a(1) 是任何線性函數的矢量化形式。

(注意:我們在這里不考慮激活函數)

第 2 層,即輸出層 :

注:第 2 層的輸入是從第 1 層輸出的

z(2) = W(2)a(1) + b(2)

a(2) = z(2)

輸出層的計算

z(2) = (W(2) * [W(1)X + b(1)]) + b(2)

z(2) = [W(2) * W(1)] * X + [W(2)*b(1) + b(2)]

[W(2) * W(1)] = W

[W(2)*b(1) + b(2)] = b

最終輸出 : z(2) = W*X + b

這又是一個線性函數

即使在應用隱藏層之后,這一觀察結果也會再次產生線性函數,因此我們可以得出結論,無論我們在神經網絡中附加多少個隱藏層,所有層的行為都是相同的,因為兩個線性函數的組成本身就是一個線性函數。神經元不能只用一個線性函數來學習。非線性激活函數將讓它根據w.r.t誤差的差異進行學習。因此,我們需要一個激活函數。

? 激活函數的變體

? 線性函數

? 方程:線性函數的方程類似于直線的方程,即y = x

? 無論我們有多少層,如果本質上都是線性的,那么最后一層的最終激活函數只不過是第一層輸入的線性函數。

? 范圍:-inf 到 +inf

? 用途:線性激活函數只在一個地方使用,即輸出層。

? 問題:如果我們對線性函數進行微分以帶來非線性,結果將不再依賴于輸入 “x”,函數將變得恒定,它不會為我們的算法引入任何突破性的行為。

例如:房屋價格的計算是一個回歸問題。房價可能具有任何大/小的值,因此我們可以在輸出層應用線性激活。即使在這種情況下,神經網絡在隱藏層也必須具有任何非線性函數。

Sigmoid函數

人工神經網絡(Artificial Neural Networks,簡稱ANNs)的激活函數-5的圖2

? 它是一個繪制為“S”形圖的函數。

? 方程 :A = 1/(1 + e-x)

? 性質 :非線性,請注意,X值介于-2到2之間,Y值非常陡峭。這意味著,x的微小變化也會帶來Y值的較大變化。

? 取值范圍 :0到1

? 用途 :通常用于二進制分類的輸出層,其中 result為0或1,因為sigmoid函數的值僅在0和1之間,因此,如果值大于0.5,則可以輕松預測結果為 0

Tanh功能

人工神經網絡(Artificial Neural Networks,簡稱ANNs)的激活函數-5的圖3

? 幾乎總是比sigmoid函數效果更好的激活是Tanh函數,也稱為切線雙曲函數。它實際上是sigmoid函數的數學移位版本。兩者相似,并且可以相互派生。

? 方程 :

f(x) = tanh(x) = 2/(1 + e-2x) – 1

OR

tanh(x)= 2 * sigmoid(2x) – 1

? 取值范圍:-1 至 +1

? 性質 :-非線性

? 用途 :-通常用于神經網絡的隱藏層,因為它的值在-1到1之間,因此隱藏層的平均值為0或非常接近它,因此有助于通過使平均值接近0來使數據居中。這使得學習下一層變得更加容易。

RELU函數

? 它代表整流線性單元。它是使用最廣泛的激活函數。主要在神經網絡的隱藏層中實現。

? 方程 :-A(x) = max(0,x)如果x為正,則輸出為 x,否則為0。

? 取值范圍 :-[0,inf)

? 性質 :-非線性,這意味著我們可以很容易地反向傳播錯誤,并通過ReLU函數激活多層神經元。

? 用途 :-ReLu 的計算成本低于 tanh 和 sigmoid,因為它涉及更簡單的數學運算。一次只有幾個神經元被激活,使網絡稀疏,使其高效且易于計算。

簡而言之,RELU 的學習 速度比 sigmoid 和 Tanh 函數快得多

Softmax功能

人工神經網絡(Artificial Neural Networks,簡稱ANNs)的激活函數-5的圖4

softmax函數也是一種sigmoid函數,但在我們嘗試處理多類分類問題時非常方便。

? 性質 :-非線性

? 用途 :-通常在嘗試處理多個類時使用softmax函數常見于圖像分類問題的輸出層。softmax函數會將每個類的輸出壓縮到0到1之間,并且還會除以輸出的總和。

? 輸出:-softmax函數理想地用于分類器的輸出層,我們實際上試圖獲得定義每個輸入的類別的概率。

? 基本的經驗法則是,如果您真的不知道該使用什么激活函數,那么只需使用RELU,因為它是隱藏層中的通用激活函數,并且現在在大多數情況下都在使用。

? 如果您的輸出用于二進制分類,那么sigmoid函數是輸出層非常自然的選擇。

? 如果您的輸出是多類分類的,那么Softmax對于預測每個類的概率非常有用。

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP