Soft Actor Critic算法论文公式详解
Posted 白水baishui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Soft Actor Critic算法论文公式详解相关的知识,希望对你有一定的参考价值。
SAC强化学习算法是伯克利大学团队2018年在ICML(International Conference on Machine Learning)上发表的论文,本篇博客来总结一下论文里的公式及其涵义。
论文地址:Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor
文章目录
1. 符号说明
马尔科夫决策过程: ( S , A , p , r ) (\\mathcalS,\\mathcalA,p,r) (S,A,p,r)其中, S \\mathcalS S为状态空间; A \\mathcalA A为动作空间;未知的状态转移概率 p : S × S × A → [ 0 , ∞ ) p:\\mathcalS\\times\\mathcalS\\times\\mathcalA\\to [0,\\infty) p:S×S×A→[0,∞)表示给定当前状态 s t ∈ S s_t\\in\\mathcalS st∈S和动作 a t ∈ A a_t\\in \\mathcalA at∈A时下一个状态 s t + 1 ∈ S s_t+1\\in \\mathcalS st+1∈S的概率密度;环境在每次状态转移时获得一个有界的立即回报 r : S × A → [ r min , r max ] r:\\mathcalS\\times\\mathcalA\\to[r_\\min, r_\\max] r:S×A→[rmin,rmax]; ρ π ( s t ) \\rho_\\pi(s_t) ρπ(st)和 ρ π ( s t , a t ) \\rho_\\pi(s_t,a_t) ρπ(st,at)分别表示由策略 π ( a t ∣ s t ) \\pi(a_t|s_t) π(at∣st)产生的轨迹的边缘状态、状态-动作分布(边缘即当前时刻的意思)。
1. 累计平均回报
SAC算法设定了一个最大熵目标
r
(
s
t
,
a
t
)
+
α
H
(
π
(
⋅
∣
s
t
)
)
r(s_t,a_t)+\\alpha\\mathcalH(\\pi(·|s_t))
r(st,at)+αH(π(⋅∣st)),它通过最大化累计最大熵目标的期望值
J
(
π
)
J(\\pi)
J(π)(累计平均回报)来使策略
π
\\pi
π随机化,如公式(1):
J
(
π
)
=
∑
t
=
0
T
E
(
s
t
,
a
t
)
∼
ρ
π
[
r
(
s
t
,
a
t
)
+
α
H
(
π
(
⋅
∣
s
t
)
)
]
J(\\pi)=\\sum_t=0^T\\mathbbE_(s_t,a_t)\\sim\\rho_\\pi[r(s_t,a_t)+\\alpha\\mathcalH(\\pi(·|s_t))]
J(π)=t=0∑TE(st,at)∼ρπ[r(st,at)+αH(π(⋅∣st))]其中,
r
(
s
t
,
a
t
)
r(s_t,a_t)
r(st,at)表示普通的立即回报项;
H
(
π
(
⋅
∣
s
t
)
)
\\mathcalH(\\pi(·|s_t))
H(π(⋅∣st))表示熵回报项;
α
\\alpha
α是温度参数(权重),它决定了熵项对立即回报的相对重要性,从而控制了最优策略的随机性,在下文中凡是涉及到熵项的都应带上权重
α
\\alpha
α,只是有时会略写。
1.1. 熵探索策略
熵回报项 H ( π ( ⋅ ∣ s t ) ) \\mathcalH(\\pi(·|s_t)) H(π(⋅∣st))是如何产生随机策略的?我们来看到信息熵的数学公式: H ( X ) = E [ − log P ( X ) ] = − E x i log P ( x i ) \\mathcalH(X)=\\mathbbE[-\\log P(X)]=-\\mathbbE_x_i\\log P(x_i) H(X)=E[−logP(X)]=−ExilogP(xi)其中, x i x_i xi是随机变量; P ( x i ) P(x_i) P(xi)是随机变量出现的概率。需要注意,由于概率值 P ( x i ) ∈ [ 0 , 1 ] P(x_i)\\in [0,1] P(xi)∈[0,1],因此 log P ( x i ) ⩽ 0 \\log P(x_i)\\leqslant 0 logP(xi)⩽0,即 H ( X ) ⩾ 0 \\mathcalH(X)\\geqslant 0 H(X)⩾0。
当我们使用随机策略而不是确定性策略时,策略 π ( s t , a t ) \\pi(s_t,a_t) π(st,at)就代表在状态 s t s_t st时 a t a_t at被选择的概率。此时可得推导式(1): H ( π ( ⋅ ∣ s t ) ) = − E a t ∼ π log π ( a t ∣ s t ) = − log π ( ⋅ ∣ s t ) \\mathcalH(\\pi(\\cdot|s_t))=-\\mathbbE_a_t\\sim \\pi\\log \\pi(a_t|s_t)=-\\log \\pi(·|s_t) H(π(⋅∣st))=−Eat∼πlogπ(at∣st)=−logπ(⋅∣st)
可以看到,策略 π \\pi π产生的动作越确定,即某些动作被选择的概率远大于其他大部分动作,那么其他大部分动作被选择的概率就相对较小,熵期望值就会越趋向于0;反之,若策略 π \\pi π产生的动作越不确定,即各个动作被选择的概率较为平均,熵值就越大。
可能上面的话不是很直观,下面我们举个例子。假设现在有5个动作可供选择,不同策略 π \\pi π产生动作的概率分别有以下两种情况:
pi_1 = [0.2, 0.2, 0.2, 0.2, 0.2]以上是关于Soft Actor Critic算法论文公式详解的主要内容,如果未能解决你的问题,请参考以下文章
论文阅读|《Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments》(NeurlPS,2017)(MADDPG)
LIRD(Deep Reinforcement Learning for List-wise Recommendations)论文算法解读