맨위로가기

카타고

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

카타고는 딥마인드의 알파고 제로 기술을 기반으로 개발된 바둑 인공지능이다. 컨볼루션 신경망과 몬테카를로 트리 탐색을 사용하여 바둑의 위치 평가 및 정책 지침을 제공하며, 알파고 제로보다 빠른 학습과 강력한 플레이가 가능하다. 사전 활성화 ResNet을 네트워크로 사용하며, 알파제로와 달리 바둑 특화 특징을 입력받고, 패싸움과 같은 전역 상황에 대응하기 위한 모듈이 추가되었다. 카타고는 오픈 소스 및 오픈 데이터로 제공되어 강화 학습 비용을 절감하고, 리라 제로와 비교하여 GTP 엔진의 분석 기능과 OpenCL 및 CUDA 지원, CPU 지원 등 차이점을 보인다. 초기 버전은 LeelaZero와 비슷한 기력을 보였으며, 지속적인 훈련을 통해 성능을 향상시켜 프로 기사 훈련 및 연구 자료로 활용되고 있다. 2022년에는 적대적 공격 연구 대상이 되기도 했다.

더 읽어볼만한 페이지

  • 2019년 소프트웨어 - 안드로이드 10
    안드로이드 10은 구글이 개발한 안드로이드 운영체제의 10번째 주요 버전으로, 사용자 경험 개선, 개인 정보 보호 강화, 플랫폼 기능 확장 등 다양한 변화와 함께 새로운 기능이 추가되었다.
  • 2019년 소프트웨어 - IOS 13
    iOS 13은 2019년 9월 19일에 출시된 Apple의 모바일 운영 체제로, 개인 정보 보호 강화, 사용자 인터페이스 개선, Siri 기능 향상, 새로운 퀵패스 키보드, "Apple로 로그인" 서비스, 성능 향상, 배터리 수명 연장, 햅틱 및 외부 저장 장치 지원, 노출 알림 API, ARKit 3 기능 향상 등 다양한 기능을 포함하고 iPhone 6s 이후 모델과 iPod touch (7세대)에서 사용 가능하다.
  • 응용 기계 학습 - 알파고
    알파고는 구글 딥마인드가 개발한 인공지능 바둑 프로그램으로, 심층 신경망과 몬테카를로 트리 탐색 알고리즘을 결합하여 자가 학습을 통해 인간을 뛰어넘는 바둑 실력을 달성하며 인공지능 기술 발전과 사회적 영향에 대한 논의를 촉발했다.
  • 응용 기계 학습 - 알파폴드
    알파폴드는 딥마인드에서 개발한 단백질 구조 예측 인공지능 시스템으로, 아미노산 서열로부터 3차원 구조를 예측하며 높은 정확도로 신약 개발과 질병 연구에 기여할 가능성이 있지만, 단백질 복합체 및 무질서 단백질 영역 예측에는 한계가 있다.
  • 자유-오픈 소스 소프트웨어 - 마이크로소프트 코그니티브 툴킷
  • 자유-오픈 소스 소프트웨어 - ASP.NET
    ASP.NET은 .NET Framework 기반의 마이크로소프트 웹 애플리케이션 개발 플랫폼으로, ISAPI를 통해 동작하며 다양한 프로그래밍 모델과 개발 도구를 지원하고, 부트스트랩, OAuth 2.0, OData 등 최신 기술을 통합하여 강력한 웹 개발 환경을 제공한다.
카타고 - [IT 관련 정보]에 관한 문서
기본 정보
개발자데이비드 우
최초 출시일2019년 2월 27일
최신 안정화 버전1.15.3
최신 안정화 버전 출시일2024년 8월 5일
프로그래밍 언어C++
장르컴퓨터 바둑
라이선스MIT License
웹사이트KataGo 공식 웹사이트
추가 정보
KataGo GTP 확장KataGo GTP 확장 문서 (GitHub)
KaTrainKaTrain (GitHub)

2. 기술

카타고는 몬테카를로 트리 탐색과 컨볼루션 신경망을 사용하여 위치 평가 및 정책 지침을 제공한다. 딥마인드의 알파고 제로에 비해 더 빠른 학습과 강력한 성능을 위해 개선되었다.[1][11]

카타고는 점수 추정, 소형 바둑판 지원, 임의의 값 및 접바둑 지원, 다양한 바둑 규칙 사용, 그리고 규칙 간의 작은 차이에 맞게 플레이 및 평가를 조정하는 기능을 갖추고 있다.

2. 1. 네트워크

카타고는 딥마인드의 알파고 제로에서 사용된 기술을 기반으로, 위치 평가와 정책 지침을 제공하는 컨볼루션 신경망을 사용하여 몬테카를로 트리 탐색을 구현한다.[1][11] 카타고의 네트워크는 사전 활성화 ResNet을 사용한다.[1]

알파고 제로가 게임 보드 기록만을 입력 특징으로 가졌던 반면, 카타고의 네트워크 입력에는 바둑을 두기 위해 특별히 수작업으로 설계된 특징들이 추가로 포함되어 있다. 이러한 특징에는 넉 점, 덤의 짝수 여부, 패-생사, 사다리 등이 포함된다.[1]

네트워크의 트렁크는 기본적으로 알파고 제로와 동일하지만, 패싸움과 같은 전역적인 상황에 내부적으로 적응할 수 있도록 전역 풀링 계층 모듈이 추가되었다. 이는 Squeeze-and-Excitation Network와 유사하다.[1]

네트워크는 정책 헤드와 가치 헤드, 두 개의 헤드를 가지고 있다. 정책 헤드와 가치 헤드는 알파고 제로와 거의 동일하지만, 두 헤드 모두 더 빠른 학습을 위한 보조 손실 신호를 제공하기 위해 보조 하위 헤드를 가지고 있다.[1]

  • 정책 헤드: 현재 플레이어의 이번 턴의 수와 다음 턴의 상대 플레이어의 수를 예측한다. 각 정책은 19 \times 19 + 1 크기의 로짓 배열로, 한 점에 수를 두는 로짓과 패스하는 로짓을 나타낸다.
  • 가치 헤드: 게임 결과, 예상 점수 차이, 예상 보드 소유 등을 예측한다.


네트워크에 대한 자세한 내용은 보고서 부록 A에 설명되어 있다.[1]

코드 베이스는 버전 1.12에서 텐서플로우(TensorFlow)에서 파이토치(PyTorch)로 전환되었다.

2. 2. 훈련

초기에는 420만 게임에서 최대 28개의 Nvidia V100 GPU를 사용하여 19일 동안 훈련이 진행되었다.[1]

첫 번째 훈련 이후, 자원 봉사자들이 운영하는 분산 프로젝트를 통해 훈련이 진행되었으며, 네트워크 크기가 증가했다.[1] 현재 b28c512(28개 블록, 512개 채널)에 도달했다.[1]

3. 알파제로와의 차이점

알파제로와 비교했을 때 카타고의 주요 차이점은 오픈 소스 소프트웨어 및 오픈 데이터라는 점이며, 강화 학습 비용이 대폭 절감되어 가정용 PC에서도 비교적 높은 수준의 강화 학습을 수행할 수 있다는 점이다.[22] 카타고는 며칠 만에 아마추어 고단자에 도달했다.[16]

4. 리라 제로와의 차이점

카타고는 GTP 엔진에서 "kata-analyze" 명령어를 지원한다. 리지 등의 프론트 엔드 프로그램은 카타고의 수 차이 분석 결과를 얻을 수 있어, 인간의 수 계산과 판단에 도움을 준다. 리라 제로 등에서 보이는 종반 요세에서의 손해를 보는 수를 두는 가능성을 줄일 수 있다.[16]

또한 카타고는 OpenCL(v1.2 이후 지원[25])과 CUDA[16]를 모두 지원한다. (OpenCL의 최신 버전은 최적화되어 CUDA 버전보다 몇 배 빠르다는 것은 아니며, 두 버전은 거의 동일하다.) 반면 리라 제로는 OpenCL만 지원한다.[26]

5. 성능

카타고는 지속적인 훈련을 통해 기력을 향상시켜왔다.

초기 버전(v1.0)은 2019년 2월에 35대의 NVIDIA Tesla V100을 사용하여 7일간 강화 학습을 진행하여 만들어졌다.[27] 기력은 LeelaZero의 LZ130과 거의 같았으며, 이는 이미 인간의 기력을 넘어선 것이다.[29][16]

두 번째 버전(v1.1)은 2019년 5월부터 6월에 제작되었다.[27] 28대의 NVIDIA Tesla V100으로 강화 학습이 이루어졌으며, 하이퍼파라미터 개선 및 LCB(Lower confidence bound|하한 신뢰 구간영어) 도입으로 기력이 크게 향상되었다.[16][31] 19일간의 훈련 후에는 ELF OpenGo의 v2 가중치 파일을 Leela Zero로 실행한 "LZ-ELFv2"를 넘어섰다.[16]

세 번째 버전(v1.3, v1.4)은 2020년 1월부터 6월까지 제작되었다.[27] 최대 47개의 GPU를 사용하여 훈련 규모를 늘려갔다.[16]

v1.5.0 이후부터는 CPU만으로도 작동이 가능하게 되었으며(Eigen|아이겐영어 라이브러리 사용),[32] v1.8.0 이후부터는 분산 훈련을 지원하여 전 세계 사용자들이 신경망 훈련에 기여할 수 있게 되었다.[33]

특히 v1.4.5 버전의 40x256 네트워크는 157일 동안 훈련되어 1919 Elo를 달성하며 매우 높은 기력을 보여주었다.[27]

5. 1. 초기 버전 (v1.0)

2019년 2월[27]에 35대의 NVIDIA Tesla V100을 사용하여 7일간 강화 학습을 진행하여 최초 버전(g65, `v1.0`)을 만들었다. 6블록 x 96필터에서 15블록 x 192필터까지[28], 기력은 LeelaZero의 LZ130(신경망의 130번째)과 거의 같아졌다[29]. 이는 이미 인간의 기력을 넘어선 것이다[16].

가중치 코드버전주석훈련 일수Elo
b6c96-s103408384-d26419149v1.06x96--
b10c128-s101899520-d6073466310x128--
b15c192-s279618816-d16499002215x192--


5. 2. 두 번째 버전 (v1.1)

2번째 버전(g104, `v1.1`)은 2019년 5월부터 6월에 제작되었다.[27] 28대의 NVIDIA Tesla V100으로 6블록 x 96 필터에서 20블록 x 256 필터까지 강화 학습이 이루어졌다.[30] 하이퍼파라미터가 대폭 개선되어 불과 3.5일 만에 첫 번째 버전의 기력을 넘어섰다.[16][31] 또한 LCB(Lower confidence bound|하한 신뢰 구간영어)의 도입으로 기력이 크게 향상되었다.[31] 19일간의 훈련 후 20블록 버전이 제작되어 기력이 "LZ-ELFv2"(ELF OpenGo의 v2 가중치 파일을 Leela Zero로 실행한 것)를 넘어섰으며, Leela Zero의 40블록 버전과 비교하면 LZ200과 동등한 기력이 되었다.[16]

가중치 코드버전주석훈련 일수Elo
g104-b6c96-s97778688-d23397744v1.16x96 최종 버전0.75-1146
g104-b10c128-s110887936-d5493727610x1281.75-476
g104-b15c192-s297383936-d14033025115x192 최종 버전7.5327
g104-b20c256-s447913472-d24184088720x256 최종 버전19908


5. 3. 세 번째 버전 (v1.3, v1.4)

3번째 버전(v1.3, v1.4)은 2020년 1월부터 6월까지 제작되었다.[27] 초기에는 29개의 GPU로 훈련을 시작하여 14일 후에는 37개, 총 38일 후에는 47개의 GPU로 훈련 규모를 늘려갔다.[16]

v1.5.0 이후부터는 GPU 없이 CPU만으로도 작동이 가능하게 되었으며(Eigen|아이겐영어 라이브러리 사용),[32] v1.8.0 이후부터는 분산 훈련을 지원하여 전 세계 사용자들이 신경망 훈련에 기여할 수 있게 되었다.[33]

지속적인 훈련을 통해 다양한 버전의 가중치가 생성되었으며, 그 성능(Elo)은 다음과 같다.

가중치 코드버전주석훈련 일수Elo
g170-b6c96-s175395328-d267887326x96 최종 버전0.75-1184
g170-b10c128-s197428736-d6740401910x128 최종 버전1.75-280
g170e-b10c128-s1141046784-d204142634v1.3확장 재훈련 10x128-300
g170-b20c256x2-s668214784-d22225571420x25615.5959
g170-b15c192-s497233664-d14963834515x1927.5512
g170-b20c256x2-s1039565568-d285739972v1.3.120x25621.51073
g170e-b15c192-s1305382144-d335919935v1.3.1-nets확장 훈련 15x192-867
g170-b20c256x2-s1420141824-d35096903320x25627.51176
g170e-b15c192-s1672170752-d466197061v1.3.2확장 훈련 15x192-935
g170-b20c256x2-s1913382912-d43545033120x25635.51269
g170-b20c256x2-s2107843328-d46861794920x25638.51293
g170e-b20c256x2-s2430231552-d525879064v1.3.320x25647.51346
g170-b30c320x2-s1287828224-d52592906430x32047.51412
g170-b40c256x2-s1349368064-d52433253740x256471406
g170e-b20c256x2-s2971705856-d633407024v1.3.3-nets20x25664.51413
g170-b30c320x2-s1840604672-d63348202430x3201524
g170-b40c256x2-s1929311744-d63313202440x2561510
g170e-b20c256x2-s3354994176-d716845198v1.3.420x256v1.3.5-nets20x256921513
g170-b30c320x2-s2846858752-d82986571930x320961619
g170-b40c256x2-s2990766336-d83071253140x2561613
g170e-b20c256x2-s4384473088-d968438914v1.4.020x2561171529
g170-b30c320x2-s3530176512-d96846391430x3201643
g170-b40c256x2-s3708042240-d96797322040x2561687
g170e-b20c256x2-s4667204096-d1045479207rowspan="3" |20x256(실험적)1291561
g170-b30c320x2-s3910534144-d104571292630x320(실험적)1651
g170-b40c256x2-s4120339456-d104588269740x256(실험적)1698
g170e-b20c256x2-s4842585088-d1091433838rowspan="3" |20x256(실험적)136.51547
g170-b30c320x2-s4141693952-d109107154930x320(실험적)1653
g170-b40c256x2-s4368856832-d109119009940x256(실험적)1680
g170e-b20c256x2-s5055114240-d1149032340v1.4.2-nets20x256(실험적)145.51539
g170-b30c320x2-s4432082944-d114989521730x320(실험적)1648
g170-b40c256x2-s4679779328-d114990922640x256(실험적)1690
g170e-b20c256x2-s5132547840-d1177695086rowspan="3" |20x2561501577
g170-b30c320x2-s4574191104-d117868158630x3201759
g170-b40c256x2-s4833666560-d117905920640x2561788
g170e-b20c256x2-s5303129600-d1228401921v1.4.520x2561571645
g170-b30c320x2-s4824661760-d122953669930x3201908
g170-b40c256x2-s5095420928-d122942512440x2561919



특히 v1.4.5 버전의 40x256 네트워크는 157일 동안 훈련되어 1919 Elo를 달성하며 매우 높은 기력을 보여주었다.[27]

6. 적대적 공격

2022년, 카타고는 AI 시스템의 "놀라운 실패 모드"를 입증하기 위해 설계된 적대적 공격 연구의 대상이 되었다. 연구자들은 카타고가 게임을 조기에 종료하도록 속일 수 있었다.[12][13]

적대적 훈련은 적대적 공격에 대한 방어 능력을 향상시키지만, 완벽하지는 않다.[14][15]

7. 한국 바둑에의 기여

(이전 출력이 비어 있으므로, 수정할 내용이 없습니다. 원본 소스를 제공해주시면 '한국 바둑에의 기여' 섹션을 작성할 수 있습니다.)

참조

[1] arXiv Accelerating Self-Play Learning in Go 2019-02-27
[2] 저널 Designing a Winning Arimaa Program https://content.iosp[...] 2015-01-01
[3] 웹사이트 Accelerating Self-Play Learning in Go https://blog.janestr[...] 2019-02-28
[4] 웹사이트 KataGo Distributed Training https://katagotraini[...] 2022-11-02
[5] 웹사이트 KataGo GTP Extensions https://github.com/l[...] 2023-01-03
[6] Github repo KaTrain https://github.com/s[...] 2023-01-03
[7] 웹사이트 AI当道 中国围棋优势缩小了吗? https://paper.xinmin[...] 2021-03-01
[8] 웹사이트 'AI 기사' 격전장에 괴물 '블랙홀'이 등장했다 https://www.chosun.c[...] 2020-04-14
[9] 웹사이트 AI Sensai FAQ https://ai-sensei.co[...] 2022-11-02
[10] 웹사이트 Considering removing Leela Zero from our supported AI Reviewers https://forums.onlin[...] 2022-03-31
[11] 웹사이트 Other Methods Implemented in KataGo https://github.com/l[...] 2020-11-15
[12] 웹사이트 New Go-playing trick defeats world-class Go AI, but loses to human amateurs https://arstechnica.[...] 2022-11-07
[13] 저널 Adversarial Policies Beat Superhuman Go AIs https://proceedings.[...] PMLR 2023-07-03
[14] 저널 Can AI be superhuman? Flaws in top gaming bot cast doubt https://www.nature.c[...] 2024-07-08
[15] arXiv Can Go AIs be adversarially robust? 2024-06-18
[16] 웹사이트 GTP engine and self-play learning in Go https://github.com/l[...] lightvector/KataGo 2020-01-01
[17] 웹사이트 TensorRT Backend, Many Minor Improvements https://github.com/l[...] lightvector/KataGo 2020-01-01
[18] 웹사이트 katago/katago-server https://github.com/k[...] 2021-01-14
[19] 웹사이트 v0.1 https://github.com/k[...] katago/katago-server 2020-11-08
[20] 웹사이트 Releases https://github.com/k[...] katago/katago-server 2020-01-14
[21] 웹사이트 Accelerating Self-Play Learning in Go https://blog.janestr[...] Jane Street 2019-02-28
[22] arXiv Accelerating Self-Play Learning in Go 2020-11-09
[23] 웹사이트 Analyze with a fixed visit number? https://github.com/l[...] lightvector/KataGo 2019-12-19
[24] 웹사이트 The Name of KataGo https://github.com/l[...] lightvector/KataGo 2020-08-27
[25] 웹사이트 OpenCL, Windows Support, other features and fixes https://github.com/l[...] lightvector/KataGo 2019-07-21
[26] 웹사이트 Go engine with no human-provided knowledge, modeled after the AlphaGo Zero paper. https://github.com/l[...] leela-zero/leela-zero
[27] 웹사이트 katago-public https://d3dndmfyhecm[...] 2022-01-10
[28] 웹사이트 katago-public/g65/models https://d3dndmfyhecm[...] 2020-01-01
[29] 웹사이트 Initial release https://github.com/l[...] lightvector/KataGo 2019-02-27
[30] 웹사이트 katago-public/g104/models https://d3dndmfyhecm[...] 2020-01-01
[31] 웹사이트 Strong Neural Net, LCB, and many bugfixes https://github.com/l[...] lightvector/KataGo 2019-06-18
[32] 웹사이트 OpenCL FP16 Tensor Core Support https://github.com/l[...] lightvector/KataGo 2020-08-03
[33] 웹사이트 KataGo Distributed Training https://katagotraini[...] KataGo 2022-01-10
[34] 웹사이트 Experimental Neural Nets https://github.com/l[...] lightvector/KataGo 2020-06-06



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com