有人說這曾經是一道面試題!
我沒說過這句話,可是感受挺有道理 ---魯迅
在神經元中,輸入的inputs經過加權求和,而後被做用了一個函數,這個函數就是激活函數 Activation Function
。激活函數在神經網絡中的位置如圖所示:
面試
要解釋這個問題,能夠反過來思考一下,爲何激活函數不能使用線性函數
。
若是使用線性函數,每一層輸出都是上層輸入的線性函數,不管神經網絡有多少層,輸出都是輸入的線性組合
。加深神經網絡的層數就沒有什麼意義了。線性函數的問題在於無論加深層數到多少,老是存在與之等效的「無隱藏層」
的神經網絡。爲了稍微直觀的理解這一點,考慮下面一個簡單的例子。網絡
存在一個線性函數f(x)=kx(k≠0)
做爲激活函數,將y=f(f(f(x)))
對應三層的神經網絡。很明顯能夠想到一樣的處理能夠由y=ax(a=k^3)
,一個沒有隱藏層的神經網絡來表示。該例子僅僅是一個近似,實際中的神經網絡的運算要比這個例子複雜不少,但不影響結論的成立。也就是說,使用線性激活函數時,沒法發揮多層網絡帶來的優點。函數
相反若是使用非線性函數,激活函數給神經元引入了非線性因素,使得神經網絡能夠任意逼近任何非線性函數,這樣神經網絡就能夠應用到衆多的非線性模型中。spa
以上!code