Leela Zero

Leela Zeroは2017年10月25日にリリースされたフリーソフトウェアのコンピュータ囲碁プログラム。チェスエンジンSjengと囲碁ソフトLeelaを開発したベルギーのプログラマー、ジャン＝カーロ・パスクットが開発した。

1. 概要
-----

Leela Zeroの思考アルゴリズムは、DeepMindのAlphaGo Zeroに関する2017年の論文に基づいて作られた。オリジナルのLeelaには多くの定石などの人間による知識やヒューリスティクスがプログラムに書き込まれているのとは異なり、Leela Zeroには囲碁の基本的なルールだけがプログラムされた。Leela Zeroはニューラルネットワークをもち、過去に対局した結果から学習することによって強化された。

Leela Zeroは、自身のWebサイトで調整された分散型の協力によって強化された。コミュニティのメンバーは、計算資源を提供してクライアントプログラムを実行した。クライアントでは自己対戦の対局を行い、結果は新しいニューラルネットの強化に使用された。通常、500以上のクライアントがサーバーに接続して計算資源を提供した。コミュニティは、高品質のプログラムコードの開発にも貢献していた。

Leela Zeroは、2018年4月28日に中国福建省福州で開催された「貝瑞基因杯2018世界人工知能囲棋大戦」で3位となった。2018年末の雑誌ザ・ニューヨーカーは、LeelaとLeela Zeroを「世界で最も成功しているオープンソースの囲碁エンジン」と評した。

2018年の初頭に、別のチームが同じコードベースからLeela Chess Zeroを分岐させ、チェスのゲームに適用されたAlphaZero論文の方法を検証した。AlphaZeroではGoogleのTPUが使用されていたが、Leela Chess ZeroではクラウドによるインフラストラクチャとOpenCLライブラリを介してGPUを使用する手法に置き換えられた。それでも、AlphaZero論文においてチェスのために必要だったという数十時間の訓練を補うためには、Leela Chess Zeroではクラウドによる1年のトレーニングが必要になると予想された。

2021年2月15日にLeela Zeroの分散トレーニングが終了した。プロジェクト終了に伴い、サーバーも閉鎖した。

2. AlphaGo Zero論文との差異
---------------------

強化学習の初期の段階では、Leela Zeroのアルゴリズムとプログラムが正しく機能するかどうかの確認のため、検証を高速化するために、AlphaGo Zero論文に記載されているいくつかのパラメータを調整していた。

ニューラルネットワークの構造 AlphaGo Zeroでは256種類のフィルターで20ブロックまたは40ブロックのCNNが使われていた。 Leela Zeroはニューラルネットワークのサイズを徐々に拡大した。
1 ブロック x 8種類のフィルター から始まり
4 ブロック x 32種類のフィルター、
5 ブロック x 64種類のフィルター、
6 ブロック x 128種類のフィルター、
10 ブロック x 128種類のフィルター、
15 ブロック x 192種類のフィルター、
20 ブロック x 256種類のフィルター のフィルターが今まで使用された
40 ブロック x 256種類のフィルター。 強化学習のための自己対局の局数 AlphaGo Zeroは自己対局を50万局行っていた。 Leela Zeroでは10ブロックより前では直近の25万局の結果が使われていた，10ブロックx 128種類のフィルター以降は直近の50万局の結果が使われている。 モンテカルロ木探索シミュレーションの数 AlphaGo Zeroが論文で自己訓練や正式な対局の際には、一手ごとに1600回のシミュレーションが行われる。 Leela Zeroでは当初はAlphaGo Zeroと同様に1600回のシミュレーションだったがのちに、3200回のシミュレーションに変更された。作者は元のAlphaGo Zero論文に欠陥があることを発見した。論文の最初の入力は17チャネルだったが、白番が碁盤の端を認識しやすくするために、Leela Zeroで18に修正されている。

3. 目標
-----

Leela Zeroの最初の目標は、AlphaGoゼロの論文の結果を再現することだった。後に注目を集めた後、より多くのコンピューティングリソースと人材がLeela Zeroプロジェクトに投資され、Leela Zeroの強さは急速に増加し、以前に開発されたLeelaや他の囲碁ソフトを上回った。

2018年5月のインタビューで作者のGian-Carlo Pascuttoは携帯電話で使用できる強力な囲碁ソフトウェアを作ることと答えている。

4. 強化学習
-------

作者は、開発開始当時のハイエンドPCで使われていたのハードウェアを使った場合、AlphaGo Zero自己学習レベル2900万局を達成するのに約1700年かかると予測していたため、2017年11月から、有志者が各自のハードウェアを使用して、作者グループが開発した「AutoGTP」プログラムを通じて分散コンピューティングのプロジェクトに参加する仕組みになった。

プロジェクトの開始から34日後，強化学習のための自己対局が100万局を超えた。
59日後、200万局を超えた。
74日後、300万局を超えた。
100日後、400万局を超えた。
119日後、500万局を超えた。
138日後、600万局を超えた。
166日後、700万局を超えた。
218日後、800万局を超えた。
261日後、900万局を超えた。
299日後、1000万局を超えた。2018年の初めに、ボランティアはインディアナ大学のスーパーコンピューターのBig Red IIのコンピューティングリソースの利用を申請したgroup=注。

Leela Zeroバージョン0.10以降は、GPUが不要な純粋なCPUバージョン、既存のアルゴリズムの最適化、および新しいアルゴリズムの導入がサポートされ、全体的な計算速度を大幅に向上された。

5. 他の囲碁AIとの協業
-------------

5.1. Minigo
-----------

MinigoもLeela Zeroと同樣にAlphaGo Zeroの論文をもとに作られたソフトウェアであり、Googleの援助により計算資源を得て、それをもとに多くの学習結果を得た。こうしたことから、Leela ZeroとMinigoのそれぞれの開発チームは学習結果や学習によるパラメータなどのノウハウの共有についての議論を行った。

5.2. ELF OpenGo
---------------

ELF OpenGoは、AlphaGo ZeroとAlphaZeroの論文をもとにFacebookが実装したソフトウェアで、Facebookは豊富な計算資源を使用し、学習結果を公開。Leela Zero開発チームはELF OpenGoの学習データをLeela Zero用に変換した。

Leela Zeroその後、ELF OpenGoの学習データを取り込むことを決め、2018年5月7日に実際に取り込んだ。

6. 成績
-----

6.1. CGOS
---------

CGOSで、有志者がバージョンアップごとに登録を行い、他の囲碁AIとの棋力の比較が行なわれている。

6.1.1. 登録名
----------

CGOSでの登録名はLZやLeelaZeroを頭文字にした名前がつけられている。その後にハッシュ値や学習回数