強化学習(Q-learning)の報酬が後の行動に影響を受けるモデルについて

このQ&Aのポイント
  • 強化学習(Q-learning)では、状態sで行動aをとったときに、確率的に状態s'へ遷移し、同時に確率的に報酬rが得られます。
  • しかし、報酬rが後の行動に影響を受けてしまうようなモデルでは、Q-learningは使えません。
  • 適したアルゴリズムについてはまだ知見がありませんので、ご意見をお待ちしています。
回答を見る
  • ベストアンサー

<再度> 強化学習(Q-learning)について

はじめまして。 以前質問させていただいたのですが、回答が0であっ たため、再度質問させていただきました。  どなたかすこしでも情報をお持ちの方がいらっしゃいましたら、何卒よろしくお願いいたします。 (自分で手当たり次第に調べてみても、見つからなか ったので・・・・) 私は現在大学院の研究において専門外ながら、強化学 習(Q-learning)について調べている者です。 学習アルゴリズムについてはGAやEPなどでプログラム を組んだ経験がある程度です。(あくまで、専門外です。) 以下の点についてご存知の方がいらっしゃいましたら、お聞かせいただきたいと思います。 Q-learningでは 「状態sで行動aをとったとき、確率的に状態がs'へと 遷移し、同時に確率的に報酬rが得られる。」 その後それらによってQ値を更新する。  ということのようなのですが、このときの報酬rがそ の後の行動の影響を受けてしまいかねないようなモデ ルではQ-learningは使えないのでしょうか? また、上記のようなモデルにおいて適したアルゴリズムをお知りの方がおられましたら、お聞かせいただけないでしょうか?  よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • daitchian
  • ベストアンサー率47% (29/61)
回答No.1

こんばんわ。 強化学習に関してはどのようなものかという程度しかかじったことがない者です。 ですので独り言程度と思ってください。 Q-learningでは受け取った報酬によってQ値を更新していくものですが、 現在の状態sとそのときの行動aのみではなく、それ以前のものについても報酬によってQ値が更新されます。 報酬はある目的を達成したときのみ与えられるものですので(一般的には)、以上のような原理を利用して迷路探索などに利用することができるのだと私は理解しています。 ですので、報酬の与えられる基準がその後の行動で変化するような場合には難しいのではないでしょうか? 最近ではマルチエージェント強化学習など複数のエージェントを利用したものや、上位下位という概念の入ったエージェントで強化学習を行うことがあるようです。 それらの方式を使えば可能なのかもしれませんが、現在の私の知識ではわかりかねますね。 答えになってないような気がしますが、 とりあえずやってみるってのはどうでしょうか?

関連するQ&A

  • VC# 強化学習

    VC#2010で強化学習のプログラムを作ろうと考えているのですが、 実行すると「NullReferenceExceptionはハンドルされませんでした。 オブジェクト参照がオブジェクト インスタンスに設定されていません。」 というエラーが出てプログラムが動きません。 ソースは static public Random rnd; static void Main(string[] args) { double[][] Qtable; //Qtable double Q_max = 0;//Q値の最大値 double reward = 0; //報酬 double alpha = 0.5;//学習係数 double gamma = 0.9;//減衰係数 int epsilon = 10;//行動を無作為に選ぶ確率[%] int trial_max = 100;//試行回数 int num_a = 2;//行動の数 int num_s = 2;//状態の数 int a = 0;//行動 int s = 0;//状態 int sd = 0;//行動の実行によって遷移する状態 int i, j; //メモリー空間の確保 Qtable = new double [num_s][]; for (i = 0; i < num_s; i++) { Qtable[i] = new double[num_a]; } //Q値の初期化 for (i = 0; i < num_s; i++) { for (j = 0; j < num_a; j++) { Qtable[i][j] = 0; Console.WriteLine("Q[{0}][{1}]={2}\n", i, j, Qtable[i][j]); } } //試行開始 for (i = 0; i < trial_max; i++) { //行動の選択 a = epsilon_greedy(epsilon, s, num_a, Qtable); a = 1; //行動の実行 reward = vending_machine(s, a, sd); //sdにおけるQ値の最大値を求める Q_max = max_Qval(sd, num_a, Qtable); //Q値の更新 Qtable[s][a] = (1 - alpha) * Qtable[s][a] + alpha * (reward + gamma * Q_max); s = sd; Console.WriteLine("i={0}\n", i); if (reward > 0) { Console.WriteLine("成功\n", a); } if (reward == 0) { Console.WriteLine("失敗\n", a); } } //Qtableの表示 for (i = 0; i < num_s; i++) { for (j = 0; j < num_a; j++) { Console.WriteLine("{0} ", Qtable[i][j]); } Console.Write("\n"); } return; } static double vending_machine(int s, int a, int sd) { double reward; if (a == 0) { if (s == 0) sd = 1; if (s == 1) sd = 0; reward = 0; } else { if (s == 1) { sd = s; reward = 10; } else { sd = s; reward = 0; } } return reward; } static double max_Qval(int s, int num_a, double [][] Qtable) { double max; int i = 0; max = Qtable[s][0]; for (i = 1; i < num_a; i++) { if (Qtable[s][i] > max) { max = Qtable[s][i]; } } return max; } static int select_action(int s, int num_a, double [][] Qtable) { double max; int i = 0; int[] i_max; i_max = new int[num_a]; int num_i_max = 1; int a; i_max[0] = 0; max = Qtable[s][0]; for (i = 1; i < num_a; i++) { if (Qtable[s][i] > max) { max = Qtable[s][i]; num_i_max=1; i_max[0]=i; } else if (Qtable[s][i] == max) { num_i_max++; i_max[num_i_max - 1] = i; } } int seed = Environment.TickCount; rnd = new Random(seed++); a = i_max[rnd.Next(num_i_max)]; return a; } static int epsilon_greedy(int epsilon, int s, int num_a, double [][] Qtable) { int a; if (epsilon > rnd.Next(100)) { //無作為に行動を選択 a = rnd.Next(num_a); } else { //最大のQ値を持つ行動を選択 a = select_action(s, num_a, Qtable); } return a; } のような感じです。 どなたか分かる方がいれば、教えていただけるとありがたいです。 よろしくお願いします。

  • オートマトン

    教えてください 以下のオートマトンM=<Q, Σ, δ, q0, F>の状態 遷移図を描け.また入力abcbaを与えたとき の動作を⊢を用いて示せ. • Q={r, s} • Σ={a, b, c} • δ: Q✕Σ→Q • δ(r, a)={s}, δ(r, b)={r}, δ(r, c)={r} • δ(s, a)={r}, δ(s, b)={s}, δ(s, c)={s}

  • 結晶電子と光との相互作用について(選択側)

    結晶電子と光との(一次の)相互作用で、いまいち納得できない点がある為、質問させていただきます。 (自分で理解しているつもりでいるところ;理解不足でしたら申し訳ございません) 電磁場により、結晶電子がある初期状態からある励起状態へ遷移する場合、その遷移は、消滅するフォトン、電子、及び新たに発生する電子の間で、「エネルギー保存則」、「運動量保存則」を満たす条件下で発現しますよね。しかしもう1つ重要な条件があって、それは、結晶電子のワニヤ関数の対称性とあります。  実際に遷移確率の定式化において、電子の運動量演算子が、遷移前と遷移後のワニヤ関数に挟まれた状態を空間で積分した項が存在します。式の本質的な部分だけ示すと、遷移前後のワニヤ関数をφ(r) φ'(r)として、こんな感じになります。 ∫φ(r)∇φ'(r)dr (rは単位胞内での位置ベクトル) 実際、ワニヤ関数が、対称、非対象の場合に分けて計算したら、上式の値は、確かに遷移前後ワニヤ関数が共に対象、及び非対称の場合は0で、対称と非対称、もしくは非対称、対象の場合は有限の値を持つことも確認できます。 (納得というか理解しにくいところ)  計算ではこのように確かにそうだと確認できるのですが、物理的にはなぜこのようになるのでしょうか?例えば結晶電子ではありませんが、簡単の為、水素原子を例に考えると、(1s)→(2s)への遷移は禁制遷移で(1s)→(2p)への遷移は許容遷移なんですよね?これは特に、ワニヤ関数の対称性が大きく絡んだ問題だと思うのですが、やはり、物理的理解に苦しみます。 長々と申し訳ありませんが、よろしくお願いしますm(__)m

  • S.P.Q.R について教えて下さい

    ピエロ・デッラ・フランチェスカのフレスコ作品「キリストの復活」で、墓に寄りかかる兵士が持っている盾に描かれた「S.P.Q.R」の略字についてお願い致します。 英語の辞書(リーダース)には「small profits quick returns」→「薄利多売」という記載の他に、「Senatus Populus que Romanus」の略という記載がありました。ネットで調べたら「元老院ならびにローマ市民」(マキシマスの時代に脱走兵を防ぐ意味もあって特に属国出身の兵士には刺青を入れた…)とありました。ピエロの「S.P.Q.R」は「元老院ならびにローマ市民」だと思うのですが、辞書にある「薄利多売」と何か語源等で関連がありますか? また、「S.P.Q.R」が、認印で使われたのが書簡の始まりである…というのは正しいですか? 御存知の方がいらっしゃいましたら是非、教えて下さい。

  • 離散数学 有限状態機械

    有限状態機械M=<S,I,O,f,g>において、S={q0,q1,q2}, I=O={0,1},状態遷移関数fと出力関数gが次のようであるとき、状態遷移出力表、状態図を作成し、入力語w=101001のときの状態の変化と出力語を求めよ。また、入力語w=011011ではどうか。 f(q0,0)=q2, f(q0,1)=q0,f(q1,0)=q1,f(q1,1)=q2 f(q2,0)=q1, f(q2,1)=q1 g(q0,0)=0, g(q0,1)=1,g(q1,0)=0,g(q1,1)=0, f(q2,0)=1,f(q2,1)=0 手も足もでません・・・ どうかお願いします。

  • HG8045Qのファームウエアーが更新されない

    Nuro光で提供されているHG8045QのファームウエアーがV3R016C00S100の状態で変更されていません。 12月4日には更に管理者アカウント等についてセキュリティ強化のため…S110から…S120へ自動にて更新することがリリースされました。…S120の更新は12月10日6:00で完了したことが告知されておりますが、私のHG8045Qは…S100の状態で更新されていません。簡易NASを使用していることからセキュリティには気を付けているところですが、なかなか更新されないのは私だけなのでしょうかそれとも地域によって除外されているとか? 導入当初から、得体のしれないDos攻撃を受けており早急に対応してほしいものです。 手動でのファームウエアー更新が必要な場合ファイルはどこで提供されているのでしょうか? ※OKWAVEより補足:「So-netの各種設定」についての質問です。

  • 決定性有限オートマトンと正規表現

    現在オートマトンの勉強をしていますが,どうしても分からない問題がありました. 決定性有限オートマトンについて,初期状態,受理状態共にp,入力信号を0,1とする. 状態遷移表が以下の時,受理する言語を表す正規表現を求めよ.   0 1 p | p r q | p r r | q r 答え (0*11*0(11*0)*0)*0* という問題なのですが,状態消去法で自分でやってみても全然この答えになりません. ちなみに自分の解答は (0*1(1+01)*00)*0* となりました. ご教授よろしくお願いします.

  • マルコフ連鎖の問題

    マルコフ連鎖に関する問題が分からなく困っています。 状態空間 S={1,2,3} で推移確率行列      |1/4 1/2 1/4| P=|2/5 1/5 2/5|   |1/3 1/3 1/3| をもつ定常なマルコフ連鎖{Xn}に対して次の問いに答えよ。 (1)確率P( X2=2,X3=1 | X0=3,X1=2 )を求めよ (2)確率P( X2=1 | X0=1 )を求めよ。 (3)lim【n→∞】P( Xn=2 | X=1 )を求めよ。 (1)のみ解答の目処が立っています。 まず(2)がよく分からないので、苦し紛れに状態遷移図を書いて考えてみたところ、(1/4)*(1/4)+(1/2)*(2/5)+(1/4)*(1/3)となるかなと考えてみたのですがどうでしょうか? (3)についてはどう解いていったらいいのか分かりません。 よろしくお願いします。

  • この3つの問題の解答を教えてください

    1, P,Q,R,Sの4人が、3日間にわたって開催される会議の受付をすることになった。受付はどの日も2人ずつ必要なので、4人のうちの2人が最終日にもう1度受付を担当することにした。誰がどの日の担当になるか、その組み合わせは何通り? 2, 横1列に並んだ5つの席があり、P,Q,R,S,Tの5人がくじ引きで座る席を決める。このとき、PとQが隣り合わせになる確率はどのくらい? 3, あるゲームで0~9までのいずれかの数字を指すルーレットを回し、指した数字の数だけコマを進める。ただし、0を指した場合はスタート地点に戻る。4回ルーレットを回した結果、スタート地点から1つ進んだ一にコマがある確率はどのくらい?

  • 確率の問題を教えてください。

    図はマルコフ連鎖の1ステップの確率を表している。状態4,5は吸収状態である。このとき ・現在状態2にある場合、最終的に状態5に到達する確率を求めよ。 ・現在状態2にある場合、吸収状態4または5に到達するまでの平均ステップ数を求めよ という問題なのですが、   状態1となる確率をpn、状態2となる確率をqn,状態3となる確率をrnとおいて p_n+1=1/3*pn+1/3*qn+1/3*rn q_n+1=1/3*pn+1/3*rn r_n+1=1/3*pn+1/3*qn とおいてみたのですが解き方がわかりません。 また考え方もあっているかわからないです。 どのように解くか教えてください。 よろしくお願いします。