1. 程式人生 > >誰擋了我的神經網路?(三)—— 啟用函式

誰擋了我的神經網路?(三)—— 啟用函式

誰擋了我的神經網路?(三)—— 啟用函式

這一系列文章介紹了在神經網路的設計和訓練過程中,可能提升網路效果的一些小技巧。前文介紹了在訓練過程中的一系列經驗,這篇文章將重點關注其中的啟用函式部分。更新於2018.11.1。

文章目錄

介紹

啟用函式(activation function)是指放在層與層之間,使得網路的輸出控制在某一個範圍內的函式,也稱作傳遞函式(transfer function)。這些函式通常是非線性的,正是因為這些函式的存在,才使得神經網路能夠描述非線性變換。否則,無論多少層卷積層等線性變換的疊加,都相當於一層非常寬的線性變換層的結果。

比較常用的啟用函式有:

在這裡插入圖片描述

目前最常用的啟用函式是ReLU系列,因為其不容易造成梯度消失等問題。所以,對於損失函式,除非有特殊需求,通常都採取ReLU系列的啟用函式。具體應用的種類,可以直接藉助各種深度學習庫中提供的現有函式,比如Caffe中提供的就是Leaky ReLU,但是當其中的引數設定成0的時候,其就會退化成普通的ReLU了。

至於其他種類的啟用函式,博主認為,對於應用神經網路的人而言,除非有特殊需求,否則暫時沒有必要深究。當然,如果在日後的研究過程中博主有了不同的看法,會回來更新的,這個也只是博主的一個建議,大家有選擇地看。

參考文獻

  1. 比較古老的一篇,從數學角度的解釋:
    https://papers.nips.cc/paper/874-how-to-choose-an-activation-function.pdf
  2. 有視訊演示:https://engmrk.com/activation-function-for-dnn/