Leela Chess Zero
作者 | ジャン=カーロ・パスクット, Gary Linscott |
---|---|
開発元 | Gary Linscott, Alexander Lyashuk, Folkert Huizinga, others |
初版 | 2018年1月9日 |
最新版 |
v0.31.2
/ 2024年10月21日 |
リポジトリ | |
プログラミング 言語 | C++ |
対応OS | Windows, Mac, Linux, Ubuntu, Android |
種別 | チェスエンジン |
ライセンス | GPL-3.0 |
公式サイト |
lczero |
Leela Chess Zero(リーラ・チェス・ゼロ、略称: LCZero、lc0)は、フリーでオープンソースのニューラルネットワークに基づくチェスエンジンならびに分散コンピューティングプロジェクトである。開発の陣頭指揮を執るのはプログラマーのGary Linscott。LinscottはコンピュータチェスエンジンであるStockfishの開発者でもある。Lella Chess Zeroは囲碁エンジンLeela Zeroのチェス版である[1]。そしてLeela ZeroはGoogleのAlphaGo Zeroプロジェクトを基礎としており[2]、AlphaZeroの論文の手法をチェスに適用することで検証することも目的としている。
Leela ZeroおよびAlphaGo Zeroと同様に、Leela Chess Zeroはチェスの基本ルール以外のチェス特異的な固有知識を与えずに始められた[1]。Leela Chess Zeroは次に繰り返し行う自己対戦からの強化学習によってチェスをどうのように指すかを学習する。自己対戦にはLeela Chess Zeroウェブサイトで連係される分散コンピューティングネットワークを用いて行われた。
2020年現在、Leela Chess Zeroは3億局以上の自己対戦を行っており[3]、従来のトップチェスプログラムであるStockfishと比肩する水準で指す能力がある[4][5]。
歴史
[編集]Leela Chess Zeroプロジェクトは2018年1月9日にTalkChess.comで初めて公表された[1][6]。ここで、Leela Chess Zeroがオープンソースの自己学習チェスエンジンで、目標は強いチェスエンジンを作ることであることが明らかにされた[7]。訓練を開始して最初の数か月のうちに、Leela Chess Zeroは既にグランドマスターの水準に達し、モンテカルロ木探索を使うため評価する局面が数桁少ないにもかかわらず、Rybka、Stockfish、Komodoの初期リリースの強さを超えた。
2018年12月、AlphaZeroチームはサイエンス誌に新たな論文を発表し、未発表であったAlphaZeroのために使われたアーキテクチャの詳細と訓練パラメータを明らかにした[8]。これらの変更点はすぐにLeela Chess Zeroに取り込まれ、強さと訓練効率の両方が上昇した[9]。
Leela Chess Zeroについての作業は将棋に関する類似プロジェクトAobaZeroに知識を与えている[10]。
本エンジンはその発端以来書き直され、注意深く反復されており、現在は複数のバックエンド上で動作する。これによって、CPUとGPUの両方のハードウェアを効率的に使用することが可能になった[11] 。
変則チェスの一種であるフィッシャーランダムチェス(チェス960)をサポートしており、2020年5月現在こういったネットワークの実行可能性を試験するためにネットワークが訓練されている[11]。
プログラムと使用
[編集]Leela Chess Zeroを自己学習させ、人間の水準以上でチェスを指させるために設計者らによって使われた手法が強化学習である。これは機械学習アルゴリズムの1つで、自己対局を通して報酬を最大化するよう訓練される[1][8]。オープンソース分散コンピューティングプロジェクトとして、ボランティアユーザはLeela Chess Zeroを実行し、強化学習アルゴリズムに与えるための自己対局を何億局も行わせる[3]。Leela Chess Zeroエンジンの進歩に貢献するために、本エンジンとクラインアントの最新非リリース候補版(non-rc)をダウンロードしなければならない。クラインアントはLeela Chess Zeroの現在のサーバに接続し(サーバには自己対局からの全ての情報が貯えられる)、最新のネットワークを入手し、自己対局を生成し、訓練データをサーバにアップロードするために必要である[12]。
マシン上でLeela Chess Zeroエンジンと対局するためには、エンジンバイナリとネットワークの2つの構成要素が必要である(エンジンバイナリは、クライアントがエンジンのための訓練プラットフォームとして使われるという点で、クライアントとは異なる)。ネットワークは、局面を評価するために必要なLeela Chess Zeroの評価関数を含む[12]。より古いネットワークもダウンロード可能であり、それらのネットワークをlc0バイナリがあるフォルに置くことで使うことができる。
出典
[編集]- ^ a b c d “Leela Chess Zero: Full Elo Graph”. Lczero.org (7 March 2019). 7 March 2019閲覧。
- ^ “leela-zero”. GitHub. 27 April 2018閲覧。
- ^ a b “LCZero”. lczero.org. 2019年5月28日閲覧。
- ^ “Lc0 Wins Computer Chess Championship, Makes History” (英語). Chess.com. 2019年5月29日閲覧。
- ^ Pete (pete). “Stockfish Strikes Back, Tops Lc0 In Computer Chess Championship” (英語). Chess.com. 2019年5月29日閲覧。
- ^ “Announcing lczero”. TalkChess.com. 11 June 2018閲覧。
- ^ “Announcing lczero - TalkChess.com”. www.talkchess.com. 2019年3月21日閲覧。
- ^ a b Silver, David; Hubert, Thomas; Schrittwieser, Julian et al. (6 December 2018). “A general reinforcement learning algorithm that masters chess, shogi, and Go through self-play”. Science 362 (6419): 1140–1144. doi:10.1126/science.aar6404 .
- ^ “AlphaZero paper, and Lc0 v0.19.1” (7 December 2018). 14 February 2019閲覧。
- ^ Kobayashi, Yuki (2019-09-15), GitHub - kobanium/aobazero: Aoba Zero. 2019年9月25日閲覧。
- ^ a b “leela-chess-zero”. GitHub. 11 May 2020閲覧。
- ^ a b The rewritten engine, originally for tensorflow. Now all other backends have been ported here.: LeelaChessZero/lc0, LCZero, (2019-03-20) 2019年3月21日閲覧。