[Deep Reinforcement Learning] 21강 Policy Gradient algorithm

Woosci·2025년 7월 25일

👨‍🏫학습목표

오늘은 Policy Gradient algorithmPolicy Gradient Theorem에 대해 배워볼 예정이다.

👨‍🎓강의영상: https://www.youtube.com/watch?v=QoHWaruzGZ4&list=PLvbUC2Zh5oJtYXow4jawpZJ2xBel6vGhC&index=21

1️⃣ Policy Gradient algorithm

📕 DQN의 특징

  • 입력으로 크고 continuous한 state space를 다룰 수 있다.
  • 출력으로는 작고 discrete한 action space만 다룰 수 있다는 한계가 존재한다.
  • Q-value값을 출력하는 Q-Network를 학습하여 policy를 결정한다.
  • 출력된 Q-valueϵ\epsilon-greedy를 적용하여 action을 결정한다.

🔷 Policy Gradient algorithm의 특징

  • Continuous action space까지 다룰 수 있다.
  • Optimal policy직접 학습한다.
  • parametric probability distribution πθ(as)\pi_{\theta}(a|s)를 학습한다.
  • 입력으로 state가 들어오면, action값stochastic하게 출력된다.
  • 출력 노드Action variable 하나를 의미한다
  • 또한 Action 값 자체를 실수값으로 출력할 수 있기 때문에 Continuous한 처리가 가능한다.

🔻 Action space 이해하기

예를 들어 로봇의 다리에 4개의 관절이 있다고 하자.

  • Action : 각 관절의 상태( 3, 2, 1, 1 )( \ 3^{\circ}, \ -2^{\circ},\ 1^{\circ},\ -1^{\circ} \ )
  • Action variable : 각 관절을 의미 → ( v1, v2, v3, v4 )( \ v_1,\ v_2,\ v_3,\ v_4 \ )
  • Action space : 모든 action variable이 가질 수 있는 상태
    • 90vi90-90^\circ \leq v_i \leq 90^\circ → 총 181가지
    • ( v1, v2, v3, v4 )( \ v_1,\ v_2,\ v_3,\ v_4 \ )1814181^4 가지

🔷 Policy Gradient algorithm의 학습

  • Policy Gradient algorithmtotal reward가 커지는 방향으로 학습한다.
  • Trajectory : τ=s0,a0,r1,s1,a1,,sT\tau = s_0, a_0, r_1, s_1, a_1, \dots, s_T
  • Total reward : r(τ)r(\tau)
  • Temporal correlation을 없애기 위한 Experience replay를 사용하지 않는다.
  • Model이 학습하는 데이터 단위하나의 episode이기 때문에 특정 영역만 학습되는 문제가 발생하지 않는다.
Experience Replay에 대한 추가적인 내용은 아래 글에서 확인 가능하다.
📃자료: https://velog.io/@tina1975/Deep-Reinforcement-Learning-17강-DQN-1

🔻 Objective function

J(θ)=Eπθ[r(τ)]=p(τ;θ)r(τ)dτJ(\theta) = \mathbb{E}_{\pi_\theta}[r(\tau)] = \int p(\tau; \theta) r(\tau) d\tau
  • Policy Gradient algorithm에서는 objective function J(θ)J(\theta)를 maximize하는 방향으로 학습한다.
  • Object function을 업데이트 하기 위해서는 기대값에 대한 미분을 해야 한다.
  • 이에 대한 내용은 다음 슬라이드에서 자세히 살펴본다.

🔻 Policy gradient update

θ:=θ+αθJ(θ)\theta := \theta + \alpha \nabla_\theta J(\theta)
  • Maximize를 하기 위해 gradient ascent 방법을 사용한다.
  • α:\alpha: step size로 학습률이라고 생각하면 된다.


2️⃣ Policy Gradient Theorem

🔷 Policy Gradient Theorem

  • Total reward의 expectation에 대한 gradient를 계산하는 공식이다.
θJ(θ)=θEπθ[r(τ)]=Eπθ[r(τ)t=0T1θlogπθ(atst)]\nabla_\theta J(\theta) = \nabla_\theta \mathbb{E}_{\pi_\theta}[r(\tau)] = \mathbb{E}_{\pi_\theta}\left[ r(\tau) \sum_{t=0}^{T-1} \nabla_\theta \log \pi_\theta(a_t | s_t) \right]

🔻 증명과정

Eπ[r(τ)]=π(τ)r(τ)dτ\nabla \mathbb{E}_{\pi}[\text{r}(\tau)] = \nabla \int \pi(\tau) r(\tau) d\tau
  • Expectation을 적분 형태로 변환한다.
  • policy에 대한 expectation이기 때문에 각 total reward가 발생할 확률로 표현된다.

π(τ)r(τ)dτ=π(τ)r(τ)dτ\nabla \int \pi(\tau) r(\tau) d\tau = \int \nabla \pi(\tau) r(\tau) d\tau
  • gradient를 적분값 안으로 넣는다.

π(τ)r(τ)dτ=π(τ)π(τ)π(τ)r(τ)dτ\int \nabla \pi(\tau) r(\tau) d\tau = \int \pi(\tau) \frac{\nabla \pi(\tau)}{\pi(\tau)} r(\tau) d\tau
  • π(τ)\pi(\tau)를 분자 분모에 곱한다.

π(τ)π(τ)π(τ)r(τ)dτ=π(τ)r(τ)logπ(τ)dτ\int \pi(\tau) \frac{\nabla \pi(\tau)}{\pi(\tau)} r(\tau) d\tau = \int \pi(\tau) r(\tau) \nabla \log \pi(\tau) d\tau \\
  • loglog에 대한 미분 공식에 따라 π(τ)π(τ)=logπ(τ)\frac{\nabla \pi(\tau)}{\pi(\tau)} = \nabla \log \pi(\tau) 이 성립한다.

π(τ)r(τ)logπ(τ)dτ=Eπ[r(τ)logπ(τ)]\int \pi(\tau) r(\tau) \nabla \log \pi(\tau) d\tau = \mathbb{E}_{\pi}[r(\tau) \nabla \log \pi(\tau)]
  • 위 적분식은 r(τ)logπ(τ)r(\tau) \nabla \log \pi(\tau)에 대한 기대값으로 표현할 수 있다.

Eπ[r(τ)logπ(τ)]\mathbb{E}_{\pi}[r(\tau) \nabla \log \pi(\tau)]
  • 해당 식에서 π(τ)\pi(\tau)를 조금 더 분해해보자.

π(τ)=p(s0)t=0T1π(atst)p(st+1st,at)\pi(\tau) = p(s_0) \prod_{t=0}^{T-1} \pi(a_t | s_t) p(s_{t+1} | s_t, a_t)
  • Markov property에 따라 위와 같이 분해할 수 있다.
  • 주어진 state sts_t에서 특정 action ata_t를 선택할 확률 p(atst)p(a_t | s_t)은 policy π(atst)\pi(a_t | s_t)로 표현한다.

logπ(τ)=log(p(s0)t=0T1π(atst)p(st+1st,at))\nabla \log \pi(\tau) = \nabla \log \left( p(s_0) \prod_{t=0}^{T-1} \pi(a_t | s_t) p(s_{t+1} | s_t, a_t) \right)
  • 다시 loglog를 씌우면 위와 같다.
  • loglog곱을 합의 연산으로 바꿔준다.

log(p(s0)t=0T1π(atst)p(st+1st,at))=t=0T1logπ(atst).\nabla \log \left( p(s_0) \prod_{t=0}^{T-1} \pi(a_t | s_t) p(s_{t+1} | s_t, a_t) \right) = \sum_{t=0}^{T-1} \nabla \log \pi(a_t | s_t).
  • loglog연산을 통해 Π\Pi\sum으로 바뀐 것을 확인할 수 있다.
  • 이때 \nablapolicy π\pi에 대한 미분이기 때문에 p(s0),p(st+1st,at)p(s_0), p(s_{t+1}|s_t, a_t)는 상수로 취급되어 사라진다.
θJ(θ)=θEπθ[r(τ)]=Eπθ[r(τ)t=0T1θlogπθ(atst)]\nabla_\theta J(\theta) = \nabla_\theta \mathbb{E}_{\pi_\theta}[r(\tau)] = \mathbb{E}_{\pi_\theta}\left[ r(\tau) \sum_{t=0}^{T-1} \nabla_\theta \log \pi_\theta(a_t | s_t) \right]
  • 따라서 위 내용을 종합하면 Policy Gradient Theorem이 증명된다.

🔻 Policy Gradient Theorem의 장점

θJ(θ)=θEπθ[r(τ)]=Eπθ[r(τ)t=0T1θlogπθ(atst)]\nabla_\theta J(\theta) = \nabla_\theta \mathbb{E}_{\pi_\theta}[r(\tau)] = \mathbb{E}_{\pi_\theta}\left[ r(\tau) \sum_{t=0}^{T-1} \nabla_\theta \log \pi_\theta(a_t | s_t) \right]

Objective function J(θ)J(\theta)gradient가 total rewardπθ(atst)\pi_\theta(a_t | s_t)의 곱의 expectation으로 바뀌었다.

  1. State-transition probability에 대한 값몰라도 계산 가능하다.

  2. Expectation은 minibatch 단위로 sampling을 통해 근사한다.

    이때 Objective function J(θ)J(\theta)을 통해 학습하는 대상policy에 대한 파라미터이기 때문에 sample에 사용되는 데이터는 서로 달라도 문제없다.



3️⃣ Policy Gradient Theorem의 이해

🔷 Expectation EE

  • Expectation은 minibatch 개수만큼 trajectory를 수집하여 평균을 통해 구한다.
  • 이러한 방법은 unbiased approximation 이다.
  • 이처럼 Minibatch만큼 데이터를 수집하여 expectation을 구하는 방법을 Markov Chain Monte Carlo (MCMC)라고 한다.

🔷 Total reward r(τ)r(\tau)

θJ(θ)=θEπθ[r(τ)]=Eπθ[r(τ)t=0T1θlogπθ(atst)]\nabla_\theta J(\theta) = \nabla_\theta \mathbb{E}_{\pi_\theta}[r(\tau)] = \mathbb{E}_{\pi_\theta}\left[ r(\tau) \sum_{t=0}^{T-1} \nabla_\theta \log \pi_\theta(a_t | s_t) \right]
  • Total reward는 policy gradient와 직접적인 관련이 없다.
  • 계산된 θlogπθ(atst)\nabla_\theta \log \pi_\theta(a_t | s_t)에 total reward r(τ)r(\tau)를 곱해준다.
  • 이때 total reward r(τ)r(\tau)는 각 step의 reward가 가지고 있는 noise가 누적되기 때문에 variance가 크다.
  • Variance를 줄이기 위해 discounted return GtG_t를 사용할 수 있다.
  • 또한 total reward r(τ)r(\tau)는 과거부터 미래까지 전체 episode를 고려하지만 return은 현재 state에서부터의 reward만 고려한다는 특징이 있다.
  • 이는 과거의 state는 고려하지 않는다는 강화학습의 방향과도 잘 맞다.
  • 따라서 실제로 Objective function J(θ)J(\theta)를 계산할 때는 discounted return GtG_t를 사용한다.
  • 이러한 특징을 가진 policy gradient algorithm이 다음시간에 살펴볼 REINFORCE 모델이다.
Discounted Return GtG_t에 대한 추가적인 내용은 아래 글에서 확인 가능하다.
📃자료: https://velog.io/@tina1975/Deep-Reinforcement-Learning-4강-Reward-and-Policy


4️⃣ 정리

🔷 21강에서 배운 내용은 아래와 같다.

  1. Policy Gradient algorithmcontinuous action space를 처리할 수 있다.
  2. Policy Gradient algorithm의 목적함수는 gradient ascent를 통해 업데이트 된다.
  3. Policy Gradient algorithm은 Policy Gradient Theorem을 통해 미분 가능하다.
  4. Policy Gradient Theorem은 state transition probability 없이 계산 가능하다.
  5. Policy Gradient Theorem의 expectationsampling을 통해 근사 가능하다.
profile
I'm curious about AI

0개의 댓글