KataGo

KataGo（カタゴ）は、David J. Wu（通称 lightvector）によって開発されたコンピュータ囲碁プログラムである。

 概要 

DeepMindが発表したAlphaGo ZeroとAlphaZeroの論文に基づいてDavid J. WuがKataGoを作成した。さらに、DeepMindの論文に加え、多くの関連研究と独自の研究の結果、強化学習の速度を大幅に向上させた（50倍以上）。ニューラルネットワークのデータが公開されている、世界で最も強いコンピュータ囲碁ソフトウェアの一つとなった。

KataGoによって実装されたコンピュータ囲碁プログラムには以下が含まれる ：

 セルフプレイトレーニングプログラム （C++、Python 3、TensorFlowで実装）
 ソフトウェアで操作できるGTPエンジン（C++で実装）

（作者所属の会社）はトレーニングに必要な計算資源に加えて、トレーニング結果（ニューラルネットワークデータ）も公開している。 

KataGoは囲碁AI検討ソフト「Lizzie」の思考エンジンに採用された（2019年10月1日に公開されたLizzieバージョン0.7以降）。

その豊富な分析機能によって、囲碁オンライン分析Webサイト「AI Sensei」でデフォルトの分析エンジンとして使用されている。

"KataGo" という名称は、日本語の「かた（形・型）」に因んでいる。現在は、英語でも武道の形を "kata" という。作者である lightvector (David J. Wu) は、自己の強化学習によって永続的に鍛錬し、独自の形の完成を目指すボットの名称として合理的に思えたと述べている。

 差異 

 AlphaZero 

AlphaZeroとの主な違いは、KataGoがオープンソースとオープンデータであることに加えて、強化学習のコストが大幅に削減されたので、自宅のPCでも比較的高いレベルの強化学習が行えることである。数日でアマチュア高段者に到達した。

 Leela Zero 

LeelaZeroとの主な違いは、KataGoのGTPエンジンが"kata-analyze"コマンドをサポートしていることである。フロントエンドプログラム（Lizzieなど）がKataGoの目数差の分析結果を取得できるので、人間の目数計算と判断の助けになる。LeelaZeroなどに見られる終盤のヨセで損な手を打つ可能性を減らすことができる。

もう一つの違いは、KataGoはOpenCL（v1.2以降でサポート）とCUDAの両方をサポートしていることである（OpenCLの最新版は最適化されており、CUDA版より数倍も高速ということはなく、二つの版はほぼ同じ）。 LeelaZeroはOpenCLだけをサポートしている。

 強さ 

 最初のバージョン 
最初のバージョン（番号はg65，v1.0）では、2019年2月に35台のNVIDIA Tesla V100を使用して7日間の強化学習が行われた。6ブロックx96フィルターから15ブロックx192フィルターまでで、棋力はLeelaZeroの（ニューラルネットワークの130番目に相当する）LZ130とほぼ同じになった。これは人間の棋力を既に超えている。

 重みコード  版  注釈  訓練日数  Elo b6c96-s103408384-d26419149  v1.0  6x96  -  - b10c128-s101899520-d60734663  10x128  -  - b15c192-s279618816-d164990022  15x192  -  -

 2番目のバージョン 
2番目のバージョン（番号はg104，v1.1）は、2019年5月から6月に作成された。28台のNVIDIA Tesla V100で、6ブロックx96フィルターから20ブロックx256フィルターまで強化学習が行われた。ハイパーパラメータが大幅に改善されたので、わずか3.5日で最初のバージョンの棋力を超えた。さらに、LCB（）の導入によって、棋力が大幅に向上した。 最後に、19日間のトレーニングの後、20ブロック版が作成され、棋力が「LZ-ELFv2」（ELF OpenGoのv2の重みファイルをLeela Zeroで動かしたもの）を上回った。Leela Zeroの40ブロック版と比較すると、LZ200と同等の棋力になった。

 重みコード  版  注釈  訓練日数  Elo g104-b6c96-s97778688-d23397744  v1.1  6x96最終版  0.75  -1146 g104-b10c128-s110887936-d54937276  10x128  1.75  -476 g104-b15c192-s297383936-d140330251  15x192最終版  7.5  327 g104-b20c256-s447913472-d241840887  20x256最終版  19  908

 3番目のバージョン 
3番目のバージョン（番号はg170，v1.3とv1.4）は、2020年1月から6月にかけて作成された。29GPUで始まり、14日後に37GPUに増加し、24日（合わせて38日）後に47GPUに増加した。

v1.5.0以降、GPUを使用しない純粋なCPUだけでの動作がサポートされた（ライブラリを使用）。また、バージョンv1.8.0以降では、分散トレーニングをサポートしているので、世界中のユーザーが重み（ニューラルネットワーク）のトレーニングに協力できるようになった。

 重みコード  版  注釈  訓練日数  Elo g170-b6c96-s175395328-d26788732   6x96最終版  0.75  -1184 g170-b10c128-s197428736-d67404019   10x128最終版  1.75  -280 g170e-b10c128-s1141046784-d204142634  v1.3  拡張再訓練10x128  -  300 g170-b20c256x2-s668214784-d222255714  20x256  15.5  959 g170-b15c192-s497233664-d149638345   15x192  7.5  512 g170-b20c256x2-s1039565568-d285739972  v1.3.1  20x256  21.5  1073 g170e-b15c192-s1305382144-d335919935  v1.3.1-nets  拡張訓練15x192  -  867 g170-b20c256x2-s1420141824-d350969033  20x256  27.5  1176 g170e-b15c192-s1672170752-d466197061  v1.3.2  拡張訓練15x192  -  935 g170-b20c256x2-s1913382912-d435450331  20x256  35.5  1269 g170-b20c256x2-s2107843328-d468617949   20x256  38.5  1293 g170e-b20c256x2-s2430231552-d525879064  v1.3.3  20x256  47.5  1346 g170-b30c320x2-s1287828224-d525929064  30x320  47.5  1412 g170-b40c256x2-s1349368064-d524332537  40x256  47  1406 g170e-b20c256x2-s2971705856-d633407024  v1.3.3-nets  20x256  64.5  1413 g170-b30c320x2-s1840604672-d633482024  30x320  1524 g170-b40c256x2-s1929311744-d633132024  40x256  1510 g170e-b20c256x2-s3354994176-d716845198  v1.3.4  20x256  78  1455 g170-b30c320x2-s2271129088-d716970897  30x320  1551 g170-b40c256x2-s2383550464-d716628997  40x256  1554 g170e-b20c256x2-s3761649408-d809581368  v1.3.5-nets  20x256  92  1513 g170-b30c320x2-s2846858752-d829865719  30x320  96  1619 g170-b40c256x2-s2990766336-d830712531  40x256  1613 g170e-b20c256x2-s4384473088-d968438914  v1.4.0  20x256  117  1529 g170-b30c320x2-s3530176512-d968463914  30x320  1643 g170-b40c256x2-s3708042240-d967973220  40x256  1687 g170e-b20c256x2-s4667204096-d1045479207   20x256（実験的）  129  1561 g170-b30c320x2-s3910534144-d1045712926  30x320（実験的）  1651 g170-b40c256x2-s4120339456-d1045882697  40x256（実験的）  1698 g170e-b20c256x2-s4842585088-d1091433838   20x256（実験的）  136.5  1547 g170-b30c320x2-s4141693952-d1091071549  30x320（実験的）  1653 g170-b40c256x2-s4368856832-d1091190099  40x256（実験的）  1680 g170e-b20c256x2-s5055114240-d1149032340  v1.4.2-nets  20x256（実験的）  145.5  1539 g170-b30c320x2-s4432082944-d1149895217  30x320（実験的）  1648 g170-b40c256x2-s4679779328-d1149909226  40x256（実験的）  1690 g170e-b20c256x2-s5132547840-d1177695086   20x256  150  1577 g170-b30c320x2-s4574191104-d1178681586  30x320  1759 g170-b40c256x2-s4833666560-d1179059206  40x256  1788 g170e-b20c256x2-s5303129600-d1228401921  v1.4.5  20x256  157  1645 g170-b30c320x2-s4824661760-d1229536699  30x320  1908 g170-b40c256x2-s5095420928-d1229425124  40x256  1919

 関連項目 

 AlphaGo Zero
 AlphaZero
 コンピュータ囲碁
 Minigo
 Leela Zero

 脚注 

 注釈 

 出典 

Category:囲碁ソフトウエア
Category:オープンソースソフトウェア
Category:応用機械学習
Category:2019年のソフトウェア
Category:C++でプログラムされた自由ソフトウェア