第三章 使用遺傳程式規劃產生技術交易法則
3.3 適存度評估
3.3.1 過適現象迴避
| |
| ----Mult---0.88
| |
| |
| ---Min---10days
|
----Less---Lag---80days
| |
| |
| ----0.79
|
----Less---0.88
|
| ----1.6
圖 3.6 引入條件運算的技術交易法則
3.3 適存度評估
遺傳程式規劃中最主要是靠適存度函數來執行天擇的動作,在決定個體優劣的過 程中,往往由於機器學習(machine learning)演算法的本質而產生過適現象(overfitting),
本研究中主要使用交叉驗證(cross validation)的方法來避免過適現象的出現,另一方 面,適存度函數的計算方式必須建立在技術交易法則輔助型買進觀望策略(technical trading rule assisted buy-and-hold strategy)之上,節3.3.2先介紹適存度函數,技術交易法 則輔助型買進觀望策略將留待在節3.4.1中作介紹,如此在遺傳程式規劃最具畫龍點睛 與代表性的要素就已兼備。
3.3.1 過適現象迴避
過適現象之於遺傳程式規劃,就像過度學習(over learning)或過度訓練(over training) 之於資料探勘(data mining)與類神經網路(neural network),是一種導因於機器學習方法 的本質而在某個時間點之後產生所用模型將訓練資料(training data)獨有的古怪特質記憶 住,以致於無法顯現出非訓練資料,或說是整體訓練目標一般性特質的一種現象,換 句話說,在目標市場尋找交易法則的問題中,一個經由遺傳程式規劃尋找交易策略的 過程,其實就是在建立一個市場可獲利部分特性的模型,因此我們希望藉由訓練資料 學習到目標市場的一般化特性以預期未來將此獲利模型應用到以後不可見的資料時也 照樣能獲利。在自然生存法則中,產生過適現象的個體將不可能長期存活,舉例來
31
說,長頸鹿的脖子越長固然可以吃到越高樹木的葉子,但萬一其固有的棲息地遭遇旱 災以致於族群必須遷徙時,假若新的棲息地遍布小型樹木,此時高個長頸鹿必定面臨 另一種層面的考驗。
過適現象發生的原因常常是由於訓練資料不夠多、學習期過長或甚至是演算法使 用不當所導致,前二者通常可藉由調整訓練資料與測試資料(test data)的比例以及靠經 驗反覆執行學習過程以找到一個合理的學習期,但即使是夠多的訓練資料仍免不了為 些許的過適現象所苦;後者可能是導因於演算法本身,舉例來說,在使用遺傳程式規 劃找尋技術交易法則的問題中,就有可能發生選擇壓力調整不當而使得選定的交易法 則落在局部最佳解上,也就是此樹過度記住了訓練資料局部最大(local maximum)的特 徵而沒有生成能夠預測未來獲利能力一般性的結構,當過適現象發生時,技術交易法 則會顯現出結構太複雜或節點數過多的特徵,其中由於遺傳程式規劃隨機創造或接上 子樹的特性,因此可能免不了有一些在評估此樹的過程中根本不會被使用到的樹枝,
如下頁圖3.7所示:
-NOT---B_if---B_if---AND---True
| | |
| | |
| | ----B_if---True
| | |
| | |
| | ---OR---B_if---NOT---True
| | | | |
| | | | |
| | | | ---NOT---AND---True
| | | | | |
| | | | | |
| | | | | ----Fals
| | | | |
| | | | ----More---1.33
| | | | |
| | | | |
| | | | ---Max---40days
| | | ----Fals
| | |
| | ----More---0.88
| | |
| | |
| | ----0.79
| ----More---ADD---1.51
| | | |
| | | |
| | | ----1.69
| | |
| | ---Lag---120days
| ----Fals
|
---AND---True
| |
| |
| ----Fals
|
---OR---Less---1.42
| |
| |
| ----1.6
|
---AND---OR---True
| |
| |
| ----Fals ----True
圖 3.7 過適技術交易法則。深度:10,節點:42
深度定義為從根節點出發不折返所能經過最多的節點數,有過適特質的技術交易法則 會在訓練資料上展現出高人一等的獲利能力,但應用在測試資料時其表現卻明顯衰 退。
既然有過適特徵的樹具有高度複雜的結構以致於形成一個巨大的樹使得可讀性大
33
大地降低,那難道反而是相對矮小的樹可以達到在未來市場獲利的目標嗎?直覺上,
一個歷史悠久的目標市場必定具有一定的成熟度,因此在遺傳程式規劃中所訓練出具 有預測未來能力的模型樹免不了是結構適中的,過小不足以將其獲利的一般性拓展到 未來,過大則明顯是過適現象,換句話說,樹的複雜程度或大小要和獲利能力成比例 才有意義。在文獻中,有許多決策樹(decision tree)在經過修剪後,其正確性並不會因此 降低,在某些例子表現反而更好[38, 39]。更有些論證本於奧卡姆剃刀(Occam's razor)原 則(排除不必要的假設性思考元素以把論題簡化的思考模式),認為相對簡單的模型 有更強表現出一般化特性的預測能力且與實際模型的誤差也更小[40, 41]。
然而,有些學者對上述論證本著懷疑的態度,Domingos舉出一些以經驗法則為基 礎的研究,說明相對簡單的模型是比預期表現差勁的[42],繼Jensen和Cohen之後,
Domingos認為是所使用模型的數量導致了過適現象的發生,而非其在學習過程中可能 產生的複雜結構[43]。
綜合以上所述,在遺傳程式規劃中可藉由以下方法來迴避過適現象:
1 盡可能蒐集訓練資料,越多越好。
2 去除資料中和問題屬性不相關的雜訊。
3 限制演化世代數以避免學習期過長。
4 對結構複雜的樹施以懲罰條款來降低其適存度。
5 將族群數量以經驗訂定一個合理的大小。
6 使用交叉驗證法。
在第二個方法中,產生過適現象的技術交易法則可能會著重在描述市場非獲利部分的 特性,但要去除雜訊相當不容易,因為在一般不瞭解目標市場的情況下是不會有足夠 的訊息讓我們去辨別哪些資料和市場獲利部分相關,哪些不相關,因為正這是我們希 望藉由遺傳程式規劃找到的。第四個方法可藉由當某棵樹的深度超過限制值時,並非 盲目限制其深度及節點數,而是將其原始適存度fraw乘上限制深度dmax和實際深度dactual 的比例當作用以繼續演化的適存度fadj的方法來實現[22],如式(3-15)所示:
actual raw
adj d
f d
f = max (3-15)
此方法在本研究並沒有顯著的效果,因為在未使用方法四時,規劃所得的技術交易法 則在過適特徵方面並不明顯。第六個方法是本研究中最主要用來避免過適現象發生的 方法,交叉驗證法是將訓練資料分為兩部分,一部份稱為訓練期(training period),另一 部份稱為驗證期(validation period),後者用以驗證模型樹在訓練期的表現是否貨真價 實,一個在訓練期獲利能力好上許多的技術交易法則會因為在驗證期表現不佳而遭到 捨棄,此時即為過適現象發生,如圖3.8所示:
獲利
世代演進 訓練期
驗證期
過適個體出現
!
獲利
訓練期
世代演進 驗證期
過適個體出現
!
圖 3.8 過適現象
反之,一個在訓練期表現稍嫌不佳的技術交易法則還是有可能因為在驗證期展現相較 其餘競爭對手更好的獲利能力而被挑中,由於輸家著重在記憶訓練期資料的古怪特 質,因此付出了無法辨別目標市場一般性規律的代價。在使用交叉驗證法的學習過程 中,學習終點的判定並不是技術交易法則在訓練期的獲利能力到達飽和,而是在驗證 期的獲利能力開始出現走下坡的趨勢且持續一段時間時,此外,交叉驗證法的操作同 時也具有方法三和方法四的效用,因為只要學習終點一出現就可以避免學習期過長,
當然也減少了出現複雜結構的技術交易法則的機率,懲罰條款也就無用武之地。實際 上,技術交易法則在驗證期的曲線可能存在不少局部最大的獲利點,因此可藉由將學 習期,也就是演化的世代數拉長,再將所有資料以人工判定的方法來決定何者為所要 的技術交易法則。