글 수 27

강화학습 블로그 - 숨니의 무작정 따라하기

조회 수 550 추천 수 0 2019.07.21 16:14:41


 

https://sumniya.tistory.com/1

 

 

 

강화학습에 대해서 최대한 쉽고 자세하게 다루고 있는 블로그를 소개해드립니다. 수식이 좀 많은 편이지만 다른 자료들보다 설명이 훨씬 잘 되어 있습니다. 단계적으로 따라가다보면 이해하기가 그리 어렵지 않습니다.

 

처음 강화학습을 배울 때 Q-Learning이나 SARSA부터 시작해도 크게 무리가 없습니다. 하지만 이론적으로 기본기를 탄탄하게 쌓기 위해서는 반드시 MDP(Markov Decision Process)를 공부해야 합니다.

 

 

 

MDP란 현재 상태에서 어떤 행동을 선택하는 과정을 나타냅니다. 이때 마르코프 가정으로 바로 이전 상태만 확률로 고려하여 문제가 좀 더 간단해집니다. 예를 들어, S1->S2->S3의 순서라면 P(S3|S2,S1)으로 계산해야 합니다. 하지만 마르코프 가정을 사용하면 P(S3|S2)로 한 단계의 확률만 처리하면 됩니다.

 

(10, 10) 격자에서 A->B 위치로 가는 문제를 생각해보겠습니다. 전체 상태는 각 (x, y)의 10x10=100개가 있습니다. 가능한 행동은 상하좌우 4개입니다. 각 상태마다 4가지 방향에 대해 확률이 존재합니다. 그리고 B 위치에 도착하면 보상값으로 1을 얻습니다. 바로 이렇게 상태와 각 행동에 대한 확률이 주어졌을때, 어떤 행동이 최적인지 결정하는 것이 MDP입니다.

 

 

 

벨만 방정식(Bellman equation)으로 이런 MDP 문제를 풀 수 있습니다. 각 상태에서 가치함수(value function)를 계산하여 가치 V가 가장 높은 행동을 선택하면 됩니다. 동적 계획법(dynamic programming)을 사용하여, 모든 상태에 대해서 인접한 상태를 통해 V값을 구합니다. 그리고 이 과정을 계속 반복하면 최적값인 V로 수렴합니다. 이것을 정책(policy)이라 부릅니다.

 

문제는 모든 상태를 하나씩 계산하기 때문에 시간이 엄청나게 걸린다는 점입니다. 또한 정확히 정의된 모델이 없다면 상태 이동시의 확률을 알지 못합니다. 이를 해결하기 위해 model-free하게 접근한 방법이 바로 강화학습입니다. 한 번에 모든 V를 계산하지 않고, 직접 경험을 통해 얻은 데이터를 가지고 V를 근사합니다. 과거에는 V를 배열(tabular)로 나타냈지만 최근에는 딥러닝을 많이 적용합니다. 그래서 상태의 개수가 커져도 학습이 가능해졌습니다.

엮인글 :
List of Articles
제목 글쓴이 날짜sort 조회 수
강화학습 관련 노하우 정리 깊은바다 2019-07-29 1325
데미스 하사비스의 카이스트 강연 - 아타리 게임 DQN과 알파고의 원리 깊은바다 2019-07-24 408
강화학습 블로그 - 숨니의 무작정 따라하기 깊은바다 2019-07-21 550
OpenAI의 멀티 에이전트 강화학습 환경 - Neural MMO 깊은바다 2019-03-06 706
딥마인드의 알파스타가 프로게이머와의 대결에서 승리 [1] 깊은바다 2019-01-25 404
텐센트의 스타크래프트2 인공지능 - TStarBot file 깊은바다 2018-09-21 686
tensorflow-js로 만들어본 RL 예제: 2. Deep-sarsa 깊은바다 2018-07-27 2243
웹브라우저에서 자율주행차 강화학습 프로젝트 [2] 깊은바다 2018-06-21 950
새로운 강화학습 방식인 니마시니 알고리즘 깊은바다 2018-06-03 1226
딥마인드의 모방을 통한 게임 학습 깊은바다 2018-06-01 758
강화학습의 개요 깊은바다 2018-05-28 479
스타2 강화학습 튜토리얼 [2] 깊은바다 2018-02-04 1273
DQN 강화학습으로 슈퍼마리오 인공지능 구현 깊은바다 2017-10-30 2273
스타크래프트2 강화학습 깊은바다 2017-10-14 924
강화학습과 DQN 소개 깊은바다 2017-10-05 1155