*All archives* |  *Admin*

<<05  2018/06  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30  07>>
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
どうでもよい愚痴
よく麻雀の話で聞くのが、対局の「結果」とそこまでに至る「過程」のどちらが大事か、という話。

その辺の議論は麻雀プロをはじめとしたみなさんに大いに語っていただくのを横目で見てるだけですが、

シミュレーションとかAIにおいて、「結果」と「過程」、どちらが重要か。

世間的な注目度は「結果」にのみ注目されてるというような気がしてなりません。
ぶっちゃけ、アルゴリズムの中身とかパラメータの各種数値とかの話(「過程」の部分)とかってみんな興味を持ってないよね、ということを強く思っています。みんな、実戦の何切る(「結果」)にしか興味がない。

(少なくとも私については、)でも、そうじゃないんですよ。途中の「過程」がないと、シミュレーションとかAIの「結果」も何も出せないんですよ。
かなりの時間と労力をかけて、心血注いでプログラム組んでるんですよ。
そこをもうちょっとみんな見てほしい、願わくば評価してほしい。

単に私が世間知らずなお人よしなだけなんで、お金も取らないで、ふだんバンバン何切るのシミュレーション結果上げてますけど、
そういうものがあって当たり前の環境、世の中だと思ってほしくない。そんなに簡単な話じゃないんです。
世が世なら技術料と制作に至る人件費だけでどんだけの価値があるんだよと。
(そこら辺は自分が大盤振る舞いしすぎてるのが悪いという自戒も込めて)


ふー、ちょっとクールダウンするです。しろたんもふもふ。
一言でいえば、「がんばってるからみんなほめてね」


いつになく夜中のノリ、若気の至りで強く主張しすぎてしまった。
問題があるようなら、この話はお蔵入りさせよう。



上の話とは関係ないですが、諸事情により、ブログ記事の一部を一時非公開にしました。
スポンサーサイト
HI&LOWギャンブル
麻雀とはぜんぜん関係ないですが、ここ数日とあるスマホゲームにはまってました。
タイトルは「うちの魔王さま - さすゆう2 - タップRPG -」というゲームです。

よくあるキャラを育成する系のゲームです。
敵を倒す→金が入るので、それでキャラを強化→より深い階層の敵を倒してより多くの金・強化を行う
という流れです。

それでミニゲームとして、HI&LOWのギャンブルゲームがついているのですが、これを今回研究してみました。

HI&LOW仕様
・持ち金のうちn%(nはプレイヤー側で任意に設定可能)をベットする。
・トランプで敵のカードを見て自分のカードが伏せられてる状態で、自分のカードが敵カードよりHI(高い)かLOW(低い)かを当てる。(ただし、同数字でのDRAWは起こらない。)
・HI&LOWを当てられたらベットした金額の倍がプールされる。外したらベットした金額を失って1ゲーム終了。
・当てた場合はプールした金額を再度ベットして再度HI&LOWギャンブル(前ゲームとは用いるカードは独立)をするダブルアップをするか、ダブルアップしないかを選択できる。
・ダブルアップをしなければプールされた金額を利確できる。
・ダブルアップ回数に制限なし。

また、ゲーム本体の仕様として、
・HI&LOWゲームをやるためには専用チケットが必要。
・チケットは階層ボスを倒したときに一定確率で得られる。

1回の挑戦で倒せるボスは階層数と比例するので、敵が強くて一定以上深い階層にもぐれないならチケット枚数は有限なので、HI&LOWが有限回数しかできない中でいかに多くの金を手に入れられるかがカギになります。

まずはダブルアップなしで1回のHI&LOWの勝率から調べます。
171226-02.png
敵カードが4ならHIを宣言して、自分のカードが2,3なら負けで、5,6,7,8,9,10,J,Q,K,Aなら勝ちなので、勝率12分の10。
敵カードの分布は等確率(つまりすべて13分の1)とすると、1ゲームの勝率が76.9%になります。

なので、76.9%の確率で掛け金が倍になり、23.1%の確率で掛け金を失うゲームなので、かなり割りのいいゲームであることがわかります。
よって、獲得金額の期待値だけなら全額をベットするのが正着になりますが、全額ベットして負けてしまったら種銭が尽きて敗走…ということになってしまいます。
全額ベットみたいな極端な例は考えないにしても、あまりに多くの金額を賭けてしまうと、負けた場合に次回以降の種銭がなくて、十分に稼げない、ということも往々にして起こりえます。
また、種銭がなくなるのを恐れて少額をベットしても割のいいギャンブルを活かせず、あまり金を増やせないままチケットを使い切るということもあります。
なので、より確実により多くの金額を稼げるベット金額(持ち金に対する割合)とダブルアップ回数を探ることになります。

今回はベット割合とダブルアップ回数を固定にしたときに、有限回(今回は50回とする)後の持ち金がどうなるか(現在持ち金を1としたときに何倍に増えたか)をシミュレーションしてみます。(ゲーム自体は超単純なので、シミュレーションとはいっても大したものではないです。)
モンテカルロシミュレーションに繰り返し回数は10000回です。
171226-03c.png

先ほど述べたように1回のゲーム自体は期待値プラスの割のいいゲームなので、より多くベットして、ダブルアップもたくさんする方が平均獲得金額は大きいです。
ただ、より「確実に」稼ぐという観点だと、中央値(平均的な勝ち負けパターンでいくら残るか)もしくは下位5%分位点(負けが込んで悪い結果だった場合でも最低限稼げる金額)の方が重要になります。

↑の表の中の中央値と下位5%の点を見る限り、持ち金の20%~40%を毎回ベットして、3回ダブルアップする、という戦略がバランスがよさそうです。
ベット割合30%、ダブルアップ3回だと、平均的な勝ち負けパターンで50ゲーム後に1315万倍に持ち金が増える、悪いパターンを引いても1743倍にはなってくれる、という感じです。
チケット枚数が限られている中で、割のいいギャンブルをたくさんするためにダブルアップ回数は増やすけれども、その代わりベット金額を落としてバランスをとるような感じです。

というわけで、ベット割合30%、ダブルアップ3回で実際にゲームしてみたのがこちら。
171226-01.jpg
左上が持ち金で1→1,000(K)→1,000,000(M)→1,000,000,000(B)→1,000,000,000,000(T)→以下1000倍ごとに(AA)→(BB)→…→(ZZ)→(AAA)→(BBB)→…で、現在(MMM)まで増えた。

通常プレーでは600階層あたりで通常ドロップ金額が頭打ちになり、キャラの強化効率が悪くなって敵を倒せず撤退、という感じだったのが、
序盤から積極的に最適プレーのHI&LOWで持ち金を倍々に増やしていったところ、キャラの強化スピードが敵の強くなるスピードを上回るという現象が発生。より深い階層に潜れた分、使えるチケットが増えてより金を増やせるという好循環になりました。
もはや育成ゲームよりもHI&LOWの方がメインになってしまいました。

これで、このゲームは攻略できたことにしておこう。

それにしても、ゲームの攻略までできるモンテカルロシミュレーションとかExcel VBA先生は素晴らしいですな。
統計とかプログラミングとかを勉強した甲斐があったもんです。
雀ゴロK本第3弾のお話
今までは黙ってましたが、年末ごろ(?)に出る雀ゴロKさんの第3弾の本でデータ監修をさせていただきました。
特に黙ってたことに理由はなかったですが、各所で情報が出始めてて、話題になってるっぽいので、まぁ話すいい機会かと思いました。

まず感想としては、無事に自分のかかわったものが本という形になりそうで、とてもうれしいです。
影であまり目立たないところで、こそこそネタを書いてたのが、いよいよ表舞台に出るのか、と思うと充足感とちょっとの不安(世間一般的には物議をかもす内容もあるようなので、集中砲火を浴びたりしないかなぁ、みたいな)があります。

形式的には1テーマ数ページ程度の1問1答形式で、お題に対して牌譜解析なりシミュレーションなりAIなりの出力結果をグラフや表にして、そこから導き出される結論とか雀ゴロKさんの所見が書いてあるのが1テーマ分ワンセットで、それが40テーマくらいあると。

元ネタのうち3分の1~半分くらいが自分が考えたネタで、残りが雀ゴロKさんからのお題というかアイデアです。
過去ブログに載ってるものが多いですが、私の貧弱な文章力と表現能力よりはかなり読みやすくなってるのが多いと思います。
(余談ですが、文章力が稚拙すぎて、「あとがき」で1000字くらい書くのにえらい苦労しました。)

とりあえず、この1週間くらいはゲラをチェックして、間違ってる部分の指摘とか補強データを出したり、とかいうのをやってたので、また完成品だと少し内容が変わるかもしれませんが、なんにせよ出るのが楽しみですね。

まぁ、今のところはこんなところで。具体的な中身についてのコメントはまた発売後ということで。
オフ会(麻雀AI開発者・麻雀研究者の集い)に参加して
先日、東京にて麻雀AI開発者・麻雀研究者の集いに参加してきました。

いろいろお話を聞かせていただいたうえで、自分のAI研究について思ったことをつらつらと書いていきます。


私の場合、最初に作ったのがモンテカルロ式の局収支シミュレーションからで、そこで得た知見を下地にしてAIに仕立て上げてるので、AIとしては正統派ではないらしいなーというのを感じました。
シミュレーションだと計算時間的に難があって、小手先のテクニックではどうにもならずに機械学習的な理論を取り入れた結果、シミュレーションと機械学習的なのが魔融合したなんかよくわからんごった煮みたいなのができてる感じです。

牌譜解析とシミュレーションを捨てて全部機械学習で設計していく方がスマートで、強いAIになるんでしょうけど、
今まで作り上げてきたものが全部崩れることになりかねないので、ちょっと抵抗感はありますね。
機械学習についてはちょっと前に勉強を始めたひよっこなので、その分野のみで先駆者に追いつくのはかなり困難というのもあります。

最初はシミュレーションが基本とした独自路線でやっていけばいいかなーと思ってはいたのですが、どうやらそうはいかなさそうだなーと感じました。
細かいアルゴリズムのことが分からない外部の人にとっては機械学習だろうが、牌譜解析とシミュレーションだろうが、アプローチの仕方が異なるとはいっても、そんなの区別はつかないからどうしても同じようなものとして見られるのは避けられないだろうとは思います。
そうなると、ソフトの性能、つまりAIの強さや考慮時間の短さで優劣がつけられ、劣っている方は誰からも見向きもされなくなってしまうのだろうと、かなり悲観的になっています。
競争とか成果主義とか成長戦略みたいなことは非常に苦手なんですが、社会というものはそういうものなんでしょうね…。
世界に一つだけの花のフレーズ、ナンバーワンにならなくてもいい、もともと特別なオンリーワン、というのが恋しいですねぇ…。

勉強になったのは待ち牌読みとか聴牌率読みとか染め手読みなど、個別のものも機械学習でもできるらしい、というところです。(ていうか、それが普通の感覚らしい。)
牌譜解析結果をパラメータとしてそのままべたっと使って後は個々の特徴量について独立性を仮定して単純掛け算するみたいな合ってるかどうかよくわからんのよりはスマートそうな気がします。少なくともその部分は伸びしろがありそうです。
なんですけど、まだ染め手の実装すらやってないので、まだスタートラインにすら立ててないのがあれです。

後はソフトのネーミングセンスの話とか。
今は仮に「麻雀添削くん」と命名してますが、現状そんなに強くないくせになんか先生みたいな上から目線なのはなにを偉そうに、とか言われそうです。
女の子とか、萌えキャラ?みたいな方が受けがいいという説があるらしいのですが、
個人的にはそういうのより動物系のかわいいキャラ(ピカチュウとかしろたんとか)のが好きなんですが、そういうところに私情を挟んでもしょうがないかもです。
既存のキャラ名とかぶらず、かつ麻雀と関係があるネーミング。
とりあえず、「まーちゃん」とか「まあたん」とか「じゃんのすけ君」とかしか思いつかない時点でセンスがないのがバレバレです。
なんかひらがなの方が柔らかい感じがして親しみやすいかなぁとは思ったけど気のせいでしょうか。
絵心がないので、自分でかわいいキャラを描けないのも一つ悩みの種かも。(そんなこと考えてる暇あったらさっさと研究しろ、と怒られるかもしれないけれども。)


というわけで、優秀な方とお話ができて、とても刺激になって得るものが大きかったですけど、少しセンチメンタルな気分になったそんなオフ会でした。
「麻雀 鉄押しの条件」を読んだ感想
平澤元気プロの3作目、「麻雀 鉄押しの条件」が届いたのでさっそく読ませていただきました。

私のシミュレーション結果や押し引き表に関する話が随所に出てきます。
私自身はあまり意見表明をする機会が少ないので、
「シミュレーションではこういう結果が出ている」「このような状況ではシミュレーション結果はそのまま使えない」という議論が活発にされることにより、シミュレーションに対する理解が一般に広がるかもしれないと思うとうれしい限りです。

牌の細かい危険度とか場況とか回し打ちの可能性などについては今後(具体的にはAI製作)の課題ですね。
本音を言えば、頭を使う作業(プログラミング)よりも単純労働(シミュレータとか計算機とかをひたすら動かす)の方が好きなので、しばらくは過去の遺産(完成版局収支シミュレータ)を使って楽をしたいなーとか思ったりとか。(実際、最近の記事の傾向はそんな感じ。)
研究者としてその発言はどうか、と言われたら、あ、はい、すみません、とただただへりくだる一方ですが。

シミュレータを作ろうと思ったのも、1回ソフトを作り上げることができれば、初心者でも簡単におおまかな数値を知ることができるだろう、と思ったのがきっかけですね。
「簡単に」というのが一番のポイントですね。
入力値をこまごまと入れて集計ボタンをポチっと押すと後は勝手にコンピュータが計算してくれるので、テーマさえ決まればとても低コスト(時間・労力)で研究ができます。
ネタになるものに困らなければ無限に記事が書ける感じです。
将来、楽をするための投資みたいなもので、実際その投資は現在それなりの果実になった(押し引き表やその他の記事など)とは言えます。

ただ、現状のシミュレータだとこまごまとした状況判断はできていないので、そのへんは頑張ってAIとか四麻計算機を作っていって、それが完成すれば、本の中に出てるような個々の牌姿(何切る問題)について、より精度の高いものができるだろうと思っています。そして今よりもっと楽ができると。これも将来に向けての投資です。
今回(AI製作)の場合は投資にかかるコストがこれまで以上に高くなりそうで、完成するまでは成果にはならないので、コストとリターンのバランス的に、ちょっと今はしばらくコストを払わず楽をしたいなぁ(従前のシミュレータに投資した分を刈り取るフェイズ)という気持ちであります。
もちろんAIができた時のリターンは今以上なので、完成を夢みたいですが、がんばって頭使わないといけないからなぁ。


本の話に戻ると、シミュレータを作った動機の中で「初心者でも」というのがあるのですが、
そのあたりの観点では私と平澤プロ・3人の天鳳位の方とは少し立ち位置が違うのかなーとも感じました。
私はプレイヤーとしては鳳凰タッチレベルで特上の常連さんなので、
もちろんプレイヤーとして強くなりたいので答えを知りたくてシミュレータを作ったという動機もありますが、現状のシミュレータだけだとまだまだ中級者までが限界だろうなぁ、という気がしています。
私のレベルではそれでもまぁある程度満足しているのですが、平澤プロ・3人の天鳳位は私やシミュレータのレベルよりもはるかに上級者なので、いかに例外局面を正答するかという点に力点を置いていらっしゃるなぁという印象を受けました。
なので、天鳳位の方をはじめとした上級者の方に対して、お気に召すものは私の実力不足で作れませんでした、すみません、というところです。
次に作る(作れたらいいなぁ的願望を込めて)AIもしくは四麻計算機はもうちょっとレベルが上がって上級者にもお気に召すものができたら、とは思ってはいるのですが、果たしてできるのかどうか。まだまだ道のりは長いです。感覚的には現状10%~30%くらいの進捗ですかね。

現状は、シミュレーションの分野で競合する人がそんなにいないので、このレベルでもある程度の成果として認められていると思いますが、
正直、私より有能な人はいっぱいいると思うので、そういう人が麻雀研究とかシミュレータ作りに参入してくれば、あっという間に抜かされちゃって私の方は見向きもされなくなるだろうなぁと戦々恐々としています。まぁその方が麻雀界全体にとってはいいのでしょうけども。

最後に一読者としての感想を。
とにかく情報の密度がすごく高いと思いました。情報量が多いのは素晴らしいのですが、全部いっぺんに読もうとすると頭がパンクしそうで大変です。2週目はもうちょっとゆっくり読もうかと思います。
プロフィール

nisi5028

Author:nisi5028
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
FC2カウンター
フリーエリア
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。