DeepLearning筆記:Activation Function 激活函數

阿扣:阿特,今天我們來了解一下深度學習中的激活函數(Activation functions)。

阿特:又是函數……為什麼要了解這個哦……

阿扣:在機器學習中,我們經常需要對輸出結果打上「是」或「否」標籤。比如對一張輸入的圖片,模型要判斷圖片裡面有沒有包含汪星人。

上一回我們提到的邏輯回歸,可以用來減少預測值和真實值之間的誤差。

阿特:那要怎麼做呢?

阿扣:我們來用符號描述一下問題:

  • x:訓練數據中的 input
  • y:訓練數據中已經做好標記的 output
  • w:邏輯回歸的 weights
  • b:邏輯回歸的 bias
  • 模型的輸出:y? =σ(wx+b)

阿特:老朋友 wx + b

阿扣:好眼力。它就是一個線性模型。別忘了,我們想讓輸出只包含兩個值:是,否。一般我們會用 1 表示「是」,用 0 表示「否」。

阿特:就是我給模型圖片 A,它說「0」;給圖片 B,它說「1」;……這樣?

阿扣:沒錯~ 所以我們把結果的輸出全部轉換成或 0 或 1 的值。激活函數就是用來幫助我們實現這種轉化的。

上面我們用到的激活函數叫做 Sigmoid 函數。它幫我們做到了:

  • 如果輸入值 z 是一個大的正數,函數的輸出值為 1;
  • 如果輸入值 z 是一個大的負數,函數的輸出值為 0;
  • 如果輸入值 z = 0,那麼輸出值是 0.5

阿特:也就是說,不論我給什麼樣的整數,最後都會返回 0 或 1 的結果?

阿扣:沒錯!這樣我們得到分類的結果,或 0 或 1。在深度學習中,這種把輸出轉化為我們想要的形式的函數,我們叫它「激活函數」:

激活函數的主要作用是提供網路的非線性建模能力。如果沒有激活函數,即便有再多的隱藏層,其整個網路跟單層神經網路也是等價的。加入激活函數之後,深度神經網路才具備了分層的非線性映射學習能力。

上圖就是其中的一種激活函數:sigmoid 函數。

阿特:這麼說,激活函數不止一種?

阿扣:對呀。下面我列了一些常用的激活函數,作為今天的補充資料吧。現在可能還看不到,先混個臉熟就好。

阿特:好的先刷臉。

Sigmoid

Sigmoid 函數取值範圍為(0,1),將一個實數映射到(0,1)的區間,可以用來做二分類。

Sigmoid 在特徵相差比較複雜或是相差不是特別大時效果比較好。Sigmoid 的導數最大值為0.25。這意味著用來進行反向傳播時,返回網路的 error 將會在每一層收縮至少75%(梯度消失問題)。對於接近輸入層的層,如果有很多層, weights 更新會很小。

Tanh

也稱為雙切正切函數,取值範圍為[-1,1]。tanh 在特徵相差明顯時的效果會很好,在循環過程中會不斷擴大特徵效果。

ReLU

ReLU (rectified linear units) 是現在較常用的激活函數。如果輸入 < 0,ReLU 輸出 0;如果輸入 >0,輸出等於輸入值。

ReLU 計算量小(不涉及除法),一部分神經元的輸出為 0 造成了網路的稀疏性,並且減少了參數的相互依存關係,緩解了過擬合問題的發生。

ReLU 的缺點是,梯度較大時,ReLU 單元可能大都是 0,產生大量無效的計算(特徵屏蔽太多,導致模型無法學習到有效特徵)。

Softmax

Softmax 函數將 K 維的實數向量壓縮(映射)成另一個 K 維的實數向量,其中向量中的每個元素取值都介於(0,1)之間。常用於多分類問題。Softmax 把分數轉換為概率分布,讓正確的分類的概率接近 1,其他結果接近 0。相比 Sigmoid,它做了歸一化處理。

Ref

  • Deep Learning Nanodegree | Udacity
  • Neural Networks and Deep Learning | Coursera
  • Neural networks and deep learning
  • Andrej Karpathy's CS231n course
  • 深度學習筆記(三):激活函數和損失函數 - CSDN博客Neural Networks and Deep Learning | Coursera深度學習筆記(三):激活函數和損失函數 - CSDN博客

00 的 DeepLearning 系列

00:DeepLearning筆記:機器學習和深度學習的區別zhuanlan.zhihu.com圖標00:DeepLearning筆記:Neural Networks 神經網路zhuanlan.zhihu.com圖標00:DeepLearning筆記:Linear regression 線性回歸zhuanlan.zhihu.com圖標


推薦閱讀:

PyTorch提取中間層特徵?
CMU MLT vs UPenn CIS PhD?
深度學習中為什麼普遍使用BGR而不用RGB?
美國cs博士一般幾年能畢業?
如何評價 2017 年 Jeff Dean 的關於使用 deep learning 做索引的論文?

TAG:深度学习DeepLearning | 数学 | 编程 |