毕设日志(二)
畢業設計工作日志(二)
- 2019.3.9
- DQN
- 2019.3.10
- 2019.3.14
- (一) 深度強化學習的泡沫
- (二)危機
- (三) 免模型強化學習的本質缺陷
- (四)基于模型的方法的優勢與缺點
- (五)重新審視強化學習
- (六)一些值得研究的方向
- (七)重新審視RL的應用
- 我的方向
- 元學習簡介
- 明日工作:
2019.3.9
今天的任務是
DQN
簡單地說,DQN 就是Q-learning與神經網絡相結合。
在Q-learning中,一般用表格來表示Q(s,a),但是這個在現實的很多問題上是幾乎不可行的,因為狀態實在是太多。使用表格的方式根本存不下。所以有必要對狀態的維度進行壓縮,解決辦法就是 價值函數近似
什么是價值函數近似呢?就是用任意類型的一個函數來表示Q(s,a)。通過函數表示,就可以無所謂s到底是多大的維度,反正最后都通過矩陣運算降維輸出為單值的Q。
神經網絡的輸入是經過處理的游戲數據或者圖像,然后經過n卷積層,n全連接層,最后輸出包含每一個動作Q值的向量。
而神經網絡的訓練是一個最優化問題,最優化一個損失函數loss function,也就是標簽和網絡輸出的偏差,目標是讓損失函數最小化。為此,需要有樣本,巨量的有標簽數據,然后通過反向傳播使用梯度下降的方法來更新神經網絡的參數。
在DQN中,把目標Q值作為標簽,目標就是讓估計Q值趨近于目標Q值,Q網絡訓練的損失函數就是
上面公式是s^,a^即下一個狀態和動作。
下面是DQN的算法,剛開始學的時候覺得這簡直是天書,現在嘛,覺得這算法還是蠻基礎的,so easy.
上面的算法就是反復試驗,然后存儲數據。數據存到一定程度,就每次隨機采用數據,進行梯度下降。
需要注意的是,這里用到了兩個神經網絡:目標網絡 和 評估網絡 。
而算法最重要的一步是在 DeepQNetwork 中如何學習, 更新參數。這里涉及了 目標網絡和 評估網絡 的交互使用。這一點 莫煩老師 講的很好。
剛看的時候會有些不懂。
兩個神經網絡是為了固定住一個神經網絡 (target_net) 的參數, target_net 是 eval_net 的一個歷史版本, 擁有 eval_net 很久之前的一組參數, 而且這組參數被固定一段時間, 然后再被 eval_net 的新參數所替換. 而 eval_net 是不斷在被提升的, 所以是一個可以被訓練的網絡
在訓練神經網絡的時候,訓練的是eval_net網絡,訓練時用的Q值來自target_net網絡。訓練定量的批次后,將eval_net網絡的所有參數賦值給target_net網絡。
還有一個要點
# 下面這幾步十分重要. q_next, q_eval 包含所有 action 的值, # 而我們需要的只是已經選擇好的 action 的值, 其他的并不需要. # 所以我們將其他的 action 值全變成 0, 將用到的 action 誤差值 反向傳遞回去, 作為更新憑據. # 這是我們最終要達到的樣子, 比如 q_target - q_eval = [1, 0, 0] - [-1, 0, 0] = [2, 0, 0] # q_eval = [-1, 0, 0] 表示這一個記憶中有我選用過 action 0, 而 action 0 帶來的 Q(s, a0) = -1, 所以其他的 Q(s, a1) = Q(s, a2) = 0. # q_target = [1, 0, 0] 表示這個記憶中的 r+gamma*maxQ(s_) = 1, 而且不管在 s_ 上我們取了哪個 action, # 我們都需要對應上 q_eval 中的 action 位置, 所以就將 1 放在了 action 0 的位置.# 下面也是為了達到上面說的目的, 不過為了更方面讓程序運算, 達到目的的過程有點不同. # 是將 q_eval 全部賦值給 q_target, 這時 q_target-q_eval 全為 0, # 不過 我們再根據 batch_memory 當中的 action 這個 column 來給 q_target 中的對應的 memory-action 位置來修改賦值. # 使新的賦值為 reward + gamma * maxQ(s_), 這樣 q_target-q_eval 就可以變成我們所需的樣子. # 具體在下面還有一個舉例說明.假如在這個 batch 中, 我們有2個提取的記憶, 根據每個記憶可以生產3個 action 的值:q_eval =[[1, 2, 3],[4, 5, 6]]q_target = q_eval =[[1, 2, 3],[4, 5, 6]]然后根據 memory 當中的具體 action 位置來修改 q_target 對應 action 上的值:比如在:記憶 0 的 q_target 計算值是 -1, 而且我用了 action 0;記憶 1 的 q_target 計算值是 -2, 而且我用了 action 2:q_target =[[-1, 2, 3],[4, 5, -2]]所以 (q_target - q_eval) 就變成了:[[(-1)-(1), 0, 0],[0, 0, (-2)-(6)]]最后我們將這個 (q_target - q_eval) 當成誤差, 反向傳遞會神經網絡.所有為 0 的 action 值是當時沒有選擇的 action, 之前有選擇的 action 才有不為0的值.我們只反向傳遞之前選擇的 action 的值,至于代碼,先看懂莫煩老師寫的代碼,就不移植了,接下來的游戲環境也不用自己寫了,直接學習OpenAI Gym。
其他的算法先學習這位博主的:https://me.csdn.net/u013236946
over.
2019.3.10
今天一直在看文章,輸入信息有點多,明天做個整理。
2019.3.14
看到這篇文章后有很大啟發,先做個總結
鏈接:https://zhuanlan.zhihu.com/p/39999667
(一) 深度強化學習的泡沫
過去三年間,DRL算法在不同領域大顯神通:在視頻游戲[1]、棋類游戲上打敗人類頂尖高手[2,3];控制復雜的機械進行操作[4];調配網絡資源[5];為數據中心大幅節能[6];甚至對機器學習算法自動調參[7]。結合DL與RL的深度強化學習(Deep Reinforcement Learning, DRL)迅速成為人工智能界的焦點。
(二)危機
2017年9月,著名RL專家Doina Precup和Joelle Pineau所領導的的研究組發表了論文Deep Reinforcement Learning that Matters[8],直指當前DRL領域論文數量多卻水分大、實驗難以復現等問題。
針對DRL領域,Pineau展示了該研究組對當前不同DRL算法的大量可復現性實驗。實驗結果表明,不同DRL算法在不同任務、不同超參數、不同隨機種子下的效果大相徑庭。在報告后半段,Pineau呼吁學界關注“可復現性危機”這一問題,并根據她的調研結果,提出了12條檢驗算法“可復現性”的準則。
2018年的情人節當天,曾經就讀于伯克利人工智能研究實驗室(Berkeley Artificial Intelligence Research Lab, BAIR)的Alexirpan通過一篇博文Deep Reinforcement Learning Doesn’t Work Yet[13]從實驗角度總結了DRL算法存在的幾大問題:
-
樣本利用率非常低;
-
最終表現不夠好,經常比不過基于模型的方法;
-
好的獎勵函數難以設計;
-
難以平衡“探索”和“利用”,以致算法陷入局部極小;
-
對環境的過擬合;
-
災難性的不穩定性。
幾天后,GIT的博士生Himanshu Sahni發表博文Reinforcement Learning never worked, and ‘deep’ only helped a bit與之呼應[14],在贊同Alexirpan的觀點同時,指出 好的獎勵函數難以設計和難以平衡“探索”和“利用”以致算法陷入局部極小是RL的固有缺陷。
Jacob Andreas發了一條意味深長的tweet說: DRL的成功歸因于它是機器學習界中唯一一種允許在測試集上訓練的方法。
在大家紛紛吐槽DRL的時候,著名的優化專家 Ben Recht,從另一個角度給出一番分析。
(三) 免模型強化學習的本質缺陷
RL算法可以分為基于模型的方法(Model-based)與免模型的方法(Model-free)。前者主要發展自最優控制領域。通常先通過高斯過程(GP)或貝葉斯網絡(BN)等工具針對具體問題建立模型,然后再通過機器學習的方法或最優控制的方法,如模型預測控制(MPC)、線性二次調節器(LQR)、線性二次高斯(LQG)、迭代學習控制(ICL)等進行求解。而后者更多地發展自機器學習領域,屬于數據驅動的方法。算法通過大量采樣,估計代理的狀態、動作的值函數或回報函數,從而優化動作策略。
從年初至今,Ben Recht連發了13篇博文,從控制與優化的視角,重點探討了RL中的免模型方法[18]。Recht指出免模型方法自身存在以下幾大缺陷:
為什么多數DRL的工作都是基于免模型方法呢?作者認為有幾個原因。第一,免模型的方法相對簡單直觀,開源實現豐富,比較容易上手,從而吸引了更多的學者進行研究,有更大可能做出突破性的工作,如DQN和AlphaGo系列。第二,當前RL的發展還處于初級階段,學界的研究重點還是集中在環境是確定的、靜態的,狀態主要是離散的、靜態的、完全可觀察的,反饋也是確定的問題(如Atari游戲)上。針對這種相對“簡單”、基礎、通用的問題,免模型方法本身很合適。最后,在“AI = RL + DL”這一觀點的鼓動下,學界高估了DRL的能力。DQN展示出的令人興奮的能力使得很多人圍繞著DQN進行拓展,創造出了一系列同樣屬于免模型的工作。
(四)基于模型的方法的優勢與缺點
基于模型的方法一般先從數據中學習模型,然后基于學到的模型對策略進行優化。
學習模型的過程和控制論中的系統參數辨識類似。因為模型的存在,基于模型的方法可以充分利用每一個樣本來逼近模型,數據利用率極大提高。基于模型的方法則在一些控制問題中,相比于免模型方法,通常有10^2級的采樣率提升。此外,學到的模型往往對環境的變化魯棒,當遇到新環境時,算法可以依靠已學到的模型做推理,具有很好的泛化性能。
此外,基于模型的方法還與潛力巨大的預測學習(Predictive Learning)緊密相關。 基于模型的RL方法可能是實現Predictive Learning的重要技術之一。
但是同時,模型的存在也帶來了若干問題。
基于模型的DRL方法相對而言不那么簡單直觀,RL與DL的結合方式相對更復雜,設計難度更高。目前基于模型的DRL方法通常用高斯過程、貝葉斯網絡或概率神經網絡(PNN)來構建模型,典型的如David Silver在2016年提出的Predictron模型[23]。
除此之外,基于模型的方法也還存在若干自身缺陷:
對現實中非常多的無法建模的問題以及模仿學習問題,免模型算法仍是最好的選擇。 并且,免模型方法在理論上具備漸近收斂性,經過無數次與環境的交互可以保證得到最優解,這是基于模型的方法很難獲得的結果。最后,免模型最大的優勢就是具備非常好的通用性。事實上,在處理真正困難的問題時,免模型方法的效果通常更好。
基于模型的方法與免模型的方法的區別其實也可以看做 基于知識的方法與基于統計的方法 的區別。總體來講,兩種方法各有千秋,很難說其中一種方法優于另一種。在RL領域中,免模型算法只占很少一部分,但基于歷史原因,當前免模型的DRL方法發展迅速數量龐大,而基于模型的DRL方法則相對較少。
(五)重新審視強化學習
可見目前RL領域的實驗平臺還非常不成熟,在這樣的測試環境中的實驗實驗結果沒有足夠的說服力。很多研究結論都未必可信,因為好性能的取得或許僅僅是因為利用了模擬器的bugs。此外,一些學者指出當前RL算法的性能評判準則也不科學。Ben Recht和Sham Kakade都對RL的發展提出了多項具體建議,包括測試環境、基準算法、衡量標準等[18,29]。可見RL領域還有太多需要改進和規范化。
對DRL和免模型RL的質疑與討論,讓我們可以重新審視RL,這對RL今后的發展大有裨益。
DQN和AlphaGo系列工作給人留下深刻印象,但是這兩種任務本質上其實相對“簡單”。因為這些任務的環境是確定的、靜態的,狀態主要是離散的、靜態的、完全可觀察的,反饋是確定的,代理也是單一的。目前DRL在解決部分可見狀態任務(如StarCraft),狀態連續的任務(如機械控制任務),動態反饋任務和多代理任務中還沒取得令人驚嘆的突破。
作為DRL的研究者,我們不應該找一個DL任務強行將其RL化,而是應該針對一些天然適合RL處理的任務,嘗試通過引入DL來提升現有方法在目標識別環節或函數逼近環節上的能力。
在計算機視覺任務中,通過結合DL獲得良好的特征表達或函數逼近是非常自然的思路。但在有些領域,DL未必能發揮強大的特征提取作用,也未必被用于函數逼近。比如DL至今在機器人領域最多起到感知作用,而無法取代基于力學分析的方法。雖然有一些將DRL應用于物體抓取等現實世界的機械控制任務上并取得成功的案例,如QT-Opt[70],但往往需要大量的調試和訓練時間。
我們應該清晰地認識DRL算法的應用特點:因為其輸出的隨機性,當前的DRL算法更多地被用在模擬器而非真實環境中。
而當前具有實用價值且只需運行于模擬器中的任務主要有三類,即視頻游戲、棋類游戲和自動機器學習(AutoML,比如谷歌的AutoML Vision)。這并不是說DRL的應用被困在模擬器中——如果能針對某一具體問題,解決模擬器與真實世界間的差異,則可以發揮DRL的強大威力。最近Google的研究員就針對四足機器人運動問題,通過大力改進模擬器,使得在模擬器中訓練的運動策略可以完美遷移到真實世界中,取得了令人驚艷的效果[71]。不過,考慮到RL算法的不穩定性,在實際應用中不應盲目追求端到端的解決方案,而可以考慮將特征提取(DL)與決策(RL)分開,從而獲得更好的解釋性與穩定性。此外,模塊化RL(將RL算法封裝成一個模塊)以及將RL與其他模型融合,將在實際應用中有廣闊前景。而如何通過DL學習一個合適于作為RL模塊輸入的表示,也值得研究。
(六)一些值得研究的方向
機器學習是個跨學科的研究領域,而RL則是其中跨學科性質非常顯著的一個分支。RL理論的發展受到生理學、神經科學和最優控制等領域的啟發,現在依舊在很多相關領域被研究。在控制理論、機器人學、運籌學、經濟學等領域內部,依舊有很多的學者投身RL的研究,類似的概念或算法往往在不同的領域被重新發明,起了不同的名字。
Princeton大學著名的運籌學專家Warren Powell曾經寫了一篇題為AI, OR and Control Theory: A Rosetta Stone for Stochastic Optimization的文章,整理了RL中同一個概念、算法在AI、OR(運籌學)和Control Theory(控制理論)中各自對應的名稱,打通了不同領域間的隔閡 [32] 。由于各種學科各自的特點,不同領域的RL研究又獨具特色,這使得RL的研究可以充分借鑒不同領域的思想精華。
作者總結了一些值得研究的方向:
基于模型的方法。如上文所述,基于模型的方法不僅能大幅降低采樣需求,還可以通過學習任務的動力學模型,為預測學習打下基礎。
提高免模型方法的數據利用率和擴展性。這是免模型學習的兩處硬傷,也是Rich Sutton的終極研究目標。這個領域很艱難,但是任何有意義的突破也將帶來極大價值。
更高效的探索策略(Exploration Strategies)。平衡“探索”與“利用”是RL的本質問題,這需要我們設計更加高效的探索策略。除了若干經典的算法如Softmax、?-Greedy[1]、UCB[72]和Thompson Sampling[73]等,近期學界陸續提出了大批新算法,如Intrinsic Motivation [74]、Curiosity-driven Exploration[75]、Count-based Exploration [76]等。其實這些“新”算法的思想不少早在80年代就已出現[77],而與DL的有機結合使它們重新得到重視。此外,OpenAI與DeepMind先后提出通過在策略參數[78]和神經網絡權重[79]上引入噪聲來提升探索策略, 開辟了一個新方向。
與模仿學習(Imitation Learning, IL)結合。機器學習與自動駕駛領域最早的成功案例ALVINN[33]就是基于IL;當前RL領域最頂級的學者Pieter Abbeel在跟隨Andrew Ng讀博士時候,設計的通過IL控制直升機的算法[34]成為IL領域的代表性工作。2016年,英偉達提出的端到端自動駕駛系統也是通過IL進行學習[68]。而AlphaGo的學習方式也是IL。IL介于RL與監督學習之間,兼具兩者的優勢,既能更快地得到反饋、更快地收斂,又有推理能力,很有研究價值。關于IL的介紹,可以參見[35]這篇綜述。
獎賞塑形(Reward Shaping)。獎賞即反饋,其對RL算法性能的影響是巨大的。Alexirpan的博文中已經展示了沒有精心設計的反饋信號會讓RL算法產生多么差的結果。設計好的反饋信號一直是RL領域的研究熱點。近年來涌現出很多基于“好奇心”的RL算法和層級RL算法,這兩類算法的思路都是在模型訓練的過程中插入反饋信號,從而部分地克服了反饋過于稀疏的問題。另一種思路是學習反饋函數,這是逆強化學習(Inverse RL, IRL)的主要方式之一。近些年大火的GAN也是基于這個思路來解決生成建模問題, GAN的提出者Ian Goodfellow也認為GAN就是RL的一種方式 [36]。而將GAN于傳統IRL結合的GAIL[37]已經吸引了很多學者的注意。
RL中的遷移學習與多任務學習。當前RL的采樣效率極低,而且學到的知識不通用。遷移學習與多任務學習可以有效解決這些問題。通過將從原任務中學習的策略遷移至新任務中,避免了針對新任務從頭開始學習,這樣可以大大降低數據需求,同時也提升了算法的自適應能力。在真實環境中使用RL的一大困難在于RL的不穩定性,一個自然的思路是通過遷移學習將在模擬器中訓練好的穩定策略遷移到真實環境中,策略在新環境中僅通過少量探索即可滿足要求。然而,這一研究領域面臨的一大問題就是現實鴻溝(Reality Gap),即模擬器的仿真環境與真實環境差異過大。好的模擬器不僅可以有效填補現實鴻溝,還同時滿足RL算法大量采樣的需求,因此可以極大促進RL的研究與開發,如上文提到的Sim-to-Real[71]。同時,這也是RL與VR技術的一個結合點。近期學術界和工業界紛紛在這一領域發力。在自動駕駛領域,Gazebo、EuroTruck Simulator、TORCS、Unity、Apollo、Prescan、Panosim和Carsim等模擬器各具特色,而英特爾研究院開發的CARLA模擬器[38]逐漸成為業界研究的標準。其他領域的模擬器開發也呈現百花齊放之勢:在家庭環境模擬領域, MIT 和多倫多大學合力開發了功能豐富的VirturalHome模擬器;在無人機模擬訓練領域,MIT也開發了Flight Goggles模擬器。
提升RL的的泛化能力。機器學習最重要的目標就是泛化能力, 而現有的RL方法大多在這一指標上表現糟糕[8],無怪乎Jacob Andreas會批評RL的成功是來自“train on the test set”。這一問題已經引起了學界的廣泛重視,研究者們試圖通過學習環境的動力學模型[80]、降低模型復雜度[29]或模型無關學習[81]來提升泛化能力,這也促進了基于模型的方法與元學習(Meta-Learning)方法的發展。BAIR提出的著名的Dex-Net項目主要目標就是構建具有良好魯棒性、泛化能力的機器人抓取模型[82],而OpenAI也于2018年4月組織了OpenAI Retro Contest ,鼓勵參與者開發具有良好泛化能力的RL算法[83]。
層級RL(Hierarchical RL, HRL)。周志華教授總結DL成功的三個條件為:有逐層處理、有特征的內部變化和有足夠的模型復雜度[39]。而HRL不僅滿足這三個條件,而且具備更強的推理能力,是一個非常潛力的研究領域。目前HRL已經在一些需要復雜推理的任務(如Atari平臺上的《Montezuma’s Revenge》游戲)中展示了強大的學習能力[40]。
與序列預測(Sequence Prediction)結合。Sequence Prediction與RL、IL解決的問題相似又不相同。三者間有很多思想可以互相借鑒。當前已有一些基于RL和IL的方法在 Sequence Prediction任務上取得了很好的結果 [41,42,43]。這一方向的突破對Video Prediction和NLP中的很多任務都會產生廣泛影響。
(免模型)方法探索行為的安全性(Safe RL)。相比于基于模型的方法,免模型方法缺乏預測能力,這使得其探索行為帶有更多不穩定性。一種研究思路是結合貝葉斯方法為RL代理行為的不確定性建模,從而避免過于危險的探索行為。此外,為了安全地將RL應用于現實環境中,可以在模擬器中借助混合現實技術劃定危險區域,通過限制代理的活動空間約束代理的行為。
關系RL。近期學習客體間關系從而進行推理與預測的“關系學習”受到了學界的廣泛關注。關系學習往往在訓練中構建的狀態鏈,而中間狀態與最終的反饋是脫節的。RL可以將最終的反饋回傳給中間狀態,實現有效學習,因而成為實現關系學習的最佳方式。2017年DeepMind提出的VIN[44]和Pridictron[23]均是這方面的代表作。2018年6月,DeepMind又接連發表了多篇關系學習方向的工作如關系歸納偏置[45]、關系RL[46]、關系RNN[47]、圖網絡[48]和已經在《科學》雜志發表的生成查詢網絡(Generative Query Network,GQN)[49]。這一系列引人注目的工作將引領關系RL的熱潮。
對抗樣本RL。RL被廣泛應用于機械控制等領域,這些領域相比于圖像識別語音識別等等,對魯棒性和安全性的要求更高。因此針對RL的對抗攻擊是一個非常重要的問題。近期有研究表明,會被對抗樣本操控,很多經典模型如DQN等算法都經不住對抗攻擊的擾動[50,51]。
處理其他模態的輸入。在NLP領域,學界已經將RL應用于處理很多模態的數據上,如句子、篇章、知識庫等等。但是在計算機視覺領域,RL算法主要還是通過神經網絡提取圖像和視頻的特征,對其他模態的數據很少涉及。我們可以探索將RL應用于其他模態的數據的方法,比如處理RGB-D數據和激光雷達數據等。一旦某一種數據的特征提取難度大大降低,將其與RL有機結合后都可能取得AlphaGo級別的突破。英特爾研究院已經基于CARLA模擬器在這方面開展了一系列的工作。
(七)重新審視RL的應用
通過調查,我們可以發現RL算法已經在各個領域被廣泛使用:
控制領域。這是RL思想的發源地之一,也是RL技術應用最成熟的領域。控制領域和機器學習領域各自發展了相似的思想、概念與技術,可以互相借鑒。比如當前被廣泛應用的MPC算法與Model-based RL中的planning部分緊密相關。在機器人領域,相比于DL只能用于感知,RL相比傳統的法有自己的優勢:傳統方法如LQR等一般要對具體問題建立動力學模型,從而進行求解,復雜度較高,不適合用于做重規劃;而RL方法學習到的則是狀態-動作空間中的策略,具有更好的適應性。
自動駕駛領域。駕駛就是一個序列決策過程,因此天然適合用RL來處理。從80年代的ALVINN、TORCS到如今的CARLA,業界一直在嘗試用RL解決單車輛的自動駕駛問題以及多車輛的交通調度問題。類似的思想也廣泛地應用在各種飛行器、水下無人機領域。
NLP領域。相比于計算機視覺領域的任務,NLP領域的很多任務是多輪的,即需通過多次迭代交互來尋求最優解(如對話系統);而且任務的反饋信號往往需要在一系列決策后才能獲得(如機器寫作)。這樣的問題的特性自然適合用RL來解決,因而近年來RL被應用于NLP領域中的諸多任務中,如文本生成、文本摘要、序列標注、對話機器人(文字/語音)、機器翻譯、關系抽取和知識圖譜推理等等。成功的應用案例也有很多,如對話機器人領域中Yoshua Bengio 研究組開發的 MILABOT 的模型[54]、Facebook聊天機器人[55]等;機器翻譯領域Microsoft Translator [56]等。此外,在一系列跨越NLP與計算機視覺兩種模態的任務如VQA、Image/Video Caption、Image Grounding、Video Summarization等中,RL技術也都大顯身手。
推薦系統與檢索系統領域。RL中的Bandits系列算法早已被廣泛應用于商品推薦、新聞推薦和在線廣告等領域。近年也有一系列的工作將RL應用于信息檢索、排序的任務中[57]。
金融領域。RL強大的序列決策能力已經被金融系統所關注。無論是華爾街巨頭摩根大通還是創業公司如Kensho,都在其交易系統中引入了RL技術。
對數據的選擇。在數據足夠多的情況下,如何選擇數據來實現“快、好、省”地學習,具有非常大的應用價值。近期在這方面也涌現出一系列的工作,如UCSB的Jiawei Wu提出的Reinforced Co-Training [58]等。
通訊、生產調度、規劃和資源訪問控制等運籌領域。這些領域的任務往往涉及“選擇”動作的過程,而且帶標簽數據難以取得,因此廣泛使用RL進行求解。
關于RL的更全面的應用綜述請參見文獻 [59,60]。
雖然有上文列舉的諸多成功應用,但我們依舊要認識到,當前RL的發展還處于初級階段,不能包打天下。目前還沒有一個通用的RL解決方案像DL一樣成熟到成為一種即插即用的算法。不同RL算法在各自領域各領風騷。在找到一個普適的方法之前,我們更應該針對特定問題設計專門的算法,比如在機器人領域,基于貝葉斯RL和演化算法的方法(如CMAES[61])比DRL更合適。當然,不同的領域間應當互相借鑒與促進。RL算法的輸出存在隨機性,這是其“探索”哲學帶來的本質問題,因此我們不能盲目 All in RL, 也不應該RL in All, 而是要找準RL適合解決的問題。
參考文獻
[1] Mnih, Volodymyr, et al. “Human-level control through deep reinforcement learning.” Nature 518.7540 (2015): 529.
[2] Silver, David, et al. “Mastering the game of Go with deep neural networks and tree search.” Nature 529.7587 (2016): 484-489.
[3] Silver, David, et al. “Mastering the game of go without human knowledge.” Nature 550.7676 (2017): 354.
[4] Levine, Sergey, et al. “End-to-end training of deep visuomotor policies.” arXiv preprint arXiv:1504.00702, 2015.
[5] Mao, Hongzi, et al. “Resource management with deep reinforcement learning.” Proceedings of the 15th ACM Workshop on Hot Topics in Networks. ACM, 2016.
[6] https://deepmind.com/blog/deepmind-ai-reduces-google-data-centre-cooling-bill-40/
[7] Jaques, Natasha, et al. “Tuning recurrent neural networks with reinforcement
learning.” (2017).
[8] Henderson, Peter, et al. “Deep reinforcement learning that matters.” arXiv
preprint arXiv:1709.06560 (2017).
[9] Islam, Riashat, et al. “Reproducibility of benchmarked deep reinforcement
learning tasks for continuous control.” arXiv preprint arXiv:1708.04133 (2017).
[10] https://riashatislam.files.wordpress.com/2017/08/icml_rl_workshop_talk.pdf
[11] https://sites.google.com/view/deeprl-symposium-nips2017/
[12]https://www.reddit.com/r/MachineLearning/comments/7lq58j/d_what_ml_publication_hacks_are_you_familiar_with/
[13] https://www.alexirpan.com/2018/02/14/rl-hard.html
[14] https://himanshusahni.github.io/2018/02/23/reinforcement-learning-never-worked.html
[15] http://amid.fish/reproducing-deep-rl
[16] http://rodeo.ai/2018/05/06/reproducibility-reusability-and-robustness-in-deep-reinforcement-learning/
[17] Dayan, Peter, and Yael Niv. “Reinforcement learning: the good, the bad and the ugly.” Current opinion in neurobiology 18.2 (2008): 185-196.
[18] http://www.argmin.net/2018/05/11/outsider-rl/
[19] Mania, Horia, Aurelia Guy, and Benjamin Recht. “Simple random search provides a competitive approach to reinforcement learning.” arXiv preprint arXiv:1803.07055 (2018).
[20] Justesen, Niels, et al. “Deep Learning for Video Game Playing.” arXiv preprint arXiv:1708.07902 (2017).
[21] https://www.youtube.com/watch?v=Ount2Y4qxQo
[22] https://sites.google.com/view/icml17deeprl
[23] Silver, David, et al. “The predictron: End-to-end learning and planning.” arXiv preprint arXiv:1612.08810 (2016).
[24] Deisenroth, Marc, and Carl E. Rasmussen. “PILCO: A model-based and data-efficient approach to policy search.” Proceedings of the 28th International Conference on machine learning (ICML-11). 2011.
[25] Levine, Sergey, and Vladlen Koltun. “Guided policy search.” International Conference on Machine Learning. 2013.
[26] Weber, Théophane, et al. “Imagination-augmented agents for deep reinforcement learning.” arXiv preprint arXiv:1707.06203 (2017).
[27] Sutton, Richard S. “Dyna, an integrated architecture for learning, planning, and reacting.” ACM SIGART Bulletin 2.4 (1991): 160-163.
[28] Silver, David, Richard S. Sutton, and Martin Müller. “Sample-based learning and search with permanent and transient memories.” Proceedings of the 25th international conference on Machine learning. ACM, 2008.
[29] Rajeswaran, Aravind, et al. “Towards generalization and simplicity in continuous control.” Advances in Neural Information Processing Systems. 2017.
[30] http://www.andreykurenkov.com/writing/is-alphago-zero-overrated/
[31] UCL Course on RL: http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching.html
[32] Powell, Warren B. “AI, OR and control theory: A rosetta stone for stochastic optimization.” Princeton University (2012).
[33] Pomerleau, Dean A. “Alvinn: An autonomous land vehicle in a neural network.” Advances in neural information processing systems. 1989.
[34] Abbeel, Pieter, and Andrew Y. Ng. “Apprenticeship learning via inverse reinforcement learning.” Proceedings of the twenty-first international conference on Machine learning. ACM, 2004.
[35] Osa, Takayuki, et al. “An algorithmic perspective on imitation learning.” Foundations and Trends? in Robotics 7.1-2 (2018): 1-179.
[36] https://fermatslibrary.com/arxiv_comments url=https%3A%2F%2Farxiv.org%2Fpdf%2F1406.2661.pdf
[37] Ho, Jonathan, and Stefano Ermon. “Generative adversarial imitation learning.” Advances in Neural Information Processing Systems. 2016.
[38] https://github.com/carla-simulator/carla
[39] https://36kr.com/p/5129474.html
[40] Vezhnevets, Alexander Sasha, et al. “Feudal networks for hierarchical reinforcement learning.” arXiv preprint arXiv:1703.01161 (2017).
[41] Ranzato, Marc’Aurelio, et al. “Sequence level training with recurrent neural networks.” arXiv preprint arXiv:1511.06732 (2015).
[42] Bahdanau, Dzmitry, et al. “An actor-critic algorithm for sequence prediction.” arXiv preprint arXiv:1607.07086 (2016).
[43] Keneshloo, Yaser, et al. “Deep Reinforcement Learning For Sequence to Sequence Models.” arXiv preprint arXiv:1805.09461 (2018).
[44] Watters, Nicholas, et al. “Visual interaction networks.” arXiv preprint arXiv:1706.01433 (2017).
[45] Hamrick, Jessica B., et al. “Relational inductive bias for physical construction in humans and machines.” arXiv preprint arXiv:1806.01203 (2018).
[46] Zambaldi, Vinicius, et al. “Relational Deep Reinforcement Learning.” arXiv preprint arXiv:1806.01830 (2018).
[47] Santoro, Adam, et al. “Relational recurrent neural networks.” arXiv preprint arXiv:1806.01822 (2018).
[48] Battaglia, Peter W., et al. “Relational inductive biases, deep learning, and graph networks.” arXiv preprint arXiv:1806.01261 (2018).
[49] Eslami, SM Ali, et al. “Neural scene representation and rendering.” Science 360.6394 (2018): 1204-1210.
[50] Huang, Sandy, et al. “Adversarial attacks on neural network policies.” arXiv preprint arXiv:1702.02284 (2017).
[51] Behzadan, Vahid, and Arslan Munir. “Vulnerability of deep reinforcement learning to policy induction attacks.” International Conference on Machine Learning and Data Mining in Pattern Recognition. Springer, Cham, 2017.
[52] Tesauro, Gerald. “Temporal difference learning and TD-Gammon.” Communications of the ACM 38.3 (1995): 58-68.
[53] Jones, Rebecca M., et al. "Behavioral and neural properties of social reinforcement learning."Journal of Neuroscience 31.37 (2011): 13039-13045.
[54] https://github.com/YBIGTA/DeepNLP-Study/wiki/MILABOT-:-A-Deep-Reinforcement-Learning-Chatbot
[55] Lewis, Mike, et al. “Deal or no deal? end-to-end learning for negotiation dialogues.” arXiv preprint arXiv:1706.05125 (2017).
[56] https://www.microsoft.com/zh-cn/translator/mt.aspx
[57] Derhami, Vali, et al. “Applying reinforcement learning for web pages ranking algorithms.” Applied Soft Computing 13.4 (2013): 1686-1692.
[58] Wu, Jiawei, Lei Li, and William Yang Wang. “Reinforced Co-Training.” arXiv preprint arXiv:1804.06035 (2018).
[59] Li, Yuxi. “Deep reinforcement learning: An overview.” arXiv preprint arXiv:1701.07274 (2017).
[60] Feinberg, Eugene A., and Adam Shwartz, eds. Handbook of Markov decision processes: methods and applications. Vol. 40. Springer Science & Business Media, 2012.
[61] https://en.wikipedia.org/wiki/CMA-ES
[62] Turing, Alan M. “Computing machinery and intelligence.” Parsing the Turing Test. Springer, Dordrecht, 2009. 23-65.
[63] https://en.wikipedia.org/wiki/Arthur_Samuel
[64] Russell, Stuart J., and Peter Norvig. Artificial intelligence: a modern approach. Malaysia; Pearson Education Limited, 2016.
[65] No?, Alva. Action in perception. MIT press, 2004.
[66] Garnelo, Marta, Kai Arulkumaran, and Murray Shanahan. “Towards deep symbolic reinforcement learning.” arXiv preprint arXiv:1609.05518 (2016).
[67] http://www.argmin.net/2018/04/16/ethical-rewards/
[68] Bojarski, Mariusz, et al. “End to end learning for self-driving cars.” arXiv preprint arXiv:1604.07316 (2016).
[69] Recht, Benjamin . “A Tour of Reinforcement Learning:The View from Continuous Control.” arXiv preprint arXiv: 1806.09460
[70] Kalashnikov, Dmitry, et al. “QT-Opt: Scalable Deep Reinforcement Learning for Vision-Based Robotic Manipulation.” arXiv preprint arXiv:1806.10293 (2018).
[71] Tan, Jie, et al. “Sim-to-Real: Learning Agile Locomotion For Quadruped Robots.” arXiv preprint arXiv:1804.10332 (2018).
[72] Auer, Peter. “Using confidence bounds for exploitation-exploration trade-offs.” Journal of Machine Learning Research 3.Nov (2002): 397-422.
[73] Agrawal, Shipra, and Navin Goyal. “Thompson sampling for contextual bandits with linear payoffs.” International Conference on Machine Learning. 2013.
[74] Mohamed, Shakir, and Danilo Jimenez Rezende. “Variational information maximisation for intrinsically motivated reinforcement learning.” Advances in neural
information processing systems. 2015.
[75] Pathak, Deepak, et al. “Curiosity-driven exploration by self-supervised prediction.” International Conference on Machine Learning (ICML). Vol. 2017. 2017.
[76] Tang, Haoran, et al. “# Exploration: A study of count-based exploration for deep reinforcement learning.” Advances in Neural Information Processing Systems. 2017.
[77] McFarlane, Roger. “A Survey of Exploration Strategies in Reinforcement Learning.” McGill University, http://www. cs. mcgill. ca/~ cs526/roger. pdf, accessed: April (2018).
[78] Plappert, Matthias, et al. “Parameter space noise for exploration.” arXiv preprint arXiv:1706.01905 (2017).
[79] Fortunato, Meire, et al. “Noisy networks for exploration.” arXiv preprint arXiv:1706.10295 (2017).
[80] Kansky, Ken, et al. “Schema networks: Zero-shot transfer with a generative causal model of intuitive physics.” arXiv preprint arXiv:1706.04317 (2017).
[81] Li, Da, et al. “Learning to generalize: Meta-learning for domain generalization.” arXiv preprint arXiv:1710.03463 (2017).
[82] https://berkeleyautomation.github.io/dex-net/
[83] https://contest.openai.com/2018-1/
我的方向
除了這篇對強化學習的綜述以外,我還需要了解更多關于強化學習的應用的實例,不僅僅是Deep Q Network,以及Double DQN,Dueling DQN,Deep Deterministic Policy Gradient,A3C,Proximal Policy Optimization (PPO)等等強化學習的算法流程,更要關注它們的具體運用和具體效果,在哪些方面有獨特的優勢,又有什么樣的問題。這篇文章提到DRL算法的幾大常見問題主要是: 樣本利用率非常低;最終表現不夠好,經常比不過基于模型的方法;好的獎勵函數難以設計;難以平衡“探索”和“利用”,以致算法陷入局部極小;對環境的過擬合;災難性的不穩定性。其中樣本利用率低是RL的硬傷,這是非常值得研究的課題,所以RL與模仿學習(Imitative Learning)的結合也是研究的一個方向。IL介于RL與監督學習之間,兼具兩者的優勢,既能更快地得到反饋、更快地收斂,又有推理能力,很有研究價值。
除了模仿學習,元學習(meta learning)也是一個方向
元學習簡介
Meta Learning,元學習,也叫 Learning to Learn(學會學習)。是繼Reinforcement Learning(增強學習)之后又一個重要的研究分支,它的發展歷程和動因可以歸納如下圖:
舉個例子,把棋盤變大之后AlphaGo還能行嗎?目前的方法顯然是不行的,AlphaGo會立馬變成傻瓜。而我們人類分分鐘就可以適應新的棋盤。再比如人臉識別,我們人往往可以只看一面就能記住并識別,而現在的深度學習卻需要成千上萬的圖片進行訓練之后才能做到。
人類之所以能夠快速學習的關鍵是人類具備學會學習的能力,能夠充分的利用以往的知識經驗來指導新任務的學習。因此Meta Learning成為了新的攻克方向,核心問題就是要讓人工智能自己學會思考,學會推理。
我們在現實生活中往往會遇到很多新任務,現在的深度學習因為無法快速適應新任務,就沒辦法替代人類工作。而一旦AI具備了這種快速學習的能力,例如機器人,才能夠真正走進千家萬戶。因為每個人對機器人的使用都不一樣,每個家庭的環境也都不一樣,只有機器人具備了快速學習的能力,不需要預先訓練,才能適應各種各樣的要求。
因此,要讓機器人走進千家萬戶,我們需要機器人能夠實時學習,不斷學習,快速學習,即使面對一個新的類似的任務,也能快速掌握。這樣的機器人會非常強大,能真正處理各種任務!
因此,在深度增強學習的大框架下,我們還需要:
終生學習Life Long Learning 少樣本學習Few Shot Learning 多任務學習Multi Task Learning
多智能體學習Multi Agent Learning 學會學習Meta Learning/Learning to Learn
遷移學習Transfer Learning
也就是說,從機器人的角度,我們希望機器人能夠實現的智能決策需要具備以下幾點:
能夠不斷通過與環境交互來學習提升決策能力,也就是終生學習 能夠快速學習,面對新的任務,可以通過少量的訓練就掌握 可以處理多種任務
可以實現多智能體的協作完成任務 能夠學會學習,這和快速學習本質是一樣的,就是發現學習規律,面對新任務可以快速入手
這也和快速學習的目標一致,希望通過遷移以往學習的經驗來加速新任務的學習。
基本上目前的學會學習研究還是從基本的圖像識別入手,希望能夠實現快速的圖像實現。然而當前的研究仍是百花齊放狀態,仍在研究有效的算法。
當前針對實驗“元學習”的方法有很多,具體可以分為以下幾類:
1、基于記憶Memory的方法。 基本思路:因為要通過以往的經驗來學習,那就可以通過在神經網絡中添加Memory來實驗。
2、基于預測梯度的方法。 基本思路:Meta
Learning的目的是實現快速學習,而實現快速學習的關鍵點是神經網絡的梯度下降要準和快,那么就可以讓神經網絡利用以往的任務學習如何預測梯度,這樣面對新的任務,只要梯度預測的準,那么學習就會快。
3、利用Attention注意力機制 基本思路:訓練一個Attention模型,在面對新任務時,能夠直接的關注最重要部分。
4、借鑒LSTM的方法
基本思路:LSTM內部的更新非常類似于梯度下降的更新,那么能否利用LSTM的結構訓練處一個神經網絡的更新機制,輸入當前網絡參數,直接輸出新的更新參數
5、面向RL的Meta Learning方法 基本思路:既然Meta
Learning可以用在監督學習,那么增強學習上又可以怎么做呢?能否通過增加一些外部信息的輸入比如reward,和之前的action來實驗。
6、通過訓練一個base model的方法,能同時應用到監督學習和增強學習上
基本思路:之前的方法只能局限在監督學習或增強學習上,能否做出一個更通用的模型。
7、利用WaveNet的方法 基本思路:WaveNet的網絡每次都利用了之前的數據,那么能否照搬WaveNet的方式來實現Meta
Learning呢?就是充分利用以往的數據。
8、預測Loss的方法
基本思路:要讓學習的速度更快,除了更好的梯度,如果有更好的Loss,那么學習的速度也會更快,因此,可以構建一個模型利用以往的任務來學習如何預測Loss
明日工作:
研究代碼。根據這篇博客 https://blog.csdn.net/jinzhuojun/article/details/80417179 學習PPO算法,并在OpenAI Gym上模擬測試。
總結
- 上一篇: 35 实战 微额借款用户人品预测
- 下一篇: 向Facebook学什么