5-1 강화 학습(Reinforced Learning)에 의한 게임 코딩을 위한 워밍업

in #kr5 years ago (edited)

블록 격파나 스페이스 인베이더 같은 게임도 머신 러닝에 의한 학습이 가능한 분야로서 Reinforcement Learning 이라고 한다. 블록 격파는 핑퐁처럼 퍽(Perk)을 반사시켜 블록을 깨뜨려 나가되 좌우 어느 한쪽을 뚫게 되면 자동적으로 거의 모든 블록들이 격파되어 많은 점수를 획득하게 되어 빠르게 다음 단계로 업그레이드 할 수 있다.

블록 게임을 여러 번 해보면 자연스럽게 그와 같은 블록 격파 기법을 쉽게 학습할 수 있게 된다. 필자도 거의 게임 맹이랄 수 있지만 그래도 블록 격파게임 일 단계에서 몇 번 블록 벽을 뚫어 본 경험이 있다. 사람이 할 수 있으면 머신 러닝도 마찬가지로 알고리듬을 부여 하여 사람 보다 훨씬 빠르게 학습하여 고득점 플레이어가 될 수 있다.

noname01.png

이러한 방식의 학습을 강화학습이라고 하는데 바둑에서는 세계 무적이랄 수 있었던 이세돌 기사를 꺾었지만 아직은 스타크래프트와 같은 게임에서는 프로 플레이어를 이기지는 못하고 있다고 한다. 물론 강화학습 코딩도 흥미로운 분야임에 틀림 없지만 아직은 인간이 이길 수 있는 분야가 남아 있다는 데에 안심이 된다.

강화학습은 단지 각종 게임뿐만이 아니고 이미 자율주행 분야도 파고 들고 있으며 몇 가지 안되는 머신 러닝의 학습 방법 중에서도 현재도 급격한 발전이 이루어지고 있는 분야이다.

그래서 강화학습 코딩을 좀 배워 볼까 해서 체크를 해 보았더니 몇 가지 통과해야 할 관문이 있음을 알게 되었다. 첫 번째가 Markov Chain 또는 Markov Process 로 알려진 확률 분석법이다. 물론 제대로 Markov Chain 이론을 상세히 공부할 계획은 없으며 완전 수박 겉 핧기 정도이겠지만 개념만 이해하고 패싱할 생각이다. 하지만 불행히도 강화학습 코딩을 하려면 Markov Chain이론에서 끝나는 것이 아니고 플러스 보상 제어라는 좀 더 골치 아픈 Markov Decision Process 라는 함정이 하나 더 도사리고 있음을 알게 되었다. 물론 Markov Chain 이론을 바탕으로 발전된 이론이다.

단적인 예를 들자면 파블로프의 조건 반사 훈련 코스로 표현하면 맞을 것이다.

noname02.png

직접 강화학습코딩에 들어가서 코피 터지고 나오느니 그래도 예습을 쬐끔하여 코딩 실력을 강화한 후에 도전해보기로 한다. 비지도 학습(Unsupervised Learning)으로 분류되는 강화학습은 별도의 유일한 정답이란 것이 없기 때문에 그렇다고 답이 없는 것은 아니다. 따라서 학습과정은 있겠지만 테스트 과정이 있을 수 없다.

Markov Chain 에 관해서 조사해 본 결과 몇 가지의 기본적인 예제가 있음을 알게 되었으며 아울러 매트릭스 계산으로 도배가 되었다는 점을 알아내었다. 불행 중 다행이게 엑셀에서 매트릭스 연산 연습을 충분히 소화했기에 엑셀을 사용하면 Markov Chain 예제 연습은 쉽게 처리할 수 있어 보인다. 이어서 Markov Decision Process 는 이론을 훑어 볼 계획이다.

강화학습 코딩을 배운다는 시도 자체가 바로 비지도 학습에 해당한다. 즉 문제에 대한 정답이 무엇이지를 모르는 상태에서 어떤 경로로 액션(action)을 하고 학습해야 효율적이며 보상(reward)을 받을 수 있는지 Stochastic 한 학습 알고리듬이 요구될 수 있다. Stochastic 이란 랜덤하게 변동하는 상태의 확률적 접근을 의미하니 참조하기 바란다.
마나마인로고.png

Sort:  

짱짱맨 호출에 응답하였습니다.

개껌 강화학습이네요. ㅎㅎㅎㅎ 언젠간 넘어야 할 산입니다. ㅎㅎㅎㅎ

Coin Marketplace

STEEM 0.32
TRX 0.12
JST 0.034
BTC 64837.84
ETH 3174.86
USDT 1.00
SBD 4.17