티스토리 뷰

Q1.강화학습의 목표는 무엇일까? => 마르코프 결정과정

  • 주어진 환경에서 어떻게 행동해야 가장 높은 보상을 받을 수 있을지 알아내는 것
  • 주어진 환경 = 상태가치함수 V(s), 행동가치함수 Q(s,a)
  • 구하고자 하는 것 = 어떻게 행동 해야하는지 = 행동 정책 π*

Q2. 환경을 알고 있을 때 최적의 행동정책π* 은 어떻게 구해야 하는가? => 동적계획법

  • 환경을 알고 있을 때 = 상태가치함수 V(s)와, 행동가치함수 Q(s, a)를 알고 있을때 
    • 환경을 안다는 것은, 모든 상태 (S), 상태천이Tensor (P), 어떤 상태에서 행동에 따른 보상 (R) 을 안다는 것이다 
    • 정책평가 = 주어진 행동 정책 π에서 상태가치, 행동가치 계산 Vπ(s), Qπ(s, a) 
    • 정책평가는 [bellman 방정식] 을 통해 수행
    • 정책개선 = 기존보다 더 큰 상태가치와 행동가치를 가지는 새로운 행동 정책 π' 계산
    • 정책반복 = 정책평가 + 정책개선
Bellman 방적식이란?
현재 상태의 가치를 구하는 공식
현재 가치 = 현재상태가 주어졌을 때, 도달할 수 있는 모든 미래의 상태로 부터 얻을 수 있는 보상의 현재가치의 합
행동 가치 = 현재상태와 행동정책이 주어졌을 때, 정책에 따른 행동으로 부터 얻을 수 있는 보상의 현재가치의 합

 

Q3. 환경을 모를때 최적의 행동정책π*은 어떻게 구해야 할까?

=> 몬테카를로, Temporal Difference 추정 = 가치기반 학습

  • 환경을 모른다는 것 = 상태가치함수 V(s)와, 행동가치함수 Q(s, a)를 모른 다는 것
  • 상태가치함수와 행동가치 함수를 추정 => 최적행동정책 구하기    
    • 추정한 환경을 바탕으로 정책 평가
      1. 몬테카를로 정책평가
        • 주어진 행동 정책 π을 통해 Episode마다 모든 상태 탐색
        • V(s) ← V(s) + α(Gt - V(s))
        • V(s) 업데이트를 위해서 Episode에 포함된 모든 상태를 확인
        • 분산이 크다/ 정확도는 높다
      2. Temporal Difference 정책평가
        • V(s) 업데이트를 위해 일부 상태(n-step)만 확인 => Episode의 종결 필요 없음, 편향이 생김, 효율적, 상태변이가 반드시 마르코프 연쇄를 따라야함 
        • 현재 보상 Gt를 계산 할때 미래 상태 중 얼마나 뒤의 상태(n)까지 고려할 것인가에 따라 n-step TD가 결정
        • n-step TD로 구한 미래 보상의 현재가치 합 = TD target => TD target - Gt = TD error
        • 적절한 n을 구하기 위해 => λ(람다) 등장 => 온라인 형태로 만들기 어려움  => 잘 안씀
        • 분산이 적다/ 정확도는 낮다 => n-step이 커질 수록 분산과 정확도 증가
    • 추정한 환경을 바탕으로 정책 개선 
      1. 몬테카를로 Control
        • Greedy한 정책 개선은 새로운 가능성을 없앰 => ε-Greedy => 최적정책에 수렴 X => GLIE 수렴하는 ε
        • 현재의 정책이 아닌 다른 행동 정책을 통해 정책 개선 => off policy MC control 
        • importance sampling 사용 => 분산더 커짐, 구현이 귀찮음 => 잘 안씀
      2. SARSA Control
        • 현재 상태와 미래의 상태만 알면됨 S -> A -> R -> S' -> A' // 그래서 이름이 SARSA
        • 현재의 정책이 아닌 다른 행동 정책을 통해 정책 개선 => off policy TD control (ex, Q-learning)
        • Q-learning은 importance sampling 안씀, 구현 간편 => 하지만 과대평가 성향이 있음

Q4. 상태가치함수와 행동가치함수를 구하지 않고 곧바로 최적정책을 구할 수는 없을까?

  • 환경을 추정하는 가치기반 학습의 문제점 = 행동이 많아지면 계산 어려움/ 확정적 행동
  • 상태가치함수와 행동가치 함수를 추정하지 않고, 최적정책 구하기  => 정책경사(Policy gradient)
  • 정책경사로 최적정책 구하는 일반 과정
    1. 정책(θ)의 성능(좋고, 나쁨)을 판단하는 기준 마련 한다 J(θ)
    2.  J(θ)를 정책 θ에 대해 편미분 => 정책 변화에 따른 가치변화를 구한다 ∇J(θ) = Gt * lnπ(At | St)
    3. 경사 상승/ 경사 하강을 통해 => 보상을 극대화 할 수 있는 θ를 찾는다
  • 정책경사 알고리즘
    • REINFORCE 
      • Gt  ← 미래 보상의 NPV (몬테카를로 방식) => 분산이 크다!!
      • θ ← θ + α[ Gt * lnπ(At | St) ]   (경사상승법)
      • 정상상태 존재에 대한 가정, Bellman 방정식 사용
      • 분산을 줄이기 위한 Tricks 1) baseline 2) Gt의 표준화
    • Actor Critics [정책경사 + 가치기반 학습] 
      • Gt ← 추정된 행동가치 함수Q(s, a)를 통해 계산 => 분산이 크지 않다 
      • θ  θ + α[ Q(s, a) * lnπ(At | St) ]
    • Trajectory REINFORCE
      • 정상상태 존재에 대한 가정, Bellman 방정식 사용 X
      • J(θ) => E[R(τ)] (Tragectory의 기대 보상)
      • ∇J(θ) => E[ Σ∇logπ(At | St) x ΣR(τ)] = Trajection의 확률 x Trajection의 보상
      • 극대화의 의미 = Trajection의 보상이 크다면 해당 Trajection의 발생 확률을 높인다

 

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함