Minigo(ミニ碁)
Minigoは、DeepMindが発表した
AlphaGo Zeroに基づいたオープンソースの
囲碁思考エンジンです。
囲碁の基本的なルールのみがプログラムに含まれており、
囲碁の
定石や手筋といったヒューリスティクス(経験則)は一切用いられていません。Minigoはこのような特徴から、
囲碁をプレイするための新しいアプローチを提供しています。
概要と特徴
Minigoは、
AlphaGo Zeroの論文「Mastering the game of Go without human knowledge」をもとにした
囲碁AIです。このプロジェクトでは、一つの
ニューラルネットワークを持ち、自己対戦によって性能を向上させていきます。
AlphaGoはポリシーネットワークとバリューネットワークの二つの
ニューラルネットワーク技術を用いていましたが、Minigoではシンプルさが追求されています。ソフトウェア自体は
Pythonで書かれ、
ニューラルネットワークのトレーニングには
TensorFlowが採用されています。
Minigoは、Apache License 2.0の下で公開されており、その
ソースコードにアクセスすることが可能です。また、トレーニングデータも
パブリックドメインとしてリリースされています。プロジェクトの使命は、
TensorFlowや
Kubernetes、
Google Cloud Platformを使った
強化学習の実装例を提供することや、
AlphaGo Zeroの論文を支持・証明すること、さらには
囲碁業界や機械学習コミュニティに有益な情報を提供することにあります。
GoogleおよびDeepMindとの関係
Minigoの開発プロジェクトは、
TensorFlowの公式アカウントの下にあり、プロジェクトの中心的な開発者であるAndrew Jacksonは
Googleに所属しています。しかし、Minigoは
TensorFlowやDeepMindの公式プロジェクトとは独立したものであり、
AlphaGoの公式実装ではありません。Minigoは、自主的に
AlphaGo Zeroの研究からインスパイアを受けて開発されたものです。
GoogleとDeepMindは公式にはMinigoプロジェクトに参加していませんが、Andrew Jacksonは
Googleでの勤務時間の一部を使ってプロジェクトに貢献し、同時に
Googleから
計算資源の支援も受けています。
開発の進行
Minigoの開発は以下の段階で進められました。最初の段階は2017年11月で、約1000のCPUコアを使用して九路盤上でプログラムの動作確認を行いました。次の段階では、GPUを使用して19路盤におけるより大規模なトレーニングが行われ、プログラムの改良や
バグの修正に取り組みました。
その後の段階では、
AlphaGo Zeroに関する論文の詳細や実装方法の洗練を進め、最終的には他の
囲碁AIプロジェクトとの協業が進められました。この過程で、同じく
AlphaGo Zeroに基づく
囲碁AI「
Leela Zero」との情報共有も行われました。
成績と市販ソフトとの連携
MinigoはCGOS(Computer Go Online Server)の19路盤に「somebot」という名前で登録され、推定
イロレーティング約2600点に達するなどの成績を残しました。また、2019年11月29日に発売された『入神の
囲碁』では、Minigoが搭載されたことにより、さらに多くのユーザーに
囲碁AIの実力が知れ渡りました。
まとめ
Minigoは、オープンソースとして誰でも利用可能で、深層学習や
強化学習の研究に貢献しています。
AlphaGo Zeroの実績を基にし、シンプルかつ効果的な
囲碁思考エンジンとして、新たな
囲碁の未来を切り拓いています。