今天要來分享的是模型與應用的困境,這邊會稍微用到 DAY 7 對於應用場景的一些概念,以及我們在 DAY 4 聊到的各種模型質量檢驗標準,例如精確度、準確度等。到底類神經網路技術在應用的過程中,會遇到什麼樣的困難?又應該如何克服?今天我會來探討的是一些比較共同的基本難題:反饋機制。
這邊談的反饋機制是 DAY 7 中提到在應用場景中的最後一個流程:也就是「如何根據利益關係人的損益結果,拉回到技術面做修正和更新」,一直以來我認為搞清楚你的技術應用場景的各種利害關係是很重要的,並建立起學習的閉環。
假設你現在是一個百貨公司的老闆,你正運用類神經網路技術搭建一個對百貨公司VIP客戶的消費訊息分析模型,希望透過模型能得到VIP客戶的喜好、平均來店時間與離開的時間等,希望能透過這些資訊能提升對VIP客戶客製化服務品質,這時候你勢必要訂出一個「VIP客戶感受客製化服務品質」的指標,透過這個指標我們才能知道是否真的有提升。
然而實際上,目前多數掌握類神經網路技術的開發人員,他們不了解實際應用場景的各種困難,舉例來說,在我們 DAY 7 有談到監督式學習,在應用場景中做決策就可以分成最基礎的三種:
這三種不同的決策方式,對應的場景反饋機制可能也會大有不同。
1. 若以第一種方式決策的應用場景,反饋就是未來時點實際值是否接近未來時點預測值。
由於預期的損益都是以現在時點實際值與未來時點預測值做比較而得,因此未來時點預測值倘若和發生的情況不一樣,勢必會影響到實際損益。舉例來說,當前股價 10 元然後你預測未來股價 15 元,你現在買進之後就是預期損益能賺 5 元,那假如到時候股價並沒有來到 15 元,而是來到 12 元,你就比你預期想賺的來的低 3 元。
這邊要注意到的事情是什麼呢?也就是說你目前買進股價 10 元,預期 15 元,但是只要未來股價是上升的,管他是到 15 元、20 元還是 30 元,你的這個決策都沒有帶來傷害,只是賺多賺少的問題。也就是說在模型的質量檢驗標準中,只要未來股價達到 10 以上,你的模型都會被判為「正例」,有時候模型在實際上線之後預測能力都會掉一些,但是正例的發生比率還是能在應用場景繼續用下去,這時候你可以考慮繼續用,也可以考慮重新訓練。
舉例來說,你的模型如我每次訓練都預測股價不是 100000 ~ 999999 元就是 0 ~ 9 元,實際上股價就不可能落在這兩個區間,但是如果你用這樣的模型做決策,帶給你的正例還是足夠多,你得要自行判斷你要不重新訓練,也就是模型預測能力已經完全沒有了,但是質量檢驗標準都還是過關,這時候你該怎麼辦呢?
2. 若以第二種方式決策的應用場景,反饋機制就是一段時間後,預測值與實際值做比較。
第二種方式就是完全倚賴模型預測值,實際值僅在訓練時作為修正來用,在模型實際上線之後你並不會倚賴實際值做決策,都純倚賴預測值。這種方式很吃你的模型的預測能力,因為如果實際應用場景通常我們會假設隨著時間過去,應用場景中我們關注的資料內涵複雜度可能會升高,也就是說模型在使用一段時間後需要做調整,但是由於你完全倚賴模型的預測值做決策,可能會讓你忽視掉實際值已經飄走了,但問題仍然一樣,你可能還是會得到一堆「正例」,使得你捨不得把模型丟掉,因為老闆仍然喜歡,而重新訓練需要花費成本。
舉例來說,你當前預測股價 20 元,預測下個時點股價 15 元,所以你認為股價正在一個跌勢,你不管現在股價多少,反正你就信任你的模型輸出值,但是因為現實情況當前股價是 10 元,不是你預測的 20 元,所以你也沒辦法做空(一種在股價下跌時的交易行為)所以你只能乾巴巴著看著資料,而無法採取任何決策。
直到你過了一段時間之後,回頭看之前你一連串根據預測值所做的決定(與沒做的決定)你才能判斷到底你這樣的決策是否是正確的,麻煩的事情就是在這種應用場景中,你很難抓到底你多久之後要來做個「歷史回顧」,這是另一種模型在應用場景中遇到的困難。
3. 若以第三種決策方式的應用場景,反饋機制就是無法計算預期損益
第三種方式是完全倚賴當下時點的資訊,例如你預期現在時點股價是 20 元,但是當前股價是 10 元,所以你預期是現在的股價是被低估的,但是如果你現在進場買進了這個股票,你會有個問題,到底我要如何預期我會賺多少錢呢?因為在未來時點可能發生兩件事情:
(1) 下個時點股價實際值 20 元,下個時點股價預測值為 25 元,股價在下個時點仍然被低估,你當初買進是正確的。
(2) 下個時點股價實際值是 5 元,下個時點股價預測值為 10 元,股價在下個時點仍然被低估,但你賠錢。
因此只以當前時點的資訊做決策,你的反饋機制是可能沒有辦法被量化的,因為你並沒有描述當前時點與未來時點間的因果關係,因此你沒辦法拉起一個學習的閉環,但是!這不代表你的模型依照這種方式訓練出來,他會不能用哦!搞不好實際上你在模型上線測試之後這樣的模型反而是最能帶來好結果,最高的「正例」但你永遠沒辦法知道到底你該怎麼預期未來的損益。
這邊我已經談到了三種反饋機制在各自獨立的應用場景會有的問題,請不要懷疑你的眼睛,在很多學術論文中都是用這種方式在探討應用的可能性,這都只是會被打臉(例如預測股價和實際股價誤差多小,但這根本不能用呀!)身為一個專業的類神經網路應用開發人員,應該要體認到你篹出來的東西會怎麼被使用,我這邊提到的大部分都是「時間序列」資料才有的問題,如果是和時間這個維度沒有關係的,可能比較不會有這麼多決策上的麻煩。
因此請把握住這三個模型在應用上的困境,這也告訴你說你的決策應該要考慮這三著綜合起來,而不能單獨只倚賴其中一個,這都會出問題。
後記:Day5, Day6 的更新還沒完成好崩潰,在此預祝大家聖誕節快樂。