電王戦 第五局 Ponanzaの意外な弱点


※ この記事は電王戦 第五局が始まる3日前に書いている。


Ponanzaが他のどのソフトより一回り強いソフトであることには誰も異存はないだろう。
ノーパソで人間の強豪相手に166連勝とか凄すぎて言葉も出ない。


そんなPonanzaだが、開発者の山本君自身が「銀ばさみ」を弱点として挙げている。



https://twitter.com/kagami_tomo/status/452827971808534528


初めてこの話題を聞く将棋ファンにとっては「これだけ化け物級の将棋ソフトが銀ばさみなどと言う初歩的な手筋を食らうはずがない」と考えるだろうが、銀ばさみを食らいやすいというのは本当のことなのだ。


ライトな将棋ファンのために説明しておくが、銀はさみというのは次図のような形で銀が死んでいることを言う。



歩がタダ取りできると思って銀で歩を取りに行ったときに、銀の前に歩を打たれて上図のような形となり、あえなく銀がご臨終となる。


実は、従来から将棋ソフトは銀ばさみを食らいやすかった。理由はいくつかあると思う。


・理由1 銀ばさみされた形は部分的にはいい形である。


例えば、Bonanza型の評価関数では3駒関係の評価をしているが、このなかで、銀ばさみの形はどう評価されるか。(いま2駒関係は問題ではないのでそれについては考えない)


Bonanzaの3駒関係」というとき、1枚は玉であり、残り2枚がここでは銀と歩なのだが、銀ばさみの形は部分的には、たいていはいい形として評価してしまう。



例えば、歩の裏から香を打つような形は(香を打つ側にとって)いい形である。これは歩が合い駒できないからだ。



同様に、銀ばさみの形も、次に歩の裏から歩を打てたりして(次図)部分的にはいい形なのだろう。



そもそも銀が出て銀ばさみに遭って銀が無条件でタダ取りされるような形での銀の進出はプロの実戦棋譜には出てこない。本当に無条件でタダ取りされるなら、プロはそんな進行は避けるからだ。銀が出るからにはそれ以上の代償があるときのみである。だから、プロの棋譜から評価関数のパラメーターを学習させたときに銀ばさみになっている形に対してなかなかマイナスの値がつかない。


同様に、棒銀などで攻めに行って敵陣の形を乱す代償に銀をタダ取りされてしまう指し手がソフトに多いのも実戦(プロの棋譜)には成功事例しかないからなのかなという気が少しする。


・理由2 銀ばさみした銀をとった形はすこぶる悪形である。


次に、銀ばさみした銀を歩で取りきった形。これが銀を取った側から見てすこぶる悪形だということ。将棋には「位(くらい)を取ったら位の確保」という格言があるが、浮いている歩がいくつも並んでいるのはよくない形なのである。銀を取った側が瞬間的にすこぶる悪形なのでこれが形勢評価を誤らせる一因となる。


従来のソフトが銀ばさみに弱いのは、おそらく上記の2つの理由が大きいのではないかと思う。


しかし、Ponanzaが銀ばさみに遭いやすいのは、もう2つぐらい理由があると私は考えている。それというのも、いま開発中の新やねうら王も銀ばさみにやたらと遭うのだ。やねうら王の開発中のものを将棋倶楽部24に放流しているのだが、まだ200局すらしていないのにすでに3回も銀ばさみを食らっている。最初、バグか何かだと思ったのだが違うようだ。そして、どうもその原因はPonanzaと根が同じものだと思う。それについて簡単に説明する。



・理由3 銀ばさみしたあと歩を打って銀を殺す手の形が悪すぎる


おそらく統計的に見て、歩を自陣に打つ手が好手である確率というのはあまり高くない。歩は本来ならば敵陣に使いたい。それを自陣に使うのは、他の指し手では悪くなるので辛抱をするときがほとんどである。そこで、自陣の歩は形としてそれほどプラスにはなっておらず、また、指し手のオーダリング(探索する順番を決めるための順序付け)をするときにも打ち歩は低い順序になりやすい。そのため、探索部で激しく枝刈りをしているタイプの将棋ソフト(※注1)では、これが枝刈りの対象になりやすい。このため、思考時間が短い設定だと、たかだか7手ぐらい先であっても見落としてしまうのだ。


※注1 「Ponanzaは(他のソフトに比べて前向き枝刈りで)刈りすぎ」というPonanzaの山本君の発言が2年ぐらい前にあったと思う。Ponanzaの枝刈りがかなりきつめに調整されているのは特徴的で、それゆえこういう指し手が枝刈り対象になっているのかと思う。(やねうら王も実は他のソフトよりは少しきつめに調整してあるつもりだが、あまりきつくすると読み抜けて弱くなるので、私にはこの調整が難しい。Ponanzaはこのへんを実にうまくやっているのだろうと思う。)


・理由4 銀ばさみにしたあと銀を殺すために歩を打つ地点に他の駒を運ぶ手は悪手である


やや専門的な話となる。理解できない人は読み飛ばしい欲しい。


ある局面で指し手のオーダリング(探索する順番を決めるための順序付け)をするときに「この升に駒を移動する指し手はいい指し手である可能性が高い」というように移動先の升ごとに点数をつけた表を用いる。それをhistoryテーブルと言う。激指が実現確率探索で指し手の実現確率を求めるためにやっていたようなことを、より小さい労力で行なうためのアイデアである。


これは、探索中にいい指し手であったときにこのhistoryテーブルのその(指し手の移動先の)升に加点し、いい指し手でなかったときには減点する。そして指し手のオーダリングにこのhistoryテーブルに記載されているスコアを使うわけであるが、銀ばさみにした形は、歩を打って銀を殺す升に移動できる駒として、銀を殺す側から見て、普通は金のような支えとなる駒が背後にあるはずである。


ところが、金をこの升に運ぶと金銀交換になるため、historyテーブル上は、この升へ駒を運ぶ(打つ)指し手は減点されているはずである。だから、この升に駒を打つ指し手の探索順序がかなり後回しになり、指し手オーダリングで後ろのほうの順番になっている指し手は枝刈りしてしまうので(前向き枝刈り)、ざくざく枝刈りしているタイプの探索ではどうしても読み抜けるのである。


Bonanzahistoryテーブルは、駒の移動元の升(=81)と駒の移動先の升(=81)のペア(組み合わせ)なので、81×81のサイズの配列(≒表)が必要となる。(実際にはさらに移動させる駒の種類とか駒打ちであるかとかも考慮されてたと思うが話がややこしくなるのでここではそれは考えないものとする)


Bonanzaではこのように移動元を考慮に入れたhistoryテーブルなので上述の問題は起きないのだが、Stockfish型の探索など現代風の探索部では、historyテーブルは移動先の升しか考慮に入れないのが主流であるから(historyテーブルを小さく抑えてメモリ効率を良くするため)、移動先の升が同じである複数の指し手があり、そのなかの1つだけが良しでそれ以外はすべて悪いというような時にこの1つだけ良しの指し手を見落とす傾向がある。(ちょうど銀バサミからの打ち歩がこの条件に該当する)


また、駒打ちと駒打ちでないかでhistoryテーブルの使う場所を別にすればこの問題は回避できるかも知れないが、たいていは駒打ちでも駒打ちでなくとも急所の升に駒を移動させる(駒を打つ)指し手は良い手であるから、そういうことをしてもhistoryテーブルのサイズが大きくなるわりには探索効率が落ちかねない。そもそも自陣に駒を打つ手はほとんどの場合、悪手であるから、historyテーブルをそういう風にわけても、打つことに関するhistoryテーブルのスコアはほとんどがマイナスになりかねない。結局はそういう指し手は枝刈り対象になりやすい。


だから、現代風の探索部においてはhistoryテーブルでは指し手の移動元や、指し手が駒打ちであるかなどは考慮しないのが普通だと思うのだが(※注2)、そうするとこのような問題があって、ちょうど銀ばさみに関してこの問題が露呈しやすい。


※注2 ちなみにコンピューター将棋の開発者の用語で、指し手に関して駒の移動元をfrom、駒の移動先をtoと呼ぶ。Ponanzaの山本君と数年前に話したときに、「(Ponanzaでの)history?ああ、toしか見てません。Bonaはfromとかも見てますよね。」という言葉があった。このことから、4)はBonanzaには当てはまらず、Ponanzaには当てはまる特徴だと言えると思う。(最新のPonanzaがどうなってるのかまでは知らないが、ここをいまさら複雑化しているとは思いがたい) ちなみに、やねうら王もtoしか見てない。


・とは言うものの…


将棋の探索部はいろんな要因が複雑に絡みあっているので、本当に銀ばさみに遭いやすい理由が、上記の4つなのかどうか私は正直自信がないし、きちんと調べたわけでもない。「このへんが原因なのかな?」という私の推測にすぎない。以上の話は、開発者の間での議論のための叩き台にでもしてもらえればと思う。


あと、電王戦本番でPonanzaが銀ばさみに遭うかというと、思考時間が長ければさすがに5手か7手先ぐらいはほとんど枝刈りせずにきちんと調べるだろうから、普通に回避できると思う。つまり、「将棋ソフトが銀ばさみに遭いやすい」というのは、「思考時間が短いときに」という但し書きがつく。


以上、電王戦本番でも他者を寄せ付けない圧倒的な強さを見せつけるであろうPonanzaにも意外な弱点があるんだよねという程度の記事でした。
電王戦本番でPonanzaが銀ばさみされるところが見れるのかと思った人、すみません。


■ 関連記事


やねうらおさん、コンピュータ将棋の銀ばさみについて解説 「電王戦 第五局 Ponanzaの意外な弱点」(2ch名人)
http://i2chmeijin.blog.fc2.com/blog-entry-524.html
→ やねうら王が銀ばさみに遭った局面図とか、本記事に関するtwitterでの言及などがまとめられていて凄くわかりやすい。


Ponanzaの現在の課題 (3) 銀ばさみの理解(ぶたろうノート)
http://emptywords.hatenadiary.jp/entry/2014/04/11/004046
→ 「電王ponanzaに勝てたらノートパソコンプレゼント! 挑戦者求む![ドスパラ大阪・なんば店]」のときのニコ生の放送の文字起こし。Ponanzaの山本君自身が、Ponanzaが銀ばさみされやすいということについて将棋ファン向けにわかりやすく語っている。