深度强化学习算法之SAC(Soft Actor Critic)算法
文章地址:
Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor
Soft Actor-Critic Algorithms and Applications
1、最大熵强化学习
-
一般的强化学习的目标是最大化累积奖励:
∑ t E ( s t , a t ) ∼ ρ π [ r ( s t , a t ) ] \sum_{t} \mathbb{E}_{\left(s_t, a_{t}\right) \sim \rho_{\pi}}\left[r\left(s_{t}, a_{t}\right)\right] t∑E(st,at)∼ρπ[r(st,at)] -
最大熵强化学习的目标是带熵的累积奖励:
J ( π ) = ∑ t = 0 T E ( s t , a t ) ∼ ρ π [ r ( s t , a t ) + α H ( π ( ⋅ ∣ s t ) ) ] J(\pi)=\sum_{t=0}^{T} \mathbb{E}_{(s_t, a_t) \sim \rho_{\pi}}\left[r\left(s_{t}, a_{t}\right)+\alpha H\left(\pi\left(\cdot \mid s_{t}\right)\right)\right] J(π)=t=0∑TE(st,at)∼ρπ[r(st,at)+αH(π(⋅∣st))]
其中, α \alpha α 为温度系数,决定熵相对于奖励的重要程度,从而控制策略的随机程度。
entropy可以理解为是一个值,用来衡量一个随机变量的随机性有多强。举个例子,如果对一个硬币出现正反面的变量进行加权,如果总是出现正面,那么这个变量的熵就很小;反之,如果出现正反面的加权值都接近0.5,那么就说明这个变量的熵很大。
假设 x ∼ P x \sim P x∼P, P P P 是一个分布,那么 x x x的熵 H H H的计算方式为:
H ( P ) = E P x ∼ P [ − log P ( x ) ] H(P)=\underset{x \sim P}{E_{P}}[-\log P(x)] H(P)=x∼PEP[−logP(x)]
2、从策略迭代到软策略迭代
-
策略迭代
分成两步:
- 策略评估,更新值函数,用来对策略进行评估
- 策略改进,更新策略,用上一步的值函数来知道策略提高
如上图所示,不断经过策略评估个策略提高最终找到最优策略。
-
软策略迭代
-
策略评估
对于一个固定的策略 π \pi π,soft Q-value可以用Bellman backup 算子 Γ π \Gamma^{\pi} Γπ 迭代求出来:
T π Q ( s t , a t ) ≜ r ( s t , a t ) + γ E s t + 1 ∼ p [ V ( s t + 1 ) ] \mathcal{T}^{\pi} Q\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right) \triangleq r\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)+\gamma \mathbb{E}_{\mathbf{s}_{t+1} \sim p}\left[V\left(\mathbf{s}_{t+1}\right)\right] TπQ(st,at)≜r(st,at)+γEst+1∼p[V(st+1)]
其中,soft state value function 为:
V ( s t ) = E a t ∼ π [ Q ( s t , a t ) − log π ( a t ∣ s t ) ] V\left(\mathbf{s}_{t}\right)=\mathbb{E}_{\mathbf{a}_{t} \sim \pi}\left[Q\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)-\log \pi\left(\mathbf{a}_{t} \mid \mathbf{s}_{t}\right)\right] V(st)=Eat∼π[Q(st,at)−logπ(at∣st)]
-