こいずみりくブログ

囲碁、数学、工学、浅瀬トーク

囲碁AI「Leela」を用いた、自分の対戦棋譜の局後検討(改訂版)

※本記事は、下記の記事の全面改訂版です。

koizumi-riku5133.hatenablog.com上記記事への読者からのコメントをきっかけに、本記事が書けました。謹んで感謝します。

1. はじめに

▼Leelaは、個人が開発したフリーで遊べる囲碁AIソフトです。無料ながら、アマチュア高段の実力を有します。

https://sjeng.org/leela.html

Leelaは、AIとの対局を楽しめる他、各種の分析機能を搭載しており、自分の過去の棋譜を読み込んで検討することが可能です。

 

▼本記事では、私の実戦譜を用いてLeelaでの局後検討を行います。

 

2. 今回検討する棋譜

 ▼今回は、下記の棋譜を用います。私の過去のネット対局での実戦をもとに、棋譜編集ソフト「KiinEditor」で作成した棋譜データ(sgf形式)です。

f:id:koizumi-riku5133:20180321133558p:plain

 ▼私の白番。黒が5手目で天元を占めてきました。ネット対局では過去に複数回経験があります。

私はいつも、白6とカカるのですが、黒7のツケから黒9もネット対局で頻出する進行。私は白10のツケから白14のように対応します。

 

▼この一連の白の打ち方が正しいのか、Leelaで検討してみることにします。

 

3. Leelaでの検討

3.1 棋譜の読み込み

▼Leelaを立ち上げ、File→Open Game…で、sgf形式の棋譜データを読み込むことができます。

f:id:koizumi-riku5133:20180321133607p:plain

 読み込むと、棋譜データの最終手の場面が表示されますから、初手から表示したい時は矢印ボタン「←」などで戻ります。

 

▼解析を開始するには、Analyze→Start/Stop Analyzeを選択します。また、Analyze→Analysis Windowを選択すると候補手の一覧、Analyze→Show Histgramを選択すると勝率の履歴が、それぞれ別ウィンドウで表示されます。

 

▼以上で準備が整いました。次節で検討を行っていきます。

 

3.2 検討その1:問題の局面の評価

▼問題の局面を見てみます。黒5手目の天元です(下図赤印)。私の経験では、ネット対局でたまに見かけるのですが、この手は良い手なのでしょうか。

f:id:koizumi-riku5133:20180321133616p:plain

 

▼「Score Histgram」を見てみます。この図は黒と白、どちらが優位かを示しています。

f:id:koizumi-riku5133:20180321133625p:plain

 折れ線が3色ありますが、アルゴリズムの差異です。ここではあまり気にしません。折れ線が上半分にあれば黒が優位、下半分にあれば白が優位であることを示しています。

 

▼この図から、現局面では双方ほぼ互角で白が若干優位であることが分かります。つまり、黒が天元に打ってくる点は現時点で恐るるに足らず、であると言えます。

 

▼それでは、白はどのように応手すればよいでしょうか。次節で検討していきます。

 

3.3 検討その2:候補手の表示

▼「Analysis」の画面を見てみます。Leelaが考える候補手の一覧が示されています。

f:id:koizumi-riku5133:20180321133637p:plain

この表を読み込むと、実はかなりの情報量なのですが、この表だけを見てもピンと来ませんね。この画面は後で使います。

 

▼Tools→Show Network Probabilitiesを選択すると、碁盤上に赤から青の色が表示されます。

f:id:koizumi-riku5133:20180321133646p:plain

▼これはAIの機械学習結果に基づく候補手が表示されています。Leelaはプロの棋譜で学習しているので、この候補手はざっくり言うと「プロならこう打つ」というのをLeelaが集計してくれたものと考えることができます。

 

▼色が赤いほど、プロが打つ確率が高い手です。右辺の星下、星へのカカリが候補手として挙がっています。

私が打ったカカリ(マウスカーソルがあるところ)は、うすぼんやりと青く光っているので、全くありえない手ではないようです。

 

▼もうひとつ、似たような表示機能があります。Tools→Show Best Movesを選択します。

f:id:koizumi-riku5133:20180321133656p:plain

▼こちらは、Leelaが考える勝率が高い手を示しています。Leelaは機械学習の結果とモンテカルロ・シミュレーションを組み合わせており、その解析結果です。

 

▼右辺星下の候補手は、プロの棋譜の学習結果と一致します。一方、次の候補手としてLeelaは星へのカカリではなく、左辺の星に三連星に構える手を挙げています。

プロの手を信じるか、AIを信じるか、という風に考えることもできますし、これが人間とAIの感覚の違いかあ、という風に楽しむこともできます。

 

3.4 候補手からの想定進行

▼Leelaは、候補手だけでなく、その先の想定進行も表示することができます。「Analysis」画面(候補手の一覧表)から、候補手をクリックしてみます。

f:id:koizumi-riku5133:20180321133708p:plain

このように、想定進行を表示させることが出来ます。この想定図は、勝率がいちばん高い候補手からの進行ですが、私には難しく感じます。

 

▼次の候補手からの進行を示してみます。

f:id:koizumi-riku5133:20180321133717p:plain

 こちらの方が、私には簡明に感じられます。今度からは、この手を打ってみようと思います。

 

3.5 実戦の進行の評価

▼せっかくですので、実戦の進行がどうだったか見てみましょう。Tools→Show Territoryで、下図のように陣地の見積もりをしてくれます。

f:id:koizumi-riku5133:20180321133726p:plain

 

▼また、Tools→Show Moyoで、勢力図も見ることができます。

f:id:koizumi-riku5133:20180321133735p:plain

 いずれにしても、特に白は損をしていないようです。Histgramを見ても、白若干優勢のままでした。

 

4. おわりに

▼Leelaでの検討の結果、私の実戦の進行でも悪くはないが、もう少し簡明かつ勝率の高い手を見つけることができました。 これは、囲碁AIを活用すれば、初級、中級レベルのアマチュアでもレベルの高い棋譜検討が行える可能性を示しています。

 

▼質の高い囲碁AIが無料で提供されていることに感謝しつつ、今後もLeelaを活用した囲碁の勉強を続けていきたいと思います。

 

囲碁AIのより良い活用法、事例などありましたら、参考にしたいと思います。ぜひ、コメントやTwitterなどでご意見や情報をお寄せください。