iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 1
2

前言

 
首先,本次題目應該就嚇跑不少人了哈哈,看起來十分像 【論文標題】 的題目打完之後十分後悔,因為才發現原來其他鐵人們打得都十分平近人,也說明了自己的學術氣息還是有點重又缺乏想像力。
 
目前個人任職於外商資產管理公司,從事類神經網路模型開發,由於公司將研究與開發分開來,個人身分更偏向「研究員」因此程式開發上是採用 Matlab 做演算法原型設計(Matlab 就是演算法的 Photoshop,拿來做設計和簡單 Parallel Computing 用的)在達到一定研究成果條件後,交付給工程師寫成 C 進一步投入實際場景。
 
講這麼大一串其實只是為了替自己的文章風格與使用 Matlab 找個合理藉口(誤)。
 
總而言之歡迎來到本系列的第0篇也就是前言部分,我會盡量保證後續文章內容不會過於生澀難懂,並且會輔助大量的圖片來做說明。文章中涉及到的程式碼大部分都是手刻寫死(hardcode)所以不用擔心我使用到的 Matlab 功能在其他程式語言中沒有對應的功能,假如你想將這個想法應用到例如 Python 中的 Theano 或 TensorFlow 等原則上都沒有什麼問題。
 
本次三十天的文章,我主要想帶給大家一個觀念就是,類神經網路訓練中的權重修正方法,傳統使用梯度下降法或用各種連續可微的目標函數,目的是讓類神經網路模型的誤差極小化,不一定能讓你的模型在實際應用場景中派上用場,這不單單只是樣本內外過擬合(Overfitting)的問題,因此你可以將目標函數完全用一種全新的方式來表示,而真正實務上的重心就會轉移到目標函數的設計上頭,我也會說明為什麼這樣子的方法在時間序列上的應用會比較好,同時會偶爾穿插台灣金融市場資料作為實際例子說明。
 
本次文章假設讀者有類神經網路的基礎知識,並且會撰寫簡單的類神經網路程式碼,重點將擺在啟發式演算法的介紹,以及如何和類神經網路演算法做融合,與實務上操作應用的小技巧。
 

目錄

目前文章將暫定為三個部分:

第一個部分也就是第1至10天,主要是建立一個簡單前饋式類神經網路,並探討他在時間序列應用上存在的瓶頸與困境,本次採用輻狀基底函數類神經網路作為例子,讀者都可以自由切換成各種更複雜的類神經網路模型,例如遞歸類神經網路、卷積類神經網路等。

  • DAY 01 : 輻狀基底函數
  • DAY 02 : 輻狀基底函數的中心點選取方式
  • DAY 03 : 輻狀基底函數類神經網路
  • DAY 04 : 模型質量指標:準確度、精確度與查全率
  • DAY 05 : 時間序列的交叉驗證問題
  • DAY 06 : 移動窗格法與質量指標飄移
  • DAY 07 : 實務應用場景與業務指標
  • DAY 08 : 模型與應用的困境(上):資料型態
  • DAY 09 : 模型與應用的困境(下):擬合度
  • DAY 10 : 第一部分總結與延伸思考

第二個部分也就是第11至20天,將會建立一個簡單的啟發式演算法,並逐步將其整合到類神經網路中,並說明這為什麼能解決第一部分談到應用上的瓶頸與困難,本次採用粒子群演算法作為例子,讀者也都可以自由切換成各種其他啟發式演算法,例如差分進化法、蟻群演算法、免疫演算法等。

  • DAY 11 : 粒子群演算法簡介
  • DAY 12 : 以粒子群演算法初始化網路權重
  • DAY 13 : 以粒子群演算法修正網路權重
  • DAY 14 : 從最佳粒子提取訓練後網路權重
  • DAY 15 : 目標函數的構建(一)誤差最小化
  • DAY 16 : 目標函數的構建(二)利益指標最大化
  • DAY 17 : 目標函數的構建(三)風險指標最小化
  • DAY 18 : 目標函數的構建(四)混合式設計
  • DAY 19 : 動態類神經網路
  • DAY 20 : 第二部分總結與延伸思考

第三個部分也就是第21至30天,將會以台灣指數期貨作為資料範本,探討第一部分與第二部分在實際應用上的表現情況。本部分不會過於著墨金融市場或交易策略,而是將重心擺在如何從實際業務流程不斷測試目標函數,並從目標函數訓練結果修正訓練與測試樣本。讀者可以將方法延伸思考到其他領域,例如政治與經濟、商業需求分析、工業工程與生產鏈管理等。

  • DAY 21 : 訓練與測試樣本的選擇
  • DAY 22 : 資料預處理與標準化
  • DAY 23 : 台灣指數期貨與簡易的交易策略
  • DAY 24 : 交易策略中提取利益指標與風險指標
  • DAY 25 : 初步測試:利益指標最大化
  • DAY 26 : 第二輪測試:風險指標最小化
  • DAY 27 : 資料採礦:無限輪的測試
  • DAY 28 : 寶貴的資產:目標函數的測試樹
  • DAY 29 : 動態類神經網路的進階應用
  • DAY 30 : 第三部分總結與實務建議

雖然前言打的正式又嚴肅幾分,但內文會盡量打得生動活潑一些,希望能對有興趣的朋友有些許幫助。


下一篇
DAY01 - 輻狀基底函數
系列文
類神經網路搭配啟發式演算法於時間序列之應用27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
小財神
站方管理人員 ‧ 2016-12-16 10:46:46

超級期待,加油喔!

謝謝小財神!!剛來到 ITHome 和大家學習

0
杜岳華
iT邦新手 5 級 ‧ 2016-12-17 19:46:14

有人要講heuristic algorithms了!!
我現在正要自己implement simulated annealing,想說是不是可以拿去訓練NN,一直想不到到底要怎麼套進去,期待大大的文章!

希望能幫上一點忙,歡迎討論~~

0
海綿寶寶
iT邦大神 1 級 ‧ 2016-12-17 21:39:33

完全不懂這門學問

不過就這段話看起來

以台灣指數期貨作為資料範本,探討第一部分與第二部分在實際應用上的表現情況。本部分不會過於著墨金融市場或交易策略,而是將重心擺在如何從實際業務流程不斷測試目標函數,並從目標函數訓練結果修正訓練與測試樣本。

我覺得The Big Short應該就是這麼發明出來的
/images/emoticon/emoticon44.gif

感謝大大,會努力把他弄得不那麼難懂

我要留言

立即登入留言