關於 DAY5-6 的更新將會延後至周六、日,目前還沒礙到進度,所以先用新進度走,也就是進到 DAY 7。
今天我們要來探討的是類神經網路應用在時間序列,常見的實務上的應用場景,我們會探討六種基本的應用場景,這六種應用場景分別有他們需要注意的地方。此外我們也會延伸探討,如果你想做一個類神經網路技術的應用產品,你應該如何對你的產品提出正確的業務指標,並且對你的技術成功拉起一個學習閉環(Learing Loop)。
今天在這邊談的應用場景,我們得先來給他做個定義,我們一樣會從技術出發,因此和你在新聞媒體上聽到的那種很酷炫的什麼無人駕駛、FinTech應用場景的印象,可能有點不太相符。此外也跟在商業企管課程上到的那種需求分析不太一樣,這邊我們談的應用場景,是指說當你在應用類神經網路技術在時間序列,得到了一個輸出值,而建立在這個輸出值上面的決策或是分析判斷,最終產生了一個反饋的應用過程,講的文謅謅,讓我們來看圖。
我們談的應用場景,會涉及到的四個流程:
唯有搞清楚前三個流程,才能在最後一個流程拉起學習閉環。真實情況的應用場景會根據不同的環境做更細部的調整,今天和各位聊的主要會著重在第一步驟,也就是模型技術輸出到決策分析這個過程。
在此我們主要考慮監督式學習,因為監督式學習比無監督式學習,在應用面的決策分析更顯得複雜。這邊我們會以金融市場作為例子來做說明。現在你訓練出了一組能有效對A股票進行下三十分鐘價格預測的類神經網路模型,所以你現在把目前所有金融市場的資料餵到模型中,我們得到了一個預測下三十分鐘的股票為15元的模型預測值。
現在,你可以決定你是否要買進A股票,現在A股票實際值是10元,所以買進之後三十分鐘假如正如預期來到15元,則能賺5元。當你這樣想的時候,你實際上是以過往時間序列 1~T 的序列實際值,搭配 T+1 的序列預測值做決策,其中這邊提到的 T 是指現在這個時間點。
這個想法是最直接而簡單明確的,讓我們把這個步驟仔細的沿著時間進行解剖:
或是沿著價格做解剖:
當你這樣做決策的時候,你實際上是 100% 相信實際值,這沒什麼不對,但是這有個關鍵點,你必須等待到時點 T 你才能做決策,如果你當初訓練你的類神經網路模型的輸出值,是對較遠的未來時間做預測,那你沒有什麼太大的風險,但假如你是要對下15分鐘、下30分鐘,這樣非常鄰近的時間做預測,又要採取這種決策方式,那你只有15分鐘到30分鐘執行你的決策,因為你要等待實際值發生。
這在金融市場上相對來說可能是比較困難的事情,因為要在三十分鐘買進A股票,可能金融市場上的流動性不足,買不到足夠的股票張數,或是由於你要花點時間買,例如兩三分鐘買進,因此你的成本價可能也不僅僅只是10元,可能會買高,因為他可能正在一路往上漲到15元。
你可以思考看看在你想要從事的領域中這樣子是否會有這樣的決策風險,這是時間序列應用的最典型基礎的問題,也就是當你透過觀察了一段時間的時間序列值,嘗試根據這些實際值以及下一個時點的預測值做反應時,你的反應時間可能不夠,或是反應結果不一定會如當初所預料,你的損益彈性可能會比較小。
剛剛還有個資訊沒有說明,儘管現在股票實際值是10元,然後你預期下三十分鐘之後股票會來到15元,但是!你過去對現在時點的預測值其實是20元!你是否想過市場可能過度反應或是包含雜訊呢?其實你的模型預測值才是對的呢?事實上A股票本質應該是如同你的預測:從20元跌到15元,你反而不該買進呢?
如果你打算採取的是用這種方式做決策,也就是 100% 相信你的模型輸出值,我也很難說你錯,因為你的模型搞不好真的是先知聖賢,呈現給你的是真正事物的本質,或許你完全根據模型輸出值做的決策才是正確的,也就是說我只仰賴我的模型在訓練期間的實際數值作為標籤值給予的修正,在模型實際上線之後,應用場景中我完全不考慮當下實際數值做決策。
你可能覺得很怪,甚至覺得這是很荒謬的,怎麼可能在決策時不倚賴實際值呢?A股票當前股價當然要作為股票交易策略的考慮因素呀!
這裡有幾點可能的原因和你分享,第一,你的模型輸出值能達到某種程度的去噪,避免你因為實際情況的多變造成頻繁決策,這在金融市場叫做交易風險,也就是頻繁交易造成手續費反而吃掉了利潤。在其他領域這可以叫做過敏感、低穩健性,讓我們來看這張圖:
還有一種情況是,如果你的決策到執行的過程中不需要像應用場景一的反應時間,你可以在一獲得實際值的當下,就搭配預測值進行決策,舉例來說,在 T 時點A股票實際值是10元,但是模型在T時點給你的是20元,因此A股票實際價值其實被低估了,你應該立馬買進,在這種應用場景中你由於沒有利用時間差去進行決策,所以你沒辦法計算預期損益。
糟糕時間不夠了哈哈,先發文啦!
關於應用場景四五六,就是這前三個應用場景做兩兩搭配,另外多出來的三種可能。
留到後續再補了,感謝大家的支持啦。