输出层(Dense):存在两个Q网络,每个都输出一个状态-动作对的价值(State Action Value 1 & 2),这是为了减少估计偏差并提高稳定性。
这种结构允许SAC在做出决策时考虑到策略的多样性,并通过两个Q网络来减少值函数的过估计。
整个架构的目的是训练一个智能体,使其能在复杂环境中作出决策,同时通过熵正则化来鼓励探索未知的行为。
目标函数
Q网络更新损失函数:
L
Q
(
?
)
=
E
(
s
i
,
q
i
,
r
i
,
s
i
+
1
)
~
D
,
a
i
+
1
~
π
θ
(
?
∣
s
i
+
1
)
[
1
2
(
Q
?
(
s
i
,
a
i
)
?
(
r
i
+
γ
(
min
?
j
=
1
,
2
Q
?
˙
j
(
s
t
+
1
,
a
t
+
1
)
?
α
log
?
π
(
a
t
+
1
∣
s
t
+
1
)
?
Entropy
?
Iterm
)
2
]
L_Q(\phi)=\mathbb{E}_{(s_i,q_i,r_i,s_{i+1})\sim\mathcal{D},a_{i+1}\sim\pi_{\theta}(\cdot|s_{i+1})}\left[\frac{1}{2}\left(Q_{\phi}(s_i,a_i)-(r_i+\gamma(\min_{j=1,2}Q_{\dot{\phi}_j}(s_{t+1},a_{t+1})\overbrace{-\alpha\log\pi(a_{t+1}|s_{t+1})}^{\textbf{Entropy Iterm}} \right ) ^ 2 \right ]
LQ?(?)=E(si?,qi?,ri?,si+1?)~D,ai+1?~πθ?(?∣si+1?)??21??Q??(si?,ai?)?(ri?+γ(minj=1,2?Q?˙?j??(st+1?,at+1?)?αlogπ(at+1?∣st+1?)?Entropy?Iterm??2?
E
(
s
i
,
a
i
,
r
i
,
s
i
+
1
)
~
D
\mathbb{E}_{(s_i, a_i, r_i, s_{i+1}) \sim \mathcal{D}}
E(si?,ai?,ri?,si+1?)~D?: 这个期望表示对经验回放缓冲区
D
\mathcal{D}
D中的样本进行平均,包括状态
s
i
s_i
si?、动作
a
i
a_i
ai?、奖励
r
i
r_i
ri?和下一个状态
s
i
+
1
s_{i+1}
si+1?。
a
i
+
1
~
π
θ
(
?
∣
s
i
+
1
)
a_{i+1} \sim \pi_{\theta}(\cdot|s_{i+1})
ai+1?~πθ?(?∣si+1?): 表示根据当前策略
π
θ
\pi_{\theta}
πθ?选择下一个动作
a
i
+
1
a_{i+1}
ai+1?。
Q
?
(
s
i
,
a
i
)
Q_{\phi}(s_i, a_i)
Q??(si?,ai?): Q网络使用参数
?
\phi
?来估计在状态
s
i
s_i
si?下采取动作
a
i
a_i
ai?的价值。
r
i
+
γ
(
min
?
j
=
1
,
2
Q
?
˙
j
(
s
i
+
1
,
a
i
+
1
)
?
α
log
?
π
(
a
i
+
1
∣
s
i
+
1
)
)
r_i + \gamma (\min_{j=1,2}Q_{\dot{\phi}_j}(s_{i+1}, a_{i+1}) - \alpha \log \pi(a_{i+1}|s_{i+1}))
ri?+γ(minj=1,2?Q?˙?j??(si+1?,ai+1?)?αlogπ(ai+1?∣si+1?)): 这部分计算目标Q值,包括立即奖励
r
i
r_i
ri?加上对下一个状态-动作对的Q值的折现(考虑两个Q网络中较小的那个),再减去与策略熵相关的项,其中
γ
\gamma
γ是折现因子,
α
\alpha
α是熵正则化的权重。
α
log
?
π
(
a
i
+
1
∣
s
i
+
1
)
\alpha \log \pi(a_{i+1}|s_{i+1})
αlogπ(ai+1?∣si+1?): 这是熵正则化项,
α
\alpha
α表示其权重。熵项鼓励策略进行探索,防止过早收敛到局部最优策略。
L
π
(
θ
)
=
E
s
t
~
D
,
a
t
~
π
θ
[
α
log
?
(
π
θ
(
a
t
∣
s
t
)
)
?
Q
?
(
s
t
,
a
t
)
]
L_{\pi}(\theta)=\mathbb{E}_{s_{t}\sim\mathcal{D},a_{t}\sim\pi_{\theta}}[\alpha\log(\pi_{\theta}(a_{t}|s_{t}))-Q_{\phi}(s_{t},a_{t})]
Lπ?(θ)=Est?~D,at?~πθ??[αlog(πθ?(at?∣st?))?Q??(st?,at?)]
E
s
t
~
D
,
a
t
~
π
θ
\mathbb{E}_{s_t \sim \mathcal{D}, a_t \sim \pi_{\theta}}
Est?~D,at?~πθ??: 这表示对经验回放缓冲区
D
\mathcal{D}
D中的状态s_t以及根据当前策略
π
θ
\pi_{\theta}
πθ?采取的动作
a
t
a_t
at?进行平均。
α
log
?
(
π
θ
(
a
t
∣
s
t
)
)
\alpha \log(\pi_{\theta}(a_t|s_t))
αlog(πθ?(at?∣st?)): 这是策略熵的加权值,
α
\alpha
α是熵的权重系数。这个熵项鼓励策略多样性,即鼓励策略产生更随机的动作。
Q
?
(
s
t
,
a
t
)
Q_{\phi}(s_t, a_t)
Q??(st?,at?): 这是Q网络评估在状态s_t下采取动作
a
t
a_t
at?的价值。