• 沒有找到結果。

第三章 理論概述

3.2 類神經網路

3.2.2 活化函數

活化函數是類神經網路具有模擬複雜問題的關鍵,原本經由神經 元線性疊加計算的數值經由非線性活化函數轉換後可讓整個網路具有

doi:10.6342/NTU202003855

22

非線性轉換能力,一般而言會依神經元輸出值需求或其在網路中的位 置決定使用何種活化函數。本研究使用的活化函數有以下幾種:

1. 雙曲線正切函數(tanh)

雙曲線正切函數輸出值範圍界於-1 至 1 間,中心對稱於 0 原 點,同時曲線在輸入值-1 至 1 間距有較大變化使非線性擬合 (fitting)能力佳,輸入值超過-3 至 3 以外的區間輸出值趨近於 1 使 神經元輸出更為穩定,是非常適合於 ANN 中使用的活化函數。

主要缺點為計算量較大,以及微分值小於 0 會有訓練時於倒傳遞 誤差梯度過程發生梯度消失問題(vanishing gradient problem),較 不適合在多層網路中大量使用。此函數圖形如圖 3.2.2 所示,計 算如 3-4 式:

𝑓(𝑥) =𝑒𝑥 − 𝑒−𝑥

𝑒𝑥+ 𝑒−𝑥 (3-4)

(a)一般形式 (b)微分形式 圖 3.2.2 雙曲線正切函數

2. S 函數(sigmoid)

S 函數輸出值範圍界於-1 至 1 間,中心對稱於(0, 0.5),與雙 曲線正切函數主要差異在於計算較少,輸入值與輸出值變化特性 與雙曲線正切函數相似,常用於早期 FFNN 中取代雙曲線正切函

doi:10.6342/NTU202003855

23

數。其缺點為輸出值大於 0 的特性使使倒傳遞誤差梯度時非正即 負而產生震盪,可配合批次(batch)訓練累積多次修正再取其平均 值調整權重以避免數值震盪過大問題;函數微分小於 1 使其與雙 曲線正切函數一樣有梯度消失問題,較不適合在多層網路中大量 使用。此函數圖形如圖 3.2.3 所示,計算如 3-5 式:

𝑓(𝑥) = 𝑒𝑥

𝑒𝑥+ 1 (3-5)

(a)一般形式 (b)微分形式 圖 3.2.3 S 函數

3. 嚴格 S 函數(hard sigmoid)

嚴格 S 函數是 S 函數的計算簡化版本,輸出值範圍界於-1 至 1 間,中心對稱於(0, 0.5),除了輸入值與輸出值變化特性在輸入 值接近 0 時的斜率為定值外,其餘特性與 S 函數相似,適合用在 訓練樣本非常多或神經元數量非常大的案例中。此函數圖形如圖 3.2.4 所示,計算如 3-6 式:

𝑓(𝑥) = max⁡[0, min(1, 0.2𝑥 + 0.5)] (3-6)

doi:10.6342/NTU202003855

24

(a)一般形式 (b)微分形式 圖 3.2.4 嚴格 S 函數

4. 整流線性單位函數

整流線性單位函數(rectified linear unit, ReLU)輸入值小於 0 時輸出值為 0,其餘情況輸出值等於輸入值。雖然函數在原點 0 不可微分,但連續的特性不影響其於電腦程式中計算的方便性。

輸入值為負數時輸出 0 是其唯一的非線性特徵,雖然變化單調但 透過多層網路神經元串聯依然能模擬複雜數學函數。ReLU 微分 為 1 使其沒有梯度消失問題,常應用於具有多層結構之 DNN 模 式中。此函數圖形如圖 3.2.5 所示,計算如 3-7 式:

𝑓(𝑥) = max⁡(0, 𝑥) (3-7)

(a)一般形式 (b)微分形式 圖 3.2.5 整流線性單位函數

5. 線性輸出(linear)

doi:10.6342/NTU202003855

25

若神經元不使用任何活化函數即為線性輸出,一般用於模擬 回歸問題的 ANN 模式輸出層神經元中。如果一個 FFNN 模式無 任何活化函數,所有神經元均為線性輸出,則此 FFNN 模式可歸 納統整為多變量線性回歸(multiple regression)模式。

相關文件