ニューラルネットワークを使用したQラーニングに関する質問のように、QラーニングのQ値を概算するためにニューラルネットワークを使用しようとしています。最初の回答で提案したように、私は出力層に線形活性化関数を使用していますが、非表示層ではまだシグモイド活性化関数を使用しています(2、後で変更できます)。また、アドバイスどおり各アクション出力を返す単一のNNを使用しています。
ただし、アルゴリズムは、単純なカートポールバランス問題についてはまだ分岐しています。だから、私のQアップデートが間違っているのを恐れています。初期化後、各ステップで行ったのは次のとおりです。
- すべてのアクションのNNの順方向伝搬を使用してを計算します。
- 新しいアクション選択し、新しい状態ます。
- すべてのアクションに対してNNのフォワードプロパゲーションを使用してを計算します。
- 目標Q値を次のように設定します: だけ現在のアクションのために、A_tと、設定しながらQ_ {T + 1}(S、A_tと)= Q_ {T}(S、A_tとの)他の状態のために。これは問題だと思います。
- エラーベクトルを
- 重み行列を更新するために、NNを介してエラーを逆伝播します。
誰かが私が間違ったことを私に指摘してくれませんか?
さらに、入力層と最初の非表示層(つまり、シグモイド関数)にもバイアス項を含める必要があると思いますか?違いはありますか?
よろしくお願いします。質問を明確にしたり、必要に応じてコードを共有したりできます。