Loading [MathJax]/jax/output/CommonHTML/jax.js

강화 학습/바닥부터 배우는 강화 학습

바닥부터 배우는 강화 학습 | 02. 마르코프 결정 프로세스

with-RL 2022. 11. 4. 18:47

'바닥부터 배우는 강화 학습' 2장에는 중요한 기본 개념들을 설명하고 있습니다. 예전에 혼란스러웠던 내용인데 명쾌하게 잘 설명이 돼있습니다. 아래 내용은 공부하면서 핵심 내용을 정리한 것입니다.

참고자료

2.1 마르코프 프로세스 (Markov Process)

◈ 아이가 잠이 드는 마르코프 프로세스

  • 위 그림의 예는 상태의 종류는 총 5가지, 매 1분마다 다음 상태로 상태 전이(state transition)
    s0: 누워있는 상태. 시작 상태
    s1: 일어나서 노는 상태
    s2: 눈을 감은 상태
    s3: 서서히 잠이 오는 상태
    s4: 잠든 상태. 종료 상태(terminal state)
  • Markov Process: MP(S,P)
    상태 집합 S={s0,s1,s2,s3,s4}
        가능한 상태들을 모두 모아놓은 집합
    전이 확률 행렬 Pss=P[St+1=s|St=s]
        상태 s에서 다음 상태 s에 도착할 확률

◈ 마르코프 성질

  • 마르코프 성질(Markov property): 미래는 오로지 현재에 의해 결정된다.
    P[st+1|st]=P[st+1|s1,s2,...,st]
  • 다음 상태 st+1을 계산하려면 현재 상태 st만 주어지면 충분, 이전 상태들(s1,s2,...,st)은 영향을 주지 못함
  • 미래는 오직 현재에 의해 결정되는 것

◈ 마르코프 한 상태

  • 체스 게임의 경우 과거 이력이 아닌 현재 체스 판 상태를 보고 최선의 수를 둬야 함, 마르코프 한 상태
  • 특정 시점의 체스판 사진만 보고도 다음에 어디에 둘지 결정 가능

◈ 마르코프 하지 않은 상태

  • 운전의 경우는 특정 시점의 사진만으로는 다음 행동을 결정할 수 없음, 마르코프 하지 않은 상태
  • 운전의 경우 최근 10초 동안의 사진 10장을 묶어서 상태로 제공한다면 마르코프 한 상태
  • 비디오 게임을 플레이하는 인공지능을 학습시킬 때 st,st1,st2,st2 등 과거 이미지를 함께 상태로 제공, 마르코프 한 상태

2.2 마르코프 리워드 프로세스 (Markov Reward Processes)

마르코프 프로세스에 보상의 개념이 추가되면 마르코프 리워드 프로세스(Markov Reward Process)

◈ 아이가 잠이 드는 MRP

  • Markov Reward Process: MRP(S,P,R,γ)
    상태의 집합 S:
        마르코프 프로세스의 S와 같고 상태의 집합
    전이 확률 행렬 P:
        마르코프 프로세스의 P와 같고 상태 s에서 s으로 갈 확률의 행령
    보상 함수 R:
        어떤 상태 s에 도착했을 때 받게 되는 보상
        R=E[Rt|St=s]
    감쇠 인자 γ: 0에서 1 사이의 숫자
        미래에 얻을 보상에 비해 당장 얻는 보상을 얼마나 더 중요하게 여길 것인지를 나타내는 파라미터

◈ 감쇠된 보상의 합, 리턴

  • 에피소드(episode): s0에서 sT까지 가는 여정
    s0,R0,s1,R1,s2,R2,...,sT,RT
  • 리턴(return): t시점부터 미래에 받을 감쇠된 보상의 합
    Gt=Rt+1+γRt+2+γ2Rt+3+...
  • 엄밀히 말하면 강화 학습은 보상이 아니라 리턴을 최대화하도록 학습

γ는 왜 필요할까?

  • γ=0: 미래의 보상은 모두 0으로 현재의 보상만 생각하는 탐욕적(greedy)인 보상
  • 0<γ<1:여러 번 곱하면 0에 가까워짐, 현재의 보상이 100 스텝 후 받는 보상보다 훨씬 더 큰 값이 됨
  • γ=1: 현재의 보상과 미래의 보상이 동등, 장기적은 시야를 갖는 보상

 

수학적 편리성

  • γ를 1보다 작게 해 줌으로써 리턴 Gt가 무한의 값을 가지는 것을 방지

 

사람의 선호 반영

  • 5년 후에 받는 100만 원 보다는 현재 받는 100만 원을 선호함

 

미래에 대한 불확실성 반영

  • 5년 후에 받을 100만 원에 대한 미래의 가치의 불확실성을 반영

 MRP에서 각 상태의 밸류 평가하기

  • 현재 상태에서 미래에 받을 보상을 기준으로 평가
  • 현재 상태 st의 가치를 평가하기 위해서 현재 상태 st에서 시작하여 리턴 Gt의 기댓값(expectation)을 측정

 에피소드의 샘플링

  • 에피소드: 시작 상태 s0에서 출발하여 종료 상태 st까지 가능 한의 여정
  • 샘플링 (sampling): 매번 에피소드는 다를 수 있으며 각각의 과정이 샘플링, 각 샘플링마다 리턴이 다를 수 있음
  • 많은 경우 실제 확률 분포를 알기 어려우므로 샘플링을 통해 어떤 값을 유추하는 방법을 사용

 상태 가치 함수 (State Value Function)

  • 상태 가치 함수: v(s)=E[Gt|St=s]

2.3 마르코프 결정 프로세스(Markov Decision Process)

마르코프 결정 프로세스(Markov Decision Process)는 순차적 의사 결정의 핵심인 의사결정(decision)에 관한 부분을 포함

 MDP의 정의

  • Markov Decision Process: MDP(S,A,P,R,γ)
    상태의 집합 S:
        가능한 상태의 집합으로 MP, MRP에서의 S와 같음
    액션의 집합 A:
        에이전트가 취할 수 있는 액션들을 모아 놓은 것
        A={앞으로 움직이기,뒤로 움직이기,흙을 채집하기}
    전이 확률 행렬 P:
        MP, MRP에서는 "현재 상태가 s일 때 다음 상태가 s이 될 확률": Pss
        MDP에서는 "현재 상태가 s일 때 에이전트가 액션 a를 선택했을 때 다음 상태가 s이 될 확률"
        Pass=P[St+1=s|St=s,At=a]
    보상 함수 R:
        상태 s에서 액션 a를 선택하면 받는 보상 함수
        Ras=E[Rt+1|St=s,At=a]
    감쇠 인자 γ:
        MRP에서의 감쇠 인자 gamma와 정확히 같음

 아이 재우기 MDP

  • 위 그림의 전이 확률: Pa1s2,s0=0.3,Pa1s2,s1=0.7, 나머지는 모두 전이 확률이 1 (생략)

  • 위 그림은 액션이 1개 늘어나서 복잡해진 MDP

 정책 함수와 2가지 가치 함수

정책 함수

  • 정책 함수(policy function)는 각 상태에서 어떤 액션을 선택할지 정해주는 함수
  • π(a|s)=P[At=a|St=s]
  • 정책 함수는 에이전트 안에 존재
  • 더 큰 보상을 얻기 위해 계속해서 정책을 교정해 나가는 것이 강화 학습

 

상태 가치 함수

  • 상태 가치 함수(state value function): 에이전트의 정책 pi에 따라서 리턴 G이 달라짐

vπ(s)=Eπ[rt+1+γrt+2+γ2rt+3+...|St=s]=Eπ[Gt|St=s]

 

액션 가치 함수

  • 액션 가치 함수(state-action value function): 각 상태에서 액션에 대한 가치 평가

qπ(s,a)=E[Gt|St=s,At=a]

  • 상태 가치 함수 vπ(s)는 상태 s에서 정책 π가 액션을 선택
  • 액션 가치 함수 qπ(s,a)는 상태 s에서 강제로 액션을 선택

2.4 Prediction과 Control

  • Prediction: 정책 π가 주어졌을 때 각 상태의 밸류를 평가하는 문제
  • Control: 최적 정책 π를 찾는 문제, 리턴의 기댓값이 가장 큰 정책 π

  • 위 그림은 모든 상태 s에서 동, 서, 남, 북 액션을 선택할 확률이 25%인 경우
  • 다양한 에피소드(Episode)가 있을 수 있고 각각 리턴이 다름 (아래 예는 s11에서 시작한 경우의 에피소드)
    • s11종료,리턴=1
    • s11s10s14종료,리턴=3
    • s11s7s6s10s11종료,리턴=5

  • 위 그림은 최적 정책 π
  • 최적 가치 함수(optimal value function): 최적 정책 π를 따를 때의 가치 함수 v
  • πv을 찾으면 "이 MDP는 풀렸다"라고 말할 수 있음