Mini-AlphaGo

Short Introduction

진행하고자 하는 프로젝트는 미니 알파고 제작이다. 정보과학세미나 교과 시간에 simple-go 코드를 완성시키는 과제를 수행하였는데, 이를 발전시켜 인공지능 바둑 프로그램, Mini-AlphaGo을 제작하였다. 프로젝트 진행에 앞서 강화학습의 원리와 수학적 background에 대하여 공부하며, 이를 바탕으로 프로젝트를 진행하였다.

Content

  • 프로젝트 진행 동기

정보과학세미나 교과 시간에 simple-go 코드를 완성시키는 과제를 수행하였다. 이는 강화학습(Reinforcement Learning)에 대하여 배우는 과정에서 stregy 부분의 구현을 하는 과제이다. 수학적 엄밀성이 부족한 인공지능 분야에서 비교적 수학적인 강화학습 이론에 대하여 공부하며, 동시에 simple-go의 코드를 발전시키고 싶었다

  • 프로젝트의 진행 과정

1. ML study

먼저 강화학습의 이론을 깊게 학습하였다. 강화학습의 틀이 되는 Markov Decision Process (MDP), 그리고 이를 응용한 Q-learning이나 SARSA등의 기법에 대하여 공부하였다. 

2. 구현

공부한 이론 중 Q-learning에 CNN을 접목시킨 Deep Q-learning을 이용하여 구현된 simple-go의 코드를 바탕으로 Mini-AlphaGo를 제작하였다. 제작 과정에서 실제 AlphaGo가 운영되는 방식인 Network를 이용하였다.

3. 추후 계획

다음 학기에 서버를 열어 온라인 대국이 가능하도록 프로젝트를 확장시키고자 한다. 제작한 인공지능과 인간의 대국을 온라인으로 가능하게 하고자 한다. 

  • 프로젝트의 결과

최종 목표인 Mini-AlphaGo의 성공적인 구현을 할 수 있었다. 교과 시간에 사용한 simple-go를 발전시켜 Mini-AlphaGo를 뛰어난 성능으로 개발하는데 성공하였다.

  • 프로젝트 진행 소감

프로젝트를 진행하며 머신러닝, 특히 강화학습에 대한 수학적 이론을 많이 공부할 수 있었다. 또한 이를 바탕으로 한 Q-learning을 이용해 Mini-AlphaGo를 구현할 수 있어 즐거웠다. 크게 발전시키지 못 해 아쉬운 면이 있지만, 실제 인간과 대국을 펼치고 학습한 인공지능이 뛰어남을 확인하여 뿌듯했다.

Attachments

아래의 zip 파일에 코드를 첨부하였습니다. ‘strategy.py’ 파일을 실행하면 됩니다.

https://drive.google.com/file/d/1V7ode5Zh_wySXTxt5UE2QDQyuOh_OAxY/view?usp=sharing


About

본 글은 2022년도 1학기에 20 이상화 연구회원이 진행한 프로젝트입니다.

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다