5 분 소요

본 포스트는 Stuart Russell 과 Peter Norvig의 Artifical Intelligence : A Modern Approach (4th edition) 의 Reinforcement Learning부분을 다룬다.

Reinforcement Learning

강화학습이란?

강화학습의 출발점 : Atari 게임

The 10 best Atari games

강화학습의 핵심 구조 : Agent(에이전트)Environment(환경)의 상호작용

  • Agent : 두뇌 (의사결정자). 현재 상태를 보고 행동을 결정함
  • Environment : 아타리 게임기, 에이전트의 행동에 반응하여 다음 상태와 보상을 줌.

핵심 목표 : 에이전트가 기대 보상 (Expected Reward)을 최대화하도록 행동을 배운다.

MDP (Markov Decision Process) 복습

  • Value Iteration : 상태의 최적가치 V*(s) 계산 \(V^*(s) = \max_a \sum_{s'} P(s' \mid s,a) \left( R(s,a,s') + \gamma V^*(s') \right)\)

  • Policy Iteration : 최적 정책 π*(s) 계산

Reinforcement Learning Problem : MDP와 구조는 그대로

New twist : T(전이함수)와 R(보상함수)를 사전에 모른다.

예시 2가지

  1. Google DeepMind Atari Agent (2015) : 게임 화면 픽셀만 보고 스스로 Atari 게임을 사람 수준 이상으로 플레이하는 법을 배운다.

  2. OpenAI 로봇 손으로 루빅스 큐브 풀기 (2019) : 환경 모델 없이 수백만 번 시행착오로 학습

![로봇 손으로 루빅큐브 맞추기 OpenAI](data:image/jpeg;base64,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)

강화학습의 2가지 핵심 과제

					Agent
         ↑     ↓
  	Reward      Action
         ↓     ↑
        Environment
          State

1. 가치 함수 추정 (Value Estimation)

  • 환경 모델 (T, R)을 모르는 상태에서 경험을 통해 V(s) 또는 Q(s,a)를 추정해야 한다.

2. 탐험과 활용의 균형 (Exploration vs Exploitation)

  • Exploitation (활용) : 현재 아는 정보에서 최선의 행동을 선택
  • Exploration (탐험) : 아직 안 해본 행동도 시도해서 새 정보 획득

개요

구분 Model-Based Learning Model-Free Learning
방법 T와 R을 먼저 추정하여 MDP 구성 → 풀기 MDP 만들지 않고 경험에서 직접 가치/정책 학습
비유 설명서를 만들어서 공부 설명서 없이 몸으로 부딪혀서 학습
예시 T̂, R̂ 추정 → Value Iteration Monte-Carlo, TD learning

Model-based Learning

핵심 개념 : 경험을 통해 근사 MDP 모델을 만들고, 이를 기존 알고리즘 (Value/Policy Iteration)으로 풀기

Step1. 경험적 MDP 모델 학습

  • (s, a, s') 결과를 빈도 기반으로 카운트
  • 정규화하여 전이확률 T̂ 로 추정
  • 경험할 때마다 R̂(s, a, s') 기록
\[\hat{P}(s' \mid s,a) = \frac{\text{(s,a에서 } s' \text{로 간 횟수)}} {\text{(s,a를 실행한 총 횟수)}}\]

Step 2. 추정된 MDP를 Value Iteration 또는 Policy Iteration으로 풀기 \(E[A] \approx \sum_{a} \hat{P}(a)\, a\)


Model-free Learning

질문 : T와 R을 모를 때, 경험만으로 V(s)를 추정할 수 있을까?

  • 샘플 평균
\[E[A] \approx \frac{1}{N}\sum_{i=1}^{N} a_i\]

T를 몰라도 샘플 평균만으로 기댓값을 추정할 수 있다.

Monte-Carlo Evaluation

Monte-Carlo(MC) 방법 : 반복적 랜덤 샘플링으로 수치적 양을 근사

대표 예시 : 원의 넓이를 구하는 MC 시뮬레이션

  • 정사각형에 점을 무작위로 뿌림
  • 원 안에 들어간 점의 비율로 π 추정
  • 샘플이 많아질수록 정확해짐

What is Monte Carlo Simulation? - GeeksforGeeks

목표 : 정책 π 하에서 각 상태의 가치 계산

방법 : 관찰한 샘플의 평균을 구함

Return G의 정의 : 에피소드 종료까지의 할인된 누적 보상 $$ G_t = r_{t+1}

  • \gamma r_{t+2}
  • \gamma^2 r_{t+3}
  • \cdots
  • \gamma^{T-1-t} r_T $$

MC의 핵심 : 가치 = 그 상태에서 출발한 평균 Return

  1. 정책 π에 따라 행동
  2. 상태 s를 방문할 때마다 에피소드 끝까지의 G 계산
  3. G들의 평균 = V(s)
  • 기본 구현 방법
\[N(s) ← N(s) + 1 (방문 횟수)\] \[S(s) ← S(s) + G (누적 return)\] \[V(s) ← S(s) / N(s) (평균)\]

중복 평균(Incremental Mean) 버전 $$ V(s) \leftarrow V(s)

  • \frac{1}{N(s)} \left( G - V(s) \right) $$

학습률(α) 버전 (실용적으로 더 많이 씀): $$ V(s) \leftarrow V(s)

  • \alpha \left( G - V(s) \right) $$
  • MC의 장단점

장점 : Model-Free (T,R 불필요), 샘플 에피소드만으로 올바른 값에 수렴

단점 : 완전한 에피소드 필요 (끝까지 가야 G 계산 가능), 상태 간 연결 정보를 낭비, 학습 속도가 느림.

이 단점을 해결하는 방법으로 TD (Temporal Difference)

Temporal Difference Evaluation (TD)

Recap : Policy Evaluation

  • 정책 π에 대한 Bellman 기대 방정식:

    • 상태 간 연결 구조를 완전히 활용한다.
    • DP(Dynamic Programming)는 이걸 정확히 계산하지만 T,R이 필요
    \[V^\pi(s) = \sum_{s'} P(s' \mid s,\pi(s)) \Bigl( R(s,\pi(s),s') + \gamma V^\pi(s') \Bigr)\]

    $$

    \mathbb{E} \left[ R(s,\pi(s),s’) + \gamma V^\pi(s’) \right] $$

핵심 질문 : 샘플링으로 같은 목표를 달성할 수 있을까?

MC vs TD

  • MC : V(s) ← V(s) + α(G - V(s))
    • 에피소드 끝까지의 실제 누적 보상
  • TD : V(s) ← V(s) + α(R(s,a,s’) + γV(s’) - V(s))
    • 한 스텝만 가고 V(s’)로 미래 추정
    • 장점 : 매 step마다 가능하고, Non-terminate한 상황에서도 가능
      • 효율성도 좋고, 상태 연결도 활용한다.

TD의 Target \(R(s,a,s′)+γV(s′)\)

  • TD의 핵심 아이디어

    • 기댓값 대신 전이 샘플 하나를 사용해서 업데이트
    \[V^\pi(s) = \mathbb{E} \left[ R(s,\pi(s),s') + \gamma V^\pi(s') \right]\]

Bootstrapping vs Sampling

  • Bootstrapping : 추정값으로 또 다른 추정을 하는가?
    • MC : X, TD / DP(Value/Policy iteration) : O
  • Sampling : 샘플 기반으로 업데이트를 하는가?
    • MC / TD : O, DP : X

Q-learning

V(s)에서 Q(s,a)로 왜 넘어가는가?

Value Iteration \(V^*(s) = \max_a \sum_{s'} P(s' \mid s,a) \Bigl( R(s,a,s') + \gamma V^*(s') \Bigr)\)

Policy Extraction \(\pi^*(s) = \arg\max_a \sum_{s'} P(s' \mid s,a) \Bigl( R(s,a,s') + \gamma V^*(s') \Bigr)\)

  • 이 식을 계산하기 위해서는 **P(s'|s, a)를 알아야 한다.
    • 모델이 필요

해결책 : Q-value 사용 \(Q^*(s,a) = \sum_{s'} P(s' \mid s,a) \left( R(s,a,s') + \gamma \max_{a'} Q^*(s',a') \right)\)

\[\pi^*(s) = \arg\max_a Q^*(s,a) \qquad\]
  • Q를 쓰면 T가 필요 없다.
    • Q(s,a)는 상태 s에서 행동 a를 했을 때 얼마나 좋은가?를 선택하는 것으로
    • 전이 확률과 보상이 이미 Q 값 안에 녹아있다.

Q-Learning 업데이트 공식 : TD Target에서 max(a’)을 쓰느 것이 특징

  • TD의 V(s) 업데이트를 그대로 Q(s,a)에 적용
    • TD(V): V(s) ← V(s) + α[R(s,a,s’) + γV(s’) - V(s)]
    • Q-learning: Q(s,a) ← Q(s,a) + α[Target - Q(s,a)]
      • where Target = R(s,a,s’) + γ max_{a’} Q(s’, a’)
  • 공식 전체
\[Q(s,a) \leftarrow Q(s,a) + \alpha \Bigl[ \underbrace{ R(s,a,s') + \gamma \max_{a'} Q(s',a') }_{\text{TD Target}} - Q(s,a) \Bigr]\]
Q(s,a) ← Q(s,a) + α [ R(s,a,s') + γ max Q(s',a') - Q(s,a) ]
   ↑          ↑      ↑               a'↑               ↑
현재 추정값  현재 추정값  지금 받은    다음 상태에서    현재 추정값
(업데이트 후) (업데이트 전) 즉시 보상   가장 좋은 행동의
                                      Q값 (미래 가치)

Exploration vs Exploitation

순수하게 greedy 하게만 행동하면? (탐험-활용 딜레마)

  • 처음에 좋아보이는 행동만 계속하고, 더 좋은 행동을 영원히 발견 못 할수도 있음.

해결책 : ε-Greedy 탐험 $$ \pi(a \mid s) = \begin{cases} \frac{\varepsilon}{|A|}

  • (1-\varepsilon), & \text{if } a = \arg\max_{a} Q(s,a) \[6pt] \frac{\varepsilon}{|A|}, & \text{otherwise} \end{cases} $$

  • 확률 (1-ε) : 현재 최선의 행동 선택 (Exploitation)
  • 확률 ε : 랜덤 행동 선택 (Exploration)

실용적으로는 초기에 ε를 크게 설정하고, 학습이 진행될수록 점점 줄여나간다.

Q-Learning 알고리즘 전체

Q(s,a) 테이블 초기화 (모두 0으로, terminal 상태는 0 고정)

각 에피소드마다 반복:
    초기 상태 S 설정
    에피소드 각 스텝마다:
        ε-greedy 정책으로 Q에서 행동 A 선택
        행동 A 실행, 보상 R과 다음 상태 S' 관찰
        Q(S,A) ← Q(S,A) + α[R + γ max_a Q(S',a) - Q(S,A)]
        S ← S'
    until S가 terminal 상태

Q-Learning 수렴 정리

  • 정리 (Theorem) : 다음 조건 하에서 Q(s,a) -> Q*(s,a) 수렴

    1. 모든 (s,a)가 무한히 자주 방문됨 (ε-greedy가 이를 보장)

    2. 정책이 greedy 정책에 수렴 \(\lim_{k \to \infty} \pi_k(a \mid s) = \mathbf{1} \left( a = \arg\max_{a'} Q^{\pi_k}(s,a') \right)\)

    3. 학습률 α가 너무 크지도 작지도 않아야 함 \(\sum_{t=0}^{\infty} \alpha_t(s,a) = \infty \qquad \text{(충분히 학습)}\)

      \[\sum_{t=0}^{\infty} \alpha_t^2(s,a) < \infty \qquad \text{(결국 수렴)}\]

왜 근사가 필요한가?

  • 문제 : 상태공간이 너무 크면 Q-table을 만들 수가 없다.

Approximate Q-Learning

해결책 : Q(s,a)를 함수 근사로 표현

  • 선형 Q-함수
\[\hat{Q}(s,a) = w_1 f_1(s,a) + w_2 f_2(s,a) + \cdots + w_n f_n(s,a)\]

예를 들어 팩맨 게임에서:

  • 행동 a를 한 후 가장 가까운 음식까지의 거리
  • 행동 a를 한 후 가장 가까운 유령까지의 거리
    • 배우는 것 : 각 feature들의 가중치
\[w_i \leftarrow w_i + \alpha \Bigl[ \underbrace{ R + \gamma \max_{a'} \hat{Q}(s',a') }_{\text{Target}} - \hat{Q}(s,a) \Bigr] \, f_i(s,a)\]

요약 : 세 가지의 Q-Learning의 비교

  Vanilla Q-learning Approximate Q-learning DQN
표현 방식 Q-table 선형 가치 함수 심층 신경망
상태 공간 소규모 중간 대규모
특징 함수 없음 사람이 설계 자동 학습
![DQN: Deep Q-Networks DevSlem Blog](data:image/png;base64,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)

태그:

카테고리:

업데이트: