글 수 22

새로운 강화학습 방식인 니마시니 알고리즘

조회 수 514 추천 수 0 2018.06.03 16:02:05


 

 

 

니마시니 알고리즘이라는 재미있는 강화학습 방법을 소개할까 합니다. 가장 유명한 강화학습으로 Q-Learning이 있습니다. 각 상태에서 어떤 행동이 가장 적합한지 결정하는 Q함수를 구하는 것입니다. 예를 들어, 위에서 떨어지는 빗방울을 받는 게임을 생각해보겠습니다. 10 x 10의 공간이라면 다음과 같이 전체 상태집합을 배열로 구성할 수 있습니다.

 

빗방울 위치 : 10 x 10 = 100
양동이 위치 : 10 (y축은 고정)
양동이 행동 : 3 (왼쪽, 대기, 오른쪽)

 

100 x 10 x 3 = 3000개의 상태를 가진 배열이 존재하고 현재 상태에서 가장 Q값이 높은 행동을 선택합니다. 빗방울를 양동이로 받았을때 보상으로 1의 값을 얻었다면 그 상태의 Q값이 1이 됩니다. 그리고 이 보상값이 조금씩 감소하면서 주변 상태로 퍼지는데 모든 상태에 전달이 되면 완벽한 정책(policy)이 만들어집니다.

 

 

 

니마시니 알고리즘은 이런 전체 상태 배열이 존재하지 않고 대신 시간순서에 따른 행동의 집합을 기억합니다. 그리고 이 기억에 따라 행동을 결정합니다. 보상값을 받았을때 지금까지 수행했던 행동을 최적화하여 수정하는 상쇄라는 과정을 거칩니다. 예를 들면 다음과 같습니다.

 

1초 : 빗방울 위치(5, 7), 양동이 위치(4), 행동(왼쪽)
2초 : 빗방울 위치(5, 8), 양동이 위치(3), 행동(오른쪽)
3초 : 빗방울 위치(5, 9), 양동이 위치(4), 행동(오른쪽)
4초 : 빗방울 위치(5, 10), 양동이 위치(5), 행동(대기)

 

4초일때 빗방울을 받고 보상값을 얻으면 불필요한 행동을 교정하는 상쇄를 다음과 같이 수행합니다. 왼쪽 + 오른쪽 + 오른쪽 => 오른쪽.

 

1초 : 빗방울 위치(5, 7), 양동이 위치(4), 행동(오른쪽)
2초 : 빗방울 위치(5, 8), 양동이 위치(5), 행동(대기)
3초 : 빗방울 위치(5, 9), 양동이 위치(5), 행동(대기)
4초 : 빗방울 위치(5, 10), 양동이 위치(5), 행동(대기)

 

 

 

이 알고리즘의 장점은 Q-Learning보다 빠르게 학습을 할 수 있다는 것입니다. 하지만 복잡한 문제일 경우 상쇄를 어떤 방식으로 해야할지 어렵다는 단점이 있습니다. 또한 인공지능이 모든 것을 스스로 학습하는 것이 아니라 상쇄하는 과정을 사람을 결정해야 하기 때문에 범용적으로 적용하기가 어렵습니다.

 

하지만 게임처럼 학습에 많은 자원을 소모하기 힘들고 빠르게 학습이 필요한 분야라면 유용하게 사용할 수 있을 것 같습니다.

 

엮인글 :
List of Articles
제목 글쓴이 날짜 조회 수
텐센트의 스타크래프트2 인공지능 - TStarBot file 깊은바다 2018-09-21 229
tensorflow-js로 만들어본 RL 예제: 2. Deep-sarsa 깊은바다 2018-07-27 285
웹브라우저에서 자율주행차 강화학습 프로젝트 [2] 깊은바다 2018-06-21 299
새로운 강화학습 방식인 니마시니 알고리즘 깊은바다 2018-06-03 514
딥마인드의 모방을 통한 게임 학습 깊은바다 2018-06-01 247
강화학습의 개요 깊은바다 2018-05-28 174
스타2 강화학습 튜토리얼 [2] 깊은바다 2018-02-04 659
DQN 강화학습으로 슈퍼마리오 인공지능 구현 깊은바다 2017-10-30 1243
스타크래프트2 강화학습 깊은바다 2017-10-14 702
강화학습과 DQN 소개 깊은바다 2017-10-05 537
알아두면 쓸데있는 신기한 강화학습 깊은바다 2017-08-24 470
알파고를 탄생시킨 강화학습의 비밀 깊은바다 2017-06-25 406
신경망 Q-Learning으로 구현한 오목 게임 깊은바다 2017-03-29 5784
강화학습 Q-Learning과 DQN에 대한 설명 깊은바다 2017-03-27 3385
텐서플로우에서 DQN 강화학습으로 캐치게임 구현 file 깊은바다 2017-03-18 1855