• 沒有找到結果。

第三章 研究方法

第五節 實驗架構

立 政 治 大 學

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 作為參數 最佳化的演算法。

而研究流程主要由資料預處理、資料訓練、資料測試與績效檢測所組成。其 中資料預處理的部分除了會將原始資料二維化之外,同時會讓原始時間序列資料 資料之值限縮於[0,1]的範圍。

在資料訓練的部分,首先會將資料通過卷積層和池化層進行資料的卷積和池 化,在此以非監督式的方式進行特徵的提取,接著送入神經網路得到輸出值,此 為前向傳播法(Forward Propagation)的過程;下一步為將輸出值對應實際的資料 標籤,進行反向傳播法(Back Propagation)的步驟,調整神經網路與卷積層的權重 及偏值(bias),調整完後再讓下一批(batch)資料輸入。直到所有資料訓練完畢,視 為一次的訓練(epoch),接著重複多次訓練。

資料測試的部分,會將測試資料作為輸入,得到的輸出會和實際資料做比對,

最後得出模型混淆矩陣(confusion matrix)與精確度(accuracy) (1) 時間刻度

本研究最小可使用的時間刻度為 1 分鐘,但為了避免無效訊號過多以及節省 計算效能,本篇以投資人常用的 10 分 k、15 分 k、30 分 k、60 分 k 和日 k 做為 實證測試之時間刻度。

(2) 圖片生成方式及二維資料大小 D

圖片的生成方式與品質為最後決定模型結果好壞的關鍵因素。本篇將各種分

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

k 之開盤價,最高價,最低價和收盤價取平均,形成這分 k 之時間序列,此步驟 可降低資料誤差以及市場價格異常所造成的負面影響。為了能在一張圖片裡容納 更多資訊,本研究參考 Zheng et al. (2014)多重通道卷積神經網路(Multi-Channels Convolutional Neural Networks)的概念[31],再利用彩色圖片為三原色構成的原理,

將原來二維矩陣加上色版方向形成三維矩陣。而以三種不同分 k 代表紅綠藍三原 色,企圖讓一張圖片容納不同分 k 性質的資訊,最後形成一張金融影像。

圖 9 3 種不同分 k 代表紅綠藍三原色

展示 3 種不同分 k,分別是 30 分 k,60 分 k,日 k 代表著紅綠藍三原色。

圖 10 不同分 k 時間序列及 GADF 金融影像

圖 10 中左圖的部分即為圖 9 中三種圖片的原始時間序列,經由格拉姆角場 (Gramian Angular Field)的轉換形成圖 9,而右圖為將圖 9 中三張圖片疊加起來 所形成的一張金融影像,作為最後輸入模型的輸入值。

而決定使用過去多少時間來生成一張圖片,本篇設定 D=60,以 10 分 k、15 分 k 和 30 分 k 所形成的一張金融影像為例,即一張圖片在不同色版分別包含過

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

去兩天、三天和六天的資訊。

為了測試一張金融影像裡放多少長度的分 k 可以讓模型有較好的準確度以 及在實際交易時考慮手續費後依然有穩定的績效,本篇實證會測試 3 種不同分 k 組合,分別為(10k+15k+30k)、(15k+30k+60k)和(30k+60k+日 k)。

(3) 預測未來時間長度 F

本研究設定讓模型預測下一個時間刻度走勢。以 10 分 k、15 分 k 和 30 分 k 組合為例,模型每 10 分鐘會發出一次買賣訊號,即預測的是 10 分鐘後的漲跌走 勢。15k 和 30k 以此類推。

(4) 標籤

本研究將時間序列走勢預測問題設計為分類問題,分別讓每張圖片配對相對 應的標籤。若未來 F 時間上漲則設為 1,也就是買進;若未來 F 時間下跌則設為 0,也就是賣出,共分為 2 類。

圖 11 GASF 作圖及對應標籤

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

(5) Epoch、Batch size 和 Iteration

由於當數據量龐大時,一次性的將數據輸入模型是不可能的,因此我們需要 將數據區分成一小塊一小塊,而每塊的大小就是 Batch size。當一個完整的數據 集全被神經網路學習過一次後,稱作一個 Epoch。然而在神經網路中數據集只被 學習一次是不夠的,通常需要完整訓練多次才能讓 loss function 有機會達到全域 最小值(Global minimum)。Iteration 是 Batch 需要完才一個 Epoch 的次數,舉例來 說,對於一個有 2000 個訓練樣本的數據集,若將 Batch size 設定為 100,那麼完 成一個 Epoch 需要 20 次 Iteration。而每次的 Iteration 都是神經網路更新參數的 時候。本篇每個實驗皆預設 Epoch 為 15 次,Batch size 設定為 200。

(6) 訓練、驗證(Validation)及測試資料集

市場上的表現變化多端,背景環境和投資人的習慣也隨著時間有著不同的變 化。然而為了讓 CNN 模型能夠學習到市場的多空交替,設定 2003/1/2-2012/12/31 為訓練資料集,當中包含 3 次主要下跌期,分別是 2003 年 SARS 危機、2008 年 全球金融海嘯以及 2011 年歐債危機;以 2013/1/1-2013/12/31 做為驗證資料集調 整模型參數;最後以 2014/1/1-2017/12/29 做為測試資料集,其中包含 2015 年中 國股災 1 次下跌期,作為模型的壓力測試,觀察模型是否能通過下跌期的考驗。

圖 12 為訓練、驗證(Validation)及測試資料集示意圖。

圖 12 訓練、驗證(Validation)及測試資料集

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

相關文件