How Many Random Seeds Should I Use? Statistical Power Analysis in (Deep) Reinforcement Learning Experiments
前言
不斷檢查實驗結果的統計意義是解決深度強化學習中所謂“再現性危機”的強制性方法步驟之一。本論文將解釋隨機種子數與統計錯誤概率之間的關係。對於t檢驗和bootstrap置信區間檢驗,作者回顧了確定隨機種子數的理論準則,用以提供兩種算法性能的統計顯著性比較。最後討論了由統計檢驗所作假設的偏差影響。結果表明,它們會導致對統計誤差的不準確評估,併爲應對這些負面影響提供指導。
機器學習和深度強化的可復現性是近年來學習成爲一個嚴重的問題。復現RL論文可能會比你想象的要複雜得多,代碼庫並不總是被髮布,而科學論文通常會省略部分實現技巧,。最近Henderson等人對導致這種復現性危機的各種參數進行了徹底的調查Henderson等,2017.他們使用了流行的深度RL算法,如DDPG,ACKTR,TRPO和PPO,以及OpenAI Gym流行的基準測試,如Half-Cheetah,Hopper和Swimmer研究代碼庫的影響,網絡的大小,激活函數,獎勵縮放或隨機種子。在結果中,他們表明,使用相同的超參數集的相同算法的不同實現導致了截然不同的結果。
也許最令人驚訝的事情是:使用10個不同的隨機種子在相同的超參數下運行10次相同的算法,並在5個種子的兩次拆分中取平均性能,可能導致學習曲線似乎來自不同的統計分佈。 值得注意的是,Henderson等人(包括他們在內)評論的所有深度RL論文都使用了5顆或更少的種子。 更糟糕的是,一些論文實際上報告了最佳運行的平均值。 如(Henderson等人,2017)所論證的,這些方法論可能導致兩種算法的性能在不同時表現出不同。 解決此問題的方法是使用更多的隨機種子來平均更多不同的試驗,以便獲得算法性能的更可靠度量。 但是,如何確定應使用多少個隨機種子呢? 我們應該使用(Mania,2018)中的5、10或100嗎?
這項工作假設有人想測試兩種算法之間的性能差異。 第2節給出了定義並描述了差異測試的統計問題,而第3節則提出了兩種統計測試來回答該問題。 在第4節介紹了選擇樣本量的標準準則,以滿足兩種類型的統計誤差的要求。 最後挑戰上一節中的假設,並在第5節中提出經驗估計錯誤率的準則。
1、統計問題的定義
同一算法的兩次運行通常會產生不同的性能指標。 這可能是由於各種因素造成的,例如隨機生成器的種子(稱爲隨機種子或此後的種子),代理的初始狀態,環境的隨機性等。算法的性能可以被建模爲隨機變量 ,並且在環境中運行該算法的實現 , 重複該過程 次,將得到一個統計學樣本 , 隨機變量通常以其平均值 和標準偏差爲特徵,記爲 。當然,你不知道 和 的值是多少。 你唯一能做的就是計算他們的估計 和s:
其中 表示經驗平均, 表示經驗標準分佈, 樣本量 越大,則估計的置信越準確。
在這我們比較兩種性能爲 和 的算法,如果 和 遵循正態分佈,描述其差異的隨機變量 也遵循帶參數的正態分佈 和 ,在這種情況下,估計 的平均值是 和估計 的平均 ,效果差異 可以定義爲兩種算法的平均性能之間的差異:
測試兩種算法的性能( 和 )差異在數學上等同於測試他們之間的分佈 和0的差異,從現在開始我們考慮第二種觀點,我們從 中抽取樣本 ,減去從 和 得到的兩個樣品 和 。
爲了說明差異測試,我們使用兩種算法(Algo1和Algo2),並在OpenAI Gym框架中對Half-Cheetah環境進行比較(Brockman等,2016)。 實現的算法在這裏並不那麼重要,稍後會公佈。 首先,我們進行一項研究,每個種子有N = 5個隨機種子。 圖1顯示了95%置信區間的平均學習曲線。 學習曲線的每個點是10個評估劇集的平均累積獎勵。 Algo i的性能度量Xi是過去10個點的平均表現(即最後100個評估集)。 從圖1中可以看出,Algo1的表現優於Algo2。 此外,置信區間似乎並不重疊。 但是,我們需要在得出任何結論之前進行統計測試。請看這實驗結果圖:
圖1中的Algo1與Algo2是兩種著名的Deep RL算法,此處在Half-Cheetah基準測試中進行了測試。 報告了5粒種子的平均和置信區間。 我們可以認爲Algo1優於Algo2,因爲在95%的置信區間之間沒有太多的重疊。 但是是否有充分的證據表明Algo1確實表現更好? 下面,我們表明這些算法的性能實際上是相同的,並說明應該使用哪些方法來更可靠地證明兩種算法之間的(非)差異。
2、將性能與差異測試進行比較
在差異測試中,統計學家定義零假設 和替代假設 , 假定沒有差異,而 假設一個:
- :
- :
這些假設指的是雙尾案例。 當一個算法表現最佳的先驗可用時(比如Algo1),可以使用單尾版本:
- :
- :
首先,統計檢驗總是假設零假設。 一旦從 $X_{diff} 收集樣本 ,就可以在零假設假設下估計觀察數據的概率 (稱爲p值)爲極值。 極端地,一個意味着遠離零假設( 遠離0)。 p值回答了以下問題:考慮到兩種算法的性能沒有真正差異,觀察這個樣本或更極端的樣本是多麼可能? 在數學上,我們可以用這種方式爲單尾情況編寫:
這種雙尾情況可以表示爲:
當此概率真的很低時,這意味着極有可能無法用兩種沒有性能差異的算法來生成收集的樣本。當單尾情況下p值小於 時,在顯著性level 的差異稱爲顯着性。在雙尾情況下低於 (以解釋雙面測試2)
2.3、統計誤差
在假設檢驗中,統計檢驗可以得出 或 ,而每一個都可以是真或假。有四種情況:
這會導致兩種類型的錯誤:
- 當 爲真時,type-I 錯誤會拒絕它,也稱爲假陽性。
這相當於在沒有真正差異的情況下聲稱一個算法優於另一個算法。請注意,我們稱之爲顯著水平和Type-I錯誤的 概率,因爲它們都指同一概念。在統計檢驗的假設下,選擇一個顯著性水平會強制執行type-I型錯誤的概率。 - 當 爲假時,type-II型錯誤無法拒絕它,也稱爲假陰性。
這相當於錯過了發表一篇文章的機會,而實際上卻有一些東西可以找到。
3 選擇適當的統計檢驗
在統計學中,差異不能百分之百地被證實。爲了顯示差異的證據,我們使用統計測試。所有的統計檢驗都作出假設,使它們能夠評估p值或第2節所述的一個置信區間。兩種誤差類型的概率必須受到約束,這樣統計檢驗才能得出可靠的結論。在這一節中,我們將介紹兩個用於差異測試的統計測試。如Henderson等人的建議。(2017),兩樣本t檢驗和bootstrap置信區間檢驗可用於此。
3.2 T-test and Welch’s t-test
我們要檢驗兩個總體平均數相等的假設(零假設h0)。假設兩個總體(兩種算法)的方差相等時,可以使用2樣本T-test檢驗。然而,當比較兩種不同的算法(如ddpg與trpo)時,這種假設很少成立。在這種情況下,應使用稱爲 Welch’s t-test檢驗的兩樣本檢驗對不等方差的適應性。當標準偏差相等時,這兩種試驗是嚴格等價的。t檢驗有幾個假設:
- 數據測量的尺度必須連續且有序(可以排序)。這是RL的情況。
- 數據是通過從人羣中收集代表性樣本獲得的。這在RL看來是合理的。
- 測量是相互獨立的。這在RL看來是合理的。
- 數據是正態分佈的,或者至少是鐘形的。正態律是一個涉及到單位的數學概念,任何事物都不是完全正態分佈的。此外,算法性能的測量可能遵循多模態分佈。在第5節中,我們研究了偏離正態性的程度。
在這些假設下,可以計算由Welch-Satterthwaite equation方程估計的Welch-t檢驗的t統計量t和自由度 ,例如:
圖2幫助理解這些概念。它表示與 對應的t統計量在 (左分佈)和 (右分佈)下的分佈。
圖2是T-test檢驗假設下 和 的表示。紅色、深藍和淺藍色分佈下的區域分別對應於type-I型誤差 、type-II型誤差 和統計功率 的概率。
假設 ,因此,分佈以0爲中心。
假設了一個(positive)差異 , 因此,分佈被對應於 的t值移動
t分佈由其概率密度函數 (圖2中的左曲線)進行密度化,該函數由 參數化。累積分佈函數 是評價 下 to 面積的函數。寫爲:
3.2 自舉(Bootstrapped)置信區間
自舉(Bootstrapped)置信區間是一種不假設 分佈的方法。它估計di的置信區間ci1,給定一個樣本xdi,其特徵是其經驗平均xdi。它是通過在xdi中重新採樣並計算每個新生成的樣本的平均值來完成的。測試根據xdi的置信區間是否包含0來決定。它不計算p值。在不假設數據分佈的情況下,無法計算分析置信區間。這裏,xdi遵循未知分佈f。可以使用bootstrap原理計算置信區間ci1的估計。假設我們有一個xdi示例,它由n個性能差異度量組成。通過在x di內部進行替換採樣,得到了大小爲n的經驗bootstrap樣本xdi。Bootstrap原理然後說,對於在原始樣本上計算的任何統計量U和在引導樣本上計算的U,U中的變化很好地近似於U5的變化。因此,經驗平均值的變化,如其範圍,可以通過引導樣本的變化來近似。bootstrap-con dence間隔測試假設樣本大小足夠大,能夠正確地表示底層分佈,儘管這在實踐中可能難以實現。與此的偏差
4.3 理論上:power分析用於選擇樣本大小
-
step 1 - 進行試點研究
-
step 2 - 選擇樣本量
- step 3 - 運行統計測試
4.4 在實踐中:偏離假設的影響
-
type-I型誤差的經驗估計
-
經驗標準差的影響
參考文獻:
[1]. https://arxiv.org/pdf/1806.08295.pdf