强化学习(RLAI)读书笔记第十三章策略梯度方法(Policy Gradient Methods)
目前为止本书讲述的方法基本都是动作值函数的方法。这一章介绍一个学习参数化策略的方法,这个方法中不需要考虑值函数就可以得到策略。在学习策略参数的时候有可能还会用到值函数,但是选择动作的时候不需要。使用了一个 θ ∈ R d ′ \theta\in\mathbb R^{d'} θ∈Rd′作为策略的参数向量,然后用 π ( a ∣ s , θ ) = P r { A t = a ∣ S t = s , θ t = θ } \pi(a|s,\theta)=Pr\{A_{t}=a|S_{t}=s,\theta_{t}=\theta\} π(a∣s,θ)=Pr{ At=a∣St=s,θt=θ}来表示时间t时选择动作a时的概率。这一章考虑一个使用 J ( θ ) J(\theta) J(θ)表示的度量函数的梯度来学习策略参数的算法。
这个方法是来最大化 J ( θ ) J(\theta) J(θ)的,因此参数的更新近似对于J的梯度上升:
θ t + 1 = θ t + α ∇ J ( θ t ) ^ \theta_{t+1} = \theta_{t}+\alpha\widehat{\nabla J(\theta_{t})} θt+1=θt+α∇J(θt)
,
对于所有满足此类更新形式的算法,不论是否计算值函数都叫做policy gradient methods。那些同时计算策略函数和值函数的方法又叫做actor-critic算法,actor表示学好的策略,而critic表示学好的值函数。
13.1 Policy Approximation and its Advantages
对于策略梯度算法,策略可以被任意的参数化,只要最后的函数 π ( a ∣ s , θ ) \pi(a|s,\theta) π(a∣s,θ)是一个对于其参数可微的函数。这实际上要求学出来的算法不能使确定性的。
对于那些离散且不大的动作空间,一个简单常用的参数化方法是对于每一个状态动作对都构造一个参数化数值 h ( s , a , θ