[摘要]神經網絡領域已經有50年歷史了,但是實際應用卻在最近15年里,特別是近幾年來,神經網絡已經成為熱點研究領域,已經在各個領域中應用,以實現各種復雜的功能。這些領域包括:模式識別、鑒定、函數擬合、分類、語音、翻譯和控制系統。
股票市場是一個非線性的系統,本文基于BP神經網絡,以1998年~2008年的上證股市大盤增幅數據作為訓練,對以后的一年多數據進行驗證,以證實神經網絡對股市的預測。
[關鍵詞]BP神經網絡股票市場預測驗證
一、 神經網絡概述
人工神經網絡是由大量處理單元廣泛互聯而成的網絡,是對人腦的抽象、簡化和模擬,反映人腦的基本特性,它與人腦的相似之處概括為兩個方面:一是通過學習過程利用神經網絡從外部環境中獲取知識;二是內部神經元(突觸權值)用來存儲獲取的知識信息。
一般的神經網絡都是可調節的,或者說可訓練的,這樣一個特定的輸入便可得到要求的輸出。如圖1.1所示:
圖1.1 輸入/目標對應的方法圖
1.人工神經元
人工神經元是生物神經元的模擬與抽象,是構成人工神經網絡的基本單元,因此構造一個人工神經網絡系統,首先要構造人工神經元模型。一個具有n個輸入分量的單個神經元模型如圖所示:
圖1.2 單 個 人 工 神 經 元 模 型
人工神經元的三個基本要素:
(1)一組連接,連接強度由各連接上的權值表示,權值為正表示激活,為負表示抑制。
(2)一個求和單元,用于求取各輸入信號的加權和。
(3)一個非線性激活函數,起非線性映射作用并將神經元輸出幅度限制在一定范圍內(一般限制在[0, 1」或[-1, +1]之間)。
此外還有一個偏差,即與閾值θ
人工神經元相當于一個多輸入單輸出的非線性閾值器件。這里 的表示它的n個輸入,表示與它相連的n個突觸的連接強度,對應于生物神經細胞的膜電位;o表示這個人工神經元的輸出;θ表示這個人工神經元的閾值.如果輸入信號的加權和超過θ,則人工神經元被激活。這樣,人工神經元的輸出可描述為,式中,表示神經元的輸入輸出關系的函數稱為激活函數或輸出函數。
人工信息元的信息處理過程分為三個部分,首先完成輸入信號與神經元連接強度的內積運算,然后再將結果通過激活函數,再經過閾值的判斷,如果輸入值大于閾值門限,則神經元被激活,否則處于抑制狀態。
2.人工神經網絡模型
人工神經網絡是由大量的神經元按照一定的模式(層內連接、循環連接和層間連接)相互連接而成的。按一定規則將神經元連接而成神經網絡,才能實現對復雜信息的處理與存儲。經過幾十年的興衰,人們己經發展了上百種人工神經網絡,但大部分網絡都是幾種典型網絡的變形和組合。一般地說,人工神經網絡的連接形式和拓撲結構可分為兩大類:即分層型和互聯型神經網絡。分層型神經網絡又分為簡單的前饋網絡、反饋型前饋網絡、和內層互聯前饋網絡。
二、 BP網絡理論
1.BP網絡概述
目前,在眾多神經網絡中,誤差反向傳播(Error Back Propagation)網絡由于其良好的逼近能力和成熟的訓練方法而得到了最為廣泛的應用。BP網絡由Rumelhat等人于1985年建立,它是一種多層前饋神經網絡,由一個輸入層、一個輸出層和若干個隱含層所組成。位于同一層的單元之間不允許有連接,各層的單元只能向高層的單元輸出激活信號。BP算法是用于前饋多層網絡的學習算法,前饋多層網絡的結構一般如圖2.1所示
BP網絡含有輸入層、輸出層以及處于輸入輸出層之間的中間層。中間層有單層或多層,由于它們和外界沒有直接的聯系,故也稱為隱層。在隱層中的神經元也稱隱單元。隱層雖然和外界不連接.但是,它們的狀態則影響輸入輸出之間的關系。這也是說,改變隱層的權系數,可以改變整個多層神經網絡的性能。
2. BP網絡的學習過程
BP網絡采用有教師的學習規則,其算法的核心是通過一邊向后傳播誤差,一邊修正誤差的方法來不斷調節網絡參數(權、閥值),以實現或逼近所希望的輸入、輸出映射關系。它對每一個學習過程進行兩趟傳播計算
(1)工作信號正向傳播
輸入信號從輸入層經隱含層,在輸出端產生輸出信號。在信號的向前傳遞過程中網絡的權值保持不變,每一層神經元的狀態只影響下一層神經元的狀態。如果在輸出層不能得到期望的輸出,則轉入誤差信號的反向傳播。
(2)誤差信號反向傳播
網絡的實際輸出與期望輸出之間差值即為誤差信號,誤差信號由輸出端逐層向前傳播。在誤差信號反向傳播的過程中,網絡的權值由誤差反饋進行調解。通過權值的不斷修正使網絡的實際輸出更接近期望輸出。
3.BP算法的改進
在實際應用中,傳統的基于標準梯度下降法的BP算法在求解實際問題時很難勝任。為此,人們在標準BP算法的基礎上進行了許多有益的改進,主要目標是為了加快訓練速度,避免陷入局部極小值和改善其能力。改進后的BP網絡的訓練收斂速度比標準梯度下降法快數十倍乃至數百倍。
BP算法的改進分為兩類,一類是基于標準梯度下降法的算法改進,如動量、自適應學習速率法、彈性BP法等;另一類是基于數值優化方法的改進,如共軛梯度法、擬牛頓法、LM算法等。這里介紹最常用的兩種方法:動量法、自適應學習速率法。
(1)附加動量的BP算法
標準BP算法的權值調節公式為,式中,為本次權值校正量,k為訓練次數,為學習速率,為節點誤差,為該節點相應的輸入值。
附加動量法每一次對連接權或輸出閾值進行校正時,按一定比例加上前一次學習時的校正量,即動量項,由此加速網絡學習的收斂速度。具體做法是,上式中,mc為動量因子(0 該方法是在反向傳播法的基礎上在每一個權值的變化上加上一項正比前次權值變化量的值,并根據反向傳播法來產生新的權值變化。 附加動量法的實質是將最后一次權值的影響,通過一個動量因子來傳遞。當動量因子取值為零時,權值的變化僅是根據梯度下降法產生;當動量因子取值為1時,新的權值變化則是設置為最后一次權值的變化,而依梯度法產生的變化部分則被忽略掉了。以此方式,當增加了動量后,促使權值的調節向著誤差曲面底部的平均方向變化,當網絡權值進入誤差曲面底部的平坦區時,將變得很小,于是,從而防止了的出現,有助于使網絡從誤差曲面的局部極小值中跳出。 根據附加動量法的設計原理,當修正的權值在誤差中導致太大的增長結果是,新的權值應被取消而不被采用,并使動量作用停止下來,以使網絡不進入較大誤差曲面;當新的誤差變化率對其舊值超過一個事先設定的最大誤差變化率時,也得取消所計算的權值變化。其最大誤差變化率可以是任何大于或等于1的值。典型的值取1.04。所以在進行附加動量法的訓練程序設計時,必須加進條件判斷。 訓練程序中對采用動量法的判斷條件為: 式中,k為訓練次數,SSE為網絡誤差平方和。 附加動量的引入可使網絡在修正其權值時,不僅考慮局部的梯度信息,而且考慮誤差曲面最近的變化趨勢,其作用如同一個低通濾波器,它允許網絡忽略網絡上的微小變化特性。在沒有附加動量的作用下,網絡可能陷入淺的局部極小值,利用附加動量的作用則有可能滑過這些極小值 。 (2)自適應學習率調整的BP算法 在標準BP算法的權值調節公式中, 是步長,表示學習速率,在訓練過程中始終保持不變。對于一個特定的問題,要選擇適當的學習速率不是一件容易的事情。通常是憑經驗或實驗獲取,但即使這樣,對訓練開始初期功效較好的學習速率,不見得對后來的訓練合適。為了解決這一問題,人們希望在訓練過程中,自動調整學習速率。通常調節學習速率的準則是:檢查權值的修正值是否真正降低了誤差函數,如果確實如此 ,則說明所選取的學習速率可能小了,可以對其增加一個適當的量,若不是這樣,而產生了過調,那么就應該減小學習速率的值。 自適應學習率調整的基本思想是:在保持訓練穩定的前提下,使每次用于修正權值的迭代步長盡可能大。較大時,權值的修改量較大,學習的速率就比較快,但有時可能產生振蕩,即誤差 總不能小于某個特別小的值。而當取較小值時,學習的速率就較慢,但一般比較平穩,將使計算量變得很大。自適應學習率調整這一策略在誤差增加不太大的范圍內,能提高學習速率,在局部區域內獲得有一個近最優的學習速率,從而得到比標準BP算法更快的收斂速度。 下式給出了一種自適應學習速率的調整公式 式中,k為訓練次數,SSE為網絡誤差平方和。 初始學習速率的選取范圍可以有很大的隨意性。 與采用附加動量時的判斷條件相仿,當新誤差超過舊誤差一定的倍數時,學習速率將減小,否則其學習速率保持不變;當新誤差小于舊誤差時,學習速率將被增加。此方法可以保證網絡總是可以以最大可接受的學習速率進行訓練。當一個較大的學習速率仍能夠使用網絡穩定學習,使其誤差繼續下降,則增加學習速率,使其以更大的學習速率進行學習。一旦學習速率調得過大,而不能保證誤差繼續減少,則減少學習速率直到使其學習過程穩定為止。 4.提高網絡的推廣能力 推廣能力(Generalization)是衡量神經網絡性能好壞的重要標志。所謂推廣能力,就是指神經網絡對訓練樣本以外的新樣本數據的正確反映能力。一個“過度訓練”(overtraining)的神經網絡可能會對訓練樣本集達到較高的匹配效果,但對于一個新的輸入樣本矢量卻可能會產生與目標矢量差別較大的輸出,即神經網絡不具有或具有較差的推廣能力。 網絡設計完成后,要運用樣本集進行訓練。對推廣能力的測試不能用訓練集的數據進行,而要用訓練集以外的測試數據來進行檢測。一般的做法是,將訓練集的可用樣本隨機的分成兩部份;一部分作為訓練集,一部分作為測試集。隱層 結點數一定的情況下,為了獲得好的推廣能力存在一個最佳訓練次數。 三、 基于BP神經網絡的股市驗證 我們選取上證股市大盤在1998年3月10號到2009年12月2號間的大盤每日漲幅數據作為訓練樣本和預測樣本,訓練樣本區間選擇1998年3月10日-2008年5月21號,共2466個大盤每日漲幅。預測樣本為2008年5月22號-2009年12月2號的大盤每日漲幅,共375個數據。 為了加快網絡的收斂性,我們對收益率數據進行歸一化處理,采用MATLAB的premnmx函數,將收益率數據變成的取值為(-1,1)之間的數據。網絡訓練和仿真完成后再采用MATLAB的postmnmx函數將數據反歸一化變成實際需要的收益率數據。 1.網絡結構設計 神經網絡結構設計主要需要確定輸入輸出的節點數、網絡層數、隱層節點數等。由于上證綜指收益率數據具有混沌特性,根據 《證綜指日收益率的混沌特性》這個論文得相空 其中取時間延遲τ=25,嵌入維數m=12。網絡的輸入節點數取嵌入維數12,將作為輸入。網絡的輸出節點數取1,目標輸出 為。 網絡層數:1989年Robert Hecht-Nielson證明了對于任何在閉區間內的一個連續函數都可以用一個隱層的BP網絡來逼近,因而一個三層的BP網絡可以完成任意的N維到M維的映射?;谝陨隙ɡ砦覀円话氵x取一個隱層的BP網絡就可以了。增加層數主要可以更進一步的降低誤差,提高精度,但同時也使網絡復雜化,從而增加了網絡權值的訓練時間。而誤差精度的提高實際上也可以通過增加隱層中的神經元數目來獲得,其訓練效果也比增加層數更容易觀察和調整。 隱層神經元的選取:隱層神經元的作用是從樣本中提取并存儲其內在規律,每個神經元有若干個權值,而每個權值都是增強網絡映射能力的一個參數。網絡訓練精度的提高,可以通過采用一個隱層,而增加其神經元數的方法來獲得。這在結構實現上,要比增加更多的隱層要簡單的多。 那么究竟選取多少個隱層節點才合適?神經元數量太少,網絡從樣本中獲取信息的能力就差,不足以概括和體現樣本規律;神經元數量過多,又可能把樣本中非規律性的內容,如噪聲等也學會記牢,從而出現所謂“過度吻合”問題。因此,如何確定一個適當的神經元個數是我們要著重考慮的問題。Gorman曾認為隱點數s與模式數N的關系為s=log2N,但大多數情況并非如此,網絡修剪與增長方法都是根據網絡收斂性能的好壞來決定隱點節數的增減,不僅具有很大的盲目性,而且是很費時間的過程。江蘇理工大學信息科學研究所的高大啟教授在他的論文《有教師的線性基本函數前向三層神經網絡結構研究》中給出了三層網絡的隱點數經驗公式,其中,s為隱點數,m為輸入節點數,n為輸出節點數。在實際應用,由這個公式確定的隱點數效果較好。本文中m=12,n=1,求出隱層節點數s=7。 網絡激活函數的選取:由于歸一化后的數據的取值范圍在(-1,1)之間,所以本文采用雙曲正切S型函數 網絡的訓練方法:采用將附加動量法和自適應學習率法結合起來使用的改進的BP算法。 2.網絡訓練與仿真 本文運用MATLAB程序對上文設計好的神經網絡進行訓練,訓練樣本區間選擇1998年3月10日-2008年5月21號,共2466個大盤每日漲幅,如圖1.10。 將訓練好的神經網絡模型用于仿真2008年5月22號-2009年12月2號的大盤每日漲幅,共375個數據。得到的預測值與真實值見附錄,圖形見圖1.11。 圖3.2 神經網絡預測值與真實值圖 四、 總結和展望 目前,非線性經濟學在資本市場定價方面的研究仍在不斷發展中,研究熱點主要集中在兩個方面:一是對股票價格是否存在非線性甚至是混沌的診斷研究;二是試圖建立非線性模型來研究股票價格定價及其變動。迄今為止。資本市場上存在非線性的現象得到較廣泛的實證支持。但是否存在混沌,還存在較多的疑問,并沒有得到最終的定論。但無論如何。非線性經濟學對傳統經濟學基礎的挑戰是不容忽視的,它為資本市場定價的研究開辟了一個新的視野,使資本市場的定價行為的研究更接近這種行為本身的真實狀況。因此,它在很大程度上預示著資本市場定價理論的未來發展的一個方向。 參考文獻: [1]陳其安,楊秀苔:中國股市的收益分布特征[J]. 統計與決策. 2005,04: 110-112 [2]杜修立:漲跌幅限制對中國股市結構及有效性的經驗分析[J]. 財經問題研究. 2006,12:54-58 [3]楊再斌:我國證券市場股價運動非線性特征檢驗[J]. 上海立信會計學院學報. 2006,7:78-83 [4]葛哲學孫志強:神經網絡理論與matlab2007實現[M]. 電子工業出版社. 2008年5月 [5]黃詒榮:中國股市分形結構:理論與實證[M].中山大學出版社. 2006.3月 [6]Martin T. Hagan、 Howard H. Demuth Mark H. Beal.神經網絡設計[M]. 機械工業出版社. 2002.9 [7]高大啟:有教師的線性基本函數前向三層神經網絡結構研究[J]. 計算機學報. 1998.1:80-86