KPPというのは玉と玉以外の2駒(合計3駒)の位置関係のことを言います。
将棋の初期局面は角と飛車がいるために左右非対称となっています。
このため、序盤では角側の桂はなるべく跳ねないほうがいいだとか、そういう暗黙のルール(?)があるわけですが、これを評価関数のパラメーターの調整として棋譜から学習させるときに左右対称性を考慮しているとうまく学習できないのではという議論があります。
※ 左右対称性を考慮するというのは、88玉-89桂-78金のKPPの値と、28玉-29桂-38金のKPPの値を同一視するという意味です。
@HiraokaTakuya @kazu_nanoha @issei_y 例えば特徴量が桂馬の位置だけの評価関数があるとして、左右対称じゃない場合恐らく77桂<37桂になりますが、これは88に角がいることが多いことを暗黙に学習してしまっている状態だと考えられます。(続く)
— 棚瀬寧 (@tanaseY) September 28, 2014
@HiraokaTakuya @kazu_nanoha @issei_y (続き)恐らく桂馬だけの場合、左右非対称の方が強いでしょうけど、特徴量が増えてきた時に、この初期配置から生じる駒の偏りを暗黙に取り込む(≒過学習)のは強さの面でもマイナスになってくるのではないかと思います
— 棚瀬寧 (@tanaseY) September 28, 2014
@HiraokaTakuya @kazu_nanoha @issei_y 3駒関係程度でもプラスの方が大きいかもしれないですが、哲学的には左右対称で頑張りたい、というのが私の見解ですね。(終わり)
— 棚瀬寧 (@tanaseY) September 28, 2014
棚瀬さんが言うように、「桂馬の位置だけの評価関数」のようなものを想定してみるとこのことは自明です。
左右対称性を考慮しないほうがprediction(棋譜との指し手一致率)が上がるわけですから、その結果、棋力が向上することは十分ありえます。
ただし、それは序盤の話であって、終盤ではそういう序盤に対する間違った学習(過学習)はノイズとなりうるのでその棋力に作用しそうなものですが、「続 将棋とチェスの違い」にも書いた通り、終盤は読み(探索)によるところが大きく、そういうノイズがあってもその効果は微小で棋力上はほとんど影響がないことが多いのだと思います。
将棋のゲームの本質から言えば、左右反転しても同じ点数になるべき(左右で動きに性能の差がある駒がないので) 一方人間は、盤面を左右反転しても同じ評価することは結構むずかしい
— 山本 一成@Ponanza (@issei_y) September 28, 2014
左右反転しても同じ評価値を返さないようにすれば、(評価関数の)モデルとしての表現力そのものは上昇するので、左右反転しても同じ評価値を返さなくても良いという結論ももちろんありえる。
— 山本 一成@Ponanza (@issei_y) September 28, 2014
もちろん過学習かもしれないので、結論は実験的に決めるしか無いのだけれども。 #いつもこんなこと考えてます
— 山本 一成@Ponanza (@issei_y) September 28, 2014
@issei_y 初期局面が左右非対称なので、左右同じにするのは学習のテクニックなだけで、将棋を完璧に評価しようとすれば違う値が付くべきと思ってます。
— 平岡 拓也 (@HiraokaTakuya) September 28, 2014
このようにしてコンピューター将棋の開発者は
- 左右非対称にして学習させたほうが棋力が向上するならやってみたいかも。(実戦派)
- 左右対称にして学習を頑張りたい。(理論派)
に分かれています。
ちなみにやねうら王のほうは、後者として頑張ってますが、KPPの表現力自体が不足しているのが根本的な問題なのでもう少し表現力のある評価関数の形に変えたいという思いはあります。