問題タブ [temporal-difference]
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 - 時間差の更新ルール
更新ルール TD(0) Q-Learning:
Q(t-1) = (1-alpha) * Q(t-1) + (alpha) * (Reward(t-1) + gamma* Max( Q(t) ) )
次に、現在のベスト アクション (最適化) またはランダム アクション (エクスプローラー) のいずれかを実行します。
MaxNextQ は、次の状態で取得できる最大 Q です...
しかし、TD(1) では、更新ルールは次のようになると思います。
Q(t-2) = (1-alpha) * Q(t-2) + (alpha) * (Reward(t-2) + gamma * Reward(t-1) + gamma * gamma * Max( Q(t) ) )
私の質問:
この用語gamma * Reward(t-1)
は、私が常に最善を尽くすことを意味しt-1
ます.. これは探索を妨げると思います..
誰かヒントをくれませんか?
ありがとう
temporal-database - 時系列の比較
私はこのタスクに頭を悩ませようとしていますが、これを行うための標準的な方法や、役立つライブラリがあるかどうか疑問に思っています。
特定のイベントは、いくつかのデータソースS1...SNで追跡および計測されます。記録される情報は、イベントタイプとタイムスタンプです。同じタイプのイベントが連続して複数発生する場合もあれば、断続的に発生する場合もあります。「欠落」イベントが発生する可能性があります。つまり、ソースの1つがそれを見逃した場合、およびその逆の場合、ソースが「誤検知」を導入した場合です。通常、異なるソースでの同じイベントの観測には時間差があります。この時間差には、ソースの物理的な場所によって一定の要素がありますが、ネットワークの遅延やその他の要因によって変化する要素が含まれる場合もあります。
すべてのソースでの観測を単一の「観測イベント」にグループ化し、欠落イベントと誤検知を検出できるようにするために使用する必要がある最適な最大時間間隔を見つけるアルゴリズムを見つける必要があります。
解決策が本当にアルゴリズムではなく統計分野のどこかにあるのだろうかと思います。任意の入力をいただければ幸いです。
artificial-intelligence - Delphi / PascalのTD(λ)(時間差学習)
Tic-Tac-Toeを再生する人工ニューラルネットワークがありますが、まだ完成していません。
私がまだ持っているもの:
- すべてのタイムステップまたは移動「t」の整数値を持つ報酬配列「R[t]」(1 =プレーヤーAが勝ち、0 =引き分け、-1 =プレーヤーBが勝ちます)
- 入力値は、ネットワークを介して正しく伝播されます。
- 重みを調整するための式:
何が欠けている:
- TD学習:TD(λ)アルゴリズムを使用してネットワークのエラーを「逆伝播」する手順がまだ必要です。
しかし、私はこのアルゴリズムを本当に理解していません。
これまでの私のアプローチ...
遠位状態はそれほど多くの報酬を得てはならないため、トレース減衰パラメータλは「0.1」である必要があります。
学習率は、両方のレイヤー(入力と非表示)で「0.5」です。
報酬が遅れる場合です。ゲームが終了するまで、報酬は「0」のままです。すると、報酬は、最初のプレーヤーの勝利の場合は「1」、2番目のプレーヤーの勝利の場合は「-1」、引き分けの場合は「0」になります。
私の質問:
- ネットのエラー(TDエラー)はいつどのように計算しますか?
- エラーの「バックプロパゲーション」をどのように実装できますか?
- TD(λ)を使用して重みをどのように調整しますか?
よろしくお願いします:)
delphi - Delphi:ニューラルネットワーククラスのEInvalidOp(TD-lambda)
ニューラルネットワーククラスについて、次のドラフトがあります。このニューラルネットワークはTDラムダで学習する必要があります。これは、getRating()関数を呼び出すことによって開始されます。
ただし、残念ながら、次の行で約1000回の反復を行った後、EInvalidOp(無効な読み込みポイント操作)エラーが発生します。
このエラーはなぜですか?コードに間違いが見つかりません:(助けてくれませんか?よろしくお願いします!
machine-learning - 時間差学習の更新
Tesauro の TD-Gammon プログラムについて読み、三目並べに実装したいと思っていますが、専門用語がわからないため、高校生の私にはほとんどすべての情報にアクセスできません。
ここの最初の方程式http://www.stanford.edu/group/pdplab/pdphandbook/handbookch10.html#x26-1310009.2
「一般的な教師あり学習パラダイム」を提供します。式の左辺の w sub t は、タイム ステップ t でのパラメーター ベクトルであると言えます。「タイムステップ」とは正確にはどういう意味ですか?ボードの状態の値を出力するように設計された三目並べニューラル ネットワークのフレームワーク内で、タイム ステップは、特定のゲームでプレイされたピースの数を参照しますか? たとえば、文字列「xoxoxoxox」で表されるボードはタイム ステップ 9 にあり、ボード「xoxoxoxo」はタイム ステップ 8 にあるでしょうか? それとも、タイム ステップは、トレーニングが開始されてからの経過時間を指しますか?
w sub t は特定の時間ステップの重みベクトルなので、これはすべての時間ステップに独自の評価関数 (ニューラル ネットワーク) があることを意味しますか? では、たった 1 つの手でボードの状態を評価するには、2 つの手でボードの状態をフィードするのとは異なる NN にフィードする必要がありますか? 私が知る限り、Tesauro はすべてのボードの状態を評価するために 1 つの NN しか使用しなかったため、ここで何かを誤解していると思います (ただし、TD-Gammon に関する信頼できる情報を見つけることは困難です)。
出力の勾配が w sub t ではなく w に関して取得されるのはなぜですか?
これらのアイデアを明確にしていただきありがとうございます。私のプロジェクトに関するアドバイスや、アクセシブルな読み物に関する提案をいただければ幸いです。
neural-network - Neural Network Reinforcement Learning Requiring Next-State Propagation For Backpropagation
I am attempting to construct a neural network incorporating convolution and LSTM (using the Torch library) to be trained by Q-learning or Advantage-learning, both of which require propagating state T+1 through the network before updating the weights for state T.
Having to do an extra propagation would cut performance and that's bad, but not too bad; However, the problem is that there is all kinds of state bound up in this. First of all, the Torch implementation of backpropagation has some efficiency shortcuts that rely on the back propagation happening immediately after the forward propagation, which an additional propagation would mess up. I could possibly get around this by having a secondary cloned network sharing the weight values, but we come to the second problem.
Every forward propagation involving LSTMs is stateful. How can I update the weights at T+1 when propagating network(T+1) may have changed the contents of the LSTMs? I have tried to look at the discussion of TD weight updates as done in TD-Gammon, but it's obtuse to me and that's for feedforward anyway, not recurrent.
How can I update the weights of a network at T without having to advance the network to T+1, or how do I advance the network to T+1 and then go back and adjust the weights as if it were still T?