強化學習,方差比較大是說什麼的方差大,為啥方差比較大?
強化學習的目標是要
最大化累積獎勵
的期望值
,而
就是一個
隨機變數,具有均值和方差
。 當多個隨機變數相互獨立時,方差有如下關係,可以看到,當多個隨機變數組合到一起時,方差是增大的。
在強化學習裡也是一樣的,例如,在MC方法中是採用整個episode來估計
,而在TD的方法中只使用相鄰的狀態
來估計
。隨機變數
是由多個隨機變數
組成的,所以MC方法的方差會比TD方法的大。雖然用整個episode是無偏估計,但是方差大必然就導致估計期望時 如果取樣樣本不足,估計值會不穩定。
你就記著,即使在同樣policy下,每回合的回報計算起來變化很大(回報與評估方式有關),那麼就叫方差大;如果回報均值與真實的策略回報的均值(這是上帝視角,就是已經有一個完美的評估方式,mcmc也行)差異很大,就說偏差大。反之亦然。
總結,這裡的方差均值可以等同於單回合的回報的方差和均值(按照某種評估方式,可以是mcmc,也可以是value function)。
最後。瀉藥。還有,樓上幾個大佬,能問這樣問題的肯定都是和我這樣的菜雞,咱能不能深入淺出把事情說明白,說那麼多,真的會coding嗎,會拿手算嗎,會推公式嗎。。。
知乎誤人。。
這裡的方差指的是梯度的方差,而梯度的方差來源於accumulate reward的估計;
樣本有限,一般來說估計越準,方差越大(參考周志華《機器學習》的偏差-方差分解),這裡既然是對accumulate reward的無偏估計(即取樣軌跡accumulate reward的期望值數學上等於其真實值),第一反應應該就是方差很大;
方差大使得訓練不穩定,結果難以復現等;
減小方差的方法是引入值函式近似,這樣做使得增量式地更新accumulate reward的估計,而不是直接使用當輪取樣得到的平均值(最後有一個簡單直觀的例子;
一個直觀的解釋。考慮服從標準正態分佈的一元隨機變數X;每輪策略梯度下降取樣的數目為N(每個樣本可以理解為一條軌跡),可知
是對X(X的均值)的無偏估計。由於對於樣本比較少 ,
會波動很大,比如t輪更新時得到對X的估計為2。1,下一輪很大可能與2。1差別比較大,比如說是6。2,這樣使得波動就很大。如果增量式更新X的估計,採用常用的
的方式(收斂性參考sutton的《Reinforcement Learning:An introduction》),一般
取很小的值比如0。01,則下一輪對X的估計為x = 2。1 + 0。01(6。2 -2。1) = 2。141,這樣就減小了波動。