softnshare / datanmachlearn

https://softnshare.wordpress.com/slack/forum-datamachlearn/
24 stars 2 forks source link

圖解分層增強學習觀念 #1

Open ghost opened 8 years ago

ghost commented 8 years ago

前言

 會想要分享這篇是最近一方面在社群中和大家討論有提到,此外就是這一兩年也有一些學術文章在探討分層深度增強學習,更重要的是我覺得對於普羅大眾而言,增強學習其實會比一般傳統機器學習模型更能幫助大家在商業應用或專業技術中能更塑造優勢,因為增強學習可以把你專業的Know-How整理進來,融入業務架構。

 今天在此先帶來的還是觀念,未來想說可以把一些開源的封包應用來做個 Demo Code 或 Toy Package 給大家把玩,到時候會再斟酌是放在 softnshare 的 datamachlearn 還是 python 的 repo 中    

分層增強學習

 增強學習 (Reinforcement Learning, RL) 是一種機器學習的訓練架構,增強學習假定你的訓練輸出可以作為一個「決策參考」並透過決策結果來產生新的輸入資料,透過這樣反覆不斷地「決策-判斷」來訓練模型學會在特定的輸入資料下能始終做出最佳的決定。    最簡單的理解就是「機器人走路」機器人透過感知到地面周圍,進行判斷到底這個地面能不能走,然後最後決定是否要往前進。這裡可以發現,模型聰明之處是在於從非常原始的地面資料,最後能抽象做出走路與否和走向哪裡的決策。    但這會有個缺點,如果你的訓練目標稍微複雜一些,例如「機器人走路,還會閃避地面障礙物,然後先找尋地面鑰匙撿起來」 哇!這怎麼可能單純感知到地面資料,就能做出的簡單決策呢?在這樣的前提下,我們希望機器人能合格達成「多目標任務」就好,不用過度優化單一目標(舉例來說,機器人為了最佳化避開障礙物路線,結果永遠撿不到地面鑰匙),這時候就可以採用 【分層增強學習 (Hierarchical Reinforcement Learning, HRL)】    透過下圖,你可以簡單理解出有沒有分層的差異:

hrl-1    透過把增強學習的決策過程,拆解成分解動作,每個分解動作的決策都搭配一組增強學習,成為一個複合式的增強學習模型,某種程度可以解決掉我們所需要完成的「多目標任務」。    但是!分層增強學習也被人詬病,由於你人為的給定了分層的框架,所以分層增強學習並沒有達到足夠智慧化的創新,他並不是自己學習到分層的框架,所以後來就有人發展出分層框架也透過機器學習來訓練出來,但這樣樣本和訓練過程的時間就又更長了。    但是個人觀點是認為,任何方法的重點都是在解決問題,如果你的業務發展本來就有一些值得和模型鑲嵌在一起的知識框架或專業知識,分層增強學習搞不好還會成為你們公司機器學習相關產品服務對特定客群客戶的重大賣點呢!  

About Me

 RICKY,目前任職於瑞典摩爾資產管理,擔任小小 Quant (P-measure)  主要擅長混合新聞短訊與時間序列資料的複合式機器學習模型開發  近一年來主要深耕於流形學習(manifold learning)盼能在中文世界遇到熟的知音