BackEnd

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

投稿日:

はじめに

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

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

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

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

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

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

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

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

Wikipediaより

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

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

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

手牌

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

ドラ

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

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

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

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

学習の方法

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

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

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

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

例えばドラがであれば、

とします。

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

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

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

さいごに

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

よろしくお願いします!

blog-page_footer_336




blog-page_footer_336




-BackEnd

執筆者:

免責事項

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


comment

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

CAPTCHA


関連記事

Rust入門してみた その4 モジュール編

1 はじめに2 Rustのモジュール2.1 モジュールツリーの構築2.2 サブモジュール2.3 各モジュールの実装2.4 モジュールのプライバシー3 さいごに4 おすすめ書籍 はじめに これまでの記事 ...

laravel logo

Deployerで複数の環境やサーバにデプロイするには

1 はじめに2 hosts.ymlファイルの作成3 プロダクション・ステージング環境を分ける3.1 ymlファイルの記載3.2 デプロイコマンド4 複数台のサーバに同時リリースする4.1 ymlファイ ...

【Ruby Advent Calender 2017】Rubyでスクレイピングをしてみる【11日目】

1 はじめに1.1 概要2 仕様3 ソースコード4 使用したモジュール、Gem5 対象ページを取得6 XPATHから目的のものを抜き出す7 次のページのリンクを取得する8 他のサイトの記事でも試してみ ...

aws

Amazon API Gatewayざっくり概要

1 はじめに2 Amazon API Gatewayとは?2.1 なにができる?2.2 作成できるAPIの種類2.3 REST APIとHTTP APIの違い3 Amazon API Gatewayの ...

RubyのHanamiチュートリアルをやってみた

1 はじめに2 紹介2.1 Hanamiとは?2.2 Hanamiを選ぶ理由2.2.1 軽量2.2.2 アーキテクチャとして2.2.3 スレッドセーフ3 チュートリアルのための準備4 実践4.1 はじ ...

フォロー

blog-page_side_responsive

2017年6月
 123
45678910
11121314151617
18192021222324
252627282930  

アプリ情報

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