📖 Vol.31.No.5(2016/9)多腕バンディット問題
「 👆 運ゲーでも、でかいラッキーを掴む動きをしましょう、というやつよ」
「 👆 多腕バンディット というのは バンディットが複数あることらしいぜ」
「 👆 じゃあ きふわらべ がお金を持ってるとしようぜ?
どの スロットマシーン で アームを引く(=プレイする)のが一番儲かるんだぜ?」
「 日本に長く住み過ぎたようだな。ここは ドバイで 今 石油王やってると思ってプレイしろだぜ」
「 ギャンブルしない わたしたちには この例は 不適切なのよ!」
「 じゃあ このコインは 現金に替えれないもので、 1度 スロットマシーンに通すと 現金に替えれるとしようぜ?」
「 ダメ元で スロットマシーンに コインを全部入れるべきだぜ」
「 もっと いろいろなスロットマシーンで遊ばないのかだぜ?」
「 コインが良く出てくるスロットマシーンと、 コインが良く出てこないスロットマシーンがあるんじゃないの?」
「 金が増えて喜ばないやつを 動かすのは難しいな……。 じゃあ依頼だぜ。
金を増やしてくれだぜ」
「 👆 台を移動すると困るケースもあるぜ。
台が円形になるとしよう。 わたしの右側の台だけ コインが出てくる台だとしよう」
「 👆 わたしは 台で1プレイしたあと 右へ移動するとしよう。
コインが出てくる台も、店で誰かが1プレイしたら コインが出てくるのは右の台に移るとしよう」
「 店側に そういう仕掛けがあるかも知れないから、こっちは ランダムに台を選んで アームを引くのが良さそうね」
「 その 良い ってのは どういうことだぜ?
最悪のケースを避けれるから 良い ということかだぜ?」
「 こっちの動きのクセを読んで 対応して 当たり台を変えてくる店もあるかも知れないから、そういうことね」
「 そんなん対応できるんだったら その店の頭脳を盗んできたいぜ」
「 👆 夜は早く寝ているが、カジノに行ってれば バンバン 当たっていたとしよう。
リグレットだぜ」
「 👆 当たるマシーンを見つけたとしよう。
このアームばっかり 引こうぜ」
「 👆 そしたら つむじを曲げて 当たらなくなるかもしれないぜ」
「 どんなことが起こるか分からないのに、うまく立ち回る方法なんか 分かんないぜ」
「 うまく立ち回ってるやつがいたら、どんなことが起こるのか 分ってるのかだぜ?!」
「 👆 どんなことが起こるか 分かっている状態って、こういうことよね」
// Red
0.5 * 2 = 1
0.5 * 0 = 0
1 + 0 = 1
// Orange
0.1 * 15 = 1.5
0.9 * 0 = 0
1.5 + 0 = 1.5
// Yellow
0.75 * 0 = 0
0.25 * 3 = 0.75
0 + 0.75 = 0.75
「 オレンジ色の台の期待値が高そうだな。 オレンジ色の台を選ぶぜ」
「 でも 多腕バンディット問題って、 どんなことが起こるか分からないときにやる問題なのよ」
「 いくらなんでも無理では?
ビデオゲームで言う 初見殺し(しょけんごろし) は、 避けようがないのでは?」
※初見殺し … どんなことが起こるか分かってないプレイヤーには、反応しようとしたときにはすでに避けれないトラップなど
「 完璧な解決を目指すと 何もできなくなるから、少しでもマシな方を目指すのよ」
「 どんなことが起きるかを 明らかにできるなら 明らかにし、
そうでなければ 今 明らかになっていることをもとに マシな動きをする、みたいな感じかだぜ?」
「 だから 明らかになったかどうかを確認する方法が無いだろ?
たまたま そうだったのか、 必ず そうだったのか」
「 じゃあ たまたま そうだったことが、 必ず そうだったのかであるように 信じてみる、
みたいな感じかだぜ?」
「 都合のいいケースで 考えてみようぜ、きふわらべ。
都合のわるいケースを解決する方法なんか 無いだろ」
「 👆 理想の世界を勝手に作ってしまえばいいのかだぜ。
当たる確率と、当たると1枚が何枚になって返ってくるかの倍率があって、
これは 台ごとに固定だとしよう」
「 👆 そして パーセントと 返ってくるコインの枚数が 隠れているとしようぜ」
「 しかし こんな 当てずっぽうなモデルなんか作って どうすんだぜ?」
「 その 当てずっぽうのモデル をバージョン1 として、
それより少しマシな 当てずっぽうのモデル バージョン2 を作ればいいのよ」
「 一番いい 当てずっぽう か、そうでないかを どう判定するんだぜ?」
「 やってみるしかないんじゃないか? 結果が悪かったら よくないし、結果が良かったら いいぜ」
「 👆 毎日カジノして、 良い日もあれば 悪い日もあれば、
記録を取り終えたところが たまたま 良い日なら 良い結果で、 悪い日なら 悪い結果になるんじゃないかだぜ?」
「 そういうこともあるだろうけど、そういうことが無かったと思って 考えたらいいんじゃない?」
「 👆 ずっと良くなると 仮定しないと 考えることもできないな」
「 👆 最初 コインを10枚持っていて、 1台のマシンで 1枚ずつ 10回プレイしたら、 持っているコインの枚数は
10 枚だったぜ」
「 こういう調査を 探索(Exploration) と呼ぶそうだぜ」
「 👆 探索をやりすぎると、店が閉まって 明日は 台の設定が変わってるかも」
「 朝に 探索して、 夜は 探索したデータを元に一番良い台に絞って 全振りしたらいいんじゃない?」
「 探索してる間にも コインは減り続けるかもしれないんだろ?」
「 👆 手持ちのコインが 4枚 しかないときに、 カジノに 16台のマシンがあると、
大当たりをすれば別だが、全部を探索することもできないぜ?」
「 都合のわるいケースは 省けだぜ。 結局 考えても 差が付かない」
「 👆 手持ちのコインが 16枚 しかないときに、 カジノに 16台のマシンがあると、
一通り探索したところで 活用できないかもしれないぜ?」
「 胴元の取り分もあるでしょうから、 席料 上納して終わりよね」
「 将棋で サンプリング(最初から数台に絞り込む)したら 悪手ばっかり 拾うだろうしな」
「 囲碁だと 自分の手番で置ける石は 1つなんで 活用は1回だけか。
残りの全部 探索に回して良さそうだな」
「 1台 1プレイした程度だと 何も分からんぜ。
1台につき 2000回はプレイしたいぜ」
「 1台につき 2000回プレイできるとして 考えなさいよ。
なんで頭の中でまで 貧乏なのよ わたしら」
「 👆 コンピューター囲碁ではなく、 前に仮定した スロットマシーンのモデルでの話しだが、
1台で 2000回 探索すれば 有効桁数3桁の精度が出るんだろうけど、
店が閉まるか、コインが尽きるか しそうではある」
「 カジノやるなら 探索マンが現れることは 想定しておかないとな」
「 きふわらべちゃん。 べつに 有効桁数3桁とか 目的ではないのよ」
「 👆 スロットマシーンでの知見を コンピューター囲碁で使う事まで想定するんだけど、
手番では1手しか選べないのだから、 1番いい台が どれか 分れば十分なのよ。
余裕があれば 2番目、3番目、4番目とかも分かれば 同じ棋譜を再現しなくて済みそうで 強化学習に発展できそうよね」
「 1番~4番の手を見つければいいとしても どれだけ プレイすれば それを言えるのに十分なのか?
なんか アテは あるものかだぜ?」
Crieitは個人で開発中です。
興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!