[RL] Markov Process

fine86·2023년 2월 28일

Reinforcement Learning

목록 보기
1/8

해당 글은 강화 학습의 개념 전반에 대해 순차적으로 다룰 예정입니다.

이번 포스팅에서는 가장 기초가 되는 Markov Process에 대해 이야기하겠습니다.

Markov Process

MP는 ‘미래는 오로지 현재의 상태에 의해 결정된다’라는 마르코프 성질에 의거하여 만들어진 프로세스이다.

  • MP는 각각의 상태 ss와 전이 확률 행렬 PssP_{ss'}를 구성 요소로 가진다.
  • 전이 확률 행렬 PssP_{ss'}시점 tt에서 특정 상태 ss인 경우, 다음 시점에 상태 ss'에 도달할 확률을 행렬로 나타낸 것이다.
Pss=P[St+1=sSt=s]P_{ss'}=P[S_{t+1}=s'|S_t=s]

Markov Reward Process (MRP)

MRP는 기존의 Markov Process에 보상 함수 RR과 감쇠 인자 γ\gamma을 추가한 것. 이러한 변화를 통해 기존의 Markov Process의 각 상태마다 Agent에게 보상을 제공하여 보상이 커지는 방향으로 Agent가 동작을 수행하도록 하는 프로세스이다.

  • 이 때, RR은 특정 상태 ss에 도착했을 때 획득할 수 있는 보상의 기댓값에 해당한다.
R=E[RtSt=s]R=E[R_t|S_t=s]
  • 감쇠 인자 γ\gamma는 0과 1 사이의 값을 가지며, 시점이 뒤로 갈수록 RtR_t에 곱해지는 γ\gamma의 수가 늘어나도록 설계되어 있다.
  • 따라서 γ\gamma의 값을 통해 미래 상태에 받을 보상과 비교하여 현재 상태에서 획득하는 보상의 중요도를 얼마나 둘 것인지 정할 수 있는 것이다.

MRP를 사용하기 위해서는 각 상태에 도달했을 때 제공할 보상값을 결정해야 하는데, 이를 위해 해당 상태의 가치가 얼마나 되는지 책정할 필요가 있음.

  • 이러한 가치 측정 과정에서 사용하는 것이 RRγ\gamma를 사용해 계산한 리턴 GtG_t이다.
Gt=Rt+1+γRt+2+γ2Rt+3+...G_t=R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+...
  • 하지만 이 때 한 가지 문제점은 각각의 시점 t,t+1,t+2,...t, t+1, t+2, ...에서 도달할 수 있는 상태가 한 가지로 정해져있지 않다는 점이다.
  • 특정 상태 sas_a에서 sbs_b로 넘어가는 확률이 항상 100%가 아니기 때문에, 무작위하게 결정되는 에피소드들은 각각 서로 다른 리턴을 가지게 되는 것이다.
  • 따라서 이 문제를 해결하기 위해 Episode Sampling을 진행하여 발생할 수 있는 복수의 에피소드들의 샘플들을 획득하여 각 샘플들을 통해 계산한 리턴을 이용하여 해당 상태의 가치를 계산한다.
    • 이러한 과정을 통해 리턴 값을 유추하는 방법론을 Monte-Carlo 접근법이라고 지칭한다.
  • 결과적으로 특정 상태ss의 가치 v(s)v(s)는 아래 수식과 같이 ss 상태에서 획득할 수 있는 리턴의 기댓값으로 정의할 수 있다.
v(s)=E[GtSt=s]v(s)=E[G_t|S_t=s]
  • 이 때, 한 가지 문제점은 MRP의 구조에 따라 발생할 수 있는 에피소드의 수가 무수히 많이 존재할 수 있다는 점이다.
  • 이 문제를 해결하기 위해 발생가능한 모든 샘플이 아닌, 임의로 추출한 일부 샘플들의 리턴 값의 평균을 통해 간략하게 vv를 계산하는 방식을 사용하기도 한다.

Markov Decision Process (MDP)

MDP는 앞서 설명한 MRP에 agent가 동작할 action에 대한 항목을 추가한 프로세스이다.

  • 특정 action이 수행된다 하더라도 다음 시점에 반드시 동일한 상태가 되지는 않으며, 주어진 확률값을 기반으로 넘어갈 상태가 결정된다.
  • 이러한 확률값을 정리한 것이 MDP의 전이 확률 행렬 PssaP^a_{ss'}이다.
  • MDP의 전이 확률 행렬은 기존의 전이 확률 행렬처럼 단순히 ss상태에서 ss'상태로 넘어갈 확률에 대한 행렬이 아닌, 현재 상태가 ss, agent가 선택한 action이 aa인 상황에서 다음 시점에서의 상태가 ss'일 조건부 확률을 의미한다.
Pssa=P[St+1=sSt=s,At=a]P^a_{ss'}=P[S_{t+1}=s'|S_t=s, A_t=a]
  • 마찬가지로, MDP에서의 보상 함수 역시 마찬가지로 기존의 조건부 확률의 조건에 At=aA_t=a의 조건이 추가되는 형태로 변경된다.
Rsa=E[Rt+1St=s,At=a]R^a_s=E[R_{t+1}|S_t=s, A_t=a]

결국 MDP에서는 특정 상태에서 어떤 액션을 선택할 것인지에 대한 고민이 필요했고, 해당 문제를 해결하기 위해 정책 함수 π\pi가 정의되었다.

  • 정책 함수는 특정 상태 ss에서 각각의 액션을 선택할 확률을 의미한다.
π(as)=P[At=aSt=s]\pi(a|s)=P[A_t=a|S_t=s]
  • 특정 상태 ss에서 각 액션의 정책함수의 총합은 반드시 1이 되어야 한다.
  • 주의해야 할 점은 정책 함수가 MDP의 환경이 아닌 에이전트에 종속된 정보라는 것이다.
  • 따라서 한 번 MDP가 생성된 이후로는 변경이 불가능한 전이 확률 행렬 PP와는 다르게, 정책 함수 π\pi는 임의로 변경이 가능하다.
  • 결국, 강화학습은 최종적인 보상이 늘어나는 방향으로 정책 함수를 업데이트하는 과정이라고 볼 수 있다.
  • 또한, MDP에서의 전이 확률 행렬은 특정 상태 ss에서 특정 액션 aa를 선택했을 때, 다음 시점의 상태가 ss'이 될 확률이라 한다면, 정책 함수는 특정 상태 ss에서 액션 aa를 선택할 확률이다. (많이 헷갈릴 예정이니 잘 기억하자.)

MDP도 MRP와 마찬가지로 특정 상태의 가치를 파악하기 위한 가치함수가 존재하는데, 이를 상태 가치 함수라고 부른다.

  • 상태 가치 함수의 기본적인 구성은 MRP의 가치 함수와 동일하나, 액션의 존재가 추가됨으로써 정책 함수 π\pi가 반영되었다.
vπ(s)=Eπ[GtSt=s]v_\pi(s)=E_\pi[G_t|S_t=s]
  • 앞서 언급했듯 정책 함수는 변경이 가능하기 때문에, 상태 가치 함수를 계산할 때에는 정책 함수를 고정하고 계산을 진행한다.

또한, 특정 상태 ss에서 선택 가능한 각각의 액션의 가치를 판단하기 위한 상태-액션 가치 함수도 존재.

  • 이 때, 같은 액션이라 하더라도 현재의 상태에 따라 결과가 달라지기 때문에 상태-액션 가치 함수에서는 상태와 액션을 함께 평가한다.
qπ(s)=Eπ[GtSt=s,At=a]q_\pi(s)=E_\pi[G_t|S_t=s, A_t=a]
  • 결국, 상태 가치 함수와 상태-액션 가치 함수의 차이는 시점 tt에서 수행할 액션을 선택할 것인지 말것인지의 차이라고 볼 수 있을 것이다.

Prediction & Control

해결하고자 하는 상황에 대한 MDP가 만들어지면, 이제는 Prediction과 Control에 대해 고려해야 한다.

  • Prediction : 특정 정책 π\pi가 주어졌을 때, 해당 π**\pi에 기반한 가치를 측정**하는 것.
  • Control : 정책 π\pi 중에서 최종 보상을 최대로 할 수 있는 최적의 정책 π\pi^*(최적 정책)을 탐색하는 것.
    • 결과적으로 획득한 최적 정책 π\pi^*를 사용해 만들어진 가치 함수를 최적 가치 함수 vv^*라고 한다.
  • 결국, 앞으로 이어지는 내용들은 강화학습을 위한 Prediction과 Control 과정을 설명하는 것이다.
profile
좀 더 스마트하게 살고 싶은 리눅스, 로보틱스 개발자

0개의 댓글