国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于循環(huán)神經(jīng)網(wǎng)絡(luò)的金融數(shù)據(jù)預(yù)測(cè)系統(tǒng)

2019-06-07 15:08黃有為高燕
軟件導(dǎo)刊 2019年1期
關(guān)鍵詞:深度學(xué)習(xí)大數(shù)據(jù)神經(jīng)網(wǎng)絡(luò)

黃有為 高燕

摘 要:金融預(yù)測(cè)旨在對(duì)金融歷史數(shù)據(jù)進(jìn)行分析,構(gòu)建預(yù)測(cè)模型,并對(duì)未來(lái)數(shù)據(jù)走勢(shì)作出預(yù)測(cè)。系統(tǒng)創(chuàng)新性地將最新的深度學(xué)習(xí)成果與金融預(yù)測(cè)相結(jié)合,提出使用循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)金融數(shù)據(jù)變化的方法。首先介紹了近幾年人工智能的突破性成果,以RNN相關(guān)技術(shù)為基礎(chǔ)對(duì)系統(tǒng)進(jìn)行設(shè)計(jì),然后通過(guò)實(shí)驗(yàn)組展示系統(tǒng)預(yù)測(cè)效果,并對(duì)系統(tǒng)獲得的結(jié)果數(shù)據(jù),使用深度學(xué)習(xí)相關(guān)評(píng)估算法評(píng)估其預(yù)測(cè)準(zhǔn)確性。實(shí)驗(yàn)評(píng)估結(jié)果表明,使用循環(huán)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)與分析歷史數(shù)據(jù),并將其模型用于預(yù)測(cè)未來(lái)金融數(shù)據(jù)走勢(shì)的方案具有較高的可靠性與準(zhǔn)確性。因此,深度學(xué)習(xí)在金融預(yù)測(cè)領(lǐng)域具有較大發(fā)展?jié)摿Α?/p>

關(guān)鍵詞:深度學(xué)習(xí);神經(jīng)網(wǎng)絡(luò);RNN;大數(shù)據(jù);金融預(yù)測(cè)

DOI:10. 11907/rjdk. 181779

中圖分類號(hào):TP303文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672-7800(2019)001-0028-06

Abstract: The purpose of financial forecasting is to analyze financial historical data, construct forecasting model, and forecast the trend of future data. This paper combines the latest in-depth learning results with financial forecasting systematically and creatively, and puts forward a method of forecasting the changes of financial data using cyclic neural network. Firstly, this paper introduces the breakthrough of artificial intelligence in recent years, designs the system based on RNN technology, realizes it by computer language, and then displays the predictive effect of the system through the experimental group, and evaluates the predictive accuracy of the system by depth learning related evaluation algorithm. According to the final experimental evaluation results, the scheme uses the cyclic neural network to learn and analyze historical data, and using the model to predict the future trend of financial data has certain reliability and accuracy, thus in-depth learning has development potential in financial forecasting.

Key Words: deep learning; neural network; RNN; big data; financial forecast

0 引言

人工智能的概念早在1956年即被提出,經(jīng)歷了半個(gè)多世紀(jì)的發(fā)展,直至人工神經(jīng)網(wǎng)絡(luò)理論的提出,以及Google第一次發(fā)表深度學(xué)習(xí)技術(shù),并通過(guò)“人機(jī)大戰(zhàn)”[1]的形式走進(jìn)公眾視野,人們才真正認(rèn)識(shí)到深度學(xué)習(xí)的強(qiáng)大能力。

關(guān)于人工智能的發(fā)展,傳統(tǒng)人工智能技術(shù)在上世紀(jì)70-90年代占據(jù)了絕對(duì)領(lǐng)導(dǎo)地位,例如非線性與線性核 SVM、貝葉斯分類器等方法,被認(rèn)為適合于小型數(shù)據(jù)計(jì)算。隨著互聯(lián)網(wǎng)的迅速發(fā)展,Internet中的信息產(chǎn)生爆炸式增長(zhǎng)。以金融數(shù)據(jù)為例,對(duì)新浪財(cái)經(jīng)進(jìn)行數(shù)據(jù)爬蟲(chóng),僅期貨一個(gè)板塊即獲得了幾十萬(wàn)條數(shù)據(jù),而且該數(shù)字每時(shí)每刻還在不斷增長(zhǎng)。因此,近幾年提出“大數(shù)據(jù)”概念,以研究互聯(lián)網(wǎng)中產(chǎn)生的龐大數(shù)據(jù)量,并對(duì)其加以利用[2]。然而,類似金融領(lǐng)域的相關(guān)“大數(shù)據(jù)”已無(wú)法通過(guò)人工進(jìn)行分析、挖掘或預(yù)測(cè),即使借助傳統(tǒng)人工智能或統(tǒng)計(jì)軟件的幫助,想要擬合出數(shù)據(jù)變化特征也十分困難。因?yàn)槿斯そ⒌哪P痛嬖谛逝c容錯(cuò)率低、擴(kuò)展與升級(jí)緩慢等問(wèn)題,且傳統(tǒng)人工智能方法并不適用于對(duì)龐大數(shù)據(jù)的特征挖掘。

深度學(xué)習(xí)不同于傳統(tǒng)人工智能方法[3],其采用“逆向推導(dǎo)思維”方式,以龐大的數(shù)據(jù)量為基礎(chǔ),借助神經(jīng)網(wǎng)絡(luò)自主學(xué)習(xí)的特點(diǎn)(神經(jīng)元構(gòu)建連接關(guān)系的過(guò)程),通過(guò)反復(fù)學(xué)習(xí)歷史數(shù)據(jù)進(jìn)行不斷改進(jìn)與優(yōu)化,擬合出一個(gè)最優(yōu)模型,其中RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))適合于時(shí)間序列上數(shù)據(jù)特征的學(xué)習(xí)。由于金融數(shù)據(jù)具有序列性,可通過(guò)RNN擬合出歷史數(shù)據(jù)特征作為預(yù)測(cè)模型,并在預(yù)測(cè)過(guò)程中對(duì)模型不斷進(jìn)行優(yōu)化。隨著數(shù)據(jù)量的累積,模型理論上可無(wú)限趨于最優(yōu)。

金融預(yù)測(cè)方法在國(guó)際上得到了廣泛關(guān)注,諾貝爾經(jīng)濟(jì)學(xué)獎(jiǎng)曾分別于2003年與2011年頒發(fā)給成功將基于自回歸條件差異及向量自回歸預(yù)測(cè)模型應(yīng)用于金融時(shí)間序列預(yù)測(cè)的兩位經(jīng)濟(jì)學(xué)家[4]。

在不同學(xué)術(shù)領(lǐng)域,學(xué)者們提出多種金融分析預(yù)測(cè)方法,包括:①基于經(jīng)濟(jì)學(xué)的金融預(yù)測(cè)學(xué)及其改進(jìn)的預(yù)測(cè)方法,例如基于灰色線性回歸組合模型的金融預(yù)測(cè)方法,其具有數(shù)據(jù)需求量少、預(yù)測(cè)模型精確的特點(diǎn)[5];②基于數(shù)學(xué)與統(tǒng)計(jì)學(xué)的預(yù)測(cè)方法與模型,例如改進(jìn)的隱馬爾科夫模型及其在金融預(yù)測(cè)中的應(yīng)用[6-7]、基于貝葉斯最大似然估計(jì)的金融預(yù)測(cè)等[8]。近幾年又出現(xiàn)了結(jié)合計(jì)算機(jī)技術(shù)對(duì)金融數(shù)據(jù)進(jìn)行分析與預(yù)測(cè)的方法,其中以深度學(xué)習(xí)為基礎(chǔ)的金融預(yù)測(cè)技術(shù)發(fā)展尤為迅速[9],例如基于遺傳算法與神經(jīng)網(wǎng)絡(luò)耦合的金融預(yù)測(cè)方法[10]、FEPA模型[11]、廣義回歸神經(jīng)網(wǎng)絡(luò)的金融預(yù)測(cè)模型[12]等。此外,也不乏對(duì)計(jì)算機(jī)技術(shù)中傳統(tǒng)預(yù)測(cè)方法的應(yīng)用,例如SVM方法[13]、EMD方法[14]等。在與計(jì)算機(jī)結(jié)合的金融分析預(yù)測(cè)方法中,無(wú)論是傳統(tǒng)預(yù)測(cè)方法,還是基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)金融預(yù)測(cè)方法,都具有較強(qiáng)的創(chuàng)新性,且在特定領(lǐng)域或環(huán)境下具有較高的準(zhǔn)確性與可靠性。

綜合上述結(jié)合經(jīng)濟(jì)學(xué)、數(shù)學(xué)、計(jì)算機(jī)科學(xué)針對(duì)金融數(shù)據(jù)的分析方案,即使是基于CNN(卷積神經(jīng)網(wǎng)絡(luò))或傳統(tǒng)人工智能的預(yù)測(cè)方法,如果是在長(zhǎng)時(shí)間序列的歷史數(shù)據(jù)上構(gòu)建模型,該模型對(duì)數(shù)據(jù)時(shí)間前后依賴性關(guān)系的記憶與分析能力較差,無(wú)法滿足長(zhǎng)序列上的金融數(shù)據(jù)分析要求。本系統(tǒng)創(chuàng)新性地采用RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))中的LSTM(長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò))[15]構(gòu)建金融預(yù)測(cè)模型,其特點(diǎn)為:預(yù)測(cè)模型是針對(duì)歷史數(shù)據(jù)在時(shí)間線上相互影響產(chǎn)生的變化特征進(jìn)行擬合,而非數(shù)據(jù)本身,即當(dāng)日數(shù)據(jù)變化與昨日數(shù)據(jù)相關(guān),昨日與前日數(shù)據(jù)相關(guān),前日又與更久遠(yuǎn)的數(shù)據(jù)相關(guān),以此類推分析其遞歸關(guān)系,并且所追蹤的數(shù)據(jù)序列更長(zhǎng)。該方法充分利用了金融數(shù)據(jù)變化的時(shí)間序列性、關(guān)聯(lián)性及重演性等特點(diǎn)。

1 系統(tǒng)設(shè)計(jì)

RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))模型設(shè)計(jì)過(guò)程包括:數(shù)據(jù)加載、模型構(gòu)建、數(shù)據(jù)訓(xùn)練以及評(píng)估模型設(shè)計(jì)。

1.1 數(shù)據(jù)加載

(1)數(shù)據(jù)類型:金融數(shù)據(jù)。例如,期貨和股票通常提供以下4個(gè)價(jià)格:最高價(jià)、最低價(jià)、開(kāi)盤價(jià)、收盤價(jià)。由于最高價(jià)和最低價(jià)已包含開(kāi)盤價(jià)與收盤價(jià),又因?yàn)殚_(kāi)盤價(jià)和收盤價(jià)是某天數(shù)據(jù)中偶然出現(xiàn)的價(jià)格,故訓(xùn)練數(shù)據(jù)應(yīng)選擇最高價(jià)或最低價(jià)作為輸入數(shù)據(jù)。實(shí)驗(yàn)為了加速數(shù)據(jù)訓(xùn)練過(guò)程,將輸入數(shù)據(jù)類型暫時(shí)設(shè)定為最高價(jià)。

(2)數(shù)據(jù)窗口:對(duì)應(yīng)RNN中的滑動(dòng)窗口(為了預(yù)測(cè)目標(biāo)數(shù)據(jù)所需輸入的特征數(shù)據(jù)序列,是一段長(zhǎng)度可變、數(shù)據(jù)量有限、數(shù)據(jù)性質(zhì)相同的連續(xù)數(shù)據(jù),可理解為數(shù)學(xué)中的離散數(shù)據(jù)區(qū)間,例如:數(shù)據(jù)1、2、3、4、5可作為一個(gè)窗口,滑動(dòng)到下一個(gè)窗口則為2、3、4、5、6)。該窗口大小需要根據(jù)RNN實(shí)際學(xué)習(xí)得出的模型進(jìn)行調(diào)整。理論上,若窗口過(guò)大,隨著時(shí)間推移,數(shù)據(jù)變化特征對(duì)市場(chǎng)隨機(jī)噪點(diǎn)越敏感,距離預(yù)測(cè)目標(biāo)值過(guò)于遙遠(yuǎn)的數(shù)據(jù)對(duì)目標(biāo)的意義則越小;若窗口過(guò)小,將導(dǎo)致深度學(xué)習(xí)產(chǎn)生過(guò)擬合,預(yù)測(cè)結(jié)果沒(méi)有實(shí)際參考價(jià)值。

可加載數(shù)據(jù)類型如表1所示。

1.2 模型構(gòu)建

RNN包括輸入層(Input Layer)、輸出層(Output Layer)及隱藏層(Hidden Layer),其特點(diǎn)是每層都有時(shí)間反饋循環(huán),并且層之間由疊加構(gòu)成[16],其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。

由圖1可知,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)如下:設(shè)日期(序列號(hào))為t,價(jià)格為P[t],模型分3步預(yù)測(cè)P[t+w]。滑動(dòng)窗口P[t…t+w-1],其中t∈(1,tmax-w+1),且t∈N,w為設(shè)定窗口大小,P矩陣作為輸入層輸入矩陣,記作INPUT(T)。連接上次隱藏層HIDE(T-1),生成當(dāng)前隱藏層的HIDE(T),將預(yù)測(cè)值P[t+w]作為輸出層的輸入,輸出預(yù)測(cè)結(jié)果,記作OUTPUT(T)。

Dropout設(shè)計(jì):深度學(xué)習(xí)過(guò)程中,過(guò)度擬合是一個(gè)嚴(yán)重問(wèn)題,Dropout是解決該問(wèn)題的一種技術(shù),其關(guān)鍵思想是在訓(xùn)練過(guò)程中從神經(jīng)網(wǎng)絡(luò)中隨機(jī)地丟棄單元(連同其連接)[17]。金融數(shù)據(jù),尤其是期貨和股票受到市場(chǎng)環(huán)境影響,存在暴漲暴跌的可能性,因此需要為輸出層添加Dropout函數(shù),以去除巨大價(jià)格波動(dòng)造成的影響。同時(shí)由于RNN中的循環(huán)會(huì)放大噪聲,擾亂學(xué)習(xí)過(guò)程,故將Dropout用于非循環(huán)連接。

1.3 訓(xùn)練與評(píng)估方案

將1.2節(jié)中已構(gòu)建的RNN神經(jīng)網(wǎng)絡(luò)模型設(shè)為L(zhǎng)STM(),使用LSTM()進(jìn)行數(shù)據(jù)預(yù)測(cè)訓(xùn)練并給出模型評(píng)估方案,具體步驟如下:

(1)對(duì)訓(xùn)練數(shù)據(jù)組與測(cè)試數(shù)據(jù)組進(jìn)行數(shù)據(jù)分離。

(2)將分離的數(shù)據(jù)組再分別分離為窗口與目標(biāo)。

(3)配置訓(xùn)練超參數(shù),包括學(xué)習(xí)率、循環(huán)次數(shù)與batch批次。

(4)設(shè)計(jì)優(yōu)化方案,定義損失函數(shù)與優(yōu)化器,其中優(yōu)化器采用Adam。損失函數(shù)公式為:

(5)對(duì)LSTM(窗口數(shù)組、目標(biāo)值、訓(xùn)練次數(shù)、批次)進(jìn)行訓(xùn)練。

(6)對(duì)測(cè)試數(shù)據(jù)組中實(shí)際值與LSTM()給出的預(yù)測(cè)值采用評(píng)估算法進(jìn)行誤差評(píng)估,誤差越低表示模型越優(yōu)良。

(7)保存模型文件。

訓(xùn)練過(guò)程設(shè)計(jì)如圖2所示,圖中訓(xùn)練預(yù)測(cè)值與LSTM RNN表示訓(xùn)練過(guò)程中的自優(yōu)化操作,將自身訓(xùn)練產(chǎn)生的預(yù)測(cè)值回收后,執(zhí)行步驟(4)進(jìn)行方案優(yōu)化。

2 關(guān)鍵技術(shù)

2.1 預(yù)測(cè)技術(shù)可行性

金融學(xué)預(yù)測(cè)技術(shù)滿足可行性需要的3個(gè)假定前提為:①市場(chǎng)行為消化一切行為;②價(jià)格會(huì)以趨勢(shì)的形式演變;③歷史終會(huì)重演[18]。滿足上述條件方可對(duì)金融預(yù)測(cè)進(jìn)行研究。

2.2 LSTM技術(shù)

LSTM(長(zhǎng)短期記憶網(wǎng)絡(luò))是在RNN基礎(chǔ)上,為了解決長(zhǎng)序數(shù)據(jù)建模存在的依賴性記憶下降問(wèn)題而提出的一種改進(jìn)算法,在LSTM中引入Cell,并將其封裝在block中,每一塊block包含了輸入門、遺忘門、輸出門與Cell[19],其作用是防止對(duì)序列中久遠(yuǎn)節(jié)點(diǎn)的遺忘,增加NN的深度。LSTM block結(jié)構(gòu)如圖4所示。

由于金融分析具有數(shù)據(jù)量龐大、數(shù)據(jù)變化快、窗口大、滑動(dòng)范圍廣(指在訓(xùn)練模型過(guò)程中所需輸入的數(shù)據(jù)段較多且區(qū)間較長(zhǎng))等特點(diǎn),因此需要使用LSTM技術(shù)進(jìn)行數(shù)據(jù)訓(xùn)練,而非傳統(tǒng)的RNN。

2.3 數(shù)據(jù)可視化技術(shù)

針對(duì)神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程制作可視化圖形,采用線性圖分別表現(xiàn)原始數(shù)據(jù)、訓(xùn)練預(yù)測(cè)數(shù)據(jù)與測(cè)試預(yù)測(cè)數(shù)據(jù),實(shí)驗(yàn)使用 Python Data Analysis Library——Pandas進(jìn)行數(shù)據(jù)分析,或通過(guò)Web技術(shù)將數(shù)據(jù)可視化至瀏覽器的Canvas中。

2.4 數(shù)據(jù)爬蟲(chóng)技術(shù)

循環(huán)神經(jīng)網(wǎng)絡(luò)的模型訓(xùn)練是無(wú)限的,互聯(lián)網(wǎng)金融每日會(huì)產(chǎn)生新的商品價(jià)格、交易量等數(shù)據(jù),系統(tǒng)需要定期更新數(shù)據(jù)庫(kù)中的歷史數(shù)據(jù),以達(dá)到更好的預(yù)測(cè)效果。本文通過(guò)Python、Node.js等工具語(yǔ)言實(shí)現(xiàn)爬蟲(chóng)算法,并提供可視化的爬蟲(chóng)管理與數(shù)據(jù)管理功能,負(fù)責(zé)數(shù)據(jù)的獲取、整理與存儲(chǔ)。

3 核心算法

基于RNN的神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)需要對(duì)從互聯(lián)網(wǎng)爬取的數(shù)據(jù)進(jìn)行加載,并去除無(wú)效數(shù)據(jù)。訓(xùn)練前需要對(duì)訓(xùn)練數(shù)據(jù)與仿真預(yù)測(cè)數(shù)據(jù),以及訓(xùn)練過(guò)程中的窗口數(shù)據(jù)與預(yù)測(cè)目標(biāo)數(shù)據(jù)進(jìn)行分離。其中,窗口數(shù)據(jù)為二維數(shù)組,目標(biāo)數(shù)據(jù)為一維數(shù)組,在評(píng)估模型階段對(duì)目標(biāo)數(shù)組與預(yù)測(cè)數(shù)組進(jìn)行對(duì)比,給出評(píng)估結(jié)果。

3.1 最優(yōu)爬蟲(chóng)算法

爬蟲(chóng)模塊采用最優(yōu)爬蟲(chóng)算法,即要求只可爬取規(guī)定范圍內(nèi)的商品數(shù)據(jù),從而使冗余數(shù)據(jù)量達(dá)到最少。假定已對(duì)數(shù)據(jù)類型、數(shù)據(jù)量進(jìn)行了規(guī)范,使用最優(yōu)爬蟲(chóng)算法篩選出指定商品、商品屬性及其數(shù)據(jù)類型,并進(jìn)行爬取與存儲(chǔ),以下為實(shí)現(xiàn)該算法的關(guān)鍵代碼:

3.2 增量式爬蟲(chóng)策略

爬蟲(chóng)模塊采用增量式爬蟲(chóng),要求不能爬取重復(fù)數(shù)據(jù),故需要對(duì)爬蟲(chóng)系統(tǒng)實(shí)行重新訪問(wèn)策略,并且是增量式而非重置模式。要實(shí)現(xiàn)增量式需要實(shí)現(xiàn)數(shù)據(jù)比對(duì)功能,實(shí)現(xiàn)該功能關(guān)鍵代碼如下:

3.3 LSTM神經(jīng)網(wǎng)絡(luò)算法

在2.2節(jié)中已介紹LSTM是一種門限類型的RNN改進(jìn)算法,并給出了block(下稱節(jié)點(diǎn))結(jié)構(gòu)圖,其節(jié)點(diǎn)包括輸入門、輸出門與遺忘門,可使自循環(huán)權(quán)重發(fā)生變化。在模型參數(shù)固定的情況下,不同時(shí)刻的積分尺寸可以動(dòng)態(tài)改變,從而避免了梯度消失或梯度爆炸問(wèn)題。LSTM單元(Cell)中包含的計(jì)算公式如下:

其中公式(2)為遺忘門限計(jì)算公式,公式(3)表示輸入門限計(jì)算公式,公式(4)為前一個(gè)Cell狀態(tài)計(jì)算公式,公式(5)表示當(dāng)前Cell狀態(tài)計(jì)算公式,公式(6)為輸出門限計(jì)算公式,公式(7)表示當(dāng)前單元最終輸出結(jié)果計(jì)算公式。所有公式被封裝在LSTM節(jié)點(diǎn)中,系統(tǒng)傳入的金融數(shù)據(jù)經(jīng)過(guò)節(jié)點(diǎn)時(shí)將采用相關(guān)公式進(jìn)行計(jì)算。根據(jù)窗口大小及數(shù)量,在時(shí)間序列上產(chǎn)生多個(gè)對(duì)應(yīng)的Cell狀態(tài),且前一狀態(tài)可影響下一狀態(tài)。其中公式中的tanh為激活函數(shù)。

激活函數(shù):非線性函數(shù),將輸出值作非線性變化,然后輸出到下一層。

通過(guò)對(duì)多組數(shù)據(jù)進(jìn)行多組訓(xùn)練,使節(jié)點(diǎn)之間的W、b變量達(dá)到最優(yōu),該過(guò)程需要通過(guò)成本函數(shù)實(shí)現(xiàn)。

成本函數(shù):定量評(píng)估特定輸入值,計(jì)算該值與真實(shí)值的差距,以此調(diào)整層之間的權(quán)重,減少損失值。該過(guò)程稱為反向傳遞,損失值越小,結(jié)果越準(zhǔn)確[20]。

3.4 數(shù)據(jù)加載實(shí)現(xiàn)

神經(jīng)網(wǎng)絡(luò)的“數(shù)據(jù)加載”是指對(duì)數(shù)據(jù)庫(kù)進(jìn)行讀取與整理,具體步驟為:引入驅(qū)動(dòng),加載數(shù)據(jù)庫(kù)配置文件,獲取指定商品價(jià)格,去除干擾數(shù)據(jù)(未交易價(jià)格),以float32形式暫存于數(shù)組中。

3.5 窗口與目標(biāo)數(shù)據(jù)分離算法

訓(xùn)練實(shí)現(xiàn)要求從SQL獲取到的數(shù)組數(shù)據(jù)中分離出窗口數(shù)據(jù)與目標(biāo)數(shù)據(jù),具體算法如下:

定義函數(shù):窗口分離(數(shù)據(jù)集, 窗口大小):

窗口數(shù)組, 目標(biāo)數(shù)組 = 數(shù)組[][], 數(shù)組[];

循環(huán)(次數(shù):數(shù)據(jù)長(zhǎng)度 - 窗口大小):

窗口數(shù)組增加(數(shù)據(jù)集[循環(huán)次數(shù)] 至 數(shù)據(jù)集[循環(huán)次數(shù)+窗口大小]);

目標(biāo)數(shù)組增加(數(shù)據(jù)集[循環(huán)次數(shù) + 窗口大小 + 1]);

循環(huán)結(jié)束;

返回 窗口數(shù)據(jù)數(shù)組,目標(biāo)數(shù)據(jù)數(shù)組;

3.6 訓(xùn)練與測(cè)試數(shù)據(jù)分離算法

為了進(jìn)行實(shí)驗(yàn)比較,下面對(duì)測(cè)試數(shù)據(jù)與訓(xùn)練數(shù)據(jù)進(jìn)行分離,具體算法如下:

定義常量:訓(xùn)練數(shù)據(jù)百分比;

定義:訓(xùn)練數(shù)據(jù)長(zhǎng)度 = 數(shù)據(jù)集長(zhǎng)度 × 訓(xùn)練數(shù)據(jù)百分比

測(cè)試數(shù)據(jù)長(zhǎng)度 = 數(shù)據(jù)集長(zhǎng)度 - 訓(xùn)練數(shù)據(jù)長(zhǎng)度

訓(xùn)練數(shù)組,測(cè)試數(shù)組 = 數(shù)據(jù)集[起始位置 至 訓(xùn)練數(shù)據(jù)長(zhǎng)度],數(shù)據(jù)集[訓(xùn)練數(shù)組長(zhǎng)度 至 數(shù)據(jù)集長(zhǎng)度]

定義常量:窗口大小 (系統(tǒng)采用30天)

訓(xùn)練窗口數(shù)組, 訓(xùn)練目標(biāo)數(shù)組 = 窗口分離(訓(xùn)練數(shù)組, 窗口大?。?/p>

測(cè)試窗口數(shù)組, 測(cè)試目標(biāo)數(shù)組 = 窗口分離(測(cè)試數(shù)組, 窗口大小)

3.7 LSTM數(shù)據(jù)訓(xùn)練算法

對(duì)上述輸入數(shù)據(jù)進(jìn)行矩陣變換,LSTM對(duì)輸入矩陣格式的構(gòu)造方法如下:

訓(xùn)練數(shù)據(jù) = 格式化(訓(xùn)練窗口數(shù)據(jù), 訓(xùn)練窗口數(shù)據(jù)長(zhǎng)度, 1, 窗口大?。?/p>

數(shù)據(jù)訓(xùn)練具體函數(shù)與算法如下:

定義函數(shù):LSTM(訓(xùn)練數(shù)據(jù),目標(biāo)數(shù)據(jù),循環(huán)次數(shù),批次);

定義變量:輸入權(quán)值;

定義變量:輸入偏置;

輸入運(yùn)算 = 訓(xùn)練數(shù)據(jù)*輸入權(quán)值+輸入偏置;

創(chuàng)建LSTM神經(jīng)元(數(shù)目);

初始化零值(批次);

輸出數(shù)據(jù) = 接收張量;

定義變量:輸出權(quán)值;

定義變量:輸出偏置;

預(yù)測(cè)值 = 輸出數(shù)據(jù)*輸出權(quán)值+輸出偏置;

DROPOUT();

返回 預(yù)測(cè)值;

3.8 模型評(píng)估算法

訓(xùn)練完成后對(duì)模型進(jìn)行評(píng)估與改進(jìn),其評(píng)估算法如下:

訓(xùn)練預(yù)測(cè)數(shù)組 = LSTM()=>預(yù)測(cè)(訓(xùn)練窗口數(shù)組);

測(cè)試預(yù)測(cè)數(shù)組 = LSTM()=>預(yù)測(cè)(測(cè)試窗口數(shù)組);

格式化數(shù)據(jù)(訓(xùn)練預(yù)測(cè)數(shù)組,測(cè)試預(yù)測(cè)數(shù)組);

訓(xùn)練數(shù)據(jù)評(píng)估 = [(訓(xùn)練預(yù)測(cè)數(shù)據(jù)-訓(xùn)練目標(biāo)數(shù)據(jù))2預(yù)測(cè)次數(shù)];

測(cè)試數(shù)據(jù)評(píng)估 = [(測(cè)試預(yù)測(cè)數(shù)據(jù)-測(cè)試目標(biāo)數(shù)據(jù))2預(yù)測(cè)次數(shù)];

打印(訓(xùn)練數(shù)據(jù)評(píng)估,測(cè)試數(shù)據(jù)評(píng)估);

可視化;

4 算法改進(jìn)實(shí)驗(yàn)

本文對(duì)算法中的不同超參數(shù)進(jìn)行調(diào)整,并進(jìn)行了多組實(shí)驗(yàn),通過(guò)對(duì)比實(shí)驗(yàn)對(duì)算法進(jìn)行改進(jìn)。

4.1 訓(xùn)練次數(shù)對(duì)照實(shí)驗(yàn)組

4.2 滑動(dòng)窗口對(duì)照實(shí)驗(yàn)組

LSTM中若滑動(dòng)窗口過(guò)大將導(dǎo)致預(yù)測(cè)準(zhǔn)確率下降,原因是距離過(guò)于遙遠(yuǎn)的數(shù)據(jù)產(chǎn)生噪點(diǎn)過(guò)多,與目標(biāo)數(shù)據(jù)的映射關(guān)系較小,并且窗口過(guò)大會(huì)導(dǎo)致可訓(xùn)練的窗口批次過(guò)少,訓(xùn)練量不足,從而產(chǎn)生過(guò)擬合問(wèn)題。但若滑動(dòng)窗口過(guò)小,數(shù)據(jù)之間在時(shí)間序列上關(guān)聯(lián)性降低,也將導(dǎo)致訓(xùn)練過(guò)擬合問(wèn)題,預(yù)測(cè)曲線過(guò)于貼合目標(biāo)數(shù)據(jù)曲線,令預(yù)測(cè)結(jié)果沒(méi)有實(shí)際參考價(jià)值。圖9-圖11分別表示滑動(dòng)窗口為100天、1天、30天的預(yù)測(cè)結(jié)果(彩圖見(jiàn)封底)。

實(shí)驗(yàn)結(jié)果顯示,以100天為滑動(dòng)窗口,預(yù)測(cè)效果明顯下降;以30天為滑動(dòng)窗口,預(yù)測(cè)結(jié)果有一定參考價(jià)值;以1天為滑動(dòng)窗口,預(yù)測(cè)數(shù)據(jù)幾乎重合于實(shí)際目標(biāo)數(shù)據(jù),產(chǎn)生預(yù)測(cè)過(guò)擬合問(wèn)題,使預(yù)測(cè)數(shù)據(jù)沒(méi)有實(shí)際參考價(jià)值。得出結(jié)論,以30天為滑動(dòng)窗口預(yù)測(cè)下一天價(jià)格較為合適,預(yù)測(cè)走勢(shì)曲線與真實(shí)曲線基本接近,差價(jià)較低,具有一定參考價(jià)值。

5 結(jié)語(yǔ)

本文研究使用RNN構(gòu)建與訓(xùn)練金融大數(shù)據(jù)預(yù)測(cè)模型,實(shí)驗(yàn)以30天為滑動(dòng)窗口,預(yù)測(cè)第31天的價(jià)格,訓(xùn)練次數(shù)為100次,訓(xùn)練數(shù)據(jù)量為60%,對(duì)不同金融商品進(jìn)行單獨(dú)訓(xùn)練,生成訓(xùn)練記憶文件。經(jīng)過(guò)評(píng)估算法檢測(cè),部分商品的預(yù)測(cè)值接近目標(biāo)值。例如:黃金預(yù)測(cè)模型評(píng)估值(平均差價(jià))為2~5元,該價(jià)格較為合適,但目前仍有部分商品評(píng)估值(平均差價(jià))高達(dá)100~1 000元,因而缺乏參考性。未來(lái)考慮針對(duì)不同商品的不同特性與數(shù)據(jù)量單獨(dú)調(diào)整超參數(shù),或引入更多輸入?yún)?shù),例如交易量、商品交易數(shù)據(jù)、相關(guān)行業(yè)數(shù)據(jù)等,這類數(shù)據(jù)會(huì)對(duì)商品價(jià)格走勢(shì)造成影響,能夠進(jìn)一步提高預(yù)測(cè)準(zhǔn)確性。

參考文獻(xiàn):

[1] 李顥維. 人機(jī)大戰(zhàn)與人工智能的未來(lái)發(fā)展[J]. 考試周刊,2018(40):192-193.

[2] 楊柳. 互聯(lián)網(wǎng)時(shí)代下的大數(shù)據(jù)的統(tǒng)籌[J]. 中國(guó)戰(zhàn)略新興產(chǎn)業(yè),2018(20):112.

[3] 董鑫. 未來(lái)人工智能自主學(xué)習(xí)網(wǎng)絡(luò)的構(gòu)建[J]. 電子技術(shù)與軟件工程,2018(3):252.

[4] 張貴勇.? 改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)在金融預(yù)測(cè)中的應(yīng)用研究[D].? 鄭州:鄭州大學(xué),2016.

[5] 盧陽(yáng). 基于灰色線性回歸組合模型的金融預(yù)測(cè)方法[J]. 統(tǒng)計(jì)與決策,2017(10):91-93.

[6] 何劍. 風(fēng)險(xiǎn)管理和金融預(yù)測(cè)中的統(tǒng)計(jì)方法應(yīng)用[J]. 商場(chǎng)現(xiàn)代化,2006(32):368-369.

[7] 徐朱佳,謝銳,劉嘉,等. 隱馬爾科夫模型的改進(jìn)及其在金融預(yù)測(cè)中的應(yīng)用[J]. 工程數(shù)學(xué)學(xué)報(bào),2017,34(5):469-478.

[8] 沈斌,溫濤. 基于貝葉斯最大似然估計(jì)的金融預(yù)測(cè)[J]. 統(tǒng)計(jì)與決策,2018,34(7):85-88.

[9] 周飛燕,金林鵬,董軍. 卷積神經(jīng)網(wǎng)絡(luò)研究綜述[J]. 計(jì)算機(jī)學(xué)報(bào),2017,40(6):1229-1251.

[10] 宋曉勇,陳年生. 遺傳算法和神經(jīng)網(wǎng)絡(luò)耦合的金融預(yù)測(cè)系統(tǒng)[J]. 上海交通大學(xué)學(xué)報(bào),2016,50(2):313-316.

[11] 張承釗.? 一種金融市場(chǎng)預(yù)測(cè)的深度學(xué)習(xí)模型:FEPA模型[D]. 成都:電子科技大學(xué),2016.

[12] 廖薇,馮小兵,曹偉瑩,等. 廣義回歸神經(jīng)網(wǎng)絡(luò)的金融預(yù)測(cè)模型研究[J]. 商業(yè)時(shí)代,2010(7):42-43.

[13] 李祥飛,張?jiān)偕? 基于誤差同步預(yù)測(cè)的SVM金融時(shí)間序列預(yù)測(cè)方法[J]. 天津大學(xué)學(xué)報(bào):自然科學(xué)與工程技術(shù)版,2014,47(1):86-94.

[14] 王方.? 基于EMD和STSA的金融波動(dòng)研究[D]. 天津:天津大學(xué),2016.

[15] 朱星嘉,李紅蓮,呂學(xué)強(qiáng),等. 一種改進(jìn)的Attention-Based LSTM特征選擇模型[J]. 北京信息科技大學(xué)學(xué)報(bào):自然科學(xué)版,2018,33(2):54-59.

[16] 楊祎玥,伏潛,萬(wàn)定生. 基于深度循環(huán)神經(jīng)網(wǎng)絡(luò)的時(shí)間序列預(yù)測(cè)模型[J]. 計(jì)算機(jī)技術(shù)與發(fā)展,2017,27(3):35-38,43.

[17] SRIVASTAVA N, HINTON G, KRIZHEVSKY A, et al. Dropout: a simple way to prevent neural networks from overfitting[J].? Journal of Machine Learning Research, 2014, 15(1):1929-1958.

[18] 黃圣根.? 期貨投資技術(shù)分析[J].? 資本市場(chǎng), 2013(6):126-127.

[19] 唐寅.? 長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)模型改進(jìn)[J]. 時(shí)代金融, 2016(24):281-282.

[20] 李嘉璇. TensorFlow技術(shù)解析與實(shí)戰(zhàn)[M]. 北京:人民郵電出版社,2017.

(責(zé)任編輯:黃 健)

猜你喜歡
深度學(xué)習(xí)大數(shù)據(jù)神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)抑制無(wú)線通信干擾探究
MOOC與翻轉(zhuǎn)課堂融合的深度學(xué)習(xí)場(chǎng)域建構(gòu)
大數(shù)據(jù)技術(shù)在反恐怖主義中的應(yīng)用展望
基于神經(jīng)網(wǎng)絡(luò)的拉矯機(jī)控制模型建立
復(fù)數(shù)神經(jīng)網(wǎng)絡(luò)在基于WiFi的室內(nèi)LBS應(yīng)用
基于支持向量機(jī)回歸和RBF神經(jīng)網(wǎng)絡(luò)的PID整定
庐江县| 原阳县| 连南| 承德县| 元氏县| 巫山县| 内乡县| 临潭县| 隆安县| 宁陵县| 鄯善县| 邵阳市| 高尔夫| 长宁区| 利津县| 澄江县| 调兵山市| 扶沟县| 东安县| 宁远县| 萍乡市| 黄浦区| 芜湖县| 吴川市| 淮安市| 浙江省| 肇源县| 广河县| 荆州市| 阿鲁科尔沁旗| 肥东县| 克拉玛依市| 临洮县| 桐城市| 九龙县| 泾川县| 阿拉善右旗| 南雄市| 平潭县| 新河县| 疏附县|