• 沒有找到結果。

3. 研究方法

3.4 神經網路

神經網路又稱人工神經網路(Artificial Neural Network, ANN),是一種自適 應系統可模仿生物神經網路結構的機器學習模型。在神經網路中,一個簡單的 人工節點稱作神經元(neuron),可以接受其他神經元的輸出或是從外部的輸入,

經過非線性函數(non-linear function)的計算並輸出,如圖一及公式(3)所示。

圖一、 單一神經元

𝑂 = 𝑓(∑𝑛𝑖=1𝑥𝑖𝑤𝑖+ 𝑏), (3) 公式中的𝑂為輸出值,𝑓為激勵函數(activation function),𝑥為輸入,𝑤為權重 (weight),𝑏為偏值(bias)。每個輸入點皆對應一個權重,在計算時會將輸入和對應 的權重相乘後做加總再加上一個偏值,經過激勵函數獲得輸出。

𝑥 1 𝜔 1 𝑥 2

… …

𝜔 2

𝑠𝑢𝑚 𝑓 𝑂

𝑥 𝑛 𝜔 𝑛

𝑏𝑖𝑎𝑠

11

3.4.1 激勵函數(activation function)

如果是使用線性(linear)激勵函數,那麼輸入和輸出之間是線性的關係,如此 一來神經網路有多少層都是線性組合,文獻[25]表示利用非線性激勵函數可增加 它的能力,使它可以學習複雜的數據使得神經網路的效能更為強大。以下為本研 究所使用之非線性激勵函數:

⚫ Sigmoid Function:又稱邏輯函數(logistic function)亦可稱為 S 函數,該激勵 函數會使輸出介於0 和 1 之間,如公式(4)所示。

𝑓(𝑥) = 𝜎(𝑥) =

1

1+𝑒−𝑥 . (4)

圖二、 Sigmoid Function 範圍圖

⚫ Tanh Function:又稱雙曲正切函數,該激勵函數會使得輸出介於 1 和-1 之間,

如公式(5)所示。

𝑓(𝑥) = 𝑡𝑎𝑛ℎ(𝑥) =

(𝑒𝑥−𝑒−𝑥)

(𝑒𝑥+𝑒−𝑥) . (5)

12

圖三、 Tanh Function 範圍圖

⚫ ReLU Function:又稱整流線性單元,該激勵函數是神經網路最常被使用的激 勵函數,若輸入值為正,則輸出值為該值大小,若輸入值為負,則輸出值為 0,如公式(6)所示。

𝑓(𝑥) = 𝑚𝑎𝑥(0, 𝑥)

. (6)

圖四、 ReLU Function 範圍圖

13

⚫ Leaky ReLU Function:為了解決 ReLU 負數無法作用的問題,用一個極小值 的係數來乘上負數,使得在負數區域時偏向激活,可以解決梯度消失的問題,

如公式(7)所示,下圖五係數為 0.2。

𝑓(𝑥) = 𝑚𝑎𝑥(𝑎𝑥, 𝑥) , 𝑎 = 0.1 ~0.3

. (7)

圖五、 Leaky ReLU Function 範圍圖

3.4.2 損失函數(loss function)

本研究採用的損失函數為均方誤差(mean-square error, MSE)[26],此法可以 測試選股模型的預測效能,計算方法是使用模型預測輸出與真實輸出之差值的平 方和的平均。MSE 計算方式如下公式(8)。

𝑀𝑆𝐸 =

(𝑦𝑖−𝑦𝑖

𝑝)2 𝑛𝑖=1

𝑛

,

(8)

其中𝑦𝑖為真實輸出,𝑦𝑖𝑝為選股模型預測輸出,𝑛為資料總筆數。

14

3.4.3 梯度下降法(Gradient Descent, GD)

梯度下降度(Gradient Descent,簡稱 GD),是一種不停更新參數尋找最佳解 的方法,主要是利用梯度下降法尋找出一個函數的局部最小值(local minimum),

一般梯度下降法後續延伸出隨機梯度下降法,簡稱SGD(Stochastic Gradient Descent),在此簡單說明 GD 與 SGD 之差別,在更新參數時,GD 是一次使用全 部訓練集去計算損失函數的梯度並將參數進行更新一次,而 SGD 一次跑一個樣 本然計算出一次梯度後就更新一次參數,這個樣本是隨機抽取的,所以稱之為隨 機梯度下降法,後來此法加上動量(momentum),簡稱 SGDM(Stochastic Gradient Descent Momentum),如下為 SGDM 的公式(10):

𝑥

𝑡+1

← 𝑥

𝑡

− 𝜂

𝛻𝑓(

𝑥

𝑡)

+ 𝛾(𝑥

𝑡

− 𝑥

𝑡−1

) , (10)

15

3.4.4 反向傳播法(Backpropagation, BP)

在訓練神經網路的過程中,有許多的參數需要梯度下降,而為了使梯度下降 法快速的更新每個輸入的權重及偏值。而反向傳播法[28]的主要理念為使用連鎖 法則(chain rule)結合梯度下降法對損失函數(loss function)求偏導數,假設有一神 經網路如下圖六,輸入層為

𝑖

1

、 𝑖

2,隱藏層為

1

、 ℎ

2,每個神經元之間階有權 重

𝑤

1

𝑤

2(圖中括號內數值為對應之權重)以及

𝑏

1

、 𝑏

2為偏值,

𝑜

1

、 𝑜

2為輸出層。

16

圖六、 神經網路圖

以此圖為例子,其中𝐸𝑡𝑜𝑡𝑎𝑙為神經網路的整體誤差,以下為神經網路的誤差公式:

𝐸

𝑜1

= 1 2 ⁄ (𝑡𝑎𝑟𝑔𝑒𝑡

𝑜1

− 𝑜𝑢𝑡

𝑜1

)

2

,=

(17)

𝐸

𝑡𝑜𝑡𝑎𝑙

= 𝐸

𝑜1

+ 𝐸

𝑜2

,

(18)

接著𝐸𝑡𝑜𝑡𝑎𝑙對w5偏微分其公式如下:

𝜕𝐸𝑡𝑜𝑡𝑎𝑙

𝜕𝑤5

= −(𝑡𝑎𝑟𝑔𝑒𝑡

𝑜1

− 𝑜𝑢𝑡

𝑜1

) ∗ 𝑜𝑢𝑡

𝑜1

(1 − 𝑜𝑢𝑡

𝑜1

) ∗ 𝑜𝑢𝑡

1

,

(19) 之後對

𝑤

5

更新權重,其公式如下:

𝑤

5+

= 𝑤

5

− 𝜂 ∗

𝜕𝐸𝑡𝑜𝑡𝑎𝑙

𝜕𝑤5

,

(20)

17

相關文件