Processing math: 100%
본문 바로가기
개념 공부/Reinforcement learning

Soft Actor-Critic (SAC)

by heesungsung 2024. 1. 27.
https://arxiv.org/abs/1801.01290
 

Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor

Model-free deep reinforcement learning (RL) algorithms have been demonstrated on a range of challenging decision making and control tasks. However, these methods typically suffer from two major challenges: very high sample complexity and brittle convergenc

arxiv.org


 

Concepts

SAC는 기존의 Actor-Critic 방식을 개선한 model-free RL 기법으로, continuous state 및 action space에 적용 가능하며, maximum entropy objective의 적용을 통해 expected return과 policy의 expected entropy를 최대화하는 방향으로 학습함으로써 더 효과적이고 안정적이라는 장점을 갖는다.  주요 구성 요소는 다음과 같다. (2018 PMLR)

  1. Actor-Critic architecture :  use seperate policy and value function netowrks
  2. Off-policy formulation :  enables reuse of previously collected data
  3. Entropy maximization :  enables stability and exploration

 

Preliminaries

Notation

Consider infinite-horizon MDP in continuous action spaces :  (S,A,p,r)

  • S :  State space
  • A :  Action space
  • p:S×S×A[0,) :  unknown state transition probability of (st,st+1,at)
  • r:S×A[rmin,rmax] :  bounded reward emitted by environment
  • ρπ(st) / ρπ(st,at) :  state / state-action marginals of the trajectory distribution induced by policy π(at|st)

Maximum Entropy RL

ρπ(st) 에 대한 expected entropy 항을 추가한 general maximum entorpy objective를 사용하며, stochastic policy로 수렴하게 된다.

J(π)=Tt=0E(st,at)ρπ[r(st,at)+αH(π(|st))]

여기서, α는 reward와 entropy 항 사이의 상대적 중요도를 결정하는 temperature parameter이고, optimal policy의 stochasticity를 조절한다. 이러한 형태의 objective는 다음의 이점들을 갖는다.

  1. Incentivized to explore more widely.
  2. Capture multiple modes of near-optimal behavior.
  3. Considerably improves learning speed.

 

Methods

Derivation of Soft Policy Iteration

이 논문에서는 SAC 방법론 설명 전에, soft policy iteration에 대해 먼저 설명하고 있다. 아래의 내용은 tabular setting에 대한 것으로, soft policy iteration 과정을 수행하면 optimal policy로 수렴한다는 내용을 보여준다.

Policy evaluation

위에서 설명한 Eqn.(1)을 objective로 주어진 policy π의 value를 계산하는 과정이다. 이때, 임의의 soft Q-function Q:S×AR 에 대해 다음의 modified Bellman backup operator Tπ 를 적용하면 그 값을 iterative한 방법으로 구할 수 있고, 항상 수렴하게 된다.

TπQ(st,at)r(st,at)+γEst+1p[V(st+1)]

여기서, V(st+1) 는 soft state value function으로, 다음과 같다. 기존에 우리가 알던 standard 형태에 entropy ( logp(x) ) 항을 더한 형태로, policy의 entropy가 높을수록 높은 value를 부여함으로써 exploration을 촉진한다.

V(st+1)=Eatπ[Q(st,at)logπ(at|st)]

[Lemma 1] Soft Policy Evaluation
Consider the soft Bellman backup operator Tπ in Eqn.(2) and a mapping
Q0:S×AR with |A|<, and define Qk+1=TπQk.
Then the sequence Qk will converge to the soft Q-value of π as k.

Policy improvement

이렇게 구한 새로운 Q-function을 사용하여 policy를 update하는 과정이다. 이 때, 여기서는 policy를 실제 사용하기 쉬운 형태로 제한하기 위해 policy set Π를 설정했다. (e.g. parameterized family of distributions such as Gaussians)

πΠ 라는 constraint를 만족시키기 위해 improved policy πΠ 으로 projection한다. 이때, 일반적으로 Kullback-Leibler divergence라는 information projection이 사용된다. 이렇게 구한 πnew는 항상 πold보다 높은 value를 갖는다.

πnew=argminπΠDKL(π(|st)exp(Qπold(st,))Zπold(st))

[Lemma 2] Soft Policy Improvement
Let πoldΠ and let πnew be the optimizer of the minimization problem defined in Eqn.(4).
Then Qπnew(st,at)Qπold(st,at) for all (st,at)S×A with |A|<.

Policy Iteration

전체 soft policy iteration 과정은 evaluation과 improvement를 서로 번갈아 가며 반복하는 것으로, Π 내의 optimal maximum entropy policy로 수렴하게 된다.

[Lemma 3] Soft Policy Iteration
Repeated application of soft policy evaluation and soft policy improvement from any πΠ converges to a policy π such that Qπ(st,at)Qπ(st,at) for all πΠ and (st,at)S×A, assuming |A|<.

하지만 이 과정은 tabular case에 대해서만 정확하게 수행할 수 있으며, function approximation case에 대해서 수행하기 위해서는 그 연산 비용이 너무 높아진다. 따라서, 이를 해결하기 위해 soft actor-critic 방식이 제안되었다.

Soft Actor-Critic

위에서 언급한 바와 같이, large contiunous domain에 대해 학습을 진행하기 위해서는 tabular 방식이 아닌 function approximation 방식을 적용하는게 좋다. SAC는 policy iteration 과정을 evaluation과 improvement의 반복이 아닌 actor-critic 기법을 채용했으며, 다음과 같이 parameterization을 진행한다.

  • State value function :  Vψ(st)
  • Soft Q-function :  Qθ(st,at)
  • Tractable policy :  πϕ(at|st)

Value function의 경우, parameterization을 진행하지 않아도 Eqn.(3)을 통해 추정이 가능하지만, 별도의 parameter를 갖도록 설계할 때 더 효과적이고 안정적인 학습이 가능하다고 한다.

State value function

State value parameter 학습의 objective는 squared residual error를 최소화하는 것이다.

JV(ψ)=EstD[12(Vψ(st)Eatπϕ[Qθ(st,at)logπϕ(at|st)])2]

여기서, D는 이전에 sample된 (state, action) pair들의 distrubution이며, 보통 replay buffer라고 불린다. Eqn.(5)의 gradient는 다음의 unbiased estimator로 추정될 수 있다.

ˆψJV(ψ)=ψVψ(st)(Vψ(st)Qθ(st,at)+logπϕ(at|st))

Soft Q-function

Action value parameter 학습의 objective는 soft Bellman residual를 최소화하는 것이다.

JQ(θ)=E(st,at)D[12(Qθ(st,at)ˆQ(st,at))2]

where,ˆQ(st,at)=r(st,at)+γEst+1p[Vˉψ(st+1)]

Eqn.(7)은 다음의 stochastic gradient를 통해 최적화될 수 있다.

ˆθJQ(θ)=θQθ(st,at)(Qθ(st,at)r(st,at)γVˉψ(st+1))

Tractable Policy

Policy parameter 학습의 objective는 expected KL-divergence를 최소화하는 것이다.

Jπ(ϕ)=EstD[DKL(πϕ(|st)exp(Qθ(st,))Zθ(st))]

Policy의 경우 Jπ를 최소화하는 방법으로 여러가지가 있지만, 여기서는 타겟으로 하는 density가 Q-function이고, 이는 neural network 구조로 되어 있기 때문에 다음의 reparameterization을 진행한다.

at=fϕ(ϵt;st)

이때, ϵt는 어떠한 고정된 distribution에서 sample되는 input noise vector이다. 이와 같이 policy를 neural network output 형태로 표현하면, Eqn.(10)은 아래와 같이 다시 쓸 수 있다.

Jπ(ϕ)=EstD,ϵtN[logπϕ(fϕ(ϵt;st)|st)Qθ(st,(fϕ(ϵt;st))]

즉, πϕfϕ를 통해 implicit하게 정의되며, Eqn.(12)는 다음의 gradient를 통해 최적화된다.

ˆϕJπ(ϕ)=ϕlogπphi(at|st)+(atlogπϕ(at|st)atQ(st,at))ϕfϕ(ϵt;st)

SAC Algorithm

최종적으로, SAC 알고리즘은 아래와 같이 정리되며, positive bias를 피하기 위해 두 개의 Q-function을 사용한다.