人工神經網絡的驅動者:激活函數是什么?
本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。
激活函數是人工神經網絡的驅動因素,其位于神經元之上,并管理著神經元行為,比如是否需要處理某個輸入數據,若需要,又以何種程度處理等等。從技術上來講,某個節點的激活函數將其在神經網絡中前一個節點的數據輸入,并輸出一個確定值,這個值繼而指導后續節點如何發動來響應特定輸入信號。
本文剖析由激活函數組成的神經網絡,以及神經網絡的生物類似物,并簡要介紹幾種常用的激活函數。
神經網絡的結構

作為一名數據科學愛好者,你一定見過上面的這張圖片或者與之相似的圖片。這張圖片是對雙層神經網絡工作流程的經典描述。如圖,該網絡對貓或狗的圖片進行分類,其中有兩個隱藏層,每一層包含一行神經元,一行有16個。我們把圖片局部放大,放大第二層的第一個神經元。

局部放大之后大致如此。注意,此神經元接受前16個神經元傳遞的信號。神經元將連接權值與信號相乘,并在乘積上加上一個偏差項,最后得到計算結果,并將其命名為v。此v可視為這個神經元對所輸入圖像的認知。
在識別到輸入信號之后,神經元可產生相應的反應,在此激活函數發揮其作用。激活函數被命名為f(),作為由識別到反應的映射,產生值a,并將其傳遞到下一層神經元,作為前一層特定神經元對信號做出反應的標志。
生物學類比
假如將手放在逐漸升溫的鋼鍋上,一旦溫度超過某個閾值,你就會急切地要拿開手。把手移開時并不需要知道鍋的確切溫度,而是根據實際參數做出選擇。這是神經元在放電,當神經元放電時,指令傳遞到外圍(本例中的手)。
這就是激活函數的來源或者至少與之相似。在這里實際數據是冗余的,神經元只需判斷其是否超過閾值。
就目前所知,生物神經元和人工神經元之間的一個顯著差異是,前者要么被激活,要么不被激活,只有兩種結果,而后者的激活程度是在一定范圍內。
激活函數的種類
激活函數多種多樣。讓我們按照函數所解決問題的順序,大致學習其中的幾種:
問題1:學習問題
早期,神經網絡的目標是學習自身,線性函數的處理效果相當好。之所以稱為線性函數,是因為v = wa + b的近似值與直線方程y = mx + c極為相似。
問題2:非線性問題

雖然線性函數非常接近于右側數據,但是左側數據卻效果不佳。由于非線性分布數據集主導著機器學習領域,而且激活函數是將非線性注入到網絡中的唯一適用方法,所以函數就不能是線性的。能夠解決這個問題的常見函數有:
Sigmoid函數:在函數內輸入一個值,輸出值的范圍為(0,1)。輸入的值越小,輸出值越接近于0,輸入的值越大,輸出值則越接近于1,但都不會達到任一個極限值。

tanh函數:也稱雙曲正切函數。tanh函數與sigmoid函數非常相似,只是輸出值范圍為(-1,1)。右側為sigmoid函數圖像,左側為tanh函數圖像。

問題3:梯度消失問題
再次觀察圖表,sigmoid函數曲線越接近于極限值越平緩,也就是說,當輸入絕對值非常大的值的時候,輸出值的變化不明顯。這大大降低了學習率。這就是所謂的梯度消失問題,隨著進程推進,梯度(比如,學習)消失。ReLU函數解決了這個問題,實際上它也是現代神經網絡的默認激活函數。
ReLU函數:ReLU函數是線性整流函數(Rectified Linear Unit)的簡稱,它可能是最有趣、最反直覺的函數。它幾乎就是一個直線函數,只不過在原點處有個拐角,所以它是一個分段函數。


人們經常會問,一個近似線性的函數是如何解決這個問題的。從圖中可以明顯看出,它幾乎可以完全避免梯度消失問題。單個ReLU函數會顯得比較單調乏味,但是多個在一些就會變得無懈可擊。

線性函數完全無法近似,而tanh函數試圖畫出平滑的類圓曲線,所以最終出現了六角形邊狀的ReLU函數。你可能會認為,這是兩個直線的一端接在一起,如同鐘表指針那樣。
現在,假設有一百萬條這樣的直線,那么你可以用這種排列方法模擬任何非線性形狀。ReLU的精妙之處就在于,它既近似線性,多個組在一起時又能通過改變拐角的角度模擬出幾乎所有形狀。
這引出了最后一個要解決的問題。
問題4:概率和問題
無論隱藏層的工作內容如何,最終的目標都是生成某種預測,而在這里,就是輸出一個概率向量,其中包含輸入對象為已標記對象概率表。比如,第一張圖片中神經網絡的結果可能是:
- [dog, cow, cat, goat, lamb] = [0. 2, 0.05, 0.7,0.03, 0.01]
結果最有可能是貓,因為是貓的概率為0.7,概率最高。
為了將全連接層的最終輸出值轉換為正規化概率向量,需要一個函數接受一個向量,然后輸出另一個向量,而且輸出向量所有元素的和為1。畢竟,這才是概率向量。
Sigmoid函數非常接近于概率函數,因為它的輸出值范圍為0到1,但是不滿足和等于1的情況。Softmax函數可以滿足這一點。
Softmax函數:函數接受一個向量,并使用下列函數計算輸出向量中每個元素的相應概率。

函數中分母為所有可能分子的和,避免輸出值超過1。
關于激活函數,你了解了嘛?