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

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

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

Chainerは、国産の深層学習フレームワークです。あらゆるニューラルネットワークをPythonで柔軟に書くことができ、学習させることが可能。GPUをサポートしており、複数のGPUを用いた学習も直感的に記述できます。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

541閲覧

障害物問題をchainer、pyautogui、PyQtを使って強化学習させたいです。

退会済みユーザー

退会済みユーザー

総合スコア0

Chainer

Chainerは、国産の深層学習フレームワークです。あらゆるニューラルネットワークをPythonで柔軟に書くことができ、学習させることが可能。GPUをサポートしており、複数のGPUを用いた学習も直感的に記述できます。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/01/26 08:08

前提・実現したいこと

障害物問題(エージェントにとって不完全知覚状態)の課題を強化学習で学習させたいです。
ソースはこちらです。(とりあえず迷路問題になっています。)
https://github.com/gallardo22/DQN-chainer

Profit Sharingを用いて、負の報酬が得られる状況においるルールは環境が変わっても再利用できる可能性があるか調べたいのですが、実装方法が分からず困っています。

また、現段階での構想はCNNの出力(行動価値)を
・負の報酬を獲得するかどうか判断するネットワーク(負の予測ネット(仮))
・負の予測ネット(仮)が負を予測した時の行動価値ネットワーク(負の行動ネット(仮))
・負ではないと予測した時の行動価値ネットワーク(負ではない行動ネット(仮))
の3つに分けて処理することを考えています。

具体的なコードの書き方などを教えたいただけると幸いです。

###実行方法
processingでmaze2.pdeを実行すると中央に「start」と書かれた待機画面が出力されます。
この画面を待機させたまま、ターミナルからdqn_new.pyを実行します。
そこからはpyautoguiによって自動で学習が開始されます。

※注意:start待機画面に他のウィンドウが被っていると実行されません。ターミナルウィンドウを小さくするなど工夫してください。

発生している問題・エラーメッセージ

上記の通りです

該当のソースコード

上記のgithubにあります。

補足情報(FW/ツールのバージョンなど)

Python:2.7+
chainer:2.1.0
cupy:cupy-cuda90
PyQt4
processing:3.4.3

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

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

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

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

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

guest

回答1

0

ベストアンサー

Profit Sharingでの罰の扱いは自明ではなく、十分ひとつの研究テーマになるものです。
ちなみに、現状では、罰に対応するために、例えば、以下の論文で提案されているEFPと
組み合わせること等がよく行われています。
「村岡宏紀, 宮崎和光, 小林博明, 失敗確率伝播アルゴリズムEFPAの提案とマルチエージェント
環境下での有効性の検証, 電気学会論文誌C, Vol.136, No.3, pp.273-281 (2016)」
また、DQNとProfit Sharingを組み合わせた手法としてDQNwihtPSが提案されています。
(DQNwithPSを発展させた手法も提案されています)
実装は、DQNの実装をベースに拡張することで可能だと思います。
少しでもご参考になれば幸いです。

投稿2019/01/30 10:46

ydc

総合スコア17

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

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

退会済みユーザー

退会済みユーザー

2019/01/31 10:33

ご返信ありがとうございます。 転載していただいた文献を見ることができない環境なのですが、簡単に内容をお伝えいただくことはできますでしょうか? 負の報酬を提案モデル通りに処理するとしたら、どのような実装になるかわかりません。
ydc

2019/01/31 11:13

EFPとDQNwithPSについては、それぞれ以下のサイトから論文をダウンロードすることができます。。 (富士技術出版への登録が必要ですが、無料でダウンロードできます) <EFP> https://www.fujipress.jp/jaciii/jc/jacii002100050930/ <DQNwithPS> https://www.fujipress.jp/jaciii/jc/jacii002100050849/ ちなみに、DQNwithPSであれば、罰はDQN部分(Q-learning部分)によって扱うことができるので、 Profit Sharingに対し、罰に対応するための工夫をしなくても、ご希望の問題に適用できるとは思います。 ただし、Profit Sharingで罰をより適切に扱うためには、EFPとの併用や、その他の工夫が必要になると思います。 ご参考になれば幸いです。
退会済みユーザー

退会済みユーザー

2019/01/31 11:31

ご返信ありがとうございます。 大変丁寧にご説明しただきありがとうございました。 実際に参考にさせていただいてやってみたいと思います。
ydc

2019/01/31 11:41

はい。がんばってください。
退会済みユーザー

退会済みユーザー

2019/02/01 08:30 編集

補足: DQNwithPS(Q-Learning)によって扱うことができる理由はわかりますでしょうか?
ydc

2019/02/02 16:54

Profit Sharing(PS)はそのままでは罰を扱うことができませんが、DQNwithPSではQ-learning(QL)による学習も同時に行われているため、QL側の機能で罰を扱える可能性があります。 ただし、DQNwithPSで実装されている組み合わせてがベストであるとは限りませんし、 それぞれの学習手法(PSとQL)にとって、適切な組み合わせになっている保証もありません。 なお、このような観点からDQNwithPSの発展形として、現在、LADQNなどが提案されています。 LADQNに関しては、日本語版でしたら、以下のシンポジウムで発表された論文があります。 ----- Naoki Kodama, Kazuteru Miyazaki and Hiroaki Kobayashi, 経験強化型学習を利用したdeep Q-networkの学習加速化手法の提案と有効性の検証, 第45回 知能システムシンポジウム, (2018). ----- ここではDQNwithPSの説明も日本語で行われていますが、無料では入手できないようです。 図書館等でコピーするか、または、計測自動制御学会に問い合わせればCD-ROM版の予稿集を販売していただけるかもしれません。 ご参考になれば幸いです。
退会済みユーザー

退会済みユーザー

2019/02/03 06:17

ご返信ありがとうございました。 了解しました。 誠にありがとうございます。
退会済みユーザー

退会済みユーザー

2019/02/03 12:08

補足: 度々のご質問で申し訳ありません。 負の報酬を提案モデルのように場合分けして実装した場合、場合分けしない場合とではどのような違いが生まれると予想できますか? プログラムの実装をして結果も出たのですが、いまいち違いを説明できません。 特徴としては、場合分けをしていない方は少ないステップ数の時と、ステップ数がかかってしまっている時が交互に繰り返され、提案モデルの方は、最初の方はステップ数がかかりましたが、安定して下がっていっています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問