《Simple statistical gradient-following algorithms for connectionist reinforcement learning》發表於1992年,是一個比較久遠的論文,因為前幾天寫了博文:
論文《policy-gradient-methods-for-reinforcement-learning-with-function-approximation 》的閱讀——強化學習中的策略梯度算法基本形式與部分證明
所以也就順路看看先關的論文,尤其是這篇提出Reinforce的算法,准確的來說正是這篇論文提出了基於策略搜索的強化學習方法,所以說這是個始祖型的論文。
給出部分論文內容:
--------------------------------------------------------------------------------
associative reinforcement problem:
根據上面的論文中給出的公式,可以得到現在的Reinforce算法的 標准 formulation。
---------------------------------------------------------------------------------
---------------------------------------------------------------
還有一點Reinforce的名稱來源是縮寫:
這是原先沒有想到的。
---------------------------------------------------------------
現在一般給出的reinforce算法的推導如下:
一般對於reinforce算法最終給出的形式就是上面最后的表達式。
不過上面的reinforce表達形式還可以繼續推導:
因為t=0,1,2,3,4,5,......,H
假設動作集中的動作個數為A,也就是說St 狀態時可以選擇的動作數為A,而選擇各個動作的概率和為1。而R(τ)可以寫為St之前的狀態行為所獲得的獎勵和與之后所獲得的獎勵和,即r(0),r(1),r(2),r(3),...,r(t-1) 折扣和 和 r(t), r(t+1), ......,r(H)折扣和。
因為當前的動作與過去的回報實際上是沒有關系的,於是可以得到化簡后的reinforce算法的表達式:
所以可得:
所以,化簡reinforce的表現形式,可以得到:
根據上面的推導可以看出重點是在於這句話: 當前的動作與過去的回報實際上是沒有關系的
對於如此關鍵的一句話,正是因為這句話才推導出reinforce算法的簡化形式,那么這句話又是如何來進行理解呢?
因為A1集合中的at均為a1,A2集合中的均為a2, 以此類推直至AN集合,所以其他子集合也可得上述表達式,只不過at不同而已。
因為不同集合中的該部分表達式只有at不同,即π(at|st)不同,而對不同集合中所得的上面該部分再求和,因為∑π(at|st)=1,為常數,因此求和后該部分為0。
也就是說集合A中該部分求和為0,以此類推至所有軌跡中的所有狀態中的該部分,皆為0,由此對應了前面的那句話:
當前的動作與過去的回報實際上是沒有關系的
其實上面的推導過程有個隱含的假設,那就是s,a返回的獎勵r是確定的,而如果狀態,動作對返回的獎勵reward是一個分布的話上面的推導過程則隱含假設每一個狀態,動作對(s,a)獲得的reward都是期望值,即R使s,a所得的期望值。
----------------------------------------------------------------------
或者為:
根據上面化簡后得到的形式,容易得到Sutton的Reinforcement introduction中的一般形式及算法偽代碼,如下:
根據上面簡化形式的推導過程,容易理解sutton給出的偽代碼中的:
-------------------------------------------------------------------------------------
在論文 《policy-gradient-methods-for-reinforcement-learning-with-function-approximation 》中指出策略梯度定理為reinforce算法的更一般的表現形式,下面給出策略梯度算法中episode形式下的推導:
不論是上面我們對reinforce算法的推導形式,還是策略梯度定理中給出的推導,都是等價的,都可以將episodic情景下計算表達式寫為如下:
策略梯度定理中:
或策略梯度定理中:
或reinforce算法中在一個個episode中序慣采樣的形式:
在reinforce算法中,我們是在一個episode中序慣的采樣,因此γk是乘在我們的計算項中的。這里的計算項為:
而在策略梯度定理中我們假設采樣到的計算項,即
策略梯度定理中計算項的表達式之所以和reinforce算法中的有所不同在於其采樣的設定,在reinforce算法中是按照一條條軌跡那樣來采樣的,在采樣的過程中就已經把計算項前面的概率使用采樣的方式來表達了,所以需要把折扣率算在計算項中。而在策略梯度定理中,並沒有設定為采樣,而是直接假設系統中(s,a)的γk折扣概率,我們是計算在所有軌跡中(或是系統中)第k步出現(s,a)的γk折扣概率,因此已經把折扣率算在了概率的過程中。
策略定理中沒有設定為采樣,但是我們為了便於理解也可以把整個系統想象成一個超大的采樣,把所有會出現的軌跡都采樣出來了,並且每個軌跡在系統中出現的概率和我們這里采樣的頻率相等,這時我們想要得到某對(s,a)則直接在這個大的采樣中來獲得,此時獲得某對(s,a)的概率就等於所有軌跡中(或是系統中)第k步出現(s,a)的γk折扣概率,因此這樣也可以理解為折扣率算在了采樣的過程中。
------------------------------------------------------