神經網絡的激活函數爲何要使用非線性函數?

在這裏插入圖片描述

有人說這曾經是一道面試題!
我沒說過這句話,可是感受挺有道理 --- 魯迅

▍什麼是激活函數

在神經元中,輸入的inputs經過加權求和,而後被做用了一個函數,這個函數就是激活函數 Activation Function。激活函數在神經網絡中的位置如圖所示:
在這裏插入圖片描述面試

▍爲何要用非線性函數

要解釋這個問題,能夠反過來思考一下,爲何激活函數不能使用線性函數
若是使用線性函數,每一層輸出都是上層輸入的線性函數,不管神經網絡有多少層,輸出都是輸入的線性組合。加深神經網絡的層數就沒有什麼意義了。線性函數的問題在於無論加深層數到多少,老是存在與之等效的「無隱藏層」的神經網絡。爲了稍微直觀的理解這一點,考慮下面一個簡單的例子。網絡

存在一個線性函數f(x)=kx(k≠0)做爲激活函數,將y=f(f(f(x)))對應三層的神經網絡。很明顯能夠想到一樣的處理能夠由y=ax(a=k^3),一個沒有隱藏層的神經網絡來表示。該例子僅僅是一個近似,實際中的神經網絡的運算要比這個例子複雜不少,但不影響結論的成立。也就是說,使用線性激活函數時,沒法發揮多層網絡帶來的優點。函數

相反若是使用非線性函數,激活函數給神經元引入了非線性因素,使得神經網絡能夠任意逼近任何非線性函數,這樣神經網絡就能夠應用到衆多的非線性模型中。spa

以上!code


在這裏插入圖片描述

相關文章
相關標籤/搜索