将棋AIの強化学習では自己対局を用いるが、その時に同一の棋譜ができてしまわないように何らかの工夫が必要である。
1) floodgateのような大量の実戦棋譜の任意の局面から開始する
2) 定跡を用意して、ランダムに定跡を採択する
3) 初手から数手、ランダムムーブを入れる
4) 序盤では最善手と評価値(or 期待勝率)がさほど離れていない指し手のなかからランダムに選択する
2016年~2017年ごろのやねうら王は、人間の棋譜を用いないということにこだわっていたので3)にしていた。いまどきの主流が1)なのか2)なのかは知らないが、AlphaZeroに影響を受けている人は4)が多いように思う。2018年は1)を試してみた。そちらのほうが少し強くなった。
それで、これに関して、なんとかちゃんねるに気になる投稿があったので引用する。
634名無し名人 (ワッチョイ 0234-3XbD)2020/10/27(火) 22:18:01.18ID:8lCVN6Na0
やねうら王とAperyの学習での最大の違いは教師データの生成方法で、やねうら王は定跡使用もしくは定跡無しで初手から生成していく為、ほぼ序盤から教師が作られ始めるので似たような局面が多くできやすい。
Aperyはfloodgateの棋譜を集めてその中からランダムに局面を選んでそこから教師生成を始める為、序盤から終盤まで多様な局面から教師局面が作られ始める。
当時KPPT評価関数でAperyの評価関数が一番強かったのはそこに原因があったと思っている
2017年ごろのやねうら王とAperyのことに対する言及のようだが、残念ながら、その見解はまったく真逆だと言わざるを得ない。例えば、初手78飛を採用するようなソフトは特定のソフトだけであり、全体の1%程度でしかない。
初手は30通りあり、等確率のランダムムーブだと、1/30の確率で78飛を引いてしまう。そもそもで言うと、飛車を動かす手が30通りのうちの6手もあるので、6/30(=20%)の確率でどこかに飛車を振ってしまう。初手から6手のランダムムーブを行う場合、飛車が8筋にいない確率はかなり高い。おそらく50%以上だと思う。
飛車を振る確率が50%以上あるのは、振り飛車が不利だと言われている昨今のコンピュータ将棋において、大損である。また、コンピュータ将棋同士の対局では、対抗形(居飛車 VS 振り飛車)にならないことのほうが多いので、(実戦での)実現確率が低いのであれば、そんな形を学習しても無駄である。(評価関数の表現力は限られているので、なるべく実戦で実現しそうな局面だけを学習したい)
そういう意味で、ランダムムーブを採用すると振り飛車が実戦で実現する確率よりはるかに高くなってしまう。1筋や9筋に飛車を振って、そんな対局を学習したところで、限られた表現力の無駄遣いである。
そんなわけで、3)のように教師生成時にランダムムーブを入れると実戦で進行しないような、多種多様な局面を学習してしまうので損なのである。
これに対して、1)のようにfloodgateの棋譜の任意の局面から開始する場合は、floodgateで実際に対局された内容なので、(上位のソフトの棋譜を用いる場合)振り飛車は圧倒的に少なく、実際に進行しそうな局面に限られるので、似たような(学習に値する)局面に偏るわけである。そしてその性質が、(ソフトの大会向けに)強くするためには好ましいわけである。
ということで、上のなんとかちゃんねるの人の見解は、そう考える人が多いのではあるが、真実はそれとは真逆である。「多種多様なものを学習すれば賢くなる」みたいな信念は人間の認知バイアスにすぎず、人間の記憶力・理解力や、評価関数のように、表現のキャパシティが限られている状況では、実現性の高いものだけに絞って(恣意的に偏らせて)、学習したほうが良いに決まっているのである。
そして、floodgateの棋譜は、ランダムムーブほどには、多種多様な棋譜ではないのである。(例えば、一間飛車の棋譜がほとんどない) floodgateの棋譜は、多種多様な棋譜ではないがゆえに、教師生成に適していたのである。
ということに私は2018年ごろに気づいたわけであるな…。
AlphaZeroに代表されるDeep Learning系の将棋ソフトの場合、評価関数の表現力はかなり高いので、ランダムムーブを入れてもそこまで悪い学習になるわけではないはず。
一方、従来型の将棋ソフトは評価関数自体の表現力がかなり低く、玉の位置での(それ以外の駒のpositionalな価値の)区別はあるが(KPPT/NNUE halfKP等)飛車の位置での区別はないので、実戦で実現確率の低い飛車の位置に関する教師棋譜はノイズになりうる。
「実戦で実現確率の低い飛車の位置」にすれば、(やねうら王は学習していないので)やねうら王に一発入れれる可能性があると
5五の龍!←amazonでkindle無料だった
> 「実戦で実現確率の低い飛車の位置」
まあ常識的には、序盤でそういう変なところに飛車がある時点で何らか不利なのではないかと…。
(必然性があってその升に移動した場合はこの限りではないですが)