본문 바로가기

Academy I/IT

[AI 바둑]인공지능 바둑에 대한 기본개념 정리

요즘에는 바둑을 잘 두시는 분이나 새롭게 바둑에 입문하시는(저와 같은) 분들이 공통적으로 인공지능에 대해 관심이 많은 것 같습니다. 




몇몇 고수분들은 인공지능을 통해 새로운 묘수를 발견하고자 연구하시는 분들도 있고, 약간 연구원 기질을 지닌 분들은 인공지능 자체를 분석하고 연구하시는 분들도 있습니다. 




그리고, 인공지능을 통해 쉽고 빠르게 바둑실력을 향상시키고 싶은 저를 포함한 많은 초보자들도 있습니다. 




저는 아직 바둑에 대해서 잘 모르고 이제 막 배워나가는 단계이지만 나름 컴퓨터에 대해 관심도 많고 프로그램에 대한 지식도 약간은 가지고 있습니다. 그러다보니 여러 분들이 관심을 가지고 있는 인공지능 프로그램들에 대해서 스터디를 하고 대략적인 특징이나 장단점들을 어느 정도는 파악하게 된 것 같습니다. 




요즘 새로 입문하시는 분들이 릴라제로와 같은 인공지능으로 바둑을 배워보시려고 이것저것 문의도 하시고, 또 시도하는 일들이 자주 보이고 있습니다. 




저 역시도 초보자의 입장에서 최근 느낀 점들을 가지고 이러한 분들이 어떤 방향성을 가지고 인공지능을 효과적으로 활용할 수 있을까에 대해 한 번 정리해서 공유하고자 합니다. 






1. 요즘 대세 인공지능의 종류 - 일반인들에게 공개된 




① 릴라제로(Leela Zero) : http://zero.sjeng.org/


- 일반인에게 자유롭게 공개되어 있는 인공지능 중에서는 최강이라고 볼 수 있는 릴라제로는 명칭에서도 나왔듯 제로(zero) 계열입니다. 즉, 사람의 기보를 통한 학습이 아니라 알파고 제로처럼 바둑의 기본규칙만을 가지고 대국을 통해 스스로 터득한 경험치를 가지고 기력을 향상시켜 나가는 인공지능입니다. 


- GTP 엔진 방식이고, 경험치를 통해 쌓은 가중치 파일(일반적으로 weights.txt)이 지속적으로 업데이트되기 때문에 우리들은 새로운 가중치 파일이 나올 때마다 이것을 적용시켜서 점점 더 강한 릴라제로를 만날 수 있습니다. 


- 요즘에 나온 구글의 미니고(minigo),  페이스북의 엘프고(ELF Open Go)나 중국 텐센트사의 피닉스고(Phoenix Go, 벤손다르) 등 다른 인공지능 엔진들의 가중치 파일을 릴라제로에서 사용할 수 있도록 변환시킨 가중치 파일들이 공개됨으로써 릴라제로 기반으로 여러 엔진을 가동시키는 것이 가능해졌습니다. 


- 또한, 릴라제로 순정의 방식이 아닌 특이한 조건으로 트레이닝을 시킨 다양한 가중치 파일들도 공유되어 그야말로 다양한 특성을 가진 엔진들을 만나볼 수 있게 되었습니다. 




② 릴라(Leela) : https://www.sjeng.org/leela.html


- 릴라제로의 전신(?)이자 친척관계인 인공지능으로 인간의 기보를 기반으로 학습된 것이고, 프로그램 자체가 버전업이 될 때마다 기력이 향상되는 구조입니다. 


- 역시 GTP 엔진 방식이며, 릴라제로처럼 따로 가중치파일을 참조해서 구동하는 것이 아니고 프로그램 자체가 하나의 완성된 버전의 가중치파일을 내장하고 있다고 이해하면 되겠습니다. 


- 자체 UI로 구동되는 프로그램도 배포됩니다만, 돌아가는 느낌이 깔끔하지는 않아서 저는 그냥 사바키에 연결해서 사용합니다.(제 컴 사양이 낮은 탓도 있고요) 




③ AQ : https://github.com/ymgaq/AQ


- 릴라와 마찬가지로 인간의 기보를 기반으로 학습된 인공지능입니다. 


- GTP 엔진 방식이고, 지포스 GPU가 제공하는 CUDA 3.0 이상의 환경에서는 엄청나게 강력해지며, 일반인에게 공개된 인간 기보학습 방식의 인공지능 중에서는 최강이라고 봐도 될듯 합니다. 


- AQ는 64비트만 지원하므로 32비트 OS이신 분들은 애초에 시도조차 하지 마시길~ 




④ 기타 인공지능들 


- 독립 프로그램 방식 : 젠(Zenith)7, 크레이지스톤, 은성바둑, ...(유료... 비싸요~) 


- GTP 엔진 방식 : Fuego, gnugo, pachi...(여러개 있지만 잘 모르고요, 최근까지 업데이트되는 것들은 없음) 


- 그리고, 최근에 혜성처럼 등장한 페이스북의 엘프고(ELF OpenGo)가 공개엔진들은 거의 다 평정하고 있습니다. 다만 가동환경이 복잡해서 웨이트 파일만 릴라제로 웨이트로 변환해서 릴라제로에서 돌릴 수 있습니다. https://github.com/pytorch/ELF




⑤ 일반인에게 사용이 공개되지 않은 강력한 인공지능들


- 중국 텐센트사의 절예(현존 최강으로 인식되고 있음)


- 국산 인공지능 엔진은 바둑이(BADUKi, KAIST), 한돌(한게임), 돌바람(임재범) 등이 있음






2. 릴라마스터 가중치(LeelaMasterWeight)에 대하여 




릴라제로 기반에서 구동되는 가중치는 릴라제로가 배포하는 것 외에도 여러 종류가 있습니다. 


엘프고와 피닉스고도 자신들의 플랫폼이 있지만 보다 대중화되어 있는 릴라제로 기반으로 구동할 수 있도록 가중치를 변환해서 쓰기도 하고요... 




가장 대표적인 것이 릴라마스터인데요. (요즘은 bjiyxo 라는 것도 있더군요.) 


여러분들이 리지로 기보를 분석하시거나 공부하실 때 이 릴라마스터가 어떤 특징이 있는지를 정확하게 알고 쓰시라는 의미로 정리해서 공유드립니다. 




릴라마스터는 중국의 pangafu 라는 아이디를 쓰는 Yuan Quan 이라는 사람이 훈련시켜서 배포한 것입니다. 


현재까지 공개된 것은 W, E, G, B, GX 계열이 있습니다.


다른 가중치들과 다른 점은 인간기보를 학습시켜서 인간과 비슷한 기풍으로 둔다는 것입니다.




① W계열(20*128)은 11버전을 마지막으로 배포가 종료되었습니다. 


   인간기보 70% + 릴라제로기보 30% 로 훈련시켰습니다. 


   최근에 버전업되고 있는 GX버전으로 대체되었다고 보아야 할 듯 합니다.




② E계열(10*128)은 08버전을 마지막으로 배포가 종료되었습니다. 


   W계열과 마찬가지로  인간기보 70% + 릴라제로 30% 로 훈련시켰습니다. 


   기력은 W계열보다 약합니다. 




③ G계열(15*192)은 현재 13버전까지 배포되었고, GX 시리즈로 전환되었습니다.


   버전03까지는 릴라제로 90% + 인간기보 10% 


   이후로 버전08까지는 릴라제로 80% + 인간기보 20% 


   그 이후 버전은 릴라제로 70% + 인간기보 30% 로 훈련시켰습니다. 


   인간보다는 릴라제로에 더 가까운 스타일입니다. 


   기력은 앞선 W, E 계열보다 강합니다. 




④ B계열(30*256)은 최근에 나온 것으로 현재 05버전까지 나왔습니다. 


   현재까지는 릴라제로 80% + 인간기보 20% 로 훈련시켰습니다. 




⑤ GX계열(15*192)은 앞선 G계열의 후속입니다. 


   최근에는 개발자가 GX버전에 집중하는 모습입니다...


   인간기보 10% 로 훈련시킨 GX1 계열은 GX14까지 배포되었고, 


   인간기보 20% 로 훈련시킨 GX2 계열은 GX24까지 배포되었고, 


   인간기보 30% 로 훈련시킨 GX3 계열은 GX3B까지 배포되었습니다. 


   인간기보 40% 로 훈련시킨 GX4 계열은 GX4C까지 배포되었습니다. 


   인간기보 50% 로 훈련시킨 GX5 계열은 GX5B까지 배포되었습니다. 


   인간기보 60% 로 훈련시킨 GX6 계열은 GX6A까지 배포되었습니다. 


   인간기보 70% 로 훈련시킨 GX7 계열은 GX7A까지 배포되었습니다. 


   인간기보 80% 로 훈련시킨 GX8 계열은 GX8A까지 배포되었습니다. 


   인간기보 90% 로 훈련시킨 GX9 계열은 GX9A까지 배포되었습니다. 


   인간기보 100% 로 훈련시킨 GXA 계열은 GXAA까지 배포되었습니다. 




⑥ Z계열(30*256)은 릴라마스터는 아니고 B계열을 만들기 위해 전단계로 만든 릴라제로 가중치입니다. 




⑦ OZ계열(30*256)은 일명 장어 릴라제로(Octopus LeelaZero)라고 부르는 가중치입니다.


  Color Layer Training 이라는 특별한 방법으로 훈련시키고 전반과 후반의 균형 있는 훈련 기법을 사용하고 있습니다.


  아직 기력이 많이 올라오지는 않았지만, 앞으로 기대가 많이 되는 가중치입니다.


  덤을 다양하게 설정할 수 있는 장점이 있습니다.


  현재 OZ29 버전까지 공개되었습니다.





이상 참고적으로 알아두시면 되겠습니다~~~^^ 


정리가 좀 되셨나요???ㅋㅋㅋ 




★ 릴라마스터 가중치 다운로드 경로 ↓ 


https://drive.google.com/drive/folders/1bB8ee1wFuRWL9nPhsl4_BPUhcWSBuxO0





3. GTP 유저 인터페이스 툴 및 기타 유틸리티 




① 사바키(Sabaki) : https://github.com/SabakiHQ/Sabaki


- 가장 많이 사용되는 프로그램이고, 특히 릴라사바키와 함께 사용하면 릴라제로나 릴라로부터 훈수를 받으면서 인공지능과 대국을 할 수 있습니다. 


- GTP 기반의 인공지능들끼리 대국을 시킬 수도 있습니다. 




② 고구이(GoGui) : https://sourceforge.net/projects/gogui/files/gogui/1.4.9/


- 사바키와 마찬가지로 인공지능과 대국을 하는 프로그램입니다. 


- 이것 역시 GTP 기반의 인공지능들끼리 대국을 시킬 수도 있습니다. 




③ 릴라사바키(LeelaSabaki) : https://github.com/SabakiHQ/LeelaSabaki


- 사바키의 보조프로그램이고, 릴라제로 또는 릴라와 사바키 사이에서 연결해 주면서 히트맵(heatmap) 기능과 변화도를 다양하게 분석할 수 있는 유용한 기능을 제공합니다. 




④ 리지(Lizzie) : https://github.com/featurecat/lizzie


- 릴라제로 엔진을 참조하여 상황에 따라 둘 수 있는 수들의 승률을 보여주는 유용한 프로그램입니다. 가장 좋은 학습도구인 듯 합니다. 


- 승률이 가장 높게 표시된 위치가 릴라제로가 생각하기에 가장 좋은 곳이라고 보면 됩니다. 




⑤ 멀티고(MultiGo) : http://ruijiang.com/multigo/


- 기보 편집용으로 가장 많이 사용되는 프로그램입니다. 




⑥ GRP(GoReviewPartner) : https://github.com/pnprog/goreviewpartner


- 복기용으로 대박인 프로그램입니다. 꼭 사용해 보시기를 권장합니다. 




⑦ GoGrinder : http://gogrinder.sourceforge.net/


- 사활문제 풀이에는 이것만한 것이 없습니다. 필수 프로그램이라 하겠습니다.


- 자세한 내용은 여기로 ☞ https://blog.naver.com/wonsiksnz/221323658354




⑧ LizGoban : https://github.com/kaorahi/lizgoban


- 리지와는 다른 방식으로 대국을 복기하고 분석하는 프로그램입니다.


- 수읽기가 진행되는 과정에서 승률이 변동되는 것을 볼 수 있는 점이 장점입니다.


- 자세한 내용은 여기로 ☞ https://blog.naver.com/wonsiksnz/221536806966






4. 프로그램 설치하기 ▶ 유튜브 강좌를 참고하시기 바랍니다.


https://blog.naver.com/wonsiksnz/221505837842



인공지능바둑 사용법 유튜브 강좌 안내

여러분 안녕하세요??바둑인공지능 통합설치팩을 받아서 설치하시고 나서도 사용법을 잘 몰라서 제대로 활...


blog.naver.com








★ 맺음말 ★ 




기력을 빨리 향상시키는 방법은 저도 잘은 모르겠으나, 인공지능에만 의존할 것도 아니고 정석도 외우고 사활도 풀고 여러 강좌도 듣고 책으로도 공부하는 모든 것들을 적절하게 자신의 스타일에 맞게 해 가면서 인공지능을 최대한 스파링상대로 훈련하는 것이 최선인 것 같습니다. 




위에서 릴라제로 가중치파일을 최신·최강의 가중치파일이 아닌 휴먼 가중치를 선택한 이유는 초보자들의 학습에는 그것이 더 도움이 되기 때문입니다. 이제 정석 배우고 행마나 사활을 공부하는 입장에서 인공지능의 스타일을 따라하는 것은 복싱 이제 입문해서 바로 타이슨과 겨루는 것과 마찬가지일 것입니다. 최소한 몇 단 이상의 기력이 된 이후에 그런건 하면 되고요, 우선은 정상적인 기본기를 다지는 쪽으로 나가시는게 현실과 맞는 것 같습니다. 




휴먼 스타일의 가중치파일로 리지를 돌려 보시면 우리가 공부하는 정석을 거의 그대로 안내해 줄 것입니다. 주변의 상황에 따라서 어떤 정석으로 진행하는게 좋은지도 보여줄 것이고요. 


언제 손을 빼도 좋은지, 큰 자리가 어디인지 등을 사람의 입장에서 보여주기 때문에 초보자들에게 안성맞춤일 것입니다. 




이렇게 시간을 들여서 써 놓고 보니 좀 오지랖 같기도 하고, 쓸 데 없는 짓을 한 것도 같지만, 개인적으로도 이렇게 정리하는 것을 좋아하기도 하고, 또 요즘 새로 오시는 분마다 이 부분을 궁금해하시는 분들이 많아서 취미삼아 정리해 봤습니다. 






아무쪼록 도움이 되셨으면 좋겠습니다.




[출처 : https://blog.naver.com/PostView.nhn?blogId=wonsiksnz&logNo=221321148196&categoryNo=3&parentCategoryNo=0&viewDate=&currentPage=2&postListTopCurrentPage=&from=postList]