深度強化學習實驗室
官網:http://www.neurondance.com/
來源:https://zhuanlan.zhihu.com/p/328287119
作者:網易伏羲實驗室
編輯:DeepRL
在深度學習中,模型很容易過拟合到參與訓練的資料集。是以,深度學習訓練模型的時候通常會将資料集分成訓練集和測試集,保證訓練的模型在測試集上仍然有很好的性能,即模型的泛化能力。在深度強化學習的應用中,模型的泛化能力也同樣重要。本文将介紹最近深度強化學習領域中提高模型泛化能力的一些方法,如域随機化、正則等。
一、泛化
什麼是泛化(generalization)呢?
這裡引用維基百科上關于泛化的定義:
A generalization is a form of abstraction whereby common properties of specific instances are formulated as general concepts or claims. Generalizations posit the existence of a domain or set of elements, as well as one or more common characteristics shared by those elements (thus creating a conceptual model). As such, they are the essential basis of all valid deductive inferences (particularly in logic, mathematics and science), where the process of verification is necessary to determine whether a generalization holds true for any given situation.
在機器學習任務中,泛化能力被認為是在訓練集上訓練後,在“未見過”的資料集上的性能。當然,這裡常常有一個假設,訓練的資料集和測試的資料集是同分布的,即來自于同一個領域(domain)的同一個任務(task)。
二、領域和任務
這裡引用萬引遷移學習[1]中關于領域(domain)和任務(task)的定義:
領域D={X, P(X)}由兩個部分組成:特征空間X和特征空間的邊緣分布P(X)。如果兩個領域不同,它們的特征空間或邊緣機率分布不同。
A domain is a pair D={X, P(X)}, which consists of two components: a feature space X and a marginal probability distribution P(X). In general, if two domains are different, then they may have different feature spaces or different marginal probability distributions.
任務T={Y, P(Y|X)}組成:給定一個領域D={X, P(X)}的情況下,一個任務也包含兩個部分:标簽空間Y和一個目标預測函數f(.)。目标預測函數不能被直接觀測,但可以通過訓練樣本學習得到。從機率論角度來看,目标預測函數f(.)可以表示為P(Y|X)。
A task is defined as a pair T={Y, P(Y|X)}. Given a specific domain, D={X, P(X)}, a task consists of two components: a label space Y and an objective predictive function f(.), which is not observed but can be learned from the training data. From a probabilistic viewpoint, f(x) can be written as p(y|x).
三、泛化和遷移
如下圖所示,本文讨論的是來自同一個領域同一個任務的模型泛化能力,紅色框中的部分。而那些領域不同或者任務不同的情況被認為是遷移學習的範疇,藍色框中的部分。

對于強化學習來說,泛化能力指的是:對于同一個領域中的同一個任務,強化學習模型在訓練環境訓練,在測試環境驗證的模型的性能。
四、強化學習的泛化
因為機器學習中的泛化能力一般是指同分布的不同資料集上的模型的性能。
這裡,主要考慮兩種情況來說明強化學習模型的泛化能力:在場景A(訓練集)中訓練,在場景B(測試集)中測試。
1. 場景A的狀态集和場景B的狀态集S不一樣,狀态轉移矩陣P一樣。比如對手風格A中訓練,對手風格B中泛化測試。
2. 場景A的狀态集和場景B的狀态集S類似,狀态轉移矩陣P不一樣。比如遊戲版本A中訓練,遊戲版本B中泛化測試。
強化學習的資料是有模型與環境互動過程中産生的,是以普遍認為強化學習中的泛化能力弱,模型較容易過拟合到目前的訓練環境。目前比較常見的提高強化學習模型泛化能力的方式主要有兩種:Regularization和Randomization。
Regularization-CoinRun
這裡,首先介紹一篇2019年發表在ICML上的論文,Quantifying generalization in reinforcement learning[2]。
首先,如圖所示,這篇文章中開源了一個用來驗證深度強化學習算法泛化性能的遊戲環境——CoinRun。這個遊戲環境擁有上百萬不同的關卡,每個關卡都有相應的難度等級(從難度1-難度3),是以可以用來驗證強化課程學習的算法性能。
文章中還進行了很多基準實驗:
對模型架構的評估
通過調整模型的構架,對比不同容量大小的模型的泛化能力。文章中采取了3中不同的模型架構:
Nature-CNN: PPO+3 CNNs
IMPALA-CNN: IMPALA+3 residual blocks
IMPALA-Large: IMPALA+5 residual blocks
如圖所示,可以看出,模型容量越大,算法的泛化能力越強。
對正則項的評估
通過調整模型正則項,對比不同的正則項對模型泛化能力的影響。文章中進行了5種不同的消融實驗,baseline算法為IMPALA-CNN。從圖中可以看出,正則項對模型的泛化能力都是有積極的作用的。
Regularization-Information Bottleneck
文章Dynamics Generalization via Information Bottleneck in Deep Reinforcement Learning[3]認為,深度強化學習模型可以分為兩個部分,感覺層和決策層。感覺層的作用是将環境觀測轉換為狀态表示,而決策層負責從狀态表示中學習控制政策。但是感覺層比較容易過拟合到目前的訓練環境,文章提出了一種資訊瓶頸(Information Bottleneck),盡可能地限制從環境觀測傳遞到狀态辨別的資訊,鼓勵神經網絡去學習一些高維地特征,算法可以有效的泛化到未見過的環境。如下是文章中的主要架構圖。
這是文章中主要用到的KL散度公式,和相應的正則和梯度計算方式。
文章中聲明資訊瓶頸比基線算法和其他正則化技術(如L-2正則和Dropout)擁有更好的泛化能力。
Randomization-Domain Randomization
文章Domain randomization for transferring deep neural networks from simulation to the real world[4]提出了一種樣本增強的新方式——域随機化。在一些難以直接采樣的環境中,比如機器人的抓取任務,真實環境互動學習代價非常高。文章中提出利用域随機化的方式在仿真環境中進行大量實驗可以很好的遷移到正式環境。
域随機化的方向有以下幾個方面:
從實驗結果的表格中可以看出:
- 訓練的時候加入幹擾物是至關重要的。
- 随機相機位置也能提供一點幫助,但是對最終性能的影響不大。
- 在預進行中加入随機噪聲沒什麼效果,但是少量的噪聲可以幫助收斂。
仿真環境實驗的時候可以采用域随機化的方式,緩解神經網絡過拟合到單一環境的問題。可以讓特征提取網絡不關注低維的環境動态參數,更關注提取環境中的高維特征。
Randomization-Active Domain Randomization
文章Active domain randomization[5]在域随機化的基礎上提出了,主動的域随機化技術。提出用強化學習去學環境參數的調整方向,用判别器預測獎勵(reward),使域随機化的更有效率。
Randomization-Network Randomization
文章Network randomization: A simple technique for generalization in deep reinforcement learning[6]提出了一種十分有效的樣本增強方式,可以一次采樣,多次訓練。通過提高模型泛化能力的同時,又提高了樣本的使用率。
這是文章中網絡随機化主要用到的公式:
文章中進行ile一組有趣的對比試驗,模型在黑貓白狗的訓練集中訓練,在白貓黑狗的測試集中測試。模型很容易過拟合到訓練樣本,提取了一些無關緊要的特征:顔色。通過網絡随機化這種樣本增強方式,可以增強網絡提取特征的能力。同時,相比于傳統的圖像樣本增強方式:1)cutout (CO);2)grayout (GR);3)inversion (IV);4)color jitter (CJ),文章中的網絡随機化的樣本增強方式更有效率。
如下圖所示是文章進行大量消融實驗的結果,可以看出在不同的算法中,網絡随機化保證了最優的模型泛化能力。
參考文獻:
[1] Pan S J, Yang Q. A survey on transfer learning[J]. IEEE Transactions on knowledge and data engineering, 2009, 22(10): 1345-1359.
[2]Cobbe K, Klimov O, Hesse C, et al. Quantifying generalization in reinforcement learning[C]//International Conference on Machine Learning. PMLR, 2019: 1282-1289.
[3]Lu X, Lee K, Abbeel P, et al. Dynamics Generalization via Information Bottleneck in Deep Reinforcement Learning[J]. arXiv preprint arXiv:2008.00614, 2020.
[4]Tobin J, Fong R, Ray A, et al. Domain randomization for transferring deep neural networks from simulation to the real world[C]//2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2017: 23-30.
[5]Mehta B, Diaz M, Golemo F, et al. Active domain randomization[C]//Conference on Robot Learning. PMLR, 2020: 1162-1176.
[6]Lee K, Lee K, Shin J, et al. Network randomization: A simple technique for generalization in deep reinforcement learning[J]. arXiv, 2019: arXiv: 1910.05396.
原文連接配接:https://zhuanlan.zhihu.com/p/328287119
實驗室官網:http://www.neurondance.com/
實驗室社群:http://deeprl.neurondance.com/
完
總結1:全網首發最全深度強化學習資料(永更)
總結3: 《強化學習導論》代碼/習題答案大全
總結4:30+個必知的《人工智能》會議清單
總結5:2019年-57篇深度強化學習文章彙總
總結6: 萬字總結 || 強化學習之路
總結7:萬字總結 || 多智能體強化學習(MARL)大總結
總結8:深度強化學習理論、模型及編碼調參技巧
完
第94篇:多智能體強化學習《星際争霸II》研究
第93篇:MuZero在Atari基準上取得了新SOTA效果
第92篇:谷歌AI掌門人Jeff Dean獲馮諾依曼獎
第91篇:詳解用TD3算法通關BipedalWalker環境
第90篇:Top-K Off-Policy RL論文複現
第89篇:騰訊開源分布式多智能TLeague架構
第88篇:分層強化學習(HRL)全面總結
第87篇:165篇CoRL2020 accept論文彙總
第86篇:287篇ICLR2021深度強化學習論文彙總
第85篇:279頁總結"基于模型的強化學習方法"
第84篇:阿裡強化學習領域研究助理/實習生招聘
第83篇:180篇NIPS2020頂會強化學習論文
第82篇:強化學習需要批歸一化(Batch Norm)嗎?
第81篇:《綜述》多智能體強化學習算法理論研究
第80篇:強化學習《獎勵函數設計》詳細解讀
第79篇: 諾亞方舟開源高性能強化學習庫“刑天”
第78篇:強化學習如何tradeoff"探索"和"利用"?
第77篇:深度強化學習工程師/研究員面試指南
第76篇:DAI2020 自動駕駛挑戰賽(強化學習)
第75篇:Distributional Soft Actor-Critic算法
第74篇:【中文公益公開課】RLChina2020
第73篇:Tensorflow2.0實作29種深度強化學習算法
第72篇:【萬字長文】解決強化學習"稀疏獎勵"
第71篇:【公開課】進階強化學習專題
第70篇:DeepMind釋出"離線強化學習基準“
第69篇:深度強化學習【Seaborn】繪圖方法
第68篇:【DeepMind】多智能體學習231頁PPT
第67篇:126篇ICML2020會議"強化學習"論文彙總
第66篇:分布式強化學習架構Acme,并行性加強
第65篇:DQN系列(3): 優先級經驗回放(PER)
第64篇:UC Berkeley開源RAD來改進強化學習算法
第63篇:華為諾亞方舟招聘 || 強化學習研究實習生
第62篇:ICLR2020- 106篇深度強化學習頂會論文
第61篇:David Sliver 親自講解AlphaGo、Zero
第60篇:滴滴主辦強化學習挑戰賽:KDD Cup-2020
第59篇:Agent57在所有經典Atari 遊戲中吊打人類
第58篇:清華開源「天授」強化學習平台
第57篇:Google釋出"強化學習"架構"SEED RL"
第56篇:RL教父Sutton實作強人工智能算法的難易
第55篇:内推 || 阿裡2020年強化學習實習生招聘
第54篇:頂會 || 65篇"IJCAI"深度強化學習論文
第53篇:TRPO/PPO提出者John Schulman談科研
第52篇:《強化學習》可複現性和穩健性,如何解決?
第51篇:強化學習和最優控制的《十個關鍵點》
第50篇:微軟全球深度強化學習開源項目開放申請
第49篇:DeepMind釋出強化學習庫 RLax
第48篇:AlphaStar過程詳解筆記
第47篇:Exploration-Exploitation難題解決方法
第46篇:DQN系列(2): Double DQN 算法
第45篇:DQN系列(1): Double Q-learning
第44篇:科研界最全工具彙總
第43篇:起死回生|| 如何rebuttal頂會學術論文?
第42篇:深度強化學習入門到精通資料綜述
第41篇:頂會征稿 || ICAPS2020: DeepRL
第40篇:實習生招聘 || 華為諾亞方舟實驗室
第39篇:滴滴實習生|| 深度強化學習方向
第38篇:AAAI-2020 || 52篇深度強化學習論文
第37篇:Call For Papers# IJCNN2020-DeepRL
第36篇:複現"深度強化學習"論文的經驗之談
第35篇:α-Rank算法之DeepMind及Huawei改進
第34篇:從Paper到Coding, DRL挑戰34類遊戲
第33篇:DeepMind-102頁深度強化學習PPT
第32篇:騰訊AI Lab強化學習招聘(正式/實習)
第31篇:強化學習,路在何方?
第30篇:強化學習的三種範例
第29篇:架構ES-MAML:進化政策的元學習方法
第28篇:138頁“政策優化”PPT--Pieter Abbeel
第27篇:遷移學習在強化學習中的應用及最新進展
第26篇:深入了解Hindsight Experience Replay
第25篇:10項【深度強化學習】賽事彙總
第24篇:DRL實驗中到底需要多少個随機種子?
第23篇:142頁"ICML會議"強化學習筆記
第22篇:通過深度強化學習實作通用量子控制
第21篇:《深度強化學習》面試題彙總
第20篇:《深度強化學習》招聘彙總(13家企業)
第19篇:解決回報稀疏問題之HER原理與代碼實作
第18篇:"DeepRacer" —頂級深度強化學習挑戰賽
第17篇:AI Paper | 幾個實用工具推薦
第16篇:AI領域:如何做優秀研究并寫高水準論文?
第15篇:DeepMind開源三大新架構!
第14篇:61篇NIPS2019DeepRL論文及部分解讀
第13篇:OpenSpiel(28種DRL環境+24種DRL算法)
第12篇:子產品化和快速原型設計Huskarl DRL架構
第11篇:DRL在Unity自行車環境中配置與實踐
第10篇:解讀72篇DeepMind深度強化學習論文
第9篇:《AutoML》:一份自動化調參的指導
第8篇:ReinforceJS庫(動态展示DP、TD、DQN)
第7篇:10年NIPS頂會DRL論文(100多篇)彙總
第6篇:ICML2019-深度強化學習文章彙總
第5篇:深度強化學習在阿裡巴巴的技術演進
第4篇:深度強化學習十大原則
第3篇:“超參數”自動化設定方法---DeepHyper
第2篇:深度強化學習的加速方法
第1篇:深入淺出解讀"多巴胺(Dopamine)論文"、環境配置和執行個體分析