2 つの入力ノード、4 つの隠しノード、3 つの出力ノードを持つニューラル ネットワークを作成しました。初期の重みは -1 から 1 の間でランダムです。バックプロパゲーション法を使用して、ネットワークを TD エラーで更新しました。ただし、パフォーマンスは良くありません。
知りたいのですが、どこに問題があるのでしょうか?
1. バイアスノードは必要ですか?
2. 適格性のトレースは必要ですか?
誰かが私にサンプル コードを提供できる場合は、非常に感謝しています。
2 つの入力ノード、4 つの隠しノード、3 つの出力ノードを持つニューラル ネットワークを作成しました。初期の重みは -1 から 1 の間でランダムです。バックプロパゲーション法を使用して、ネットワークを TD エラーで更新しました。ただし、パフォーマンスは良くありません。
知りたいのですが、どこに問題があるのでしょうか?
1. バイアスノードは必要ですか?
2. 適格性のトレースは必要ですか?
誰かが私にサンプル コードを提供できる場合は、非常に感謝しています。
はい、バイアスノードを含める必要があります。はい、適格性トレースを使用する必要があります。バイアス ノードは、調整可能なパラメーターを 1 つ追加するだけです。ニューラル ネットワークは、Sutton と Barto の著書 (オンラインで無料)で説明されている "関数近似器" と考えてください。ニューラル ネットワークにパラメーター theta (ネットワーク内のすべての重みを含むベクトル) がある場合、Sarsa の更新は次のとおりです (LaTeX 表記を使用)。
\delta_t = r_t + \gamma*Q(s_{t+1},a_{t+1},\theta_t) - Q(s_t,a_t, \theta_t)
\theta_{t+1} = \theta_t + \alpha*\delta_t*\frac{\partial Q(s,a,\theta)}{\partial \theta}
これは、パラメーター \theta を調整することによって Q(s,a) を推定する任意の関数近似 Q(s,a,\theta) 用です。
しかし、私はあなたがなぜこれをしているのかを尋ねなければなりません。Q 学習をうまく機能させようとしているだけなら、ニューラル ネットワークの代わりにフーリエ基底を使用する必要があります。
http://all.cs.umass.edu/pubs/2011/konidaris_o_t_11.pdf
本当に RL にニューラル ネットワークを使用したい場合は、Natural Actor-Critic (NAC) を使用する必要があります。NAC は、アマリがニューラル ネットワークを使用して学習を高速化するために特別に開発した「自然勾配」と呼ばれるものに従います。これは大きな違いをもたらします。
もっと情報が必要です。問題のドメインは何ですか。入力は何ですか?出力は何ですか?
RL のトレーニングには非常に長い時間がかかる可能性があり、トレーニングの方法によっては、トレーニング中に良いものから素晴らしいもの、良いもの、あまり良くないものへと変化する可能性があります。したがって、最終結果だけでなく、学習中のエージェントのパフォーマンスをプロットする必要があります。
常にバイアス ノードを使用する必要があります。資格の痕跡?おそらくそうではありません。