問題タブ [q-learning]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - JavaScript、Arduino、Q-Learning を使用したライン追従ロボット
Q-Learningを使ったライン追従ロボットを作りたいと思っています。私の意図は、プログラミング側に JavaScript を使用しながら、Arduino の部品に基づいてロボットを使用/構築することです。
これを書いている時点で、私は少しグーグルで調べていて、これは実行可能なプロジェクトだと思います. ただし、JavaScript をプログラミングして Arduino ロボットを構築するのは初めての試みなので、何かアドバイスをいただければ幸いです。
私はあなたに問題を解決するように求めているわけではありませんが、私が遭遇する可能性のあるショーストッパーを強調してください. JavaScript や Arduino の経験はありません。
御時間ありがとうございます、
マーク
algorithm - Q-Learning Algorithm の実装は再帰的ですか?
Qラーニングを実装しようとしています。ここからの一般的なアルゴリズムは次のとおりです。
声明では
元の疑似コードの上記のステートメントを、現在の状態/アクションが導くことができるすべての次の状態に対して再帰的に実装し、毎回最大にする必要があることを理解していません
または、アクション-ステート Q-値テーブルから現在のアクションで次のステートの最大値を選択するだけですか?
前もって感謝します。
machine-learning - ニューラル ネットワークを使用した Q-Learning に関する質問
で説明されているように、Q-Learning を実装しました。
http://web.cs.swarthmore.edu/~meeden/cs81/s12/papers/MarkStevePaper.pdf
約するために。Q(S,A) 次のようなニューラル ネットワーク構造を使用します。
- 活性化シグモイド
- 入力、入力数 + アクション ニューロンの 1 (すべての入力を 0 ~ 1 にスケーリング)
- 出力、シングル出力。Q値
- N 個の M 隠しレイヤー。
- 探索方法 random 0 < rand() < propExplore
次の式を使用して各学習反復で、
Q-Target 値を計算してから、以下を使用してエラーを計算します。
そして、ニューラル ネットワークを介してエラーを逆伝播します。
Q1, 私は正しい軌道に乗っていますか? アクションごとに 1 つの出力ニューロンを持つ NN を実装するいくつかの論文を見てきました。
Q2, 報酬関数が-1~1の数値を返すのですが、アクティベーション関数がシグモイド(0 1)の場合、-1~1の数値を返してもいいですか?
Q3、この方法についての私の理解から、十分なトレーニング インスタンスが与えられた場合、最適なポリシー ワイトを見つけるために隔離する必要がありますか? XOR のトレーニングを行うと、2k 回の反復後に学習する場合があり、40k 50k の反復後でも学習しない場合があります。
machine-learning - 関数近似による Q ラーニングでは、手作りの機能を回避することは可能ですか?
私は機械学習の背景知識がほとんどないため、私の質問がばかげているように思われる場合はご容赦ください。
私が読んだことに基づいて、現時点で最高のモデルフリー強化学習アルゴリズムは Q-Learning であり、エージェントの世界の各状態とアクションのペアに q 値が与えられ、各状態で最高のアクションq 値が選択されます。その後、q 値は次のように更新されます。
Q(s,a) = (1-α)Q(s,a) + α(R(s,a,s') + (max_a' * Q(s',a'))) α は学習レート。
明らかに、高次元の問題では、状態の数が天文学的に大きくなり、q 値テーブルの格納が実行不可能になります。
そのため、Q ラーニングを実際に実装するには、状態 (特徴) の一般化による Q 値近似を使用する必要があります。たとえば、エージェントが Pacman の場合、機能は次のようになります。
- 最も近い点までの距離
- 最も近いゴーストまでの距離
- パックマンがトンネルに?
そして、すべての単一の状態の q 値の代わりに、すべての単一の機能の q 値のみが必要になります。
だから私の質問は:
強化学習エージェントが追加の機能を作成または生成することは可能ですか?
私が行ったいくつかの研究:
この投稿では、A Geramifard の iFDD メソッドについて言及しています。
- http://www.icml-2011.org/papers/473_icmlpaper.pdf
- http://people.csail.mit.edu/agf/Files/13RLDM-GQ-iFDD+.pdf
これは「機能の依存関係を発見する」方法ですが、論文では一連のバイナリ機能から始めることを想定しているため、それが機能の生成であるかどうかはわかりません。
私が見つけた別の論文は、Playing Atari with Deep Reinforcement Learningが適切であり、「さまざまなニューラル ネットワーク アーキテクチャを使用して高レベルの機能を抽出する」ものでした。
私は論文を読みましたが、まだ彼らのアルゴリズムを肉付けする/完全に理解する必要があります. これは私が探しているものですか?
ありがとう
algorithm - Qラーニング:環境を変えて学び直す
サイズ (nxn) のグリッドに Q 学習を実装し、中央に 100 の単一の報酬を設定しました。エージェントは、1000 エポックの間、次のエージェンシーによって目標に到達することを学習します。エージェントは、0.8 の確率で状態アクション値が最も高い動きを選択し、0.2 の確率でランダムな動きを選択します。移動後、Q 学習ルールによって状態アクション値が更新されます。
ここで、次の実験を行いました: ゴールに隣接するすべてのフィールドは、一番下の隣を除いて -100 の報酬を得ました。1000 エポックを学習した後、エージェントは明らかに上に行くことを避け、最も頻繁に下からゴールに到達します。
学習後、下隣の報酬を -100 に設定し、上隣の報酬を 0 に戻し、状態アクション値マップに固執しながら 1000 エポックの学習を再度開始します。それは実際には恐ろしいです!エージェントがゴールを見つけるのに非常に時間がかかります (9x9 グリッドで最大 3 分)。パスを確認した後、エージェントが (0,0)->(1,0)->(0,0)->(1,0) のような 2 つの状態の間を行き来するのに多くの時間を費やしていることがわかりました...
この振る舞いに意味があるかどうか、私には想像しがたいです。誰かがこのような状況を経験したことがありますか?
machine-learning - Tic Tac Toe の Q 学習アルゴリズム
三目並べゲームの Q 値を更新する方法がわかりませんでした。私はそれについてすべて読みましたが、これを行う方法を想像できませんでした. ゲーム終了時にQ値が更新されると読んだのですが、行動ごとにQ値があるのかどうかがよくわかりません。
machine-learning - Qラーニングとバリューイテレーションの違いは何ですか?
Q学習は強化学習における値の反復とどう違うのですか?
Q-learning はモデルフリーであり、トレーニング サンプルは transition であることを知ってい(s, a, s', r)
ます。しかし、Q 学習ではすべての遷移に対する遷移と報酬がわかっているため、状態とアクションのペアに対する報酬、および状態からのすべてのアクションに対する遷移 (be確率論的または決定論的)?違いがわかりません。
reinforcement-learning - Qラーニングの実施
R(報酬)が確率的時間依存変数であり、const時間間隔deltaTの後にリアルタイムで到着する環境で、Qラーニングを実装しようとしています。状態 S (スカラー) も const 時間間隔 deltaT の後に到着します。エージェントのタスクは、(S(n deltaT),R(n deltaT)) を得た後に最適なアクションを与えることです。
私の問題は、私がRLに非常に慣れていないことです。このアルゴリズムをどのように実装する必要があるのか わかりません。Qラーニングアルゴリズムを説明するほとんどの論文は「科学的な英語」であり、役に立ちません。
OnTimer() は一定間隔で実行されます。
質問:
うまくいかないように見えるので、これはオンライン Q ラーニングの適切な実装ですか? n*deltaT -> inf の場合、これが最適に機能しないのはなぜですか。非常に重要です。助けてください。