評価関数を設計しようぜ☆(^~^)?

ニャーゴ☆(^~^) わんっ☆(^~^) ゲボボ☆(^~^) 公開下書き

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 つら……☆ 記事を立てるか……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 寝てればいいのに……☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 正しい ちらしの裏 の使い方よね」

0次元 0目並べ

20200825moku19.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 はい、0目並んだぜ☆ 手番が来た方の勝ちだぜ☆ 先手必勝☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 なんだこの大阪万博みたいな画像は……☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 0次元だと、1目以上を並べることはできないわね」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 完全解析済みだな☆ 評価関数は要らないな☆
じゃあ次☆」

1次元無限 0目並べ

20200825moku20.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 はい、0目並んだぜ☆ 手番が来た方の勝ちだぜ☆ 先手必勝☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 両端にまた 大阪万博みたいなの付けて……☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 0目並べはもうよくない? 先手必勝よ」

KIFUWARABE_80x100x8_01_Futu.gif
「 1目並べもな☆」

20200825moku21.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 2目並べで お互いがミスしなければ、 先手必勝だぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 指し手評価値を付けてくれだぜ☆」

20200825moku22.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 描くのがめんどくさいんで省くが、からっぽの無限空間の初手では すべてのマスの評価値は 微小量 だぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 全部 1 じゃダメなの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 すべての指し手の評価値の総和が 無限大 に向かっていってしまうから 指し手評価値はなんとでも言える☆ 不定☆
こっちを上げれば あっちを下げる、というバランスが取れない☆ 言い値☆
すべての指し手の評価値を総和したら 0 であってほしい☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 ゼロ和でないと 何が困るんだぜ☆? 総和が100だったら何が不都合があるのかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 その100は何なのか、ということだな☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 無限空間で なんでもかんでも dx 付けられたら 話が進まないから、有限空間にしましょう!」

1次元有限 2目並べ

20200825moku23.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 上にも下にも有限としよう☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 空間に両端がでけたな☆」

20200825moku25.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ まず 0マス から☆
先手の置けるマスが無いぜ☆ 満局☆ 引き分けだぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 2目並べをしようというのに、2マス ないのは おかしいだろ☆」

1次元有限2マス 2目並べ

20200825moku27.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 2マス で、パスがなければ、必ず引き分けだぜ☆」

20200825moku23.png

KIFUWARABE_80x100x8_01_Futu.gif
「 じゃあ 3マスで☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 端攻めをしましょう」

20200825moku24.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 3マスで 端攻め をすると 相手は必ず 隣に付けてくるので 必ず引き分けだぜ☆」

20200825moku28.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 3マスで リャンメン(2面)待ちに置くと 相手がどちらの隣に置いても 先手必勝だぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 指し手の確率で表してくれだぜ☆」

20200825moku29.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 100分率にすると こうだな☆」

20200825moku30.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 先手には 常に 100% の手が見えているので、デターミニスティックだぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 この指し手評価値を 機械学習 するには どうやればいいんだぜ☆?」

20200825moku31.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ とりあえず ゼロ和 の 乱数 を入れようぜ☆
できれば -0.0011、 -0.0002、 0.0013 のように 小さな数であるほど良い☆
乱数ではあるが、差はほとんどない、という意図だぜ☆
ここでは 筆算しやすいように 整数でやるぜ☆」

20200825moku32.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ で、端は 必ず引き分けなのだった☆ 勝率は 0% だが、 敗率も 0% ☆
これを どう見るか☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 勝率は 動かない、 と見るべきなんじゃないの?」

20200825moku33.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ リャンメン待ちは必勝だぜ☆ これを どう見るか☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 両端の手を選ぶよりは、リャンメン待ちを選ぶべきだぜ☆」

20200825moku34.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 元気玉の理屈で みんなから 1点 集めるぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 まだ 真ん中のマスの 指し手評価値が低いな☆」

20200825moku35.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 真ん中のマスに指すようになるまで やれだぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 評価値が一番高い手を指すの? それとも 評価値はその指し手を選ぶ確率なの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 好きなようにしろだぜ☆ 確率にするなら、もっと 点数配分を続けるべきだぜ☆」

20200825moku36.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 点数配分の動きは ずっと こうなっているから、 x に 100 でも入れてみようぜ☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 なんという線形代数……☆」

20200825moku37.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ マイナスって、割り合いで言うと何なの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ゼロ和 をやってるから、プラスがあれば 必ず マイナスが出てくる☆ 正の数の確率とは相性が悪い☆
見方を変えれば……☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 正の数は 勝つ度合い、 負の数は 負けるにしても 相手のミスで勝つのを目指す度合い だぜ☆」

20200825moku38.png

KIFUWARABE_80x100x8_01_Futu.gif
「 ↑ 正と負に分けて、 選びたい確率、 選びたくない確率 に分けてはどうか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 選びたくない確率を 選びたい確率 に変換するのは 大変そうだぜ……☆
上図では 2択だが、 これが 7択 になったりしたら☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 選びたくないやつは、雑に底上げすればいいんじゃない? どん底値の 111 で底上げすればいいのよ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 本当にいいのか知らないが……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 だったら めんどくさいので 最初から どん底値で 底上げしようぜ☆?」

20200825moku39.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 充分そうねぇ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 学習のことを考えると どん底値を常に 0% に確定していいのか疑問だが……☆
1度 0% になったら もうその手を選ばないだろ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 それが収束だろ☆」

20200826moku40.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ 投了は 勝率0%確定 なのだから、 投了も含めて 確率を出せばいいのよ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 引き分けも 投了も 同じ価値なんで、同じスピードで減っていくんで、差は付かないから、逆転もしないが……☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 勝ちが一番多かったグループ、 引き分けが一番多かったグループ、 負けが一番多かったグループ に分けて
点数移動したらどう?」

20200826moku41.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ まず すべての選択肢から 供託金1点ずつ を取るのよ。 これで 供託金は計4点よ」

20200826moku42.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ 引き分けグループの中で、一番点数が低いところに 1点ずつ 恵むのよ」

20200826moku43.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ 残りは 勝ちグループ に分配すんのよ」

KIFUWARABE_80x100x8_01_Futu.gif
「 引き分けグループを 均したいのか☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 勝ちも引き分けも多いグループと、 負けも引き分けも多いグループ もあるだろ☆ 均していいのか☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 勝ったら増やす、負けたら減らす、引き分けたら均す、引き分けが1人なら変わらず、なのよ」

20200826moku44.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ Resign が えんえんと 減り続けないかだぜ☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 下限を100にするなり、定期的に とんがってるところを 縮めたらよくない?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 数式で表せないよな☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 実数なら 供託金に提出する量を 0 に近づければいいが、整数だからな☆
供託金として 1 を出すか、 0 を出すか、 発火の閾値を見る関数を 間に挟めばどうか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 関数なら 数式 に入れれるな☆」

-10, 440, -10, -100

90, 540, 90, 0

12.5%, 75%, 12.5%, 0%

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 必勝がある場面でも、引き分けを選びやすくないかだぜ☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 めんどくせ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 評価関数を2つ作るしかなくない?
勝利確率関数と 引き分け確率関数よ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 それの方が 作って意味のある関数な気がするよな☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 勝ちが無い局面で、勝利確率関数は 0% に均されるだろうか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 投了も含めて4択なら、投了の確率が 0% から 25% に上がるだろ☆
投了の確率が 0% でなくなったなら、勝ちが無い局面に思えたケースがあったということだぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 均して ちゃんと確率になるのか よくわからんな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 最初の差が 小さければ どこかで丸めれば いつか均されるだろうけど☆」

<書きかけ>

何度でもクリック!→

むずでょ@きふわらべ第29回世界コンピューター将棋選手権一次予選36位

光速のアカウント凍結されちゃったんで……。ゲームプログラムを独習中なんだぜ☆電王戦IIに出た棋士もコンピューターもみんな好きだぜ☆▲(パソコン将棋)WCSC29一次予選36位、SDT5予選42位▲(パソコン囲碁)AI竜星戦予選16位

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

むずでょ@きふわらべ第29回世界コンピューター将棋選手権一次予選36位 の最近の記事