演员-评论家方法(Actor-Critic)

策略梯度法引入值函数

策略梯度法中梯度的基本形式为:
\nabla_\theta J(\theta)\approx\frac{1}{N}\sum_{i=1}^N\sum_{t=1}^T\left[\nabla_\theta\log \pi_\theta(\mathbf{a}_{i,t}|\mathbf{s}_{i,t})\sum_{t'=t}^Tr(\mathbf{s}_{i,t'},\mathbf{a}_{i,t'})\right] \tag{1}

现在我们回顾一下状态-动作值函数Q(\mathbf{s}_t,\mathbf{a}_t)和状态值函数V(\mathbf{s}_t)的定义:
Q(\mathbf{s}_t,\mathbf{a}_t)=\sum_{t'=t}^T\mathbf{E}_{\pi_\theta}[r(\mathbf{s}_{t'},\mathbf{a}_{t'})|\mathbf{s}_t,\mathbf{a}_t] \tag{2}

V(s_t)=\sum_{t'=t}^T \mathop{E}_{\pi_\theta} [r(s_{t'}, a_{t'})|s_t] \tag{3}

现在我们令公式(1)中的\sum_{t'=t}^Tr(\mathbf{s}_{i,t'},\mathbf{a}_{i,t'})=\hat{Q}_{i,t},为什么用\hat{Q}_{i,t}来表示,因为这两者是有密切联系的,Q(\mathbf{s}_t,\mathbf{a}_t)\hat{Q}_{i,t}的期望。

现在我们要做的就是用Q(\mathbf{s}_t,\mathbf{a}_t)代替\hat{Q}_{i,t},因为采样的每一条轨迹中,在状态s_t之后的奖赏之和可能是不同的,我们想使得状态s_t之后奖赏之和能够稳定。

同样在引入基线后,我们可以将前文所述的基线b_t=\frac{1}{N}\sum_iQ^\pi(\mathbf{s}_{i,t},\mathbf{a}_{i,t})用其期望V(s_t)=\sum_{t'=t}^T\mathop{E}_{\pi_\theta} [r(s_{t'}, a_{t'})|s_t]取代,现在我们的梯度形式就变为

\nabla_\theta J(\theta)\approx\frac{1}{N}\sum_{i=1}^N\sum_{t=1}^T\left[\nabla_\theta\log \pi_\theta(\mathbf{a}_{i,t}|\mathbf{s}_{i,t})A^\pi(\mathbf{s}_t,\mathbf{a}_t)\right] \tag{4}

其中,A^\pi(\mathbf{s}_t,\mathbf{a}_t)=Q^\pi(\mathbf{s}_t,\mathbf{a}_t)-V^\pi(\mathbf{s}_t),称为优势函数(Advantage Function)。

优势函数可理解为在给定策略\pi的情况下,在状态\mathbf{s}_t处,采用行动\mathbf{a}_t的收益能比该策略的平均今后收益期望多出多少。

演员-评论家算法

演员-评论家算法要做的就是引入另一个参数\phi,通过神经网络来拟合优势函数A^\pi(\mathbf{s}_t,\mathbf{a}_t)

Q(\mathbf{s}_t,\mathbf{a}_t)V^\pi(\mathbf{s}_t)有如下的关系,
Q^\pi(\mathbf{s}_t,\mathbf{a}_t)=r(\mathbf{s}_t,\mathbf{a}_t)+\sum_{t'=t+1}^T\mathbf{E}_{\pi_\theta}[r(\mathbf{s}_{t'},\mathbf{a}_{t'})|\mathbf{s}_t,\mathbf{a}_t]=r(\mathbf{s}_t,\mathbf{a}_t)+\mathbf{E}_{\mathbf{s}_{t+1}\sim p(\mathbf{s_{t+1}}|\mathbf{s}_t,\mathbf{a}_t)}[V^\pi(\mathbf{s}_{t+1})] \tag{5}

如果我们用用轨迹样本来估计这个期望(即用V^\pi(\mathbf{s}_{t+1})来代替\mathbf{E}_{\mathbf{s}_{t+1}\sim p(\mathbf{s_{t+1}}|\mathbf{s}_t,\mathbf{a}_t)}[V^\pi(\mathbf{s}_{t+1})]),那么,优势函数也可以被近似为
A^\pi(\mathbf{s}_t,\mathbf{a}_t)\approx r(\mathbf{s}_t,\mathbf{a}_t)+V^\pi(\mathbf{s}_{t+1})-V^\pi(\mathbf{s}_t) \tag{6}

这样的话,我们只需要用参数\phi去拟合V^\pi(\mathbf{s}_t)即可。

在蒙特卡洛策略评估中,进行一次轨迹采样后
V^\pi(\mathbf{s}_t)\approx\sum_{t'=t}^Tr(\mathbf{s}_{t'},\mathbf{a}_{t'}) \tag{7}

如果进行多次轨迹采样后
V^\pi(\mathbf{s}_t)\approx\frac{1}{N}\sum_{i=1}^N\sum_{t'=t}^Tr(\mathbf{s}_{t'},\mathbf{a}_{t'})\tag{8}

虽然多次轨迹采样比一次轨迹采样效果好,但是,一次轨迹采样的表现也不错。

训练神经网络来拟合值函V_\phi^\pi(\mathbf{s}_t)则比较简单,首先收集训练数据\left\{\left(\mathbf{s}_{i,t},y_{i,t}:=\sum_{t'=t}^T r(\mathbf{s}_{i,t},\mathbf{a}_{i,t})\right)\right\},然后使用最小二乘的损失函数
\mathcal{L}(\phi)=\frac{1}{2}\sum_i\left\Vert\hat{V}_\phi^\pi(\mathbf{s}_i)-y_i\right\Vert^2 \tag{9}

为了使拟合效果更好,在理想化的情况下,我们的目标也可修改为(自助法(bootstrapped))
y_{i,t}=\sum_{t'=t}^T\mathbf{E}_{\pi_\theta}[r(\mathbf{s}_{t'},\mathbf{a}_{t'})|\mathbf{s}_{i,t}]\approx r(\mathbf{s}_{i,t},\mathbf{a}_{i,t})+V^\pi(\mathbf{s}_{i,t+1})\approx r(\mathbf{s}_{i,t},\mathbf{a}_{i,t})+\hat{V}_\phi^\pi(\mathbf{s}_{i,t+1}) \tag{10}

这样我们便可以直接使用先前的拟合值函数。

批量演员-评论家算法 (batch actor-critic algorithm)

  1. 根据策略\pi_\theta(\mathbf{a}|\mathbf{s})得到一些样本\{\mathbf{s}_i,\mathbf{a}_i\},包括所处状态、行动和收益。
  2. 使用样本收益之和拟合\hat{V}^\pi_\phi(\mathbf{s})。这一步样本可以做蒙特卡洛,也可以做自助法;拟合可以用最小二乘的目标函数。
  3. 评估优势函数\hat{A}^\pi(\mathbf{s}_i,\mathbf{a}_i)=r(\mathbf{s}_i,\mathbf{a}_i)+\hat{V}^\pi_\phi(\mathbf{s}_i')-\hat{V}^\pi_\phi(\mathbf{s}_i)
  4. \nabla_\theta J(\theta)\approx\sum_{t=1}^T\left[\nabla_\theta\log \pi_\theta(\mathbf{a}_t|\mathbf{s}_t)\hat{A}^\pi(\mathbf{s}_t,\mathbf{a}_t)\right]
  5. \theta\leftarrow \theta+\alpha\nabla_\theta J(\theta)

引入“折扣因子”

在策略梯度中引入“折扣因子”,梯度变为
\nabla_\theta J(\theta)\approx\frac{1}{N}\sum_{i=1}^N\sum_{t=1}^T\nabla_\theta\log\pi_\theta(\mathbf{a}_{i,t}|\mathbf{s}_{i,t})\left(\sum_{t'=t}^T\gamma^{t'-t}r(\mathbf{s}_{i,t'},\mathbf{a}_{i,t'})-b\right) \tag{11}

在演员-评论家算法中引入“折扣因子”,首先我们的优势函数将从
\hat{A}^\pi(\mathbf{s}_i,\mathbf{a}_i)=r(\mathbf{s}_i,\mathbf{a}_i)+\hat{V}^\pi_\phi(\mathbf{s}_i')-\hat{V}^\pi_\phi(\mathbf{s}_i) \tag{12}

变为
\hat{A}^\pi(\mathbf{s}_i,\mathbf{a}_i)=r(\mathbf{s}_i,\mathbf{a}_i)+\gamma\hat{V}^\pi_\phi(\mathbf{s}_i')-\hat{V}^\pi_\phi(\mathbf{s}_i) \tag{13}

此时的梯度将变为
\nabla_\theta J(\theta)\approx\frac{1}{N}\sum_{i=1}^N\sum_{t=1}^T\nabla_\theta\log\pi_\theta(\mathbf{a}_{i,t}|\mathbf{s}_{i,t})\left(r(\mathbf{s}_{i,t},\mathbf{a}_{i,t})+\gamma\hat{V}^\pi_\phi(\mathbf{s}_{i,t+1})-\hat{V}^\pi_\phi(\mathbf{s}_{i,t})\right) \tag{14}

在线的演员-评论家算法 (online actor-critic algorithm)

  1. 根据策略执行行动\mathbf{a}\sim\pi_\theta(\mathbf{a}|\mathbf{s}),得到一个状态转移样本(\mathbf{s},\mathbf{a},\mathbf{s}',r),即从一个状态出发执行某行动到哪个新的状态,单步收益多少
  2. 使用评论家的结果r+\gamma\hat{V}^\pi_\phi(\mathbf{s}')来更新\hat{V}^\pi_\phi(\mathbf{s})
  3. 评估优势函数\hat{A}^\pi(\mathbf{s},\mathbf{a})=r(\mathbf{s},\mathbf{a})+\gamma\hat{V}^\pi_\phi(\mathbf{s}')-\hat{V}^\pi_\phi(\mathbf{s})
  4. \nabla_\theta J(\theta)\approx\nabla_\theta\log \pi_\theta(\mathbf{a}|\mathbf{s})\hat{A}^\pi(\mathbf{s},\mathbf{a})
  5. \theta\leftarrow \theta+\alpha\nabla_\theta J(\theta)

批量演员-评论家算法 (batch actor-critic algorithm)

  1. 根据策略\pi_\theta(\mathbf{a}|\mathbf{s})得到一些样本\{\mathbf{s}_i,\mathbf{a}_i\},包括所处状态、行动和收益。
  2. 使用样本收益之和拟合\hat{V}^\pi_\phi(\mathbf{s})。这一步样本可以做蒙特卡洛,也可以做自助法;拟合可以用最小二乘的目标函数。
  3. 评估优势函数\hat{A}^\pi(\mathbf{s}_i,\mathbf{a}_i)=r(\mathbf{s}_i,\mathbf{a}_i)+\gamma\hat{V}^\pi_\phi(\mathbf{s}_i')-\hat{V}^\pi_\phi(\mathbf{s}_i)
  4. \nabla_\theta J(\theta)\approx\sum_{t=1}^T\left[\nabla_\theta\log \pi_\theta(\mathbf{a}_t|\mathbf{s}_t)\hat{A}^\pi(\mathbf{s}_t,\mathbf{a}_t)\right]
  5. \theta\leftarrow \theta+\alpha\nabla_\theta J(\theta)

Actor-Critic算法(公式14)是低方差的(由于Critic的存在)、有偏差的(如果Critic表现地不好)

Policy Gradients方法(公式11)是高方差(由于用单样本采样来估计)、无偏差的

为了使结果无偏差、低方差的,我们可以结合上述两者的优点,算法如下:
\nabla_\theta J(\theta)\approx\frac{1}{N}\sum_{i=1}^N\sum_{t=1}^T\nabla_\theta\log\pi_\theta(\mathbf{a}_{i,t}|\mathbf{s}_{i,t})\left(\sum_{t'=t}^T\gamma^{t'-t}r(\mathbf{s}_{i,t'},\mathbf{a}_{i,t'})-\hat{V}^\pi_\phi(\mathbf{s}_{i,t})\right)

在CS294-112的作业2中正是利用这个算法。

参考

  1. CS 294-112 at UC Berkeley
  2. UC Berkeley RL Bootcamp
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,219评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,363评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,933评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,020评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,400评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,640评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,896评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,597评论 0 199
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,327评论 1 244
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,581评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,072评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,399评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,054评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,083评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,849评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,672评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,585评论 2 270

推荐阅读更多精彩内容