FC2ブログ

頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


強化学習(DQN)で倒立振子で入力を変更など

強化学習(DQN)に強引にSceneKitの物理エンジンを使った結果
↑これで倒立振子はもうやめようかと思ってたけど気になったのでいくつか試してみた。

(1)入力に角速度を入れる
もともとずっとQ関数の入力に
θt-3 , θt-2 , θt-1 , θt
って角度を使ってた。
これを
ωt , θt-2 , θt-1 , θt
のように1つ目に時刻tにおける角速度を入れてみた。その結果、、、

結果のチャート

縦軸が総報酬、横軸が学習の回数。青い点がNNの実力でうすいのはランダムなアクションを入れた場合の総報酬を示す。
特によくなるわけでもなく、、、むしろ不安定になったかな。突然良くなるのは珍しくないけど、その後長期間再度落ちたりしてるしな。
そもそも角速度なんてΔθのならびからわかるような値だからむしろ情報を1つ削除したようなものだったのかも。


(2)入力に角度5個使う
さっきので言うと入力を
θt-4 , θt-3 , θt-2 , θt-1 , θt
このように5つにしたんだけど、、、特に変わらなかった感じ。

入力とかよりもどういうデータを与えるか?の方が大事なのかも。


(ボツ)LSTMを使う
ずっとQ関数に全結合層を何枚か重ねてたわけだけど、時系列なんだからLSTMとかの方がいいのか?となんとなく思っていたので試してみようとしたのだが、、、RNN/LSTMって難しい、、、TensorFlow(Python)側でLSTMブロック内の係数を取り出す必要があると理解しているのだが、どうすんだ?ってところでギブアップ。ふー、、、

<< 強化学習(DQN)で3枚板のロボットを歩かせる  TopPage  NSAttributedStringでiPhoneに関西弁をしゃべらせる? >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/1155-7ba31c99




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad