學術報告 MSRA秦濤:Towards Robust and Effi
不到現場,照樣看最乾貨的學術報告!嗨,大家好。這裡是學術報告專欄,讀芯術小編不定期挑選並親自跑會,為大家奉獻科技領域最優秀的學術報告,為同學們記錄報告乾貨,並想方設法搞到一手的PPT和現場視頻——足夠乾貨,足夠新鮮!話不多說,快快看過來,希望這些優秀的青年學者、專家傑青的學術報告 ,能讓您在業餘時間的知識閱讀更有價值。
2018年8月4月,由北京理工大學大數據創新學習中心與中國科學院人工智慧聯盟標準組聯合主辦的「2018深度強化學習:理論與應用」學術研討會,學界與業界頂級專家濟濟一堂,共同分享深度強化學習領域的研究成果。
微軟亞洲研究院資深研究員秦濤以Towards Robust and Efficient Reinforcement Learning為主題進行了報告,以下分享內容根據嘉賓口頭分享整理。Towards Robust and Efficient Reinforcement Learning
秦濤,微軟亞洲研究院資深研究員/經理秦老師的報告主要是介紹了如何設計更加穩定更加有效率的演算法。報告的內容主要分為四個部分:1.Introduction to RL 2.Challenges of robustness and efficiency3.towards robustness unified policy optimization 4.Towards efficiency:trustregion evolution strategies
秦老師首先快速描述了當前強化學習、特別是深度強化學習面臨的挑戰,主要集中在魯棒性和樣本效率方面。
什麼是強化學習?強化學習其實就是研究Sequential Decision process,面臨動態系統,在不同的時刻需要做決策。eventually需要maximizeslong term rewards。和監督學習相比,監督學習說x有一個正確的y,直接從正確的x學習就可以了。但是強化學習裡面有state,但是沒有正確的action。比如下圍棋,這個盤面可能有人這樣落子有人那樣落子,你不知道怎樣是最好的,只能take多次action後最終才能知道下棋是贏了、輸了還是平了。沒有人告訴你正確的action是什麼,只能通過不斷試錯進行學習,可能這個feedback也會是Delay。
如果通過比較數學的方式描述,就是Agent面對一個動態系統或者環境,在t時刻觀測到的狀態是St,他會take一個action At,這個系統會給一個Reward,就是Rt+1,系統狀態會轉移到St+1,然後Agent進一步觀測到系統的狀態,如果是可完全觀測的話可以Ot+1=St+1,不完全可觀測就是Partial Ot+1不等於St+1。完全可觀測的話就是標準的MDP,不完全可觀測就是POMDP。兩個方向都有很多人研究,更多的可能是MDP,因為MDP更加簡單一點。
MDP有五個基本元組(S、A、P、R、γ),描述了MDP的過程。首先是S,s是有限狀態集合,一般來說描述的是系統的狀態,A是有限Action的集合,p是描述系統的動態性,R是Reward Function,描述的是這個系統環境怎麼針對響應,就是Action State來給Reward。Γ is a discount factor∈[0,1]之間的數值,代表了折舊,反映Long Term Reward對現在的影響是多大,比如說有人說給你一萬塊錢,現在給你還是十年以後給你,對你的作用也是不一樣的,反映的是Long Term Discount。
如果我們引入一些函數的概念,特別是現在Deep Learning比較火,引入了一些神經網路來描述S和A。如果S和A是不可數的、是無窮的,也都ok的。還有一個概念是Trajectory。Trajectory就是Agent和System進行Interaction,然後觀測一系列的數據,包括State、Action和Reward以及進入下一個時間的State、Action和Reward,就是Agent在系統當中運行的軌跡。
介紹了基本概念以後,有些比較關鍵的概念大家需要知道。首先是Model,model描述了系統或者環境是什麼樣子,主要包含兩個部分:一種是描述State是怎麼轉化的,比如當前的State是S,採取了action後的A轉移到下一個S』的概率是多少,immediate reward怎麼給,當前的S和A下,immediate reward是什麼樣子。在這裡,這個Model和機器學習的Model不太一樣,機器學習是把x映射到y,比如svm、decision tree或是神經網路。但在這裡,RL或者MDP一般是指環境、state是怎麼轉化的,reward是怎麼給的。大家也可能會mix了,我講policy時候,我是NN模型,也可能會這麼提。
Policy描述了Agent的行為方式,這也是我們想學習的結果,就是會把一個State Map到Action,有了policy以後,拿出任何一個Agent,就會知道,一個Agent怎麼在System上有什麼Behave,它可以是確定性的,也可以是隨機的,取決於環境是什麼樣子的或者本身的目標是什麼。
第三個很重要的概念是Value,也就是EvaluateState或Action,在給了一個policy的時候,Long Term了一個回報,payoff是什麼樣子的,究竟有多好。V是指Value Function,就是以take assets input,把State作為一個輸入,它和output,就是把Long Term Reward把它discount回來,就是Rt+1(馬上的Reward),Rt+2會用一個y作為折扣係數現在的時間間隔越長Discount越大,這樣Sum起來就是一個總的數值。因為環境State Transition是隨機的,所以求期望值。Value可以取在state上面,也可以取在State Action pair上面,一般叫做Q-function。Q-function就是giving當前的S,take A以後,那future A通過policyπ來take,那麼Long Term Reward是什麼樣子的。
在MDP的描述下,序列的決策過程主要有兩個Fundamental的問題:一種是Planning問題,當環境系統模型是已知的時候,比如知道Reward怎麼來給,Agent主要是在裡面進行計算和推導。比如說giving一個policy,或者要找出最優的policy來。但是強化學習要研究的問題是,環境未知的情況下,比如無人駕駛或者打遊戲Open的環境當中研究,你不知道背後的state是怎麼轉移,Reward是怎麼給的,只能通過觀測和系統的互動收集數據,學習系統是怎麼運作的,所以就要Understand是怎麼Behave的,這樣才能提高自己的Policy。
Planning中涉及兩類問題,一類問題是Policy Evaluation,系統本身是已知的,Given Policy之後需要知道對應的每個State究竟有多好。有限Action集合的時候基本上就是解線性方程組,一個找波動點的問題,不停迭代就可以了,但利用的公式主要是bellman最優Equation,根據定義可以有Immediate Reward+Future Reward,Discount乘以γ就可以了。
第二類問題是OpeningControl,就是model已知,系統本身的狀態是怎麼轉移的,reward怎麼給的。但是沒有給你Policy,只是希望找出最優policy是什麼樣子的,所以一般用到bellman optimality equation,貝爾曼最優方程一般作用在Q上面的,給一個S Apair,最優值等於Present Reward +Future Reward,針對下一個State Prime取一個θ,然後不停的Max,這樣不停迭代,到了最後就可以得到Q -Function,我們可以推導出Policy Function。
這是Planning當中的兩個問題,實際應用當中面臨的更主要問題是模型是未知的,不能觀測到真實的Model,但可以Access System,可以對System進行Interaction,通過collect Data進行學習。現在也有特別多的演算法提出,如果大家去各種會議來看,每年都有幾百篇的Paper,大體可以分為兩個大類:一種就是基於MDP過程的,另一種是完全不Care是什麼過程。基於MDP過程又可以分為兩類演算法:一類叫做Model-free的演算法,不需要學習,因為本來Model就是不知道的,但不需要學習這個系統狀態究竟怎麼轉移,直接學習Value Function或者Policy Function,也可以把兩者混合,學習得更快更好的Hybrid演算法,Value Function中學習最好的是Q-learning或者它的變體DQN,Policy-based的演算法,Action如果是連續的時候Policy-based的方法有很多,包括近期兩三年提出的各種演算法。MDP演算法中另一種是Model-based演算法,觀測到很多數據以後能不能學習出來你的狀態是怎麼轉移的、Reward是怎麼給的,Model學習出來就是監督學習的過程,系統本身是穩定的,有了這樣一個模型,模型學習出來以後可以用Planning技術來做最優的Policy。最近一兩年又有了新的演算法,叫做Black Box Atomization,基本就是遺傳演算法、進化演算法和演化演算法,每次可以sample出一些參數出來,然後大家Collect Data,進行不停的Evolution。
我們來看Q-Learning,這是非常經典的Value演算法,和前面Policy Evaluation的演算法有點像,就是對給了一對S A,不停的更新值,希望值的估計得越來越準確。比如說原始的值是Q(S,A)的估計,採取了Action以後,就又新的觀測值,可以觀測到一個新的Reward,叫做Rt+1,而且還知道我的Future St+1,利用我對將來的估計加上新的觀測更新對當前St和At的估計。這是一個Long Term新的估計,利用了當前最新的觀測Rt+1,加上對Future的估計得到一個新的估計,新的估計和老的估計Gap有多大。實際演算法當中基本上就是兩種方式不停迭代,通過當前Q進行Sample一些Data,觀測到新的Reward和新的State,根據新的觀測利用Q Learning Update(S A)的pair的值,最終得到最優的Value Function。
Policy Gradient就是要知道一個Policy對應的Long Term Reward是多少,不停地測算Trajectory,然後就可以有一個期望,每個Pass和每個Trajectory Sum起來就知道Quality對應的是多少。因為RL本身是要學習到最優的Policy,就是Maximize Data,加大Ct+1,也是一個不停迭代的過程,本身對應的Trajectory的概念都不一樣,所以要考慮怎麼Sample Data,或者collect Trajectory。
當前由於深度學習的引入,使得DL也是非常Powerful,很多問題得到應用,特別是很多遊戲方面取得了非常大的成功,包括神經科學裡面DL應用,在Music或者Movie的生成當中Computer Graphic,Healthcare和金融市場也會有很多公司在用這樣的RL技術,自然語言處理和機器人就更不用說了。
DL雖然成功,但還是面臨著很多挑戰,重點Focus在兩個方面:第一個是魯棒性,魯棒性體現在兩個子方面,如果是基於神經網路的演算法,本身要看怎麼突出神經網路參數,不同的初始化得到的結果也不一樣;其次是演算法穩定性的問題,不同task上演算法表現差異很大。
第二個是樣本的效率問題,即需要多少樣本才能學得比較好?監督學習就是有人告訴你正確的Action是什麼,強化學習當中不知道正確的Action是什麼,只能通過不停試錯,這樣必然帶來樣本效應,即需要幾百萬、上千萬或者上億的樣本數目才能學得比較好。而大樣本帶來的問題是訓練時間很長,如何解決這個挑戰是最近的研究熱點。
下面介紹一下相關研究,首先是Towards Robust Enforcement learning,該想法為了提高演算法的穩定性。演算法原理是把很多弱的演算法結合到一塊,然後可以做到Robust,或者每個Task要有最好的Model。本來L就是有一個樣本效力的問題,每次要把十個演算法從頭做到尾做一遍,Cost是非常高的,我們也很難接受,所以不是把每個演算法從頭到尾,更多的是考察gradient,就是把梯度集成起來,有了Collective Data以後可以看一看下一步的Policy是什麼樣子的。現在的問題是怎麼Combine這些演算法?可以根據歷史的數據來看某個演算法歷史上表現得多好。
前面的UCD有的時候表現不是很好,是用歷史數據衡量新的Policy有多好,對應的數據完全變了,直接這樣利用效果是會比較差的,也會很不穩定,因為我們本身就是要提高演算法的穩定性,新的Proposal就是有了Process和Trajectory之外就要不同數據來計算gradient,生成新的數據來看有多好,但是不能應用大量的數據,基本也會面臨樣本效率的問題。Gradient我們會加到原來的Policy上面,然後要看每個新的Policy有多好,同時也會做一些正則化和歸一化來處理,減上均值或者鹼去均值再除以方差來使可比性更好。將每個Gradient的權重combine一下,然後得到新的Policy,某種程度上和後面提到的Evolution Strateg有關係,但它會更加高效。
針對上述方法,我們做了一些測試。因為Gradient是不同的方法計算出來的,我們會有一個Combination,紅色的就是新的演算法的結果,包括TRPO、TPO和ACRE,三個方法當中我們的演算法基本上是最好的,通過在七個Game裡面做的測試,總體來看結果都是最好的,體現了我們想達到的演算法穩定性。
我們接下來的工作就是提高樣本效率,主要是針對當前的Black Box,Black Box的效率很有問題。和前面的演算法不太一樣,因為要對Trajectory進行取期望,Evolution Strategy不太一樣,不是只看Policy,Policy是有很多隨機性的。先假設policy服從高斯分布,再去sample一些新的policy出來,監測policy表現多好,並且policy的概率有多大,對policy求期望。生成不同的梯度或者有些不同的Policy出來。每次Given當前的Policy,然後篩選新的梯度方向和Policy出來,生成並且Evaluate Data,根據新的Policy,加權到θ上面,我們有些黃色的點,然後Sample新的Policy出來,這樣迭代Update已有的Policy。
因為深度神經網路是基於Gradient的方法,需要做BP。但是此方法不需要BP,只要每次Sample不同的梯度方向,找到隨機的點,然後得到觀測,然後在不同的機器上面Collect Data,計算Performance。這樣其並行度也非常高,類似於把很多Gradient Combine到一塊,但是其Robust效率很低,因為很多樣本是隨機生成,可能很好或很差。因為每個Policy方向需要新的數據Evaluate,生成的數據只用了一次Update,導致樣本的效率特別低。我們的想法就是生成數據以後對Policy Update多次,重新使用歷史數據,這是我們的工作重點。
我們想重用歷史數據就需要做重要性採樣,本來是在新的θ周圍Sample X,如果是舊的θ來做更新其概率是不一樣的,因為X本身是新的θ去做期望。如果X是舊的θ Sample出來的,那就必須要對概率做一個校正,這樣會有數值穩定性的問題,因為參數維度很高,如果每一個維度是五或者十的十次方,就會帶來數值的不穩定問題,導致要麼爆掉,要麼消失,所以學習不穩定,不會收斂,速度很慢。
我們需要通過技術手段解決這種不穩定性的問題,我們會有θ個參數,可以認為是新的Policy,通過X1到Xi來表示前i維,現在要看另外一種Value Function,在這裡定義的是會先Fix前面i維不變,只看後面的i+1維,定義Advantage function來看Value是多少。我們想知道新的Policy和舊的Policy對應的Reward會差多少,可以表明二者之間的Gap,然後可以通過一堆Function加起來計算維度,一直計算到前面D+1維。
我們本來是想找新的Policy,做了一些推導,分成兩個部分:一部分就是前面i維,另一部分是i+1維,後面的D維不用切。現在還面臨一個問題,因為θ是未知的,應該怎麼優化?我們就是利用Local機制,本來前面的期望是對新的θ來做,做法就是前面的i到D-1的期望,不要用新的θ來求期望,而是用舊的θ來求,然後做了一個Local機制,Xi+1還是從θ裡面出來,把未知變數近似優化,通過舊的Policy替代,中間的i+1維的期望還是用新的來做。
因為θ本身是已知的,第一重的期望是比較好做的,但要看中間i維的問題,不存在穩定性的問題,某種程度上把這種問題解決掉了。因為近似可能差得太遠,最終可能會對Performance產生很大的影響。為了保證近似度比較好,我們必須要求Gap越小越好,可以在小的區域當中來做近似,更加長遠的可能就不能做近似了。通過我們的實驗結果,發現要比傳統的實驗演算法更好。紅色曲線也是我們的結果,初步的實驗都差不多,樣本的效率會更高,上升得也更快。
除了強化學習外,我們還在人工智慧、機器學習的其他方向有很深入的研究,包括深度學習、對偶學習、輕量級機器學習、機器學習系統和演算法的自動化、機器翻譯,並與與多家公司合作是人工智慧技術落地。特別是今年3月份,我們的機器翻譯技術使得中英文新聞翻譯在標準測試集上達到了人類水平,是一個很了不起的成績。
最後打一個廣告,我的團隊正在招聘,歡迎對機器學習研究特別是深度學習強化學習感興趣的同學加入我們,簡歷可發送taoqin@microsoft.com。
精彩的學術報告背後,是一群優秀的學術人才。都說搞學術的人需要「超凡脫俗」,需要耐得住清貧寂寞,其實……芯君想說:完全不需要這樣啊!比如,馬上申請2018百度獎學金——是的,百度為每位具有AI才能的「潛力股」學術精英們提供了廣闊的平台資源和發展空間,為其提供20萬研究資金支持,幫助優秀學子全身心投入科研工作,心無旁騖地進行科學探索。
還等什麼,你——未來的學術之星,趕快申請報名吧!
留言 點贊 發個朋友圈我們一起探討AI落地的最後一公里
如需轉載,請後台留言,遵守轉載規範
※今日芯聲 | 你是我的眼 帶我穿越擁擠的人潮~
※武漢大學、阿里巴巴:一種用於零樣本文檔過濾的深度相關性模型
TAG:讀芯術 |