3
| 本文作者: 李尊 | 2016-08-16 18:16 |
引言:強化學習(Reinforcement learning)是機器學習中的一個領域,強調如何基于環境而行動,以取得最大化的預期利益。

David Silver在2013年加入Google DeepMind,是小組中AlphaGo項目的主程序員,也是University College London的講師。
強化學習(Reinforcement learning)靈感來源于心理學中的行為主義理論,即有機體如何在環境給予的獎勵或懲罰的刺激下,逐步形成對刺激的預期,產生能獲得最大利益的習慣性行為。這個方法具有普適性,因此在其他許多領域都有研究,例如博弈論、控制論、運籌學、信息論、模擬優化方法、多主體系統學習、群體智能、統計學以及遺傳算法。

強化學習也是多學科多領域交叉的一個產物,它的本質就是解決“決策(decision making)”問題,即學會自動進行決策。其在各個領域體現不同:
在計算機科學(Computer science)領域體現為機器學習算法;
在工程(Engineering)領域體現在決定序列行為(the sequence of actions)來得到最好的結果;
在神經科學(Neuroscience)領域體現在理解人類大腦如何做出決策,主要的研究是反饋系統(reward system);
在心理學(Psychology)領域,研究動物如何做出決策、動物的行為是由什么導致的;
在經濟學(Economics)領域體現在博弈論的研究。
這所有的問題最終都歸結為一個問題,人為什么能夠做出最優決策,且人類是如何做到的。
| 原理
強化學習作為一個序列決策(Sequential Decision Making)問題,它需要連續選擇一些行為,從這些行為完成后得到最大的收益作為最好的結果。它在沒有任何label告訴算法應該怎么做的情況下,通過先嘗試做出一些行為——然后得到一個結果,通過判斷這個結果是對還是錯來對之前的行為進行反饋。由這個反饋來調整之前的行為,通過不斷的調整算法能夠學習到在什么樣的情況下選擇什么樣的行為可以得到最好的結果。
強化學習與監督學習有不少區別,從前文中可以看到監督學習是有一個label(標記)的,這個label告訴算法什么樣的輸入對應著什么樣的輸出。而強化學習沒有label告訴它在某種情況下應該做出什么樣的行為,只有一個做出一系列行為后最終反饋回來的reward signal,這個signal能判斷當前選擇的行為是好是壞。另外強化學習的結果反饋有延時,有時候可能需要走了很多步以后才知道之前某步的選擇是好還是壞,而監督學習如果做了比較壞的選擇則會立刻反饋給算法。強化學習面對的輸入總是在變化,不像監督學習中——輸入是獨立分布的。每當算法做出一個行為,它就影響了下一次決策的輸入。強化學習和標準的監督式學習之間的區別在于,它并不需要出現正確的輸入/輸出對,也不需要精確校正次優化的行為。強化學習更加專注于在線規劃,需要在Exploration(探索未知的領域)和Exploitation(利用現有知識)之間找到平衡。

強化學習決策實現過程需要設定一個agent(圖中的大腦部分),agent能夠執行某個action(例如決定圍棋棋子下在哪個位置,機器人的下一步該怎么走)。Agent能夠接收當前環境的一個observation(觀察),例如當前機器人的攝像頭拍攝到場景。Agent還能接收當它執行某個action后的reward,即在第t步agent的工作流程是執行一個動作At,獲得該動作之后的環境觀測狀況Ot,以及獲得這個動作的反饋獎賞Rt。而環境environment則是agent交互的對象,它是一個行為不可控制的對象,agent一開始不知道環境會對不同action做出什么樣的反應,而環境會通過observation告訴agent當前的環境狀態,同時環境能夠根據可能的最終結果反饋給agent一個reward,例如圍棋棋面就是一個environment,它可以根據當前的棋面狀況估計一下黑白雙方輸贏的比例。因而在第t步,environment的工作流程是接收一個At,對這個動作做出反應之后傳遞環境狀況和評估的reward給agent。reward獎賞Rt,是一個反饋標量值,它表明了在第t步agent做出的決策有多好或者有多不好,整個強化學習優化的目標就是最大化累積reward。
強化學習中Agent的組成

一個agent由Policy(策略)、Value function(價值函數)、Model(模型)三部分組成,但這三部分不是必須同時存在的。
Policy(策略):它根據當前看到的observation來決定action,是從state到action的映射。有兩種表達形式,一種是Deterministic policy(確定策略)即a=π(s)a=π(s),在某種狀態s下,一定會執行某個動作a。一種是Stochastic policy(隨機策略)即π(a|s)=p[At=a|St=s]π(a|s)=p[At=a|St=s],它是在某種狀態下執行某個動作的概率。
Value function(價值函數):它預測了當前狀態下未來可能獲得的reward的期望。Vπ(s)=Eπ[Rt+1+rRt+2+…|St=s]Vπ(s)=Eπ[Rt+1+rRt+2+…|St=s]。用于衡量當前狀態的好壞。
Model(模型):預測environment下一步會做出什么樣的改變,從而預測agent接收到的狀態或者reward是什么。因而有兩種類型的model,一種是預測下一個state的transition model即Pass′=p[St+1=s′|St=s,At=a]Pss′a=p[St+1=s′|St=s,At=a],一種是預測下一次reward的reward model即Ras=E[Rt+1|St=s,At=a]Rsa=E[Rt+1|St=s,At=a]
強化學習是一種試錯(trial-and-error)的學習方式:最開始的時候不清楚environment(環境)的工作方式,不清楚執行什么樣的action(行為)是對的,什么樣的action(行為)是錯的。因而agent需要從不斷嘗試的經驗中發現一個好的policy,從而在這個過程中獲取更多的reward。
在學習過程中,會有一個在Exploration(探索)和Exploitation(利用)之間的權衡。
Exploration(探索)會放棄一些已知的reward信息,而去嘗試一些新的選擇——即在某種狀態下,算法也許已經學習到選擇什么action讓reward比較大,但是并不能每次都做出同樣的選擇,也許另外一個沒有嘗試過的選擇會讓reward更大,即Exploration希望能夠探索更多關于environment的信息。
Exploitation(利用)指根據已知的信息最大化reward。
舉個例子,這兩者在選擇一家餐館時——Exploration(探索)會選擇你最喜歡的餐館,而Exploitation(利用)則會嘗試選擇一個新的餐館。
總結:經過文中對于強化學習中背景、原理、實現過程以及相關概念的介紹,相信大家對于強化學習會有一個基礎的認識,后續實現過程以及詳細的價值函數、策略方法請持續關注我們接下來的文章。
PS : 本文由雷鋒網編譯,未經許可拒絕轉載!
via David Silver
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。