일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- pytorch forward
- 티스토리챌린지
- MTBE
- 강화학습
- permutations
- 알파고
- pytorch forward 디버깅
- Python
- TensorFlow
- 대조학습
- 딥러닝
- document parsing
- pytorch forward 연산
- 오블완
- 파이썬
- 스페인어학습지
- text embedding
- pytorch
- AlphaGo
- OCR
- 환급기원
- 순열
- Monte Carlo
- pytorch hook
- MCTS
- 문서 파싱
- metric learning
- 스터디미니
- document layout analysis
- feature vector
- Today
- Total
Learn And Earn
강화학습 - MDP 본문
이번 포스팅에서는 강화학습의 가장 기본적인 모델인 Markov Decision Process를 강화학습의 세팅에서 설명해보려 합니다. 또 이를 설명하며 강화학습의 기본적인 세팅을 설명해보겠습니다.
강화학습이란?
흔히들 기계학습이라고 하죠. 머신러닝을 분류할 때 label을 주는지의 여부에 따라 지도학습, 비지도 학습으로도 분류하지만, 제 3의 분류군으로 강화학습이 언급됩니다. 강화학습은 2016년 이세돌과 멋진 승부를 나눈 알파고 모델도 강화학습을 적용한 좋은 예시로 들 수 있겠습니다.
이 강화학습은 일반적인 사람의 개입이 필요한 다른 머신러닝 모델과 다르게 정말 순수하게 데이터만 풍부하게 있다면 원하는 task를 잘 수행해내는 agent를 학습시킬 수 있다는 장점이 있습니다. 그래서 Robotics에서 많은 어려운 문제들을 시뮬레이션의 풍부한 데이터와 결합하여 잘 해결해내기도 하고 있죠. 그렇다면 이렇게 훌륭한 강화학습, 어떻게 학습이 이루어지는 것일까요?
강화학습 - 선택의 연속
강화학습이 어떻게 학습을 하는지를 알기 전에, 표면적으로 강화학습의 agent가 어떤 일을 하는지를 살펴볼 필요가 있습니다. 결론부터 말하자면, agent는 현 상황을 파악하고, 그 상황에 대해서 어떠한 결정을 해야 "최선의 선택"일지를 학습해 나가는 것입니다. 그렇다면 무엇을 기준으로 최선의 선택인지를 알까요?
강화학습의 agent는 보통 이런 과정의 반복으로 볼 수 있습니다 :
상황이 주어질 때, 그 상황에 대해서 결정을 내립니다.
그리고 그 결정의 결과로 새로운 상황으로 변하고, 보상을 받습니다.
이제 정확한 용어들을 사용하며 강화학습의 세팅을 설명해보겠습니다.
강화학습은 agent와 environment 사이의 상호작용의 결과로 이루어집니다.
(1) agent는 environment에서 관찰되는 observation, 그 중에서 agent가 선택한 정보인 state에 대해서 결정을 내립니다. 그 내린 결정을 action이라고 부릅니다.
(2)environment에 agent가 이제 action으로써 영향을 미쳤으니 그에 따라 environment의 상황도 변화가 있겠죠? 그 중에서 state도 변할 것입니다. 또한 reward라는 스칼라 값이 agent에게 주어집니다.
(3) (2)에서 이제 상황(state)이 바뀌었죠? 바뀐 환경에 대해서 agent는 또 다시 결정을 해야 합니다. 그렇게 바뀐 상황에 대해서 결정을 내리고(action), env의 state이 바뀌며 agent에게 reward가 주어집니다.
이런 (1)~(3)의 과정이 반복되어 하나의 episode가 종결이 되면 새로운 episode를 시작해 나갑니다.
Markov property -
Stochastic process란 time indexed의 확률변수들로 이루어진 수열이라고 정의됩니다. 이런 Stochastic process가 갖는 성질을 설명하는 것 중 Markov property가 있습니다. 쉽게 말하면, "바로 직전의 정보에만 의존을 한다"고 생각하시면 되겠습니다.
가장 대표적인 예시는 브라운 운동이 있겠습니다. 담배 꽁초와 같이 질량이 거의 없는 입자는 운동을 할 때에 관성으로부터 거의 자유롭기 때문에 다른 입자들의 운동과 달리 바로 직전의 운동상태에만 의존을 하는 것이지요.
Markov property를 수식적으로 표현하자면, stochastic process {s_t}에 대해서,
p(s_t | s_{t-1}, s_{t-2},...s_2, s_1) = p(s_t | s_{t-1})로 표현이 된다는 것입니다.
Markov Decison Process와 강화학습
위에서 설명한 state, action, reward 하나 하나 모두 stochastic random process라고 볼 수 있습니다. 보통 각각을 S_t, A_t, R_t로 표현합니다. 그리고 이러한 확률변수들은 time step t를 기준으로 하여 Markov Property를 갖는다고 가장 기본적인 강화학습 모델에서 가정합니다.
environment와 dynamics
이러한 MDP를 가정한 RL 세팅에서는 환경을 설명하는 dynamics는 p(S_{t+1}|S_t, A_t)로 표현됩니다.
왜냐면 굳이 이전 time step에 해당하는 state, action, reward에 대한 정보를 알고 있다고 하여도,(조건부로 깔고 있다고 하여도) MDP에 의하여 깔끔하게 다 무시해도 되는 정보들이기 때문이죠.
agent와 policy
agent의 목표는 결국 주어진 각 상황에 대해서 최선의 선택을 할 수 있게끔 하는 것입니다.
이 "주어진 상황에 대해서의 선택"의 정보를 담는 것이 바로 policy입니다. agent는 환경과 상호작용을 해가며
이 policy를 보다 더 나은 policy로 업데이트해나가는 것으로 보면 되겠습니다.
이번 포스팅에서는 강화학습의 기본적 용어와 어떠한 세팅인지, 그리고 어떠한 수학적인 모델이 사용되는지를 살펴보았습니다. 다음 포스팅에서는 그렇다면 어떻게 agent는 최선의 선택을 하게 되는지, 그 방법에 대해서 설명해보겠습니다.
감사합니다.
'강화학습' 카테고리의 다른 글
강화학습 - tree policy 와 MCTS (0) | 2021.08.25 |
---|---|
몬테카를로 트리 탐색 - MCTS (0) | 2021.08.24 |