냥냥펀치데스
BAO_BAO
냥냥펀치데스
  • 분류 전체보기
    • AI 공부
      • AI 끄적
      • ML 끄적
      • DL 끄적
      • 데이터 끄적
      • RL 끄적
      • GAN 끄적
    • 끄적이기
      • etc
      • 독서
    • 컴퓨터 공부
      • 운영체제
      • ADsP 공부
      • 파이썬 공부
      • etc
    • 코딩공부
      • 문제 풀이
    • 금융공학
      • BackTrader 공부
      • etc
      • 논문구현
      • 퀀트 투자 공부
      • 전략 연습
    • 블록체인
      • ICO 분석
      • etc

인기 글

최근 글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
냥냥펀치데스

BAO_BAO

강화학습 겉햙기(2)[마르코프 결정 프로세스]
AI 공부/RL 끄적

강화학습 겉햙기(2)[마르코프 결정 프로세스]

2021. 5. 19. 17:50
728x90

이번에는 강화학습이 풀고자 하는 문제에 대해 다뤄보도록 하겠습니다.

전 포스트에 설명드린 순차적 의사결정은 조금 추상적입니다. 이를 MDP(Markov Decision Process)를 통해 다뤄보도록 하겠습니다.

그림 1

그림 1에서 보이는 것은 예시로 든 저의 오늘 행동 프로세스 입니다.

여기서 제가 할수 있는 행동은 총 5가지로 웹서핑, 연구, 독서, 과외, 취침이 있습니다.

여기서 저는 해당상테에서 1분씩 머무르게 됩니다. 그 후에 다음 상태로 상태 전이를 합니다.

여기서 보이는 숫자들은 확률로써 예로 들자면 제가 웹서핑을 한후에 연구를 할 확률 50%, 독서를 할 확률 20%,

다시 웹서핑을 할 확률이 30% 입니다.

이러한 프로세스를 정의하기 위해서는 어떤 요소들이 필요할까요?

 

● 상태의 집합 S : 가능한 모든 상태들의 집합 S = {웹서핑, 연구, 독서, 과외, 취침}

● 전이 확률 행렬 P : 상태 Xn-1에서 다음 상태 Xn 에 도착할 확률을 가르킵니다

이것을 행렬로 표현하자면 밑의 그림과 같이 표현할수 있고 이것을 전이 확률 행렬이라고 합니다

  웹서핑 연구 독서 과외 취침
웹서핑 0.3 0.5 0.2    
연구 0.4   0.3 0.3  
독서   0.6     0.4
과외     0.3   0.7
취침          

 

마르코프의 성질 : 미래는 오로지 현재에 의해 결정된다

● 마르코프한 상태 : 체스 판의 상태처럼 어느시점 t 에 사진을 찍어서 사진만 보여주면 손쉽게 둘수있는 상태

● 마르코프하지 않은 상태 : 운전하고 있는 운전자의 상태처럼 어느시점 t 가 아닌 t-1,t-2,t-3 의 과거 이미지를 엮어야지 가능한 상태

 

마르코프의 리워드 프로세스(MRP) : 마르코프 프로세스에 보상의 개념이 추가

  웹서핑 연구 독서 과외 취침
웹서핑 0.3 , R=+1 0.5, R=-2 0.2,R=-1 R=+0 R=+10
연구 0.4   0.3 0.3  
독서   0.6     0.4
과외     0.3   0.7
취침          

웹서핑을 한 후에 웹서핑을 하면 당장 재미있기 때문에 + 1 을 획득하고, 웹서핑을 한 후에 연구를 하면 답답하기 때문에 -2 점을 획닥합니다. 이전에 마르코프 프로세스는 상태의 집합 S 와 확률 행렬 P 로 정의 하였다면,

MRP 를 정의하기 위해서는 R(보상 함수)과 γ(감쇠 인자)라는 2가지 요소가 추가로 필요합니다

● 보상 함수 R : R or v(s)은 어떤 상태 s에 도착했을때 받게 되는 보상을 의미합니다

● 감쇠인자 γ : γ는 0에서 1 사이의 숫자입니다. 강화 학습에서 미래 얻을 보상에 비해 당장 얻는 보상을 얼마나 중요하게 여길 것인지를 나타내는 파라미터입니다.

이 감쇠를 설명하기 위해서 리턴이라는 개념이 필요하고 이 리턴은 무엇인지 설명하도록 하겠습니다.

 

MRP 는 MP 와 다르게 상태가 바뀔때 마다 보상을 얻습니다 .

이에 보상과 감쇠가 추가된 여정을 밑의 그림처럼 표현할수 있습니다

이에 감쇠가 1에 가까울수록 미래보상을 더 중요한거고 0에 가까울수록 현재보상이 더 중요한 것입니다.

이렇게 리턴을 측정한다고 하였을때 각 상태의 밸류를 어떻게 평가해야 할까요? 정답은 바로 리턴의 기댓값을 사용하는것입니다. 이에 한 여정을 샘플링 하는 개념 즉 에피소드의 샘플링에 대해서 알아보고 넘어가도록 하겠습니다.

 

에피소드의 샘플링 : 마르코프 프로세스는 각 움직임을 확률로써 표현하기 때문에 움직일수도, 움직이지 않을수도 있습니다. 이에 따라 리턴값도 달라지는데요. 이렇게 매번 달라지는 에피소드의 상태를 가져오는것을 에피소드의 샘플링 이라 하고 이에 따라 리턴이 달라집니다.

그럼으로 우린 실제 확률분포에 근접한 데이터를 샘플링 해야하며 이 방법론을 Monte - Carlo 접근법이라고 부릅니다.

 

● 상태 가치 함수

이제 각 상태의 밸류를 어떻게 평가할것인지 알아보도록 하겠습니다. 이 방법은 우리는 상태 가치 함수 하고 상태를 아웃풋으로 출력하도록 합니다. 어떤 상태 s 의 벨류 v(s) 는 기댓값을 허용하여 정의합니다.

미래에 얻을 리턴(Gt) 를 통해 가치를 측정합니다

EX)

웹서핑 연구 독서 과외 취침 결과
 + 1 -2  * 0.9 -1 * 0.92 0 * 0.93 10 * 0.94  5.21

결국 우리가 찾고자 하는것은 각 상태 s 에 따라 어떤 액션 a 를 선택해야 보상의 합을 최대로 할수 있는가 입니다.

이것을 정책이라고 합니다

 

마르코프의 결정 프로세스(MDP) : MP, MRP 에서는 미리 정해진 확률에 따라 정해진 과정이였다면 , MDP 는 의사결정 즉 정책을 내릴수 있습니다

MDP 정의 : MDP = (S,A,P,R,γ)

● 액션의 집합 A : MDP에서 새롭게 추가된 항목이며, 에이전트가 취할수 있는 액션들을 모아놓은 것입니다.

예로 (웹서핑,연구,독서) 이렇게 3개의 액션이 존재한다면 A = {웹서핑,연구,독서} 가 됩니다

 

액션이 주어졌다면 , 각 상태에서 어떤 액션을 선택할지 정해주는게 필요합니다. 이것을 정책 혹은 정책 함수라 합니다.  

상태 s 에서 액션 a 를 선택할 확률

예를 들어 웹서핑상태(s0)에서 선택할수 있는 액션은 웹서핑(a0),연구(a1),독서(a2) 3가지 입니다.

이 각각에 대해 얼마만큼의 확률을 부여할지를 정책함수가 결정합니다

 𝝅(a0 | s0) = 0.3 , 𝝅(a1 | s0) = 0.5, 𝝅(a2 | s0) = 0.2

각 상태에서 할수있는 모든 액션의 확률 값을 더하면 1이 되어야 합니다.

한가지 헷갈리면 안되는 점이 정책함수는 에이전트 안에 존재한다는 점입니다.

● 상태 가치 함수(𝝅)

앞에서 배운 상태 가치 함수는 상태가 주어졌을때, 그 상태를 평가해주는 함수입니다.

하지만 정책이 주어진 후에는, 에이전트의 정책함수에 따라서 얻는 리턴이 달라집니다

● 액션 가치 함수

앞에서 배운 상태 가치 함수는 상태가 주어졌을때, 그 상태를 평가해주는 함수입니다.

그렇다면 해당 상태의 액션 또한 평가할수 있을것입니다. 각 상태에서 선택할수 있는 액션을 모두 평가해 본 다음에, 그중에 가장 가치 있는 액션을 선택하면 될테니까요.

이 액션가치를 표현하자면 q(s,a) 로 표현합니다

따라서 상태 가치 함수와 액션 가치 함수는 s에서 어떤 액션을 선택하는가 라는 부분에만 차이가 있습니다.

v𝝅(s)를 계산할때에는 s 에서 𝝅 가 액션을 선택하는 반면 , q𝝅(s,a) 를 계산할 때는 s 에서 강제로 a 를 선택합니다.

일단 액션을 선택한 이후에는 2가지 가치 함수 모두 정책 함수 𝝅 를 따라서 에피소드가 끝날 때까지 진행합니다.

 

Prediction & Control

MDP 즉 (S,A,P,R,γ) 가 주어졋을때 우리가 관심 있어 하는 태스크는 크게 2가지가 있습니다

1. Prediction : 𝝅 가 주어졌을때 각 상태의 밸류를 평가하는 문제

2. Control : 최적 정책 𝝅* 를 찾는 문제

이에 최적 정책 𝝅* 를 따를 때의 가치 함수를 최적 가치 함수라고 하며 v* 라고 표기합니다.

𝝅* 와 v* 를 찾았다면 이 MDP 는 풀렸다 고 말할수 있습니다.

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

 

reference

https://bskyvision.com/573

 

[강화학습] 마코프 프로세스(=마코프 체인) 제대로 이해하기

이 포스팅은 어느 카테고리에 넣어야할지 고민이 된다. 확률과도 관련이 있고, 딥러닝의 강화학습과도 관련이 있고, 영상처리의 몇몇 알고리즘에서도 사용되기 때문이다. 짧은 고민 끝에 머신

bskyvision.com

https://slidesplayer.org/slide/16691878/

 

마코브 체인(Markov chains) 17.1 마코브 체인의 정의 17.2 절대 및 n단계 전이확률 17.3 마코브 체인의

Markov Chains : Wikipedia In  A Markov chain (discrete-time Markov chain or DTMC[1]) named after Andrey Markov, is a mathematical system that undergoes transitions from one state to another on a state space. It is a random process usually character

slidesplayer.org

https://ralasun.github.io/reinforcement%20learning/2020/07/12/mdp/

 

Markov Process에서 Markov Decision Process까지 · Ralasun Resarch Blog

Markov Process에서 Markov Decision Process까지 12 Jul 2020 | reinforcement-learning 이전 포스팅 강화학습 소개[1], 강화학습 소개[2]에 이어서, MDP에 대해 다룹니다. CS234 2강, Deep Mind의 David Silver 강화학습 강의 2강

ralasun.github.io

https://m.blog.naver.com/matlablove/221800029470

 

매트랩으로 강화학습 시작하기 - 예제, 리소스, 영상 강좌 제공

심층 강화 학습은 머신 러닝의 한 분야로, 로봇 및 자율 시스템과 같은 복잡한 시스템의 컨트롤러와 의사 ...

blog.naver.com

https://bi.snu.ac.kr/Courses/4ai17s/slides/8-rl-sup.pdf

https://janghyeonjun.github.io/ai/Reinforcement-Learning-1/

 

강화학습 - Reinforcement Learning(1)

[인공지능] 가치 함수 & 벨만 방정식

janghyeonjun.github.io

강화학습 한글자료(PDF) : https://www.gitbook.com/book/dnddnjs/rl/details.

파이썬과 케라스로 배우는 강화학습 : http://wikibook.co.kr/reinforcement-learning/ 

Reinforcement Learning: An introduction: http://www.incompleteideas.net/book/bookdraft2017nov5.pdf

저작자표시 (새창열림)

'AI 공부 > RL 끄적' 카테고리의 다른 글

강화학습 겉햙기(6)[에이전트]  (0) 2021.05.25
강화학습 겉햙기(5)[Deep RL]  (0) 2021.05.25
강화학습 겉햙기(4)[MDP 접근법]  (0) 2021.05.22
강화학습 겉햙기(3)[벨만 방정식]  (0) 2021.05.20
강화학습 겉햙기(1)  (0) 2021.05.19
    'AI 공부/RL 끄적' 카테고리의 다른 글
    • 강화학습 겉햙기(5)[Deep RL]
    • 강화학습 겉햙기(4)[MDP 접근법]
    • 강화학습 겉햙기(3)[벨만 방정식]
    • 강화학습 겉햙기(1)
    냥냥펀치데스
    냥냥펀치데스
    데이터 를 공부하는 무지몽매한 자입니다

    티스토리툴바