• 沒有找到結果。

第三章 研究方法

第二節 卷積神經網路架構

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

第三章 研究方法

第一節 卷積神經網路

卷積神經網路(Convolution Neural Network,CNN)最初是為了解決圖像辨識 等問題設計的,其現在的應用已不僅限於圖像或影片,也可用於時間序列訊號。

例如,聲音訊號、文字資料等。卷積神經網路概念最早出自於 1860 年科學家提 出的感受區(Receptive Field)。當時科學家在研究貓的視覺皮層細胞時發現,每一 個視覺神經元只會處理一小塊區域的視覺圖像,稱為感受區。而卷積神經網路 (CNN)的概念[20]是由 LeCun et al. (1995)率先提出,接著 LeCun et al. (1998)確立 了卷積神經網路(CNN)的架構[21],並用於手寫數字辨識取得卓越的成果。而在 金融市場的預測領域,以往的研究主要是人類主觀意識決定會影響未來金融市場 走勢的變數,進而進行市場預測。本研究嘗試從不同的角度來預測金融市場。投 資人在研究股價行為時,很難同時進行多個技術分析、財務指標和總經指標等一 維時間序列的資料裡找出可以在市場上獲利的規則。而本研究透過將原本多個一 維時間序列的資料轉換為二維圖像資料,將視角提升到二維的測度,再利用卷積 神經網路卓越的圖形辨識能力,讓深度學習本身自我提取可以有效預測市場走勢 的特徵,找出有可能存在市場中的規則,企圖萃取出能夠決定金融商品未來走勢 決定性的因素。

第二節 卷積神經網路架構

本研究中,將使用深度學習 CNN(Convolution Neural Network)對台灣加權指 數期貨的未來走勢進行預測,以評估深度學習之概念套用於金融商品價格走勢預 測的可行性,進而建構可以穩定擊敗大盤的交易策略。所使用的卷積神經網路架

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

構為參考[21]的內容。如圖 1 所示,包含兩層卷積層(Convolution layer)、兩層池 化層(pooling)、兩層隱藏層(hidden layer)和一層輸出層(Output layer)。本篇不同的 是只使用一層隱藏層,而激勵函數使用 Krizhevsky (2012)在 AlexNet 架構裡提出 的 relu 函數,並使用 RMSProp 作為參數最佳化的演算法。

圖 1 LeNet 架構1 (1) 卷積(convolution)

∫ 𝑓(𝜏)𝑔(𝑥 − 𝜏)𝑑𝜏

−∞

(1)

上述式子是在定義域連續的卷積定義,直觀的解釋是函數𝑔從左到右掃過函 數𝑓所重疊面積的量,並且有滑動平均的效果。我們可以將函數𝑔想像成濾鏡,將 函數𝑓掃過一遍後,若得到新的函數與𝜏軸所夾的面積較大,則代表函數𝑔和函數 𝑓具有相似的形狀,也可以說函數𝑔補捉到函數𝑓的特徵。在卷積式類神經網路的 卷積層裡。就是利用這種概念,提取圖片中某些重要的特徵,不僅大幅減少所需 要訓練的參數,也提高圖形辨識的準確度。

在卷積神經網路中,第一個卷積層會直接接受圖像像素級的輸入,每一個卷 積的操作只處理一小塊圖像,進行卷積變化後再傳到後面的神經網路,每一層卷 積(濾鏡)都會提取資料中最有效的特徵。這種方法可以提取到圖像中最基礎的特 徵,例如不同方向的邊或者拐角,而後再進行組合形成更高階的特徵,因此 CNN

1 LeCun, Y., L. Bottou, Y. Bengio, and P. Haffner, (1998). Gradient-based learning applied to document recognition. p.7

(1.b) 填補(padding)

進行卷積運算之前,可以在輸入資料的周圍填上固定的數值(例如 0),這個

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖 2 池化層

圖八是以2 × 2的最大池化進行處理,步幅為 2。最大池化是用來取得最大值,

2 × 2是代表成為處理對象的區域大小。如圖所示,針對2 × 2區域,取出最大元 素,並設定步幅為 2,因此(4,4)大小的輸入資料經由池化層的作用,輸出變為(2,2)。

池化層的功能為吸收資料中的偏差值,即使輸入資料出現小偏差,池化層仍會回 傳相同結果,具有穩健性的效果。另外經過池化層的作用,會保留圖片中最顯著 的特徵,會更專注於圖片中是否存在相符的特徵,而非圖片中哪裡存在這些特徵,

提升模型訓練的速度。除了最大池化外,還有平均池化,效果是計算目標區域的 平均值。

(2) 感知器(perceptron)

感知器(perceptron),又被稱作人工神經元(artificial neuron)或單純感知器 (simple perceptron),是美國研究員 Rosenblatt 在 1957 年提出的概念,而感知器 為造就類神經網路(深度學習)的重要演算法,以下將詳細說明何謂感知器。

感知器是收到多個輸入訊號後,經由感知器內部的函數作用,而得到一個新 的訊號,接下來以接收兩個輸入訊號的感知器為例來說明:

1 2 0 5 0 2 6 4 4 3 0 1 1 0 3 2

2 6 4 3

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖 3 感知器(Perceptron) 圖 3 中的感知器可用以下式子表達:

{−1, 𝑖𝑓 𝑤0+ 𝑤1𝑥1+ 𝑤2𝑥2 ≥ 0

1, 𝑖𝑓 𝑤0 + 𝑤1𝑥1+ 𝑤2𝑥2 < 0 (4) 其中𝑥1、𝑥2為輸入訊號,經過𝑤1、𝑤2的加權並加上偏移項(bias) 𝑤0,經過激 勵函數(Active function)非線性的轉換,如果加總大於等於 0 輸出 1,小於 0 則輸 出 0,以上即為感知器運作原理。

然而單一感知器其極限在於只能用一條直線表現劃分的區域,若是處理非線 性分類問題則無法用單一感知器解決,而解決的辦法是可以將多個單一感知器疊 層,利用疊層的方式,即可執行非線性的分類。如圖 4 所示。

圖 4 多層感知器

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

類神經網路的概念與多層感知器(multilayer perceptron, MLP)相似,其概念可 由圖 5 表示:

圖 5 類神經網路架構2 (3) 激勵函數(Active function)

而其中類神經網路和感知器不同的地方在激勵函數的種類,在感知器中選擇 的激勵函數為階梯函數(unit step function),在類神經網路中,常見的激勵函數為 sigmoid 函數以及 relu 函數,以下分別說明:

(3.a) sigmoid 函數:

ℎ(x) = 1

1 + 𝑒𝑥𝑝 (−𝑥) (5)

在神經網路中,使用屬於激勵函數的 sigmoid 函數轉換訊號,轉換後的訊號 就會傳給下一個神經元,其輸出會介於 0 到 1 之間的實數。在 LeCun et al. (1998) 所提出的 CNN 架構中即使用 sigmoid 函數做為神經元的激活函數。

2 J.P. Morgan. Big Data and AI Strategies - Machine Learning and Alternative Data Approach to Investing. p. 103

(2012)所提出的 AlexNet 架構中所使用,其原因為可以減少在訓練過程中運算的 速度以及解決梯度消失的問題。 數,而神經網路中所使用的指標稱作損失函數(loss function),而最常被使用的 損失函數即為交叉熵誤差(cross entropy error),可以使用以下式子表達:

𝐽(𝑤) = − 1

(6) 梯度下降法(Gradient Descent)

在神經網路中,更新參數的方法通常利用的是梯度下降法來進行參數權重的 訓練,其參數更新的方法可以用下列式子表示:

𝑤 ← 𝑤 − α 𝜕

𝜕𝑤𝐽(𝑤) (9)

其中𝑤以向量形式表示,α為學習速率(learning rate),若𝜕

𝜕𝑤𝐽(𝑤)為負,代表增加 𝑤可以降低損失函數,因此根據上述疊代方法會增加𝑤,反之同理,即可達到降 低損失函數的效果。

(7) 反向傳播演算法(Backpropagation) [25]

在做感知器學習時,可以使用梯度下降法來更新參數,而類神經網路本身即 是多層感知器所構成的,因此也可以使用梯度下降法來做訓練。但類神經網路在 訓練的過程中,需要分為兩個步驟,前向傳播(Propagation Forward)和反向傳播 (Backpropagation)。也就是要先給參數初值,再從輸入層(Input layer)把輸入值傳 送到輸出層(Output layer),再根據損失函數從輸出層往回傳遞誤差(Error)到每一 層神經元,去更新層與層之間權重的參數。詳細計算可參照附錄。

(8) 最佳化(Optimization)

(8.a) 隨機梯度下降法(stochastic gradient descent, SGD)

𝑤 ← 𝑤 − α 𝜕

(8.b) 動量(momentum)

𝑤 ← 𝑤 − α 𝜕

𝜕𝑤𝐽(𝑤) + 𝑣 (11) 應用物理的觀念,我們讓𝑣對應物理的速度,將物體往梯度方向的受力加上 物體的速度,藉此降低參數在訓練過程中卡在區域最佳解的機率。

(8.c) AdaGrad[8]

ℎ ← ℎ + 𝜕

此優化方法式結合了動量(momentum)和 AdaGrad 的優點,可以有效探索參 數空間。

(8.e) RMSProp

RMSProp 優化方法是對 AdaGrad 加以改良,由於過去梯度的平方可能會有 很大的變化,RMSProp 利用移動平均法的概念,將過去梯度的平方作移動平均,

如此一來可以解決 AdaGrad 學習速率忽大忽小的情況,並且更加穩定。本研究將 使用 RMSProp 作為最佳化的演算法。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

(9) 正規化(Regularization) (9.a) Ridge regression

𝐽(𝑤) = − 1

𝑚∑ ∑(𝑦𝑗(𝑖)𝑙𝑜𝑔𝑦̂𝑗(𝑖)+ (1 − 𝑦𝑗(𝑖))log (1 − 𝑦̂𝑗(𝑖))

𝑘

𝑗=1 𝑚

𝑖=1

) + 𝛼 ∑ 𝑤𝑘2

𝑛

𝑘=1 (14) 由於深度學習參數較多,因此很容易發生過擬合的情形(overfitting)。透過上 式,當在優化參數時,損失函數會慢慢變小,在過程當中即會逞罰過大的參數,

如此一來就可以解決過擬合的情形。

相關文件