[CS231n 14강] Deep Reinforcement Learning

[CS231n 14강] Deep Reinforcement Learning

Tags
AI
CS231n
Published
March 26, 2025
Author
JH
태그
종류
학문 분야

1️⃣ Reinforcement Learning(강화 학습)이란?

notion image
이번 시간에는 Reinforcement Learning(강화 학습)에 대해 배워보도록 하겠다.
강화 학습에는 먼저 에이전트(agent)가 존재하는데, 환경(environment)에서 행동(action)을 취하는 주체이다.
그리고 에이전트는 행동에 따른 적절한 보상(rewards)을 받는다.
강화 학습이란 에이전트의 보상을 최대화할 수 있는 행동이 무엇인지를 학습하는 것이다.

2️⃣ Markov Decision Process

그렇다면 이런 강화학습 문제를 어떻게 수식화할 수 있을까?
우리는 이를 Markov Decision Process를 통해 수식화시킬 수 있다.
MDP는 Markov Property를 만족하는데, 이는 현재 상태만으로 전체 상태를 나타내는 성질이다.
notion image
MDP는 위 사진과 같이 몇 가지 속성으로 정의가 되는데,
  • : 가능한 상태들의 집합
  • : 가능한 행동들의 집합
  • : (state, action) 쌍이 주어졌을 때 받게 되는 보상의 분포
  • : 전이 확률로 (state, action) 쌍이 주어졌을 때 전이될 다음 상태에 대한 분포
  • : Discount Factor로 보상을 받는 시간에 대해서 얼마나 중요하게 생각할 것인지
notion image
MDP가 작동하는 방식을 한번 살펴보면 위 사진과 같다.
우리의 목표는 누적 보상을 최대화하는 정책 를 찾는 것이다.
그렇다면 “MDP에서 발생하는 무작위성(randomness)”를 어떻게 다뤄야 할까?
이를 위해서는 보상의 합에 대한 기댓값을 최대화시키면 된다.
notion image
최적의 정책을 찾는 방법을 다루기 이전에, 앞으로 사용하게 될 몇 가지 정의부터 살펴보자.
💡
Value function : 상태 s와 정책 가 주어졌을 때, 누적 보상의 기댓값
Value function의 수식은 다음과 같다.
notion image
💡
Q-Value function : 상태 s에서 어떤 행동 a를 취하는게 좋은지 알려주는 함수 → 정책 , 행동 a, 상태 s가 주어졌을 때 받을 수 있는 누적 보상의 기댓값
Q-Value function의 수식은 다음과 같다.
notion image
다음으로, 강화 학습에서 중요한 요소 중 하나인 Bellman equation에 대해 알아보자.
Bellman equation이란 현재 state의 value function과 next state의 value function 사이의 관계식을 나타낸 것이다.
우선 최적의 정책으로부터 나온 Q-Value function인 가 있다고 가정해보자.
는 어떤 행동을 취했을 때 미래에 받을 보상의 최대치이기 때문에,
이것을 알게 되면 다음 상태 s’에서도 우리는 최적의 경로를 도출해낼 수 있게 된다.
그렇다면 어떻게 최적의 정책을 구할 수 있을까?
우리가 이 문제를 해결할 수 있는 한 가지 방법은 바로 Value iteration algorithm이다.
반복적인 update를 통해 Bellman equation을 사용하여, 각 스텝마다 를 조금씩 최적화시키는 방법이다.
수학적으로 보면 의 i가 무한대일 때, 최적의 로 수렴하게 된다.
하지만 이 방법에는 문제가 있는데 바로 Scalable하지 않다는 것이다.
반복적으로 업데이트하기 위해서는 모든 Q(s, a)를 계산해야 하기 때문이다.
이를 해결하기 위해, 우리는 Neural Network를 이용해 Q(s, a)를 근사시키는 방법을 사용한다.

3️⃣ Q-Learning

그렇다면 Neural Network를 이용하여 Q(s, a)를 근사시키는 방법을 알아보자.
이러한 방법으로 근사를 시키는 것을 Deep Q-Learning이라고 한다.
notion image
위 슬라이드에서 파란색 화살표로 표시된 는 Neural Network의 가중치에 해당한다.
그렇다면 함수 근사를 이용해서 어떻게 최적의 정책을 찾아낼 수 있을까?
Q-function은 Bellman equation을 만족해야 한다는 점을 명심해야 한다.
notion image
손실 함수는 Q(s, a)가 목적 함수()와 얼마나 멀리 떨어져있는지 측정한다.
여기서 가 바로 앞서 살펴본 Bellman equation이 된다.
Backward Pass 과정에서는 계산한 손실을 기반으로 를 업데이트한다.
notion image
Q-network를 학습시킬 때는, Experience Replay에 대해 알아야 한다.
Experience Replay에서는 Q-network에서 발생할 수 있는 문제들에 대해 다룬다.
Q-network를 학습시킬 때에는 하나의 배치에서 시간적으로 연속적인 샘플들로 학습시키면 좋지 않다.
그 이유는 첫번째로 모든 샘플들이 상관 관계를 가지기 때문이다. (즉, 학습에 아주 비효율적이다.)
그리고 두번째로, 현재 Q-network의 파라미터를 생각해보면 우리가 어떤 행동을 해야할지에 대한 정책을 결정한다는 것은 우리가 다음 샘플들도 결정하게 된다는 의미가 된다.
이는 학습에 좋지 않은 영향을 미친다. (Bad feedback loops)
이를 해결하기 위해 Experience Replay라는 방법을 사용한다.
이 방법은 Replay Memory를 사용하는데, 이에는 (상태, 행동, 보상, 다음 상태)로 구성된 전이 테이블이 있다.
그리고 Replay Memory에서의 임의의 mini-batch를 이용하여 Q-network를 학습시킨다.
이 방식을 통해서 앞서 상관관계(correlation)로 발생하는 문제를 해결할 수 있을 것이다.
Experience Replay를 이용한 Q-learning의 전체 알고리즘을 살펴보면 다음과 같다.
notion image

4️⃣ Policy Gradients

지금까지 Q-learning을 알아봤지만, Q-learning에는 문제가 있다.
그 문제는 바로 Q-function이 너무나도 복잡하다는 것이다.
Q-learning에서는 모든 (state, action) 쌍들을 학습해야만 한다.
그런데 가령, 로봇이 어떤 물체를 손에 쥐는 문제를 생각해보자. 이 경우, 아주 고차원의 상태 공간이 존재할 것이다.
다른 한편으로는 “정책” 자체는 훨씬 더 간단할 수 있다. 간단하게 “손을 움켜쥐는 것” 같이 말이다.
정책(Policy) 자체를 학습시키는 방법이 바로 Policy Gradients이다.
notion image
는 미래에 받을 보상을 누적으로 하여 기댓값을 나타낸 함수이다.
여기서 우리가 하고 싶은 것은 를 최대로 하는 를 찾아내는 것이다.
이 문제를 풀기 위해, Parameter들에 대해 Gradient Ascent를 수행한다.
notion image
조금 더 구체적으로 Reinforce Algorithm에 대해 살펴보자.
수학적으로 보면, 경로에 대한 미래 보상의 기댓값으로 나타낼 수 있다.
이를 위해 경로를 샘플링해야 하는데, 이들은 어떤 정책 를 따라 결정된다.
Gradient Ascent 방법을 사용하기 위해서 미분을 해야 하는데, 미분을 하게 되면 두번째 수식처럼 계산 불가능한 식이 나온다.
따라서 약간의 trick을 써서 식을 경로 에 대한 기댓값의 형식으로 변형해준다.
이로 인해, Gradient를 추정하기 위해 경로들을 Monte Carlo sampling과 같은 기법들을 사용해 샘플링하여 사용할 수 있게 되었다.
notion image
좀 더 식을 자세히 살펴보자. 우리는 과연 전이 확률을 모르는데 를 계산할 수 있을까?
위 사진과 같이 에 대한 성질을 이용해 곱을 합으로 바꿔주게 되면,
결국 정책에 대한 부분만 고려하면 되므로 전이 확률을 구체적으로 몰라도 의 미분 값을 계산할 수 있다.
notion image
지금까지 Gradient 계산을 위해 유도해본 것들을 해석해보자.
어떤 경로로부터 얻은 보상이 크다면, 그 일련의 행동들을 할 확률을 높여준다.
반면 어떤 경로에 대한 보상이 낮다면, 해당 확률들을 낮춘다.
하지만 기댓값에 의해서 이 모든 값들이 Average out 된다는 문제가 있다.
충분히 많은 샘플링을 한다면 Gradient를 이용해서 최적의 parameter 값을 찾아낼 수 있다.
하지만 여기에도 문제가 존재하는데, 바로 분산이 너무 높다는 문제가 발생한다.
일단 보상을 받았으면 해당 경로의 모든 행동들이 좋았다는 정보만 알려주기 때문에, 구체적으로 어떤 행동이 최선이였는지 알지 못한다.
분산을 줄이는 것은 Policy Gradient에서 아주 중요한 분야다.
분산이 줄어들면 샘플링을 적게 해도 좋은 Estimator를 찾을 수 있기 때문이다.
분산을 줄일 수 있는 첫 번째 방법을 소개하자면,
notion image
해당 상태로부터 받을 미래 보상만을 고려하여 어떤 행동을 취할 확률을 키워주는 방법이다.
이 방법은 해당 경로에서 얻을 수 있는 전체 보상을 고려하는 대신, 현재 step에서 종료 시점까지 얻을 수 있는 보상의 합을 고려하는 전략이다.
 
두 번째 방법을 소개하면,
notion image
지연된 보상에 의해서 할인률을 적용하는 것이다.
할인률이 의미하는 것은 바로 받을 보상과 먼 미래에 받을 보상에 대해 구분해 주는 것이다.
분산을 줄이기 위한 세 번째 방법은 Baseline이라는 방법이다.
notion image
경로에서부터 계산한 값을 그대로 사용하는 것은 문제가 있는데, 그 값이 의미있는 값인지 모르기 때문이다.
가령, 보상이 전부 양수이기만 해도 행동들에 대한 확률이 계속 커지기만 할 것이다.
정말 중요한 것은 얻은 보상이 우리가 얻을 것이라고 예상했던 것보다 좋은건지 아닌건지 판단하는 것이다.
Baseline function은 해당 상태에서 우리가 얼마만큼의 보상을 원하는지를 말해준다.
그렇다면 어떻게 Baseline function을 정의할 수 있을까?
가장 간단한 방법은 우리가 지금까지 경험했던 보상들에 대해서 Moving average 값을 취해주는 방법이다.
그렇다면 더 좋은 Baseline function은 어떻게 정의할 수 있을까?
우리는 어떤 행동이 그 상태에서의 기댓값보다 좋은 경우에 그 행동을 수행할 확률이 커지는 것을 원한다.
따라서 앞서 우리가 배웠던 Value function을 이용하여 baseline에 적용해보자.
notion image
현재 행동이 얼마나 좋은 행동이였는지 Q-function과 Value function의 차이를 통해 나타낸다.
그렇다면 우리는 구체적인 Q-functon과 Value function이 무엇인지 알아야 할까?
아니다! 우리는 Policy gradientQ-learning을 조합해서 Training을 시킬 수 있다.
구체적으로 우리는 이 알고리즘을 Actor-Critic Algorithm이라고 부른다.
notion image
Actor는 Policy로 어떤 행동을 취할지를 결정하는 녀석이고,
Critic은 Q-function으로 그 행동이 얼마나 좋았으며 어떤 식으로 조절해 나가야하는지 말해주는 녀석이다.
Critic의 Q-learning은 기존의 방법과는 다르게 모든 (상태, 행동) 쌍에 대해 학습을 하는 것이 아니라, Policy가 정해준 (상태, 행동) 쌍에 대해서만 학습을 시키면 된다.
슬라이드의 맨 아래에 보이는 수식을 Advantage function이라고 하고, 로 정의한다.
Advantage function은 어떤 행동을 했을 때 예상했던 것보다 얼마나 더 큰 보상을 주는지 알려주는 함수이다.
Actor-Critic Algorithm의 pseudo code는 다음과 같다.
notion image
1. 를 초기화시킨다. 2. 현재의 policy를 기반으로 M개의 경로를 샘플링한다. 3. Gradient를 계산한다. 각 경로마다 보상 함수를 계산하고 이용한다. 4. 보상 함수를 이용해서 Gradient Estimator를 계산하고 이를 전부 누적시킨다. 5. 를 학습시키기 위해 가치 함수를 학습시킨다. 가치 함수는 보상 함수와 동치이므로, 가치 함수가 벨만 방정식(Bellman equation)에 근접하도록 학습시킨다. 6. 앞선 단계를 계속 반복한다.
그렇다면 예제를 통한 Reinforce algorithm을 살펴보자.
notion image
RAM(Recurrent Attention Model)은 hard attention과 관련이 있는데,
Hard attention은 Image classification 문제를 푸는데 이미지의 일련의 glimpses만 가지고 예측을 하는 Task이다.
이 문제를 강화학습으로 풀어보자.
  • 상태는 지금까지 관찰한 glimpses
  • 행동은 다음에 어떤 부분을 볼 것인지 결정하는 것
  • 보상은 classification의 성공 유무
여기에서는 상태를 모델링하기 위해서 RNN을 이용한다.
notion image
이번에 배운 강화학습을 한 슬라이드로 정리하면 다음과 같다.
notion image

참고