BackEnd

麻雀で自分が何を切るか学習させる

投稿日:

はじめに

前回執筆しました、配牌からアガれるかアガれないか予測するの続編になります。

麻雀において、「アガれない」はいくつかパターンがあり、難しいのではないか?というアドバイスをいただきました。

そのため、方向を修正し、「何切る問題」のディープラーニングをしてみることにしました。
ゆくゆくは、自分の打ち筋を学習したCPUを作れるようにしたいと思います。

今回は実装がまだ途中なので、経過報告として記載したいと思います。

プロジェクト名を決めてみる

リスタートするために、何かこのコンテンツに名前をつけてモチベーションをあげることにしました。
ディープラーニングはざっくり言うと、「今までのデータをもとにパラメータを計算し、そのパラメータで予測する」ことかと思っています。

そんなとき、とある美少女麻雀漫画のキャラクターが思い浮かびました。

家は雀荘を経営しており、その関係で膨大な量の対局を記憶していて、その記憶を元に戦術に組み込むことができる。

Wikipediaより

これはぴったりだったので、このコンテンツを「someyamako」とすることにしました。

何切る問題で考慮される要素

本当は全ての要素を組み込みたいですが、全く計算方法が想像できないものもあり、とりあえず作成してみたかったので、以下の要素を考慮しました。

手牌

これは必須です。
以前作成したものが流用できそうです。

ドラ

ドラによって受けのかたちが決まってくるので要素に含めました。
計算方法は下の項目を参照ください。
(間違っているかもしれません)

考慮していない要素(本当は入れたい)

精度の高いコピーを作るためには、下記のような要素が必要ですが、私の実力不足で今回は考慮できませんでした。

  • 場、点棒状況
  • 捨牌、仕掛け

学習の方法

まずは、手牌を4×9の行列に変換します。

これは下の手牌になります。

それぞれの牌が何枚あるか表示しています。

ドラも同様に4×9にして、ドラの部分を1とします。

例えばドラがであれば、

とします。

計算方法は下記になります。
なお、各パラメータは以下のようになっています。

  • W1…手牌の重み
  • W2…ドラの重み
  • b…バイアス

ただ、500サンプルほど学習させてみましたが、あまり目立った特徴が見られませんでした。。。

さいごに

現状はこのような感じでひたすら私が何切る問題を実施しております。
計算方法など、何か面白いことがあればまたブログに記載したいと思います。

よろしくお願いします!

blog-page_footer_336




blog-page_footer_336




-BackEnd

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

aws

Amazon ECSのタスク定義について

1 はじめに1.1 Amazon ECSのタスク定義についておさらい2 タスク定義3 アプリケーションのアーキテクチャ3.1 Fargate起動タイプ3.2 EC2起動タイプ4 タスク定義パラメータ4 ...

rails

Shrineを使って画像をアップロードする

1 はじめに2 Shrineとは2.1 簡単な説明2.2 作者2.3 特徴3 下準備3.1 Gemを追加3.2 初期設定3.3 テーブルを作成する4 実装4.1 Uploaderの実装4.2 Mode ...

Go言語

mutexを使ってGoで排他処理をする

1 はじめに1.1 mutexとは2 mutexを使った排他制御2.1 失敗するケース2.2 mutexを使って排他制御した場合2.3 構造体へmutexを埋め込む3 RWMutexを使う4 さいごに ...

laravel logo

Laravel-debugerbarを使ってみた

1 はじめに2 インストール3 主な項目3.1 Messages3.2 Timeline3.3 Queries3.4 N+1 Queries3.5 Session3.6 Request4 さいごに5 ...

Laravelのchunkメソッドとcursorメソッドのメモリ使用量

1 はじめに2 テスト用のデータ準備3 get()4 chunk()5 chunkById()6 cursor()7 さいごに8 おすすめ書籍 はじめに テーブルの全レコードに一括で処理を行うバッチを ...

フォロー

blog-page_side_responsive

2017年6月
 123
45678910
11121314151617
18192021222324
252627282930  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。