Tensorflowのサンプル試し(倒立振子問題06)

■リプレイバッファを変えての試し。
前回までは、隠れ層、学習率、バッチ、トレーニング数を変え、リプレイバッファの最大長、初期データ数を固定して動かしてきた。今回はリプレイバッファを変えての試し。
隠れ層(64,)、学習率0.0005、バッチ128、トレーニングステップ数5000、初期データ収集数3000として固定。リプレイバッファの最大長を2000、20000にしてそれぞれ30回ずつ試行。
ChatGPT情報では、リプレイバッファと初期データ数の関係としては、リプレイバッファに対して10~20%の初期データ数くらいが良いとのこと。リプレイバッファ20000、初期データ数3000なら15%でその範囲に収まる。このリプレイバッファの1つは、右か左に動かすこととその状況の情報が入っているらしい。そのため、500回まで倒れずに行けば、最大長2000では4エピソード分しか記録ができないことになる。これは少し足りない気もする。

結果が下。平均、標準偏差は、20回の評価を行い倒れなかった回数の平均と標準偏差。


リプレイバッファの最大長を20000にした方が、明らかに続けられる評価になる頻度が高い(9, 10回で終わるものは、ずっと右、右、右...といったように同じ方向に傾けた最も早く倒れるパターン)。トレーニングで反映させる情報の多い方が、良好な結果につながりやすいというのは何となくイメージできる。また、損失が低い方が長く続けられる評価になると期待していたけど、6.2 や 3.4 で20回程度のものもあった。ChatGPTに問い合わせると、損失(train_loss)はQ値の予測誤差に過ぎず、良好な結果になるとは限らないとのこと。

これで初めに挙げたパラメータは一通り触ったかと思う。
あと少し気になったところを試して、倒立振子問題はきりにする。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です