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

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

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

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

強化学習

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

Keras-RL

Keras-RLは、Kerasを用いてDQNなどの深層強化学習アルゴリズムを実装したライブラリです。学習する強化学習の環境をOpenAI Gymのインターフェースに準じて作成することが必要です。

Q&A

1回答

4022閲覧

強化学習(深層強化学習)のrewardの変化についてです。(keras-rl使用)

Hayato1201

総合スコア220

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

強化学習

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

Keras-RL

Keras-RLは、Kerasを用いてDQNなどの深層強化学習アルゴリズムを実装したライブラリです。学習する強化学習の環境をOpenAI Gymのインターフェースに準じて作成することが必要です。

0グッド

1クリップ

投稿2018/04/25 13:47

強化学習で解くための環境を自作してそれをDQNのフレームワーク(keras-rl)を用いてrewardの変化を見て行っているのですが、それについて質問です。
エピソードごとのrewardをグラフにするとだいたいいつも以下の様になります。

イメージ説明
イメージ説明

毎回序盤で一気に下がってその後上がるといった形になります。ここで下がっているポイントはkeras-rlでいう、nb_steps_warmupで指定した最初の学習には使われない部分のステップが終わるとそこでまず下がります。まずこれは何故でしょうか?nb_steps_warmupで指定したタイムステップ分は学習で使われない部分だという認識でしたがこれはどういう事でしょうか?

また一枚めの画像で実際にプロットしている点は以下になります。
[-22.0, -279.0, -58.0, -68.0, -14.0, -8.0, -33.0, -12.0, -39.0, -20.0, -32.0, -28.0, -52.0, -43.0, -18.0, -32.0, -12.0, -17.0, -12.0, -37.0, -16.0, -26.0, -27.0, -7.0, -16.0, -14.0, -48.0, -43.0, -14.0, -28.0]

この時のエージェントでテストすると、以下の様になります。
Episode 1: reward: -6.000, steps: 50
Episode 2: reward: -6.000, steps: 50
Episode 3: reward: -6.000, steps: 50
Episode 4: reward: -7.000, steps: 50
Episode 5: reward: -6.000, steps: 50
Episode 6: reward: -7.000, steps: 50
Episode 7: reward: -7.000, steps: 50
Episode 8: reward: -6.000, steps: 50
Episode 9: reward: -6.000, steps: 50
Episode 10: reward: -6.000, steps: 50
ここで表示されるrewardもそのエピソードのステップ毎に得られたrewardの合計のエピソードrewardですよね?だとしたら、何故テストではこの様に全体としてトレーニング時より高い値となっているのでしょうか?
因みに1500ステップ行った結果ですが、学習を途中で止めてテストするとそこでのrewardは最後まで学習させた時より落ちるので、学習はしっかり進んでいるのではないかと思うのですがどうでしょうか?

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

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

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

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

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

guest

回答1

0

こんばんは、お世話になります。
keras-rlは使用した事が無いので推測混じりの回答になりますが、ご容赦下さい。

nb_steps_warmupで指定したタイムステップ分は学習で使われない部分だという認識でしたがこれはどういう事でしょうか?

https://github.com/keras-rl/keras-rl/blob/master/rl/agents/dqn.py をざっと読んだ感じですと、nb_steps_warmupのタイムステップ分は「学習に使わない」のでは無く、「このステップ間はReplay Memoryに経験を蓄積するだけで、パラメータ更新を行わない」という処理の様です。

毎回序盤で一気に下がってその後上がるといった形になります。ここで下がっているポイントはkeras-rlでいう、nb_steps_warmupで指定した最初の学習には使われない部分のステップが終わるとそこでまず下がります。まずこれは何故でしょうか?

環境を自作されているとの事ですので、エージェント側の問題か環境側の問題かを切り分けるのが近道かと思います。

例えば、A,B,Cの3状態からなり

  • 開始状態は常にB
  • 状態Bで行動「左」を選択すると状態Aに遷移し、0の報酬を得る
  • 状態Bで行動「右」を選択すると状態Cに遷移し、-1の報酬を得る

とした場合、ご質問内容と同様の結果になりますでしょうか?

お手数ですが、上記のテスト結果をお知らせ頂ければ、何かのヒントになるかもしれません。

投稿2018/04/26 13:47

rtr1950x

総合スコア298

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

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

Hayato1201

2018/04/27 00:59

回答ありがとうございました! 現在開始状態は常に同じです。またアクションの種類は10ありそれぞれの行動毎に状況に応じた報酬が与えられるようになっています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問