深度學習模型是仿人類神經元的運作原理來去建模。神經元彼此之間在傳遞訊號時,訊號會經過激活函數,激活函數會去決定這個訊號是否需要被繼續往下傳遞。可以想成我們受到外界刺激時,如果很有感,就會做出反應,反之,就會忽略不重要的訊號,以此讓整個神經網路運作的更有效率。今天介紹業界幾個常用的激活函數:
Sigmoid的輸出值介於0與1之間,適合用在二元分類的問題上。不過由於針對比較小或大的數值,函數的反應不大,不太適用於深層的神經網路,因為容易發生Vanishing Gradient,導致模型的參數無法被進一步優化。
Tanh的輸出值介於-1到1之間,數值更新的區間大於Sigmoid。針對深層的神經網路,一樣會有Vanishing Gradient的問題,但相對Sigmoid來的緩和。RNN這種適用於時間序列的模型架構,往往搭配Tanh可以得到比較好的結果。
如果輸入的數值是小於0,則ReLu的輸出數值都是0。反之,ReLu的輸出數值與輸入數值呈現正向的關係。ReLu的計算複雜度低,可以解決深層神經網路的Vanishing Gradient的問題。然而,ReLu有Dying ReLUs的問題。這個問題起因是如果輸入的數值都小於0,則訊號傳遞將中斷,因為ReLu一律輸出0的數值。
為了解決Dying ReLu的問題,Leaky ReLu把原本負值輸入對應的水平線(y=0),調整成負的斜率函數。
Swish是由Google所發表的激活函數,專門適用於40層以上的深層神經網路架構。
Softmax數值輸出區間落在0與1之間,適用於多元分類的問題上。Softmax的輸出是機率,用來定義每一個類別被預測的機率。
ChatGPT出題時間:
- 哪个激活函数通常用于输出层,用于多类分类问题?
A. Sigmoid
B. Tanh
C. ReLU
D. Softmax
答案:D. Softmax
解释: Softmax 激活函数通常用于多类分类问题的输出层,它将神经网络的原始输出转化为表示每个类别概率的分布。
- 哪个激活函数适合用于神经网络的隐藏层,帮助网络学习非线性特征?
A. Sigmoid
B. Tanh
C. Swish
D. Softmax
答案:C. Swish
解释: Swish 激活函数在许多情况下表现出色,因为它是非线性的,且相对于 ReLU 具有更平滑的曲线,有助于神经网络学习非线性特征。
- 当需要将输出限制在0和1之间时,通常会使用哪个激活函数?
A. Tanh
B. ReLU
C. Sigmoid
D. Leaky ReLU
答案:C. Sigmoid
解释: Sigmoid 激活函数将输出限制在0和1之间,通常用于二元分类问题,以表示概率。
- 哪个激活函数适合处理文本分类问题中的单词嵌入?
A. ReLU
B. Tanh
C. Softmax
D. Swish
答案:B. Tanh
解释: Tanh 激活函数常用于处理文本分类问题中的单词嵌入,因为它可以将值限制在-1和1之间,有助于捕捉输入的线性特征。