激勵函數 (Activation Function)
當你瞭解神經網路(Neural Network)時,你會發現神經網路其實就是一個
非線性函數(Nonlinear Function)。
神經網路中的神經元再帶入激勵函數前都是一個線性函數(Linear Function),如下:y = w1*x1 + w2*x2 + w3*x3 + ... + wn*xn
我們將式子簡化為一個維度:Y = WX
我們可以畫出下方線性函數圖:
激勵函數的作用在於扭曲線段,使得原本的線性函數變成非線性,
帶入激勵函數式子變成:Y = AF(WX)
我們可以畫出下方非線性函數圖:
常見的激勵函數
激勵函數本質就是一個非線性函數,常見的激勵函數有:
以上激勵函數套用在原本的權重加總結果,使得輸出結果Y也有了非線性的特徵。
選擇適當的激勵函數
當神經網路只有兩三層,對於隱藏層可以使用任意的激勵函數,不會有特別的影響,
不過當神經網路有特別多層時,就必須謹慎挑選激勵函數,
這會涉及到梯度爆炸和梯度消失的問題。
在實際例子中,每種模型還是有首選的激勵函數,例如:
在卷積神經網路(CNN)中,推薦的激勵函數是 relu,
在循環神經網路(RNN)中,推薦的是 tanh 或是 relu。