3 분 소요

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

Deep Reinforcement Learning

Recap : Q-Learning

  • 샘플(경험)을 바탕으로, Q(s,a)를 최적 행동 가치 방향으로 업데이트한다.
Q(s,a) 초기화, s  S, a  A(s), Q(terminal-state, ·) = 0
에피소드 반복:
    S 초기화
     스텝 반복:
        Q로부터 유도된 정책(ε-greedy)으로 행동 A 선택
        행동 A 실행, 보상 R과 다음 상태 S' 관찰
        Q(S,A) ← Q(S,A) + α[R + γ max_a Q(S',a) - Q(S,A)]
        S  S'
    S가 종료 상태가 될 때까지
\[Q(S,A) \leftarrow Q(S,A) + \alpha \Bigl[ R + \gamma \max_{a} Q(S',a) - Q(S,A) \Bigr]\]
  • R + γ max_a Q(S',a): “실제로 받은 보상 + 미래에 받을 것으로 예상되는 보상” = 더 정확한 새 추정값(Target)
  • Q(S,A): 현재 추정값

모든 상태에 대한 Q값을 명시적으로 저장하는 것

  • Q 함수 자체를 근사하는 함수를 학습하는 것

Q-Learning 확장의 3 단계

1단계 — Vanilla Q-learning: Q-table

  • Q(s,a)를 상태×행동 크기의 표로 저장
  • 소규모 이산 상태 공간에서만 가능
  • 표 예시: (1,1) 위치에서 left=0, right=0.1, up=0, down=0 등

2단계 — Approximate Q-learning: 선형 가치 함수

  • Q(s,a)를 특징(feature) 벡터와 가중치의 선형 결합으로 근사
  • 수식: Q̂(s,a) = w₁f₁(s,a) + w₂f₂(s,a) + ... + wₙfₙ(s,a)
  • 상태 자체를 저장하지 않고 특징(feature)만 추출해서 가중치를 학습
  • 중간 단계: 저장 공간은 줄었지만 선형 모델의 한계가 있음

3단계 — DQN: 딥 신경망

  • Q(s,a)를 깊은 신경망으로 근사
  • 특징을 사람이 설계할 필요 없이 신경망이 자동으로 학습
  • 이미지 픽셀 같은 고차원 입력도 처리 가능

Deep Q-Network (DQN)

DQN의 정의 : 깊은 신경망을 사용하여 Q값을 근사하는 방법

  • 두 개의 합성곱 층
  • 두 개의 완전 연결층
  • 출력

Q-table vs 신경망 모델

  • Q-table
    • 입력 : 상태 + 행동 두 가지를 같이 넣어야 Q 값 하나 얻음
    • 표의 특정 칸을 찾아보는 방법
  • DQN
    • 입력 : 상태만 넣으면 됨.
    • 출력 : 모든 행동에 대한 Q값을 한 번에 출력

DQN : Algorithm

1. 초기화: 리플레이 메모리 D, Q 신경망 (가중치 θ), 타깃 신경망 Q̂ (가중치 θ = θ)
2. 에피소드 반복 (1부터 M까지):
   3.  타임스텝 반복 (1부터 T까지):
      4. ε-greedy로 행동 선택  실행
      5. 보상과 다음 상태 관찰
      6. 전이 샘플을 메모리 D에 저장
      7. 메모리 D에서 랜덤 미니배치 샘플링
      8. TD 타깃 yⱼ 계산
      9. (yⱼ - Q(φⱼ,aⱼ;θ))²  대해 경사 하강법
      10. C 스텝마다 타깃 네트워크 Q̂ = Q로 리셋

Q-learning에 없는 두 가지 핵심 요소

  • Experience Replay (경험 재생) : 전이 샘플을 메모리에 저장했다가 랜덤으로 꺼내 학습
  • Target Network (타깃 네트워크) : Q라는 별도의 네트워크를 두어 학습 안정성 확보

TD target

  • 에피소드가 종료되는 스텝이라면, 미래 보상이 없으므로 그냥 rj
  • 아직 에피소드가 계속된다면, 타깃 =즉각 보상 + 미래 보상 추정값
\[y_j = \begin{cases} r_j, & \text{if episode terminates at step } j+1 \\[8pt] r_j + \gamma \max_{a'} \hat{Q} \left( \phi_{j+1}, a'; \theta^{-} \right), & \text{otherwise} \end{cases}\]

Q 신경망 업데이트

  • Q-Learning과 동일한 구조
  • 현재 추정값과 타깃의 차이를 줄이는 방향으로 업데이트
\[\text{Perform a gradient descent step on } \left( y_j - Q(\phi_j,a_j;\theta) \right)^2 \text{ with respect to } \theta\]

Reinforcement Learning이 왜 어려울까?

  • Sparse Reward (희소 보상) : 보상이 드물게 주어진 환경에서 탐험만으로 보상을 발견하기 어렵다.
  • Reward Hacking : 의도하지 않은 방식으로 보상을 극대화하는 전략을 학습
  • 학습 불안정성
  • 샘플 비효율성

Course Summary

ChatGPT, Gemini 같은 AI assistant는 도대체 어떻게 훈련되는 걸까?

  • 사람과 대화하듯 답변하는 모델을 만드는 방법

Language Model

  • AI assistant의 근간이 되는 모델
  • 아이디어 : 다음에 올 단어가 무엇일지를 예측하도록 훈련된 모델
    • 예측한 단어와 실제 다음 단어의 차이를 훈련 손실로 계산
    • 그 오차를 줄이는 방향으로 기울기를 이용해 모델 파라미터를 업데이트

두 가지의 문제가 존재

1. 훈련 데이터와 실제 사용 형태가 다르다.

  • 실제 사용자들은 질문 형태로 모델에게 말을 건다. 형태의 차이를 모델이 학습 X

2. 모델은 좋은 답과 나쁜 답을 구분하지 못한다.

  • 다음 단어를 예측할 뿐, 도움이 되는 답의 개념이 없다.

SFT (Supervised Fine-Tuning)

Solution 1. SFT

사람이 직접 질문-답변 쌍 데이터를 만들고, 그 데이터로 이미 사전 훈련된 언어 모델을 추가로 학습하는 과정

  • 형태 불일치 문제는 어느정도 해결 가능
  • 한계 : 비용 ,일반화, 모방의 한계

RLHF (Reinforcement Learning with Human Feedback)

: 인간 피드백을 활용한 강화학습

총 3단계로 구성

  • 데모 데이터 수집 + SFT
    • 사람이 직접 질문-답변 쌍을 만들어 모델을 파인튜닝
  • 비교 데이터 수집 + 보상 모델 훈련
    • 같은 질문에 대해 모델이 여러 답변 생성 후, 사람 레이블러가 이 답변들을 좋은 것부터 나쁜 것 순으로 랭킹을 매긴다.
    • 보상 모델 훈련
  • 강화학습으로 정책(Policy) 최적화

RLHF의 장점

  • 선호도 데이터 수집이 훨씬 쉽다.
  • 사람의 선호를 직접 최적화한다.
    • SFT는 모범 답안 흉내지만, RLHF는 사람이 실제로 좋고 느끼는 답변 생성
  • 순차적 대화에 대응이 가능

태그:

카테고리:

업데이트: