Egaroucidを使い始めてから4ヶ月が経った。
初めてPCを使って本格的に定石研究をしているが、なかなか捗っている。
僕はEgaroucidを以下のように活用している。
- 棋譜BoxのBookをEgaroucidに移す。
- EgaroucidでそのBookを育てる。
- 育てたBookを棋譜Boxに取り込む。
大変便利に使っているが、少々ややこしい事もあったので備忘録としてまとめておく。
結論
Egaroucidは便利、Edaxではなくこれからもこちらも使うつもり。
棋譜Boxのカスタムブックに組み込むとより便利。
ただ互換性の問題で微妙な点もある。
前提、誰向けか
そこそこのスペックのPC持ち(Windows) × 棋譜Boxユーザー向け(shimaxはわからんです)。
EgaroucidはMacでも使えるようだが、ビルドするためにプログラミングの知識が多少必要。使用感が変わるかは分からない。ちなみに僕はWindowsで使っている。
筆者のBook学習歴は浅く、棋譜Boxの学習機能を少しいじっていたぐらい。
Book学習に興味はあるが敷居が高くて手が付けられてない方、Edaxで学習しているがEgaroucidにも興味がある方などに読んでほしい。
旅路(目次)
今回の記事のゴールは、Egaroucidで学習したBookを棋譜Boxに取り込むことである。具体的な手順でやり方を説明する。以下は本記事の旅路を示した目次。
- Egaroucidをインストール(棋譜Boxをインストール)
- 棋譜Boxの標準ブック(orカスタムブック)をエクスポート(iCloudを使用)
- Egaroucidに読み込む
- 評価値がバグる
- 代表的な所だけ直す。(あとは適宜直していく)
- 気になる定石を学習する
- 定期的にBookのバックアップを取る
- 溜まってきたらEgaroucidから定石をエクスポート
- 棋譜Boxで読み込む
- 気になる定石を学習する に戻る
そもそもBook学習とは
Bookとは
AIが読まずとも確定している評価値のこと。確からしい評価値。また、その集まり。
毎回読む必要がないので早いし、正確なので正確。*
*正確ではないBookもあるため注意が必要。
Book学習とは
Bookを自分で作ること。
一度AIで正確に読んだ局面にもう一度出会った時に、前の結果を記録しておくことで二度手間が省ける、そんなイメージ。
Book学習するメリット
- 正確な評価値が分かる
- 強い定石かどうか判別する基準になる
- 暗記の復習が手軽にできるようになる
Book学習をして正確な評価値が分かると、今まで最善だと思っていた手が2石損だと分かったりする。また、正確なうみがめ数*も把握できる。強い定石を探すことにも、弱い定石を避けることにも役立つ。そしてスマホに移すと、大会前の暗記の復習が捗る。
*最善を打つために覚える必要がある分岐数のこと。自分は少なく、相手が多いと強い定石。
棋譜BoxのBookをEgaroucidで育てるメリットとデメリット
なぜEgaroucidの標準Bookを使わないか
Egaroucidに搭載されている標準Bookは登録されている局面が多く、容量が大きい。
Book学習をする時に、新たに登録されたBookを元々登録されていたBookに矛盾なく反映させるために「Book修正」という操作を行う。その際に容量が大きいと時間がより多くかかる。僕の環境だと棋譜Boxの標準Bookならば0.8秒程で終わるが、Egaroucidの標準Bookだと7秒ほどかかる。
Book修正は高頻度で行う作業なので、7秒とはいえ積もり積もってストレスになる。これが棋譜BoxのBookを採用した大きな理由だ。
また、今まで棋譜BoxのBookを使ってきて、それに慣れていて信用している、というのも大きい。今まで棋譜BoxのBookの範囲で困ったことがあまりない。不必要に容量が大きくなるよりも、自分が使う範囲だけ学習させれば良いと思っている。最終的にスマホの棋譜Boxに読み込ませるため、その点でも容量は出来るだけ軽い方が良い。
唯一のデメリットはBookの評価値がバグること
しかし、棋譜BoxのBookを取り込みBook修正すると、Bookの評価値がいくつかおかしくなる。これはEgarocidと,棋譜Box(が採用しているEdax)でBookの形式が違うから発生する。
直す方法は後ほど解説する。
EdaxGUIとの差別化
今までPCでBook学習をするための王道のソフトはEdaxだった。僕もEgaroucidと比較検討するために軽く触ってみた。
インストールはEdaxGUIの作者(simasukeさん)のブログから
Book学習のやり方はうみがめさんがブログで紹介している。
軽く触った結果、Egaroucidの方が使いやすいと感じた。恐らく一番の違いはBook学習のカスタマイズ性。Egaroucidは深さを1手単位で設定出来るが、Edaxは出来ない(15,20,...,35,40)
また、Egaroucidは開発者が活発で未だに高頻度でアップデートされている点でも好印象だ。
両者に精通している方がいたら、それぞれの強みと弱点をご教示頂けると嬉しい。
旅路
さて、それでは棋譜BoxユーザーがEgaroucidでBook学習をするためのフローチャートを見ていこう。
Egaroucidをインストール(棋譜Boxをインストール)
ホームページからインストールする。
僕はWindows版を使っている。Macでの使用感は分からない。
棋譜Boxの標準ブック(カスタムブック)をエクスポート(iCloudを使用)
解析画面を開いて下部の三点リーダーをタップ。
・・・>設定>
- カスタムブックを使っている場合
カスタムブックのメンテナンス>外部へエクスポート>iCloud上の適当な場所へ保存(僕はothello_bookというフォルダで管理している)
- カスタムブックを使っていない場合
カスタムブックの設定>標準ブックをコピー
すると標準BookがカスタムBookにコピーされるので上の手順に移行。
メモ
Edax形式のBookの拡張子はdatとなっている。名前を分かりやすくすると良い。custombook[日付].datなど。
Egaroucidに読み込む
PCからiCloudにログインして、先ほど移動したBookをPCにダウンロードする。
Egaroucidをインストールした際にドキュメンツ階層にEgaroucidという名前のファイルが出来ているはず。
Documents/Egaroucid
そこでBookを管理するのが良い。直接でも良いし、book_backupなどとファイルを作ってそこに保存しても良い。
ちなみにDocuments/Egaroucidの中にあるBook.egbk3を参照してEgaroucidはBookを表示している。そのためそのファイルはいじらないこと。
Egaroucidを立ち上げて、Book>ファイル操作>Book読み込み
そしてそこに先ほどDocuments/Egaroucidに保存したBookをドラック&ドロップ。
すると無事読み込まれる。
ちなみにそこでEgaroucidを終了すると、現在使用しているそのBookがBook.egbk3に上書きされる。
評価値がバグる
棋譜BoxのBookをEgaroucidに持ってくることが出来た。しかし、ここで一つ問題点がある。
取り込む過程でBookの幾つかが欠損しているため、Book学習を一度行うと評価値が崩れてしまうのだ。
これはEdaxとEgaroucidのBookデータの扱い方が違うために起こっているそうだ。
おそらくこれを避ける方法はない。しかし、崩れたBookを手作業で修復していくことはできる。この方法については次の節で解説する。
まずは崩れることを見ていこう。
取り込んですぐは評価値は崩れていない。しかし、以下の操作で崩れる。
Book>Book操作>Book修正 そして「開始」を押す。
はいオセロは白勝ちです
所々評価値がおかしくなっている。
代表的な所だけ直す。(あとは適宜直していく)
これでは気になるので、代表的な場所だけでも直したい。
バグる理由
そもそもなぜ評価値がバグるのかというと、Bookを読み込む過程で(ほんのわずかな数だが、)いくつかのBookが欠損してしまっているからだ。そしてEgaroucidはBookに登録していない手よりもBookに登録している手(例えそれが悪手でも)を最善と判断するためいくつかの局面の評価がおかしくなる。そしてBook修正をする時に繋がった局面の評価値の辻褄合わせが行われて手前の局面までバグった評価値が引き継がれていく。
直し方
最初は複雑に思うかもしれないが、慣れれば簡単にできる。
Egaroucidと棋譜Boxの評価値を見比べながら直していく。
例えば並び取りを直してみよう。本来並び取りは-6のはずだが-2になっている。
悪さをしている局面(Bookが欠損した局面)を探す
局面を進めてみると7手目c3が本来-9のはずなのに、-2となっている。さらにお互い最善で(エセBookの最善で)進めてみると、11手目で以下の(3枚目の)局面になる。この局面は黒+12のはずだが、登録されているBookがc6の+2だけなのでこの局面の評価が黒+2となってしまう。そのため一手前の10手目白d6が-2と判断されてしまったわけだ。取り込む前の棋譜Boxのカスタムブックには11手e7が+11と登録されていたが、それが欠損してしまったことが大元の原因である。これを治すには11手目の局面の最善手をBookに登録すれば良い。
11手目の局面の最善手をBookに登録する
そんなに正確である必要はないので以下の設定で学習する。
(レベル,深さ,1手あたり誤差,積算誤差,リーフ誤差)=(21,11,0,0,0)
学習の設定項目については後ほど詳述する。
ポイントは深さを11手にすること。この設定なら学習は数秒で終わる。
e7が+12とbookに登録された。
終わったら評価値を前の局面に反映させるためにBook修正をする。
Book>Book操作>Book修正
すると無事10手目d6が-12となった。(対称形なのでc5も直った。)
それ以前の手にも反映されて、当初のおかしな評価値であった6手目c3が-7となり、この局面の評価値がちゃんと白-6となった。そして無事並び取りが白-6となった。
壊れたBookの修復作業は最初はややこしいが、慣れてくれば簡単にできるようになる。
ただし、一つずつ手作業で直していく必要があるためそこは面倒ではある。
Egaroucidは非常に便利だが、Edax形式のBookが読み込む過程で欠落してしまうことだけが勿体無い点だと感じる。(Edax形式のBookが読み込めるだけありがたいのだが。)
気になる定石を学習する
あらかたBookが直ったら、いよいよ本格的に気になる定石をBook学習する。
学習するのは以下の定石がおすすめ
- 高頻度で打つがBookに登録されていない定石。
- 勝率が悪く、良い対応を探したい定石。
- 心機一転、試したい定石。その中でもどの流れが良さそうか調べる。
などなど。
具体的な学習の仕方は後ほど紹介する。
定期的にBookのバックアップを取る
特に使い始めの頃は定期的にBookのバックアップを取ることを推奨する。誤操作で大切なBookを消してしまった時に泣かないで済む。
Book>ファイル操作>Book書き出し
名前をデフォルトのbook_copy.egbk3からbook_[日付].egbk3とするのがおすすめ。
バックアップを復元する時は、棋譜BoxのBookを取り込んだ時と同様で
Book>ファイル操作>Book読み込み
から読み込みたいBookをドラック&ドロップする。
溜まってきたらEgaroucidから定石をエクスポート
ある程度Bookが育ってきたら、そのBookを棋譜Boxに取り込んでみよう。
Book>ファイル操作>Book書き出し
から書き出してそのファイルをiCloudにアップロードする。
Edax形式で書き出すためには、拡張子を.egbk3から.datに手入力で直す。
棋譜Boxで読み込む
育てたBookをカスタムブックとして読み込む。
まずは現在のカスタムブックを消去する。
棋譜Boxの解析画面から
・・・>設定>カスタムブックのメンテナンス>消去
消去できたら
カスタムブックの設定>外部(クラウド等)からインポート
そしてiCloudから育てたBookを指定する。
これでスマホから自分のBookを手軽に見ることが出来るようになる。
気になる定石を学習する に戻る
Bookをどんどん育てていき、大会前などにスマホに移して復習しよう。
スポンサーリンク
Book学習のやり方
Book学習のやり方も少しコツがいるため解説する。
作者のサイトで詳しく説明されているが、僕なりに噛み砕いて書く。
探索の方向
僕が今まで使っていた棋譜Boxの学習機能は棋譜を指定して後ろから学習していくアプローチだった。
それに対してEgaroucidは特定の局面から広がっていく形で探索する。
(一応棋譜を指定して学習もできるが、いまいち使いづらい。元々広がっていく形で探索する想定なのだと思う。)
Bookが切れた局面などを開始地点(20手目ぐらいが理想)として、そこから設定した条件で学習する。
Bookの精度
Bookの評価値は完全に正しいわけではなく、中には怪しい評価値も含まれている。
そこでEgaroucidではBookの評価値の信憑性をA~Fの6段階で評価している。
よく使う定石はAを目指し、そこに至るまでの分岐はCを目指すのがおすすめ。精度FのBookがBook修正によって、その前の局面のBookにまで反映されて悪さをすることがある。そのため低すぎるレベルで学習をかけるのはあまりおすすめしない。
Book学習のおすすめ設定
作者のサイトにおすすめの設定が書いてあり、僕もそれと同じ設定で学習している。
(レベル,深さ,1手あたり誤差,積算誤差,リーフ誤差)=(19,31,4,4,4)
で広く探索をかけた後に、
(レベル,深さ,1誤,積誤,リ誤)=(27,32,0,0,2)
で最善進行を完全読みする。
レベルを上げるほど正確になるが、当然時間もかかるようになるため、パソコンのスペックと相談しよう。
10~15手目など、最序盤からBook学習をすると、その分時間がかかる。その場合は精度を犠牲にして低いレベルで学習をかける。
設定の意味
作者のサイトにそれぞれの設定項目の意味が書いてあるので、詳しくはそちらを参照されたし。
当記事では使う側の目線で、それぞれの項目の概要を説明する。
レベル
何手読みするか。レベルが高いほど正確だが、時間もかかる。シチュエーションによって複数のレベルを使い分けるのがおすすめ。
深さ
どの深さまでBookに登録するか。深い程時間がかかる。レベル27,深さ32で完全読みになるのは、27+1+32=60だからだと思う。うみがめ数を調べたい定石などは深さ40まで登録すると良い。ただし、後で紹介するBook削減の時に深さ40以上に設定しないと消されてしまうため注意。
1手あたり誤差
最善から何石損の手まで探索するか。初めに広く探索するときは4,最善のみを調べたい時は0にする。
積算誤差
1手ではなく、累計で何石損の手まで探索するか。基本1手あたり誤差と同じで構わない。
リーフ誤差
リーフはBookに登録されていない有力な手のことだが、いまいち難しくて掴めていない。作者がおすすめしている設定を真似て雰囲気でやれば大丈夫だと思う。
Book削減
学習したい局面について一通り学習し終えたら、出来るだけその度にBook削減をすることをおすすめする。
Egaroucidでは探索の際に最善になり得る進行(僕の設定なら4石損までの進行)を全てBookに登録する必要がある。しかし、探索し終えて概ね正確なBookが求められたら4石損の進行などは不要になる。そこでBookの肥大化を防ぐためにBook削減を行う。Book削減の設定項目は、深さ,1手あたり誤差,積算誤差の3つ。おすすめは(深さ,1誤,積誤)=(40以上,2,4) という設定。これで大体1/3ぐらいになる。
容量が少ない方が何かと便利なので、出来るだけ毎回やるようにしたい。
細かいコツ
時間がかかりすぎる場合は一度中断して設定を見直す
Edaxと違ってEgaroucidは中断してもそこまでの探索をBookに記録してくれる。
時間がかかりすぎる場合は一度中断して、もう一段階低いレベルにしてやり直そう。
ただし中断するタイミングによっては局面の評価がおかしくなるため注意。例えばある局面に悪手の1手だけBookが登録された状態で中断すると、その手が局面の評価になるためおかしくなる。度々説明しているこの挙動はEgaroucidの特徴なので慣れる必要がある。
作業の合間にやると捗るかも
一度学習をかけると時間がかかる都合上、何か別の作業と併用しながらやると捗るかも。ただ、不定期に作業を中断できるようなものでないとダメなので意外と相棒が見つからないのよね。YouTube視聴や読書など、自分に合うものを見つけよう。
精度(A~F)にこだわりすぎない
全部Aにしようと思うと沼にハマるので、切り上げるタイミングも大事。結局は自分が打つ進行が見つかれば良いのであって、僕たちはBookコレクターではない。
1局面1時間以内を目指す
目安としては場合によるけど1局面1時間以内ぐらいかな。
それ以上時間を使うと虚無感に襲われる。
ケチって低いレベルを使わない
今までのアドバイスと矛盾するようだが、低いレベルで作った精度の低いBookも高いレベルで作った高精度のBookもどちらも同じ容量を食う。そのため出来るだけ高いレベルで学習をかけた方が良い。
バグった評価値を全て治す必要はない
最終的に棋譜Boxで使う想定をしているため、バグった評価値を全て治す必要はない。棋譜Boxを使用中に怪しい評価値を見つけたら、カスタムブックから標準ブックに切り替えれば良いからだ。むしろ普段は標準ブックを使って、大会前に暗記を復習する際にカスタムブックに切り替えて使う、という方法もある。
まとめ
今やオセロクエストの黄色レートプレイヤーですら60手暗記をしている時代である。暗記量のインフレが止まらない。スマホだけでも序盤研究はできるが、PCで,Egaroucidを使って研究すると精度も量も格段にレベルアップする。上手く使いこなして効率的に序盤研究をしよう。
追記
Twitterで作者からコメントを頂いた。
活発に動いているソフトを使わせて貰えるのはとても有り難いことですね。
ちなみにですが、現在のEgaroucidでも、book学習オプションでリーフ誤差を0にして学習させると、バグる原因になる局面を自動で選んで探索してくれます。
— 山名琢翔(にゃにゃん) (@takuto_yamana) November 30, 2024