softmaxの温度について

前回,二番絞りが恐ろしく高精度になってる話をしました。

ニューラルネットの出力だけで高段者クラスの将棋が出来てしまいます。まさに「ソフトウェア2.0」感ですね。

 

bleu48.hatenablog.com

 

ところで,ニューラルネットの出力では多クラス分類モデルを使いますので,指し手の候補数ある数値が最大となる指し手を選択します。

多クラス分類ではSoftmax出力として総和が1となるように処理するのが一般的ですが,この際温度0に対応するのが、ポリシー(最大値)指しでした。

これでfloodgateレーティング2355ですね。

 

温度1にしてSoftmax確率分布を得て、この確率分布に比例した乱択モデルをfloodgateに流したところ、相当弱くなったはずですが一応レーティングが付いて1800~1900くらいになっています。(長期レートだと約2000)

温度0だと常に同じ局面で同じ手になるため同様の挙動のエンジンとは全く同一棋譜を量産することになるのでこういった試みをしてみました。

 

弱体化しても案外将棋になるもんですね。

floodgateにこんな棋譜がありました。

coduck_oci_1c vs. nibanshibori_policy_probability (2022-07-30 08:00)

coduckが頓死するんですが,9手詰めしている方は一手も探索してないんですよ。

 

さらに温度を変更し,簡単に手元集計してみました。

vs LesserKai 1.5.0で20戦集計します。

温度0:20-0

温度1:18-2

温度2:16-4

温度2.2:10-10

温度2.5:4-16

温度3:3-17

温度5:0-20

 

ということで、適当に調整するとLesserKaiと互角まで弱体化することが可能です。

この,温度2.2をfloodgateに放り込んでみました。

Player Statistics

様々な報告でLesserKaiのレートが700程度であるとされていますが,本レートは1300ほど出ています。周辺の対戦相手にもよるのかもしれませんね。

 

参考に,山下さんがSoftmax温度を変更することでAobaZeroの弱体化について計測されています。

温度2.2でレートが1000ほど下がるってのは定量的に合っているようです。

コンピュータ将棋や囲碁の掲示板 過去ログ2021年版

---

追記08/16

最初だけ少し乱択にしておけば適当に散るって話をしていたので,ちょっとテストしてみた。

nibanshibori_pp_vtが短期レート2118,長期レート2156

nibanshibori_pp_vt2が短期レート2360,長期レート2381

前者は温度10/手数で,後者は1/手数。

前者の初手付近はほぼフラットな乱択で戦型と言える駒組でないが,後者は初手78飛など振り飛車込みでそこそこ多彩な駒組を見せている。

いずれにしても探索していないので深い探索をしているものには負けるのだが,それにしてもレートが高い気がする。特にvt2は乱数入れてないやつよりちょっと上のレート付いてるのが面白い。ほぼ誤差にしても弱くなっていないと言うことだろう。

何故か丁度相性が悪くなっている相手が居るみたい。