1. 程式人生 > >解讀continuous control with deep reinforcement learning(DDPG)

解讀continuous control with deep reinforcement learning(DDPG)

版權宣告:本文為博主原創文章,未經博主允許不得轉載。

博主:shenshikexmu

聯絡方式:[email protected]

緣起

DDPG,是Google Deepmind第一篇關於連續動作的深度加強學習論文(是否第一篇存疑)。DQN(Deep Q Network)生成的策略執行的動作是離散或者低維的,雖然在狀態輸入上可以是高維的觀察狀態。如在DQN2014中,有效的動作在4到18個之間,而輸入的狀態是84×84×4的圖片。相對於連續動作,DQN的動作空間太小了,原文的to to simply,使得DQN瞬間淪為香港記者,呵呵。文中舉的例子,是7個自由度(DOF)的機械臂,只是粗糙的控制,每一個DOF只有三種動作狀態

ai{k,0,k} ,那麼整個機械臂的運動狀態就有 37=2187 。這樣的動作空間,DQN在學習中很難一一搜索,更何況一個DOF很難只有三種動作狀態。再加上,簡單離散的動作空間中的動作是不需要根據運動空間的結構進行動作取捨,而在複雜動作操作時這樣的取捨是基本的(Additionally, naive discretization of action spaces needlessly throws away information about the structure of the action domain, which may be essential for solving many problems)。發現這句話理解起來有點難,我的理解是(不保證對),由於DQN運動狀態空間比較少,所有的運動狀態在策略學習時都可以遍歷,取捨的問題直接由策略決定,但連續動作的控制就不行了,不可能每個動作都遍歷,形成策略,策略決定動作取捨。
於是需要新的深度強化學習方法,來解決連續動作空間的策略問題。

背景知識

st=(x1,a1,...,at1,xt)
狀態動作軌跡

π:SP(A)
策略概率 π π 首先是概率分佈,這對理解強化學習很重要。不同的狀態,所對應的不同動作出現的概率。也就是對於特定的 Si 狀態, P(Ai) 是個概率分佈,如在 Si 狀態下,選擇 A

1 的動作概率是 P(A1) ,選擇 A2 的動作概率是 P(A2)

p(st+1st,at)
狀態轉移概率,當前狀態是 st ,在此狀態下完成 at 動作,下一個狀態變成 st+1 的概率。

r(st,at)
回報函式,這裡給出的 r 值,可不是單獨在 st 狀態下,完成 at 的回報(演算法要求出的 Q(st,at) 是單獨在 st 狀態下,完成 at 的回報),而是之前所有動作在當時特定狀態下的回報的累加。也就是之前的動作對當前的 r 值也是有貢獻的。

Rt=Ti=tγitr(si,ai)
Rt=γ0r(st,at)+γ1r(st+1,at+1)+...γTtr(sT,aT)
折扣累計獎賞,這是在 st 狀態下,完成 at 後,在接下來的 Tt 步後, st 狀態和動作 at ,累加的獎賞。 Rt 更接近演算法求出的 Q(st,at) 。說是接近,在於 Q(st,at) 更像是量子力學中的疊加態,它是概率分佈的, Rt 更像是坍縮態,也就是你已經知道薛定諤的貓是死是活的結果。

J=Eri,siE,aiπ[R1]
首先這是個期望值,這是全篇論文理解的一個眼,這個公式理解了,論文思想理解80%了。裡面包含 siE ,用周志華《機器學習》中p378中(16.8)的表示方式為 Paisisi+1 ,在狀態 si 下,動作 ai 產生下一個狀態為 si+1 的概率。 aiπ 為上面講的策略概率。在DPG2014第一個公式寫得更容易理解:
J(πθ)=Sρπ(s)Aπθ(s,a)r(s,a)dads=Esρπ,aπθ[r(s,a)]
兩個公式是一樣的,在概率策略 πθ