KataGo (カタゴ) - 最強の囲碁AI
KataGoは、David J. Wu氏(lightvectorとして知られる)によって開発された、最先端の
コンピュータ囲碁プログラムです。DeepMind社の
AlphaGo Zeroと
AlphaZeroの研究成果を基盤としつつ、独自の改良を重ね、驚異的な
強化学習速度を実現しました。
概要
AlphaGo Zero/
AlphaZeroの論文をベースに、数々の関連研究と独自の工夫を組み合わせることで、KataGoは
強化学習の効率を飛躍的に向上させることに成功しました(50倍以上!)。その結果、
ニューラルネットワークのデータが公開されている、世界トップレベルの
囲碁AIソフトウェアとしての地位を確立しました。
KataGoの実装には、以下の要素が含まれます。
セルフプレイトレーニングプログラム: C++、
Python 3、
TensorFlowを用いて実装されています。自己対局を繰り返すことで、AIが自律的に学習します。
GTPエンジン: C++で実装された、ソフトウェアから操作可能なエンジンです。他の
囲碁ソフトウェアとの連携を可能にします。
オープンデータ: Jane Street Capital (作者の所属企業) は、トレーニングに必要な計算資源を提供するとともに、学習結果である
ニューラルネットワークデータも公開しています。これにより、研究者や開発者はKataGoの技術を自由に利用し、発展させることができます。
KataGoは、
囲碁AI検討ソフト「
Lizzie」の思考エンジンとしても採用されており(
Lizzieバージョン0.7以降)、その高度な分析機能は、オンライン
囲碁分析Webサイト「AI Sensei」でデフォルトの分析エンジンとして活用されています。
"KataGo"という名称は、日本語の「
形(かた)」に由来します。作者のlightvector氏は、
強化学習を通じて永続的に鍛錬し、独自の「
形」を完成させるAIのイメージに合致すると考えました。
他の囲碁AIとの差異
オープンソース/オープンデータ: KataGoは、ソースコードと学習データを公開しています。これにより、透明性が高く、コミュニティによる改良が促進されます。
低コストでの強化学習: 強化学習のコストが大幅に削減されたため、家庭用PCでも比較的高レベルの
強化学習が可能です。わずか数日でアマチュア高段者に匹敵する棋力に到達します。
`kata-analyze`コマンドのサポート: KataGoのGTPエンジンは、`kata-analyze`コマンドをサポートしています。これにより、フロントエンドプログラム(
Lizzieなど)がKataGoの目数差分析結果を取得し、人間の判断を支援します。終盤の
ヨセにおけるミスを減らすことができます。
OpenCLとCUDAの両方をサポート: KataGoは、
OpenCL (v1.2以降) と
CUDAの両方をサポートしています。最新の
OpenCL版は最適化されており、
CUDA版とほぼ同等の速度で動作します。
Leela Zeroは
OpenCLのみをサポートしています。
強さの変遷
KataGoは、バージョンアップごとに着実に棋力を向上させています。
最初のバージョン (g65, v1.0): 2019年2月、35台の
NVIDIA Tesla V100を使用して7日間の
強化学習を実施。6ブロックx96フィルターから15ブロックx192フィルターまで成長し、
Leela Zero(LZ130相当)と同等の棋力に到達しました。
2番目のバージョン (g104, v1.1): 2019年5月から6月にかけて開発。28台の
NVIDIA Tesla V100を使用し、6ブロックx96フィルターから20ブロックx256フィルターまで
強化学習を実施。ハイパーパラメータの改善により、わずか3.5日で最初のバージョンを上回る棋力を達成しました。LCB(Lower Confidence Bound)の導入により、さらに棋力が向上。「LZ-ELFv2」(ELF OpenGo v2の重みを
Leela Zeroで実行したもの)を凌駕し、
Leela Zeroの40ブロック版(LZ200相当)と同等の棋力に達しました。
3番目のバージョン (g170, v1.3, v1.4): 2020年1月から6月にかけて開発。29GPUから開始し、14日後に37GPU、さらに24日後(合計38日)に47GPUに増強して学習を実施しました。
v1.5.0以降では、GPUを使用しない純粋なCPUでの動作もサポートされました (Eigenライブラリを使用)。バージョンv1.8.0以降では、分散トレーニングがサポートされ、世界中のユーザーが重み (
ニューラルネットワーク) のトレーニングに協力できるようになりました。
関連項目
AlphaGo Zero
AlphaZero
*
コンピュータ囲碁