質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
強化学習

強化学習とは、ある環境下のエージェントが現状を推測し行動を決定することで報酬を獲得するという見解から、その報酬を最大限に得る方策を学ぶ機械学習のことを指します。問題解決時に得る報酬が選択結果によって変化することで、より良い行動を選択しようと学習する点が特徴です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

2回答

594閲覧

機械学習 ボードゲームのフィールドのサイズが変わってもよいのか

programming

総合スコア476

強化学習

強化学習とは、ある環境下のエージェントが現状を推測し行動を決定することで報酬を獲得するという見解から、その報酬を最大限に得る方策を学ぶ機械学習のことを指します。問題解決時に得る報酬が選択結果によって変化することで、より良い行動を選択しようと学習する点が特徴です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2018/08/27 12:42

機械学習の初心者です。
ボードゲームのAIを作ってみたいと思っております。こちらで紹介されているような、バッチ学習でニューラルネットワークを用いた強化学習をやってみようと考えております。

この時に、フィールドのサイズは可変でもよろしいのでしょうか。
例えば、対局データは4×5とか10×10などの様々なフィールドサイズの時の対局データを用意し、これらのデータを用いて学習させると、さまざまなフィールドサイズに対応した評価関数は得られるのでしょうか。

私は、ニューラルネットワークを用いた学習では、勝てるようにネットワークを調整していくのだから、フィールドサイズは関係ないと考えております。
ただ、オセロの実装で、フィールドサイズによってニューラルネットワークをわけていたのを見かけたので、質問致しました。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

実際にやってみないとわからないというのが正直な所ですが
とりあえずはglobal averag poolingを使って試してみるといいと思います。

cnn + 全結合という組み合わせだと、入力サイズが変われば全結合層のネットワーク構造も変えなければなりませんが、GAPを使う事で、ネットワーク構造を変えなくても済みます。
https://qiita.com/mine820/items/1e49bca6d215ce88594a

それでダメなら忘却回避ネットワークというものもあります。
https://qiita.com/yu4u/items/8b1e4f1c04460b89cac2
http://news.livedoor.com/article/detail/12801586/

これは、別々のゲームを混ぜ合わせても一つのネットワークでうまく学習できるというもので
最悪これに頼れば出来ない事はなさそうですが、此方の場合は、サイズが違えば別のゲームと捉えて学習させていくので、質問の趣旨とはちょっとずれているかもしれません

追記

と思ったらサイズがルール上変えられるゲームと別のコメントにありましたね...
もしこれが試合中にも変える事が出来るという意味であれば、ルール上最も大きくできるサイズを入力値とし、次元別に合法手の場所や・今のサイズがわかる情報をバイナリ表現で行えば可能であるように思えます

例えば、ルール上最も大きく出来るサイズが1010とします。
そして今のサイズが5
5とするのであれば、

[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 1, 1, 1, 1, 1, 0, 0],
[0, 0, 0, 1, 1, 1, 1, 1, 0, 0],
[0, 0, 0, 1, 1, 1, 1, 1, 0, 0],
[0, 0, 0, 1, 1, 1, 1, 1, 0, 0],
[0, 0, 0, 1, 1, 1, 1, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

というような特徴を与えてやればいいのではないでしょうか?
これとは逆にサイズの範囲外の場所に1を置く事も考えられますね。

投稿2018/09/16 14:43

編集2018/09/16 15:06
puroko3

総合スコア185

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

programming

2018/09/16 16:00

さまざまな技術があるのですね。今のところは、フィールドサイズの最大値に合わせていて、足りない部分は0で埋めるようにしています。ただ、まだまだ途中なので、もし失敗したらGAPというものも試してみようと思います。 ちなみに、試合ごとにフィールドサイズは固定です。 ご回答ありがとうございます。
guest

0

フィールドサイズが異なるとそもそも得られる最終結果が異なります。
例えば三目並べは、3×3のサイズであれば引き分け確定(両者最善手の場合)なのですが、4×4にしただけで先手必勝(3手目で先手が両側空きの2連を必ず作ることができる)になります。

なので、フィールドサイズを可変させてみないと、そもそもゲームとして成立しない可能性もあるでしょう。

五目並べは先手必勝ですが、先手側に禁じ手(三三、四四)を設定することでゲームとして成立させようとしたのが連珠になります。それでも先手必勝であることが分かっており、開幕時の手を制限するなどして競技として成立させているくらいです。

投稿2018/09/03 06:49

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

programming

2018/09/04 00:16

ご回答ありがとうございます。 今回はフィールドサイズがルール上変えられるゲームなので、どのような大きさにも対応できるよう機械学習をできないかと考えております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問