센로그

[RL 이론] - 기초 & Markov Decision Process 본문

기타/강화학습

[RL 이론] - 기초 & Markov Decision Process

seeyoun 2023. 6. 3. 18:15

Reinforcement Learning Introduction

동물들을 어떻게 학습을 시켜야 내가 원하는 대로 행동을 잘 해줄까~?

Concept, "어떤 행동의 결과를 강화"하는 것

앉아! 라고 했 때 앉는 행동을 강화시켜서, 앞으론 앉아! 라고 햇을  더 많이 앉도록 만드는 거

Trial-error를 반복하면서 Reinforcement Learning(RL) 을 진행하는 방법을 pleasure-oriented라고 함

 

[용어 정리]

  • Agent
    어떤 environment 내에서 결정도 내리고, 그에 따라 action을 취하는 주체
  • Environment
    Agent인터랙션할 대상. (State들의 집합)
  • State
    Environment에서 현재 상태. 즉, Agent의 어떤 시점에서의 상태나 얻은 정보
  • Action
    Agent가 취하는 행동
  • Reward
    어떤 action에 상응하는 피드백, 보상. 목표 달성에 좋은 액션을 취했으면 좋은 리워드, 그렇지 않으면 안좋은 리워드
  • Policy
    어떤 state에서 action으로 mapping하는 함수. 즉, 이런 상황에서는 이런 행동을 하는 게 좋았던 것 같은데? 하고 agent행동을 결정하는 정책. Deterministic 하기도 하고, Stochastic하기도 함. (Stochastic인 경우 반환값은 확률)
  • Value function
    policy가 주어졌을 때, 이 state(또는 state-action쌍)에서 예상되는 최종 이득(리워드들의 합) 추정하는 함수
    (나올 수 있는 최종 이득의 평균)

RL은, agent environment와 상호작용함으로써 최적의 결정을 하도록 학습시키는 것에 초점을 맞춘다.

agent는 다양한 상황(자신의 sensor로 관찰되는 environment)에서 다양한 action을 하면서 목표를 이루는 방법을 학습함.

 

RL의 목표는, Optimal policy를 학습하는 것이다!

Optimal policy란, 시간이 지남에 따라 누적된 reward들의 평균을 최대화하는 전략을 의미함. (기대되는 return(이득)을 최대화)

 

이 목표를 성취하기 위해서, agent는 다양한 action을 시도하면서 environment를 탐험하고. action을 통한 (reward를 포함한) 결과를 관찰하고. 관찰된 결과를 바탕으로 policy를 조정한다.

 

 

일반적인 RL loop는(RL 과정) 다음과 같다.

  1. 일단 현재 environment가 어떤 상태(state)인지 관찰
  2. 관찰을 바탕으로, policy에 따른 action 결정
  3. 선택된 action 수행함. action을 수행하면 이에따라 environment의 state가 바뀔 것!
  4. action으로 인해 바뀐 state에서의 reward를 받음
  5. 받은 reward와 관찰 정보를 사용해 지식(policy, value function, action-value function 등)을 업데이트함.
  6. 최종 목표 또는 max 스텝까지 반복

 


Finite Markov Decision Process

■ Markov property (마르코프 성질)

미래 상태로의 변화가 과거 상태와는 독립적으로 현재 상태에 의해서만 결정된다!

과거 상태를 전부 고려하는 것과, 오로지 현재 상태만 고려하는 것 동일하도록 함. => 효율성 굿!!!
다른 의미로, 과거를 잊어버려 memoryless 한 성질이라 함.

 

 

ex) 체스에서, 이번 행동을 하기 위해서 지금까지의 모든 상태를 알 필요는 없다.

현재 상태만 고려해서 결정하는거나, 이전 상태를 모두 고려해서 결정하는 거나 똑같음!

 

■ Markov Decision Process

MDPMarkov property의 개념을 사용한 모델임.

RL 을 사용한 환경은 종종 finite MDP로 정의된다.

RL에서 state 혹은 environment, action 등을 결정하기 위해서 MDP라는 프레임워크를 많이

 

< MDP의 구조 >

MDP는 4-tuple 형식으로 생김. (S, A, P, R)

S =  state들의 집합. (s0, s1, ... , sn) 

A = action들의 집합. (a0, a1, ..., an)

즉, state s에서 action a를 했을 때, s`으로 갈 확률

 

state s 에서 action a를 취해서 s`으로 갔을 때, 내가 부여받는 즉각적인 reward

s0에서 a0라는 action을 했을 때, 전이확률 P_a0(s0, s2) = 0.5이고, 전이확률 P_a0(s0, s0) = 0.5이다.

s2에서 a1이라는 action을 했을 때, 전이확률 P_a1(s2, s1) = 0.3이고, reward R_a1(s2, s0) = -1이다.

 

 

< MDP의 목표 >

Cumulative Rewards를 최대화하는 Optimal policy function을 찾는 것.

 

MDP에서, agent와 environment는 목표에 도달할 때까지 다음을 반복한다.

  • 각 time step t에서 agent는 environment로부터 s_t를 받는다. 
  • s_t에 기반해, agent는 a_t를 선택한다. 
  • s_t+1로 상태가 전이되고, agent는 R_t+1을 받는다.
  • 이런 식으로 반복한다. S₁, A₁, R₂, S₂, A₂, R₃, S₃, A₃, R₄, ...

 

 

finite MDP에서는, state들, action들, reward들이 한정되어있다고 가정한다.

이때 reward와 state는, 바로 직전의 state와 action에 의해서만 영향을 받는다!

 

P는, s와 a의 각 선택에 대한 확률 분포를 지정함

s라는 상태에서 a를 해서 s`이라는 상태로 넘어갈 확률을 모두 더하면, 1

 

 

더보기

※ 이를 기반으로 활용할 수 있는 함수들을 살펴보자.

 

네개의 argument (s`, r, s, a)를 기반으로 해서 dynamic function들찾을거야!

로 부터, 다음 식들 유도하기. 

expectation 하나를 지울때마다 시그마가 들어감! 지운 하나를 얻기 위한 게 필요하니까

 

  • s에서 a를 했을 때 s`으로 넘어갈 확률

s에서 a를 한다고 해서, 무조건 같은 s`으로 가는 것은 아님. stochastic policy라면 다른 s`으로 갈 수도 있음.

 

  • s에서 a를 함으로써 기대되는 rewards

 

따라서 다른 s`로 갈 확률과, 이때 다른 reward를 받을 확률을 다 고려한 것.

 

  • s에서 a를 함으로써 s`로 넘어왔을때, 기대되는 rewards

s에서 a를 해서 s`으로 넘어왔다고 해서, 무조건 같은 reward를 받는다는 보장은 없다. 

 

예시)

모바일 로봇은 사무실 환경에서 빈 캔을 수집하는 업무를 담당합니다. 로봇은 캔을 감지하기 위한 센서와, 캔을 집고 내부 용기에 넣을 수 있는 팔과 그리퍼를 가지고 있으며, 재충전 가능한 배터리로 작동합니다. 배터리의 현재 충전 수준을 기반으로 간단한 수준의 의사결정을 내릴 수 있는 강화학습 기반의 로봇이 캔을 탐색하는 방법에 대해 결정한다고 하자.


• 로봇의 배터리 충전 상태: S = {high, low}
• 로봇의 action A(high) = {search, wait} 이고, A(low) = {search, wait, recharge}
• reward는 보통 0이고, 로봇이 빈 캔을 찾으면 r=1, 배터리가 죽으면 -3
• 배터리 상태가 high일 때, 탐색 동안 에너지 수준이 높은 상태를 유지할 확률은 𝑎이고, 낮은 상태로 감소시킬 확률은 1-𝑎입니다.
• 배터리 상태가 low일 때, 수행되는 탐색 기간은 낮은 상태를 유지할 확률이 𝛽이고, 배터리를 고갈시킬 확률은 1-𝛽입니다.
• 로봇이 수집할 것으로 예상되는 캔의 평균 개수(기대 보상)를 r이라 할 때, r_search>r_wait 이다. 이때 다음과 같다

 


Markov Property and State Design

사실, 마르코프 성질이 잘 지켜졌다 라는 걸 증명할 방법은 없음! 따라서 대충 가정해서 풂.

 

하지만, 현실의 모든 문제가 markov property 를 만족하지는 않는다.
따라서, state를 정의할 때, markov property 를 띄도록 어떤 시간적 의미를 state 에 넣는 경우가 많음!

 

(여러 프레임을 넣거나, 속/가속도 등의 시간 속성이 포함된 정보를 state 에 포함시키는 방식을 취함.)

 

ex) 

이 그림만 보고는 마리오가 위/아래 어디로갈지, 굼바가 왼쪽/오른쪽 어디로갈지... 판단 못함. 

이런걸 추측하기 위해서는 이전 스테이트에 대한 정보가 필요함

쉽게말해, 만약 state에 마리오의 속도, 마리오의 가속도가 포함되어있다면, 이번 state만 보고도 마리오가 어디로 가고있는지 알 수 있을 것!

이는 이전 state직접 참조했다는 게 아니라, 이번 state포함했다는. use가 아니라, include.

따라서 마르코프 성질 여전히 만족함ㅇㅇ

 

이처럼 state를 어떻게 디자인하느냐에 따라 다르므로, state를 잘 디지안해야 한다~

 


◆ MDP - Goals and Rewards

 

< MDP의 목표 >

: Cumulative Rewards를 Maximize하는 optimal policy를 찾는 것

몇번 언급했다시피, Reward는 agent가 수행한 action에 따라, environment로부터 받는 feedback 값.(실수 범위)

로봇 예시에서, 대부분 Reward로 0을 받다가, 캔을 수집할 때마다 Reward로 +1을 받음.

만약 로봇이 끊임없이 움직이기를 원한다면, 우리는 로봇이 움직이지 않을 때마다 Reward로 -1을 주면 됨.

 

우리는 agent가 우리의 목표 달성을 위한 행동을 잘 할때 reward를 줘야함. 우리가 설정하는 보상이 우리가 달성하고자 하는 바를 정확히 나타내도록 하는 것이 매우 중요함. reward는 에이전트에게 우리가 "어떤 것"을 달성하기를 원하는지를 전달하는 방법이지, 그것이 "어떻게" 달성되는지에 대한 것이 아님!

 

  • MDP는 Marcov Property를 기반으로 고안된 모델이다.
  • MDP란 강화학습에서 환경이 모두 관측가능한 상황을 의미한다.
  • 거의 모든 강화학습 문제들은 MDP 형태로 만들어 풀 수 있다.

 


◆ MDP - Returns and Episodes

■ Return

reward들의 총합.

agent는 return의 기댓값을 최대화하기위한 방식으로 학습한다.

 

■ Episode

 actions, states, rewards들의 모음.

하나의 사례~ 같은 느낌.

episode마다 return이 하나씩 있을것임!

 


◆ MDP - Return Discounting

Discount Factor (𝛾)라는 개념이 있다.

0~1사이의 값으로, discounting하는 정도를 나타낸다. 즉, 미래의 값을 얼마나 중요하게 고려할거냐?의 측면

 

0~1사이이므로, 크기가 작거나 제곱될수록 더 작아짐

따라서 높은 discount factor을 쓰면, 그래도 좀 더 미래를 고려하겠다 라는 뜻이고,

낮은 discount factor을 쓰면 단기 보상에 집중하겠다는 것. (0이면, 현재의 reward만 고려한다는 것~)

 

또, 만약 G가 무한한 항들의 합으로 이루어져있다고 해도, 𝛾를 통해 유한한 맥락 안에서 G를 결정할 수 있다는 점!

 

 

< 𝛾을 쓰는 이유 >

✓모델링의 불확실성: 미래 보상을 discount함으로써, 미래 결과를 정확하게 추정하는 능력의 불확실성을 모델링하는 데 도움이 될 수 있습니다. 즉,  미래 보상을 discount함으로써, 미래로 갈수록 예측이 더 불확실해지는 것을 고려할 수 있음

✓ 빠른 수렴: optimal policy을 학습할 때 discounting은 agent가 더 즉각적인 reward에 집중하고 더 빠르게 해결책에 수렴할 수 있도록 도와줄 수 있습니다.

✓ 유한한 작업: 무한하거나 매우 긴 시간 범위를 갖는 작업에서 discounting을 통해 누적 rewards가 유한하게 유지되고 학습 과정에서 잠재적인 문제를 방지할 수 있도록 해줍니다.

 

더보기

< 𝛾을 안쓴다면? >

 장기적 결과를 과도하게 강조: 에이전트는 즉각적인 보상을 희생하고 장기적인 이점을 갖는 행동을 우선시할 수 있으며, 이는 최적의action을 방해할 수 있는 부적절한 행동으로 이어질 수 있습니다.

느린 수렴: 에이전트는 장기적 결과를 즉각적인 결과와 동일하게 중요하게 고려하기 때문에, optimal policy를 학습하는 데 더 오랜 시간이 걸릴 수 있습니다.

무한한 Return: 무한하거나 매우 긴 시간 범위를 갖는 작업에서는 누적 rewards가 무한해질 수 있으므로 서로 다른 정책을 효과적으로 비교하기 어려울 수 있습니다.

 

T = ∞ 이거나 𝛾 = 1일 가능성을 고려해서, discount factor을 사용한 return의 일반적인 형식은 다음과 같이 쓴다.

 


◆ MDP - Return Discounting 예시

cartpole 문제를 보자.

이 문제의 목표는, cart 위에 세워진 막대기(pole)가 넘어지지 않도록 하는 방향으로 cart를 이리저리 움직이는 것을 학습시키는 것이다.

 

< 실패 조건 >

• 실패 1: pole이 수직으로부터 주어진 각도 이상으로 넘어지는 경우.

• 실패 2: cart가 레일에서 벗어나는 경우.(주어진 정도 이상으로 이동한 경우)

• 실패 후: 각 실패 후에 pole은 수직으로 재설정됩니다.

 

방법 1. < episode 형식으로 디자인하기 >

• 카트는 여러 episode 동안 pole의 균형을 유지하려고 시도합니다.

• 이 경우, 실패가 발생하지 않은 각 time step마다 보상을 +1로 설정할 수 있습니다.

• 각 시간마다의 return은 실패가 발생할 때까지 걸린 step 수입니다.

• 영원히 균형을 유지하는 성공은 무한한 return을 의미합니다.

 

방법 2. < Task Counting 형식으로 디자인하기 > 

 이 경우, 각 실패 시에는 reward를 -1로 설정하고 다른 시간들에는 0으로 설정할 수 있습니다.

• 각 시간마다의 return은 -𝛾^k와 관련이 있을 것입니다. 여기서 k는 실패하기 직전까지의 timestep 수입니다. 

즉, 실패시까지 k를 계속 증가시키다가, 실패하면 지금까지 버틴만큼 reward 주고 초기화.

 


◆ MDP - Polices and Value Function

■ policy

environment안에서 agent의 action을 규정하는 규칙이나 전략을 의미함.

 

두 유형의 policy가 있다.

  • Deterministic policy : s 상황에서 a가 나옴.
    a = π(s)
  • Stochastic policy : s상황에서 a를 할 확률 P가 나옴.
    P(a|s) = π(a|s)

 

■ Value functions

value function은 (정책 π를 따를 때) 주어진 state 혹은 state-action 쌍에서 agent가 받을 것으로 기대되는 누적 rewards (return)을 추정하는 데 사용됩니다. 이는 agent가 state나 action의 바람직함을 평가하여, 누적 rewards를 최대화하기 위해 의사 결정을 하는 데 도움을 줍니다. 

 

두 유형의 value function이 있다.

  • State-value function (V) : 현재 state 자체의 value를 평가하는 함수. 즉, 현재 state에서 기대되는 return값
    vπ(s)

  • Action-value function (Q) : 현재 state에서, action a를 했을 때의 value를 평가하는 함수. 즉, 현재 state에서 어떤 action을 했을 때 기대되는 return 값
    qπ(s,a)

 


◆ MDP - Value Function

agent의 경험은 시간이 지남에 따라 environment과 상호작용하는 과정에서 만나는 state, action 및 reward의 연속으로부터 얻어집니다. agent는 action의 결과로 인한 상태 간 transition와 reward을 관찰함으로써, value function의 추정치를 점진적으로 업데이트하여 실제 값에 가까워질 수 있습니다. value function을 추정하기 위한 몇 가지 인기있는 방법에는 Monte Carlo, Temporal Difference 등이 있습니다.

 

■ Monte Carlo (MC) method

경험적 방법.

value function을 추정하기 위해, 여러 episode들로부터 관찰된 실제 return의 평균값을 활용하는 방법.

 

완결된 episode가 필요하고, episode 형식으로 디자인된 task가 필요하다.

때문에, stateaction이 너무 많으면 MC를 사용하는 건 비효율적!!

 


◆ Bellman Equation

 벨만 방정식은 Value Function들을 관장하는 방정식이라 볼 수 있다.
벨만 방정식을 이용해 MDP에서 Value Function을 풀 수 있음!

 V(s) V(s+1), Q(s) Q(s+1)의 관계를 설명한 것이다.

이런 식!

 

 벨만 방정식에 의해, s에서의 상태 가치함수 V(s) = E [Rt+1 + γV (St+1) |  St  = s]라 할 수 있다.
즉, t시점에 s에서의 상태 가치함수 V(s) = ( t+1시점에서의 Reward + γ*(t+1시점에서의 Return) )의 평균이라는 것

위 식에따라 이를 풀어서, 현재 상태 s에서의 가치를 구할 수 있다~

 

 

■ Bellman Equation - Backup diagram

다이어그램 형식으로, 가치를 파악하기 위한 과정을 이해해보자.

 

 열린 원: state

 채워진 원: state-action 쌍.

 

• 상태 s에서 시작하여 위쪽에 있는 root 노드로부터, agent는 정책 π에 기반하여 몇몇 action 중 하나를 선택할 수 있습니다 (그림에서 세 개의 선택가능한 action이 있음).

• 각각의 action에 대해, environment은 다양한 다음 상태 s′ (그림에서 각각 2개의 state가 표시됨)와 해당 state에서의 reward r을 dynamic function p(확률)에 따라 제공합니다.

• 벨만 방정식은 각 상태가 발생할 가능성을 그 상태가 발생할 확률에 따라 가중치를 부여하여 평균화합니다.

• 시작 상태에서의 가치 = 다음 상태에서의 가치+이번 행동으로 예상되는 보상

 


◆ MDP - Optimal Policies and Value Function

모든 state에서, 다른 모든 정책 π`보다 좋은 π optimal policy라고 함.

즉, 다른 π들보다 항상 return의 기댓값이 높은 정책을 의미함.

이런 optimal policy π π*라고 쓰고, [파이 스타]라고 읽음

 

state value function vπ(s)에 π*를 적용하면, optimal state value function vπ*(s)가 나옴

action value function qπ(s,a)에 π*를 적용하면, optimal action value function qπ*(s,a)가 나옴

 

이 함수는 상태 s에서 액션 a를 취하고 이후 optimal policy을 따를 때 기대되는 return값을 제공함.

 


◆ Finding Optimal policies and Value function...

optimal policy와 value function을 찾는 것은 어렵다.

왜냐하면..

High computational complexity (계산 복잡도가 높음)

  • 환경의 동적 모델이 완전하고 정확하더라도, 벨만 최적 방정식을 해결하여 최적 정책을 간단히 계산하는 것은 일반적으로 불가능합니다.
  • 계산량은 항상 충분하지 않습니다.

Memory shortage (메모리 부족)

  • 가치 함수, 정책 및 모델의 근사값을 구축하기 위해 종종 대량의 메모리가 필요합니다.
  • 작은 작업에서는 각 state(또는 state-action 쌍)에 대한 array이나 table을 사용해서 풀 수 있음.
  • 그러나 많은 실제 문제들은 state와 action 개수가 많아져서 풀기가 어려워짐

Partial observability (부분 관측성)

  • 일부 환경에서는 에이전트가 환경의 상태에 대해 완전한 정보를 가지지 못하고 부분 관측성이 발생할 수 있습니다.
  • 우리가 어떤 environment를 다 알고 있는(fully observed) 상황은 거의 없다.
  • 이로 인해 value function을 추정하는 것이 어려워지며, agent는 관측된 정보로부터 environment의 숨겨진 측면을 추론해야 합니다.
  • 부분 관측 가능한 마르코프 결정 과정 (POMDPs) 및 순환 신경망 (RNN)과 같은 방법을 사용하여 부분 관측성을 처리할 수 있습니다. (다는 모르니까. 현재 내가 관찰한 것들만을 기반으로 탐험하는걸  POMDP라고 부름~)

'기타 > 강화학습' 카테고리의 다른 글

[RL 이론] - Dynamic Programming  (0) 2023.06.05
[RL 실습] Frozen Lake  (0) 2023.05.23
[RL 이론] - 개념 정리  (0) 2023.01.01
Comments