問題タブ [reinforcement-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.
machine-learning - 強化学習でファイル/データベースに保存する必要があるものは何ですか?
私は機械学習を始めようとしており、自分で試してみることにしました。小さな三目並べゲームを書きました。これまでのところ、コンピューターはランダムな動きを使用して自分自身と対戦しています。
ここで、ボードの現在の状態に関する知識に基づいて探索または悪用するエージェントを作成することで、強化学習を適用したいと考えています。
私が理解していない部分は次のとおりです。エージェントは現在の状態に合わせて自分自身をトレーニングするために何を使用していますか? RNG ボット (o) プレイヤーがこれを行うとしましょう:
[..][..][..]
[..][x][o]
[..][..][..]
ここで、エージェントは最善の動きを決定する必要があります。よく訓練された人は、1 位、3 位、7 位、または 9 位を選ぶでしょう。DB で彼を勝利に導いた同様の状態を検索しますか? もしそうなら、最終状態(勝ち/負け/引き分け状態)になるまで、すべての動きをDBに保存する必要があると思いますが、それは1回のプレイでかなりの量のデータになるのでしょうか?
これを間違って考えている場合は、これを正しく行う方法を知りたいです。
algorithm - 特定の強化学習アルゴリズムをいつ使用するか?
私は強化学習を勉強していて、大学のコースのためにサットンの本を読んでいます。古典的な PD、MC、TD、および Q-Learning アルゴリズムのほかに、ポリシー勾配法と、意思決定問題を解決するための遺伝的アルゴリズムについて読んでいます。私はこれまでこのトピックについて経験したことがなく、ある手法を別の手法よりも優先する必要がある場合を理解するのに問題があります。いくつかのアイデアがありますが、よくわかりません。誰かが簡単に説明したり、特定の方法を使用する必要がある典型的な状況について何かを見つけることができる情報源を教えてもらえますか? 私が理解する限りでは:
- 動的計画法と線形計画法は、非常にコストがかかるため、MDP のアクションと状態がほとんどなく、モデルがわかっている場合にのみ使用してください。しかし、DP が LP よりも優れているのはいつですか?
- モンテカルロ法は、問題のモデルがなくてもサンプルを生成できる場合に使用されます。バイアスはありませんが、分散が大きくなっています。
- 時間差法は、MC 法で分散を小さくするために必要なサンプルが多すぎる場合に使用する必要があります。しかし、いつ TD を使用し、いつ Q-Learning を使用する必要がありますか?
- Policy Gradient および Genetic アルゴリズムは、継続的な MDP に適しています。しかし、一方が他方よりも優れているのはいつですか?
より正確には、学習方法を選択するには、プログラマーは次の質問を自問する必要があると思います。
- エージェントはオンラインまたはオフラインで学習しますか?
- 探索段階と開発段階を分けることはできますか?
- 十分な探索を行うことができますか?
- MDP の地平線は有限か無限か?
- 状態とアクションは連続していますか?
しかし、これらの問題の詳細が学習方法の選択にどのように影響するかはわかりません。RL メソッドについてある程度の経験を積んでいるプログラマーがいて、それらのアプリケーションをよりよく理解するのに役立つことを願っています。
data-structures - 木で4つのパズルを解く
4ボックスパズルの問題を解こうとしています。私の経験によると、私の論理は、すべての数字がスペースと交換されてから、正しい位置に到達するというものです。
私はこれを持っています:
私の目標状態:
アプローチを使用しているもの:(キー:R->右、D->下、上->上、L->左)
これが私がやっていることですが、毎回同じツリーの状態になっていますが、正しい目標状態ではありません。間違ったツリー アプローチまたはアルゴリズムを使用している場合は、教えてください。インターネットで勉強した後、この種のツリーを実装しているためです。
reinforcement-learning - 最適なポリシーへの Q-Learning の収束
私はq 学習にrlglue ベースの python-rlフレームワークを使用しています。私の理解では、エピソードの数にわたって、アルゴリズムは最適なポリシーに収束します (これは、どの状態でどのアクションを実行するかを示すマッピングです)。
質問 1: これは、多くのエピソード (たとえば 1000 以上) の後、基本的に同じ state:action マッピングを取得する必要があるということですか?
報酬 (または 100 エピソードの平均報酬) をプロットすると、このリンクの図 6.13 のようなグラフが得られます。
質問 2: アルゴリズムが何らかのポリシーに収束した場合、報酬が低下するのはなぜですか? 報酬が大幅に変わる可能性はありますか?
質問 3: さまざまな RL アルゴリズムの結果を比較するために使用できる標準的な方法はありますか?
machine-learning - 最終状態のないQラーニングは可能ですか?
この問題を Q-learning で解かなければなりません。さて、実際には、Q ラーニング ベースのポリシーを評価する必要があります。
私は観光マネージャーです。
私はn 個のホテルを持っており、それぞれに異なる人数を収容できます。
ホテルに入れる人ごとに、選択した部屋に基づいて報酬を受け取ります。
私が望むなら、その人を殺すこともできるので、ホテルには行きませんが、別の報酬が得られます. (OK、それは冗談です...しかし、それは私が自己移行を行うことができると言うことです。そのため、その行動の後、私の部屋にいる人の数は変わりません)。
my state は、各ホテルの人数を含むベクトルです。
私のアクションはゼロと 1 のベクトルであり、新しい人をどこに置くかを教えてくれます。- 私の報酬マトリックスは
、状態間の各遷移 (自己遷移の場合でも) ごとに取得する報酬によって形成されます。
さて、私は無制限の数の人々を得ることができるので(つまり、私はそれを埋めることができますが、私は彼らを殺し続けることができます)、どうすればQマトリックスを構築できますか? Q マトリックスがないと、ポリシーを取得できないため、評価できません...
私は何を間違って見ていますか?最終的にランダムな状態を選択する必要がありますか? ポイントをまったく逃しましたか?