KKanging

[강화학습] 2. 마르코프 결정 프로세스 본문

인공지능/Reinforcement Learning

[강화학습] 2. 마르코프 결정 프로세스

천방지축 개발자 2024. 5. 5. 20:03
이번 챕터는 강화학습이 풀고자 하는 문제에 대해 좀 더 자세하게 다뤄본다.

강화 학습은 순차적 의사결정 문제를 푸는 방법론이라 얘기했지만, 아직은 추상적이다.
좀 더 MDP 라는 개념을 통해 더 정확하게 표현해보겠다.

1. 마르코프 프로세스 (Markov Process)

위 예제는 아이가 잠이 드는 과정을 마르코프 프로세스로 모델링한 것이다.

위에서 보듯이 각 상태(s)가 정의되어있고 각 상태에서 다른 상태로 전이 될 확률(p)가 있다.
위 예제는 아이가 p 확률로 상태가 1분당 다음 상태로 상태 전이를 하는 예제이다.

마르코프 프로세스를 식으로 표현하면 위와 같다.

상태의 집합과 각 상태에서 다른 상태로 전이되는 확률 행렬로 표현한다.
아이가 잠에 드는 마르코프 프로세스에 대한 S 및 P
전이 확률 행렬 (P) = 상태 s에서 다음 상태 s'에 도착할 확률

마르코프 성질이란

위 예제는 마르코프 프로세스가 무엇인지 어떻게 정의하는지 배웠다.

근데 마르코프라는 이름이 왜 붙었을까

바로 마르코프 성질을 따르기 때문이다
마르코프 성질을 따른다는 것의 정의는

미래는 오로지 현재에 의해 결정된다 이다.

오로지 현재에 의해 결정된다는 것은 현재상태에서 다음 상태로 전이될 때 이전에 여정에 있던
상태들을 생각되지 않는다는 의미이다.

마르코프한 상태와 아닌 상태

 

마르코프한 상태의 예를 보면 체스게임을 생각할 수 있다.

체스게임에서 내가 지금 두는 최적의 수는 이전에 어떻게 뒀던지 상관없다.
그래서 체스게임은 마르코프하다고 할 수 있다.

반면에 운전을 예를 들면 지금 운전하고 있는 이미지만으로는 판단이 어렵다.
내가 이때까지 무슨 속도로 왔다던가 주변에 무슨 차량이 있었다던가 등의
이 이미지만으로는 패달을 밟을지 엑셀을 밟을 지 알 수 없다.
그래서 이 예는 마르코프하다고 하기 힘들다.

그렇다면 상태의 기준을 최근 10초 동안의 사진을 10장을 묶어서 상태로 제공한다면 마르코프한 
상태일까? -> 맞다.
적어도 10초의 사진을 통해 현재 속도와 가속도 주변에 상황등 더 잘 알 수 있어서
전보다 더 마르코프할 수 있다.
아니면 지금 현재에 이미지에 속도와 가속도의 정보를 추가할 수도 있다.
위 과정은 좀 더 마르코프한 상황으로 만들게 하는 과정이다.

따라서 우린 마르코프한 상황과 하지 않은 상황을 잘 구분해야하고
모델링을 할때 단일 상태 정보만으로 정보가 충분하도록 상태를 잘 구성해야한다. 

 

과거의 일들을 무시하고 현재 상황만 고려하는 이유

사건을 단순화하기 위해서 (과거까지 생각하면 데이터가 너무 많음)
계산의 용이성, 수학적 편리성.. 등

2. 마르코프 리워드 프로세스 (MRP)

마르코프 프로세스에서 '보상''시간에 따른 보상의 감가율'의 개념이 추가된 개념이다.

 

방금 보았던 MP에서 빨간색으로 보상 부분이 추가된 것을 볼 수 있다.
위 예제는 누워있으면 아이가 답답해서 -1 일어나 노는 상태면 +1 잠든 상태면 +10을 받고
프로세스가 종료된다.

MRP를 정의하기 위해 SP 뿐 아니라 R(보상함수) 와 감마 (감쇠 인자)가 추가된다.

SPMP와 똑같다.

R(보상 함수) : 어떤 상태 s에 도착했을 때 받게되는 보상을 의미 수식으로 표현하면 다음과 같다.
감쇠 인자 감마 : 0에서 1사이의 숫자이다. 강화 학습에서 미래 얻을 보상에 비해 당장 얻는
보상을 얼마나 더 중요하게 여길 것인지를 나타내는 파라미터이다.

구체적으로 미래에 얻을 보상의 값에 감마가 여러 번 곱해지며 그 값을 작게 만드는 역할을 한다.
  • 에피소드 (감마를 더 자세히 설명)

감마를 더 자세히 설명하기 위해 리턴이라는 개념을 설명하겠다.

하나의 상태 St에 도달하면 Rt라는 보상을 받는다 그럼 S0 부터 해서 종료 상태인 Sr 을 도착할때
보상 Rr을 받게 된다.
이러한 여정을 에피소드라 한다.

- 리턴이란

리턴이란 t시점부터 미래에 받을 감쇠된 보상의 합을 말한다.

현재 타임 스탭이 t라면 그 이후에 발생하는 모든 보상의 값을 더해준다.
즉 더 미래에 발생할 보상일 수록 감마가 여러번 곱해진다.
ex) 자동차 감가율

강화학습의 목적을 다시 말하자면 보상을 최대화하는 것이 아닌 리턴을 최대화하도록 학습하는 것이다
여기서 리턴은 과거를 고려하지 않고 미래의 보상을 통해서 정의된다는 것을 유념해야한다.

감마의 역할

감마가 0에 가까우면 더 먼 미래일 수록 중요하지 않게 되므로 근시적인 에이전트가 된다.

반대로 1에 가깜다면 매우 장기적인 시야를 가지게 된다.

<수학적 편리성>
감마를 1보다 작게 해줌으로써 리턴인 Gt는 유한하게 된다.
이는 한 에피소드의 수가 무한대로 많아져도 그 리턴의 값을 근사적으로 판단할 수 있게된다. 

<미래에 대한 불확실성 반영>
미래에 확률이 무조건 이러날리 없다 그래서 미래에 갈 수록 아무리 좋은 보상이라도 값을
가장 가까운 보상보다 낮추는 것으로 하는 것이다.

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

우리는 그럼 각 상태의 가치는 어떻게 평가할 수 있을까

각 상태의 가치 즉 Value를 평가하기 위해 샘플링을 알아야한다.
  • 에피소드 샘플링
에피소드 샘플링이란 각 상태에 다음 상태에 대해 확률분포가 있고 그 상태로 넘어가면
또 다음 상태로 도달하여 종료 상태에 도달할 것이다

이런 에피소드의 모음을 에피소드의 샘플이라고 한다.
  • 상태 가치 함수
상태 가치함수 v(s) 는 상태 s부터 시작하여 에피소드가 끝날 때까지의 리턴을 계산하라는 뜻이
된다.

만약 에피소드의 수가 무한히 많으면 그 때마다 리턴도 항상 다를 것이다.
해당 에피소드가 발생할 확률과 그때의 리턴 값을 곱해서 더해주어야한다.
하지만 무한히 많거나 한다면 샘플로 얻은 리턴의 평균을 통해 밸류를 근사하여 구한다.

3. 마르코프 결정 프로세스(MDP)

앞서 배웠던 MP와 MRP는 상태 변화가 자동(확률에 의거하여)으로 이루어졌다.
여기에는 행동에 주체랄게 없었다.
하지만 MDP는 MPMRP는 행동의 주체가 등장한다 즉 의사결정의 주체가 나온다.
= 에이전트

MDP 의 정의

기존 인자에 A라는 요소가 추가되었다 A는 액션의 집합이다.

다른 요소들도 의사 결정자의 Action이 추가되어서 조금 의미가 수정되었다.
  • 상태의 집합 S
MP 와 MRP의 S와 의미가 같다 상태의 집합이다.
  • 액션의 집합 A
에이전트가 취할 수 있는 액션들을 모아놓은 것
  • 전이 확률 행렬 P

MDP 의 정의

기존 인자에 A라는 요소가 추가되었다 A는 액션의 집합이다.

다른 요소들도 의사 결정자의 Action이 추가되어서 조금 의미가 수정되었다.
  • 상태의 집합 S
MP 와 MRP의 S와 의미가 같다 상태의 집합이다.
  • 액션의 집합 A
에이전트가 취할 수 있는 액션들을 모아놓은 것
  • 전이 확률 행렬 P
MP와 MRP에서는 s 상태에서 s' 상태로 전이될 확률의 행렬이었는데

MDP에서는 s 상태에서 a 행동을 했을 때 s' 으로 전이 될 확률을 의미한다.

여기서 주의해야할 점은 a행동을 해도 결과가 결정되는 것이 아닌 확률로써 결정된다는 것이다.
ex) 선장과 배와 바람
  • 보상 함수 R
MRP 에서는 상태에 의해 보상이 정해졌는데
MDP에서는 해당 s 에서 특정 행동 a를 했을 때의 보상이다.
  • 감쇠 인자 감마
MRP와 정확히 같은 개념

보면 각 상태마다 같은 행동이라도 보상의 점수가 다른 것을 볼 수 있고,
상태에서 특정 행동을 한다고 해도 확률 상으로 다른 상태로 전이될 수 있다.

우리가 관심있는 것은 어떤 상태에서 어떤 행동을 취해야 보상의 합을 최대로 할 수 있는가 이다.

그것을 강화 학습의 언어를 빌려 표현하자면 정책이라고한다.

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

  • 정책함수
정책 함수란 각 상태에서 어떤 액션을 선택할지 정해주는 함수이다.

아이 잠재우기 모델에서 에이전트가 어머니라면 어머니는 각 상태 즉 아이의 상태에 대해
어떤 행동을 취해야하는 확률을 알려주는 함수이다.

이 정책은 에이전트 안에 존재하고 
최적의 정책을 찾는 것이 강화학습의 궁극적인 목표라고 알 수 있다.

추가로 알면 좋은 것은 정책 함수 이외의 모든 수치는 환경에 해당하는 것이므로
우리가 교정할 수 없다.

하지만 정책은 보상에 따라 정책을 교정해나간다.
  • 상태 가치 함수
MRP에서 가치 함수는 상태에 가치를 평가하고 싶다는 의도였다.

하지만 MDP에서 가치 함수도 비슷하지만 약간으 ㅣ차이가 있다
왜냐하면 액션이 도입되었기 때문

항상 상태의 가치를 판별하고 싶다면 파이가 결정되어야한다.
파이의 의존적이라는 점을 유의해야한다.
  • 액션가치 함수
상태의 가치를 판별한다면 액션의 가치도 판별하면 어떨까?

바로 당장의 행동 선택지의 가치를 판별하면 선택에 도움이 될 것이다.

상태 가치 함수와 상태 액션 가치 함수의 차이점은

바로 해당 액션은 정해졌다는 것이다.

당장의 상태와 그 상태에서의 액션에 대해 가치를 판별한다.
그래서 당장의 액션 이후에 액션은 정책함수에게 맡긴다
따라서 정책함수에도 의존적이고 당장에 상태 S 와 a를 인풋으로 받고
가치를 아웃풋으로 받는다.

4. Prediction 과 Control

MDP가 주어졌을 때 즉 (S,A,P,R,감마) 가 주어졌을 때 우리가 관심 있어 하는 태스크는 크게 2가지이다.

그리드 월드로 예로 들자면 최적의 정책을 다음과 같이 할 수 있을 것이다.

우리는 이처럼 최적 정책 파이*을 따를 때의 가치 함수를 최적 가치 함수라 한다.
v*라고 표기한다.

우리는 강화 학습을 이용해 실생활의 어떤 문제를 MDP 형태로 만들고, 그 MDP의 최적 정책과
최적 가치 함수를 찾아내어 MDP를 푸는 것이 목적이다.