SAC算法解析

上一篇文章介绍了利用确定策略来解决连续控制问题的DDPG,现在再来介绍一种非常牛的用随机策略来做连续控制的方法Soft Actor Critic (SAC) 。它是一种以off-policy的方式来优化随机策略的算法,它的核心特点是熵正则化, 策略的训练在最大化预期回报和最大化熵之间作了个权衡,在这一点上实际也跟exploration还是exploitation有重大关系,增加熵会导致更多探索,这可以加速之后的学习,还可以防止策略过早地收敛到一个糟糕的局部最优。

熵和随机策略

为了防止有些人不太清楚熵的概念,在正式开始讲SAC之前,我稍微介绍一下熵的概念,以及随机策略的好处。

这里的熵指的是信息熵H(X),它代表一个随机变量X所有可能取值的自信息I(x) 的加权求和:
H(X) = \int_X I(x) dx = \int_X -log(P(x))P(x) dx
正如上式所示,随机变量越是随机,熵就越大。根据热力学第二定律,自然界本身无时无刻不处在于一个熵增的过程之中,即不断走向混沌,而人类的奋斗进程则是对抗自然的熵减过程,他期望变得明确和有序,强化学习的过程也是如此。

一般的,强化学习的目标在于最大化奖励,即最大化动作状态价值Q_\pi(s,a) ,确定策略可以直接选择最大Q_\pia 来行动,但是这样就会使得操作模式是固化的,比如训练一个机械臂去捡东西,实际运动轨迹可以多种多样,而确定策略就会使这个动作变得很单调。 并且如果是在对抗的环境中,这种固定化的操作也容易被对手利用而存在漏洞,而基于策略\pi(a|s) 随机采样的动作 a 来行动就可以有效避免这一点,并且 \pi 的熵越大,也便代表动作越随机,越能在同一情况下做出不同的动作,让对手无法轻易预测,当然在训练时鼓励熵增带来的探索优化的好处也是不言而喻的。

随机策略的Actor Critic方法

actor-critic方法依赖于策略梯度,目标是利用梯度上升来让J(\theta) = \mathbb{E_S}[V_\pi(S)]最大化,因为期望不好求,于是就用蒙特卡洛方法来近似:
\begin{align} \frac {\partial~J(\theta)}{\partial~\theta} =& \mathbb{E} [\frac {\partial~ log ~\pi(A|s;\theta)}{\partial ~ \theta} · Q_\pi(s, A)] \\ \approx & \frac{\partial~log ~\pi(a|s;\theta)}{\partial~\th} · Q_\pi(s, a) \end{align}
假设动作an 维的,那么策略\pi 使用n个高斯分布N(\mu, \sigma) 连乘的方式来近似\pi
\pi(a|s) = \prod^n_{i=1} \frac{1}{\sqrt {2\pi} \sigma_i} · exp(-\frac{(a_i-\mu_i)^2}{2\sigma_i^2})
而其中的\sigma\mu 使用神经网络来近似:

近似高斯分布参数

然后根据得到的n个高斯分布来采样得到行动a, 将其代入上面的\pi, 便可以得到 \frac{\partial~log ~\pi(a|s;\theta)}{\partial~\th} , 现在还剩下 Q_\pi(s, a) 需要求。这个我们使用actor-critic中的critic对应的价值网络q(s, q; w) 来近似,于是整个网络可以表示为:
连续控制问题的随机策略actor-critic

然后用td算法来最小化target-q 和 q的差距来优化价值网络的参数,整个训练过程就算跑通了。

熵正则化

相对于A3C之类的算法只给策略网络增加了熵正则,SAC给价值网络也增加了熵正则,这样鼓励产生更多的状态空间,进一步增加了探索性,使得模型更具鲁棒性。它的做法是通过修改了普通策略学习的目标函数,在每一步的回报中增加了策略的熵,于是目标就变成了
J(\theta) = \mathbb{E} [ V_\pi(S) + \alpha H(\pi (·|S)) ]
于是策略梯度就变成了:
\begin{align} \frac {\partial~J(\theta)}{\partial~\theta} =& \mathbb{E} [\frac {\partial~ log ~\pi(A|s;\theta)}{\partial ~ \theta} · Q_\pi(s, A)] \\ \approx & \frac{Q_\pi(s, a) - \alpha ·log~\pi(a|s; \theta ) - \alpha }{\partial~\th} · log~ \pi(a|s; \theta ) \end{align}
然后训练方式基本和普通的actor-critic架构一致...

处理高估问题

如果只是像上面那样的网络来训练,很明显会存在高估的问题,在最大化Q值时会导致高估,而在通过自身网络来计算TD目标的时候又将高估无限传导进一步导致了高估。因此,为了解决高估问题,我们必须要斩断这种传导以及最大化带来的高估。SAC采用了一个一个类似TD3算法中的clipped double-Q 技巧。


SAC网络结构

如上图所示,SAC使用两个Q网络,并通过取最小的Q值的方式来避免最大化带来的高估,并且使用延迟的价值网络(通过Polyak平均)来缓解bootstraping带来的高估无限传递。具体是这样一个训练过程:

  • 通过策略网络采样动作进行游戏,记录transition(state,action,reward,next_state)到 play buffer中
  • 从play buffer获取训练数据,计算策略网络和两个Q网络,通过td算法来更新Q网络,使用Q值中较小的那个来更新V网络,再得到的V值后再使用梯度上升来更新策略网络,最后再用使用Polyak平均更新目标V网络。

另外,注意一点,上面提到的那个策略熵平衡系数\alpha 可以手工设置超参数,也可以使用自动的方式调整的,工业上倾向于自动的方式。

参考资料

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

推荐阅读更多精彩内容