레플리
글 수 27

강화학습 기반의 자율적인 행동 학습

조회 수 2515 추천 수 0 2016.03.24 03:38:31


rlagent.jpg

 

소스코드 : 첨부파일

 

 

 

강화학습의 개요

 

강화학습(Reinforcement Learning)이란 이름 그대로 자신이 수행한 행동에 대하여 보상값을 받아 조금씩 좋은 방향으로 행동을 강화시키는 학습방법으로 MDP(Markov Decision Process) 방식에 기반하고 있다. MDP에서는 현재 상태에서 가장 최적의 행동을 결정하기 위해 목표까지의 모든 가능한 행동들을 계산하여 가장 높은 값을 가지는 행동을 결정한다. 하지만 상태의 개수가 커지거나 정확한 확률값이나 보상값을 알 수 없을 경우 불가능하다는 단점이 있다.

 

이에 반해서 강화학습은 현재 상태에서 최적의 행동을 계산을 통해 결정하지 않고, 여러번의 시행착오에 기반한 경험에 의해 각 상태에서의 최적의 행동을 조금씩 학습해 나간다. 그렇기 때문에 각 행동마다 복잡한 계산시간 없이 학습된 행동정책(policy)에 의해 바로 행동을 결정할 수 있고, 미리 모든 상황에 대한 확률값이나 보상값을 알지 못해도 그때그때마다 받는 환경에서의 보상값을 통해 최적의 행동들을 결정할 수 있다.

 

figure1.jpg

 

 

 

강화학습의 특징

 

신경망의 오류역전파 방식이나 디시전 트리와 같은 교사학습(supervised learning)은 원하는 기존에 존재하는 입력과 출력에 대한 데이터 집합을 사용하여 특정한 입력이 들어왔을 때 원하는 출력이 나오도록 학습되어 진다. 다시말해 교사가 학생을 지도하는 것처럼 일일이 하나씩 가르치는 방식이라 할 수 있다.

 

이와 반대로 강화학습은 비교사학습(unsupervised learning)의 한 종류이다. 정해진 데이터에 의해 학습되어지는 것이 아니라 스스로 경험을 통해 자율적으로 학습을 할 수 있다. 실세계와 같은 동적으로 변하는 환경에서는 특정한 입출력 데이터들을 결정하기가 힘들기 때문에 이러한 강화학습이 유용하게 사용될 수 있다.

 

 

 

강화학습의 학습방법

 

figure2.jpg

 

강화학습 중에서 가장 널리 쓰이고 있는 Q-Learning에 대해서 살펴보도록 하겠다. 위의 그림과 같이 6칸의 격자로 이루어 진 환경에서 G라는 목표까지 가장 빨리 가는 길을 학습한다고 하자. Q-Learning에서는 왼쪽편 그림과 같은 Q-Table을 사용하여 각 상태에서의 Q값을 저장한다.

 

처음에는 Q값이 0으로 설정되거나 임의의 수로 초기화 된다. 화살표는 각 상태에서 가능한 행동을 나타낸다. G로 향하는 행동을 수행하였을 때만 100의 보상값을 받고 나머지 경우에는 0의 보상값을 받는다고 할 때, 아래와 같은 Q값의 업데이트 규칙에 의해 목표에서의 보상값이 조금씩 모든 상태로 전파되면서 최적의 행동을 나타내는 Q-Table이 만들어 진다.

 

figure3.jpg

 

보상값이 조금씩 감소되면서 보다 먼 상태로 전파됨으로써 현재 상태에서 받는 보상값만이 아니라 미래의 행동에서 받을 수 있는 보상값을 고려하여 최적의 행동을 결정함을 알 수 있다. 예를 들어 왼쪽으로 가면 10의 보상값을 받고 오른쪽으로 가면 100의 보상값을 받는다고 하자. 바로 앞 단계의 보상값만 고려한다면 오른쪽으로 가는 것이 최선일 것이다. 하지만 전체적으로는 왼쪽으로 두 칸을 가면 1000의 보상값을 받고 오른쪽으로 두 칸을 가면 0의 보상값을 받는다고 하고 미래의 보상값까지 고려한다고 했을 때는 오히려 왼쪽으로 가는 것이 최적의 행동일 것이다.

 

 

 

프로그램 소개

 

아래의 참고자료에 나와있는 강화학습에 대해서 소개한 홈페이지의 예제를 보다 간단하게 구현해 보았다. 고양이는 강화학습을 통하여 움직이고 몬스터는 미리 정해진 코드에 의해 고양이을 추격한다. 고양이의 목적은 몬스터를 피해 보물상자를 얻는 것이다. 고양이가 보물상자를 얻거나 몬스터에게 잡히면 하나의 period가 종료된다.

 

전체 상태의 개수는 (고양이의 x좌표)*(고양이의 y좌표)*(몬스터의 x좌표)*(몬스터의 y좌표)*(보물상자의 x좌표)*(보물상자의 y좌표) = 5*5*5*5*5*5 = 15,625개 이다. 전체 Q-Table의 개수는 각 상태마다 전후좌우 4개의 행동이 가능하므로 15,625*4 = 62,500개 이다.

 

 

 

결과 분석

 

처음에 학습이 되지 않았을 때는 랜덤하게 움직이며 금방 몬스터에게 잡히게 된다. 하지만 학습이 충분히 진행되면 고양이가 몬스터를 피해 정확하게 보물상자를 얻는 것을 볼 수 있다. 장애물을 사용하여 몬스터를 피하는 방법과, 심지어는 몬스터를 유인하여 보물상자로부터 멀리 떨어지게 한 후 보물상자를 얻는 전략을 학습한다.

 

 

 

[참고자료]

    - http://www.cse.unsw.edu.au/~s2229705/rl/index.html
    - Machine Learning, Tom M. Mitchell, McGraw-Hill

 

 

 

< 인공지능 개발자 모임 >

- 페이스북 그룹에 가입하시면 인공지능에 대한 최신 정보를 쉽게 받으실 수 있습니다.

https://www.facebook.com/groups/AIDevKr/

 

List of Articles
제목 글쓴이 날짜 조회 수
알아두면 쓸데있는 신기한 강화학습 깊은바다 2017-08-24 1145
알파고를 탄생시킨 강화학습의 비밀 깊은바다 2017-06-25 859
신경망 Q-Learning으로 구현한 오목 게임 깊은바다 2017-03-29 15615
강화학습 Q-Learning과 DQN에 대한 설명 깊은바다 2017-03-27 9923
텐서플로우에서 DQN 강화학습으로 캐치게임 구현 file 깊은바다 2017-03-18 6844
딥 강화학습으로 퐁 게임 학습 file 깊은바다 2017-03-13 1960
딥 강화학습 쉽게 이해하기 [2] 깊은바다 2017-02-28 1928
딥러닝 강화학습으로 둠 게임 구현 깊은바다 2017-02-28 709
강화학습 기반의 지능적인 가상캐릭터 file 깊은바다 2016-03-24 615
강화학습 기반의 자율적인 행동 학습 file 깊은바다 2016-03-24 2515
MDP 기반의 스케줄링 구현 file [1] 깊은바다 2016-03-24 2117
딥마인드의 게임을 학습하는 딥러닝 인공지능 깊은바다 2016-03-21 975