リラぼっとZ
(リラぼっとELF, リラぼっと9, リラぼっと13については
下の方に記載があります。)
はじめに
ベルギーのGian-Carlo Pascuttoさんによる、AlphaGo Zero論文の追試を
目的とした、Leela Zeroというプロジェクトがあります。
同じ作者の囲碁プログラム
Leela
とは別物で、人間の知識を入れず人間の棋譜は一切使わないで
自己対戦のみで学習させ、どこまで強くなるか試してみようというプロジェクトです。
GoogleのAlphaGo ZeroはTPUというGoogleのDeep Learning専用ハードウェアを
用いて学習させていたのですが、それを一般のPCでやろうとすると
およそ1700年かかると予想され、そこで大勢の人々に協力を呼びかけて
みんなのPCの計算能力を借りてなんとかしよう、というプロジェクトになっています。
2018年4月時点で、およそ700人の人々が日々協力し、通算で680万局の
自己対戦が行われています。
プロジェクトのページ
(IEではなぜかグラフが見えないので他のブラウザで見てください。)
のグラフを見ると、自己対戦の対局数に応じて棋力が伸びていく様子が
よくわかります。
2017年11月末にスタートし、最初は単なるランダムでしたが、
棋譜を見ると最近とても強くなっているのが分かり、すでに
旧Leelaを超えて2子は強い、という話も聞こえてくるようになりました。
そこで、Leela Zeroを
iGo棋院避難所
で対局できるようにしてみました。
現時点(2018年4月)では、
プロジェクトのページ
の下部にあるBest Network Hashの中の、#119というネットワークの重みデータを
使っています。これは学習データそのものであり、基本的に
番号が大きい(=新しい)ほど強いです。#1から始まって、前のものに対して
400戦して勝率が55%以上なら良い重みデータとして合格、という方法で
学習していて、その119世代目のデータということです。
使い方
基本的な使い方はポカぼっとと同じです。
こちらを見て下さい。
ポカぼっとにあるいくつかの機能は省略されています。
-
「地合い」コマンドは使えません。
-
「投了」コマンドは使えません。形勢が悪ければ投了します。
-
「死に石」、「詳細」、「宇宙流」コマンドは使えません。
-
リラぼっとにあった「形勢」コマンドは使えません。
-
死石の指定を自動ではできないので、手動で行って下さい。
-
19路盤専用です。コミは7.5に固定されています。
ハードウェア
リラぼっとと同じマシン
(core i7 4770K + NVidia Titan Black)
を使っています。そのため、リラぼっとと同時に動かすことはできません。
リラぼっとと同様、多面打ちは出来ません。
思考時間は1手10秒に設定しました。
注意事項、バグなど
-
中国ルールを採用しているため、日本ルールとスコアがずれることがあります。
-
「レベル」コマンドでレベルの変更が出来ますが、レベルの数値は、
そのままLeela Zeroに与える「一手あたりの思考時間」に対応しています。
-
置碁の学習はしていないようで、置碁は極端に弱いです。互先専用と思った方が良さそうです。
リラぼっとELFについて
2018年5月2日、FacebookのAI研究所が、ELF OpenGoという新しい囲碁AIを
発表しました。
これはLeela Zeroと同様にAlphaGo Zeroの論文の追試を
行ったものです。発表によると、
- Leela Zeroの#128に対して198勝2敗
- 世界の上位30名以内に入る4名のプロ棋士に対して14戦全勝
- 自己対戦による学習は2000個のGPUを使って二週間で行われた
とのことでした。学習済みの重みデータも公開されているので、
自分でコンパイルすればその強さを味わうことも出来ます。
ELF OpenGoも試してみたいなと思っていたところ、2018年5月5日に
Leela Zeroが0.14にversion upされ、
ELF OpenGoの学習データ(を変換したもの)
を
使用できるようになりました。そこで、リラぼっとZにELF OpenGoの
学習データを食わせたものを、「リラぼっとELF」として動かすことにしました。
リラぼっとELFの強さについて
ELF OpenGoはLeela Zeroに対して198勝2敗というデータがあります。また、
Leela ZeroにELFの学習データを食わせたものが素のLeela Zeroに対して
402勝29敗というデータもあります。
このように、リラぼっとELFは明らかにリラぼっとZより強そうに見えますが、
実は必ずしもそうとも言い切れません。
402勝29敗の方のデータは、両者とも同じ3200playoutで対戦させたものです。
また、Leela Zeroの現時点でのネットワークサイズが192x15なのに対して
ELFのネットワークサイズが224x20で、1playoutあたりの計算時間がELFの方が
大きくなっています。
そのため、同じ持ち時間で比較すると、ELFの方がplayout数が少なくなるため、
両者の差は縮むはずです。
1手15秒で白黒入れ替えながら6戦させてみたところ、ELFがZに対して4勝2敗でした。
この程度の対局数では断定できませんが、
必ずしも圧倒的に強いとは言えないようです。
リラぼっと9, リラぼっと13について
Leela Zeroは今の所19路専用です。ソフトウェアそのものはコンパイルし直せば
別の大きさの碁盤にも対応していますが、Leela Zeroプロジェクトでみんなで
鍛えているのは19路だけだからです。
が、個人で鍛えたネットワークファイルがいくつか公開されているので、
それを使ってリラぼっと9, リラぼっと13を動かしています。
19路ほど鍛えられてはいないはずですが、盤が小さいせいかそれでも
それなりに強いようです。
更新履歴
- 2018/4/10 開発開始。
- 2018/4/11 初版完成。Leela Zeroのversionは0.13。weightファイルは#119 (2018/04/09, R10282)
- 2018/4/21 weightファイルを#125 (2018/04/18, R10513) に。
- 2018/4/22 weightファイルを#126 (2018/04/21, R10547) に。
- 2018/4/23 weightファイルを#127 (2018/04/22, R10574) に。
- 2018/4/26 weightファイルを#128 (2018/04/25, R10609) に。
- 2018/4/30 weightファイルを#129 (2018/04/29, R10655) に。
- 2018/5/2 weightファイルを#130 (2018/05/02, R10712) に。
- 2018/5/5 weightファイルを#131 (2018/05/04, R10746) に。
- 2018/5/5 Leela Zeroのversionを0.14に。
- 2018/5/7 リラぼっとELF投入。
- 2018/5/10 Leela Zeroのversionを0.15に。
- 2018/6/19 weightファイルを#148 (2018/06/08, R11455) に。
- 2018/6/30 weightファイルを#153 (2018/06/29, R11646) に。
- 2018/8/1 リラぼっとELFのweightファイルを
ELFV1
に。
- 2018/11/3 Leela Zeroのversionを0.16に。
- 2018/11/4 コミを強制的に7.5に変更するようにした。
- 2018/11/8 リラぼっと9投入。weightファイルは
https://github.com/gcp/leela-zero/issues/1291
にあった、
これ
を用いた。コミは6.5。
- 2019/2/13 リラぼっと13投入。
- 2019/2/15 リラぼっとZのweightファイルを
15b training update #2192
の2019/2/3版に。
- 2019/7/2 リラぼっと13の思考エンジンを変更。
ここ
にあるelf_13を用いた。
- 2019/7/2 リラぼっと9の思考エンジンを変更。コミを7.5に変更。
ここ
にあるkomi 7.5 169th weightを用いた。
- 2019/7/2 リラぼっとZのweightファイルを
15b training update #2192
の2019/5/31版に。