nww***
2020-07-05

2016년 세상을 공포와 충격에 빠트린 알파고는 알파고 제로에 완패를 당해 쓸슬히 퇴역했다. 이런 알파고의 드라마틱한 역정을 지켜본 개발자라면 한 번쯤 인공지능 바둑봇을 만들고 싶다는 막연한 생각을 해봤을 것이다.
과거와 현재의 구성
물론, 책의 궁극적인 목표는 대부분의 독자들은 예상했겠지만 '알파고'일 수밖에 없다. 하지만, 이 책은 그 목표 하나 때문에 모든 것들을 다 제쳐두고 다짜고짜 바둑의 룰만 몇 가지 설명하고, 강화 학습으로 넘어가는 것이 아니다. 아주 기초적인 바둑 AI부터 시작해서 후반부에 있는 강화 학습 기반의 AI까지 유구한 역사를 바탕으로 축적된 인공지능 바둑 봇에 대한 상세한 이야기들을 다루고 있다. 너무 현대적인 것에만 초점을 두고 이야기하는 것도 아니고, 그렇다고 과거에만 몰두하는 것도 아닌 균형 잡힌 구성을 가지고 있다.
구현을 통한 이해
개념적인 설명만이 아니라 실제로 바둑 봇을 구현하는 과정을 거치면서 책에서 다루는 내용에 대해 이해할 시간을 갖게 된다. 이론적인 내용을 빼놓을 수가 없는 책인데, 구현 코드와 코드에 대한 설명을 바탕으로 이해를 돕고 있어서 차근차근 따라가보면 어렵지 않게 이해할 수 있을 것이다. 그래도 이해되지 않는다면, 책에 설명이 잘 되어 있으니 다시 한 번 읽는 것을 추천한다.
이 책은 독자가 처음으로 맞이하는 것에 대해서 친절하게 설명해준다. 특히, 활용하는 바둑 데이터 타입 방식에 대한 자세한 설명과 심지어 딥러닝 도입부에서 MNIST를 활용한 신경망을 구현할 때는 직접 관련 레이어와 네트워크를 설계하고 구현하는 과정까지 거치게 한다. 이 부분은 꽤나 신선했다. 딥러닝 관련 공부를 하면서 많은 문서를 봤는데, 이렇게 특정 주제와 결합한 딥러닝을 설명할 때면, 이론적인 내용만 설명하고, 다짜고짜 딥러닝 프레임워크로 넘어가서 바로 구현하기 마련인데, 신경망까지 직접 구현해보면 확실히 신경망에 대한 기초 내용 이해에 도움이 될 것이라 생각한다.
물론, 후반부에서 딥러닝을 다루는 과정에서는 딥러닝 프레임워크인 케라스를 다루는 방법에 대해서도 설명되어 있어서, 책을 따라가는데 크게 문제가 없을 것으로 판단된다. 기초적 파이썬 지식만 갖추고 있다면, 이 책을 그대로 따라가면서 바둑, 게임으로 딥러닝에 입문하는 것이 어렵지 않을 것이라 본다.
총평
책 하나로 단순한 바둑 AI부터 강화학습을 사용하는 바둑 AI까지 구현하고 배포까지 해볼 수 있다. 구현에 대한 설명을 하는 과정에서 이론적인 내용도 빠뜨리지 않은 알찬 구성을 가지고 있어서 알파고 같은 것에 관심이 많은 사람이라면 이 책을 추천한다.
필요 지식
기초 파이썬
기초 논리력
추천 독자
강화 학습 입문자
인공지능 구현을 통한 학습을 원하는 사람
알파고에 관심이 있는 사람