OpenAIが提供しているSafetyGymという強化学習のシミュレーションツール群で安全な強化学習を研究しています。
SafetyGymのベンチマーク問題であるpoint-goalという問題の60次元の観測をVAEを用いて6次元に圧縮し研究している提案手法に入力したいと考えているのですが、エンコーダ部分の畳み込み層conv1Dの出力次元数をどの程度の度合いで小さくしていけばいいのかいろんなネット上の記事を見てみましたが適切な値がわかりません。
point-goal問題は赤色のロボットが青色のハザードになるべく侵入せず緑色のゴールに移動する事が目的の問題です。
観測は強化学習サイクルのステップ毎に加速度、速度、ジャイロ、lidarによるゴールの位置など、合計60次元の観測がスカラー値で与えられます。
現時点ではネット記事を参考に以下のようにエンコーダ部分を構成しようと考えています。
Python
1 self.encoder = tf.keras.Sequential( 2 [ 3 tf.keras.layers.InputLayer(input_shape=(60,)), 4 tf.keras.layers.Conv1D( 5 filters=60, kernel_size=8, strides=2, activation='liner'), 6 tf.keras.layers.Conv1D( 7 filters=30, kernel_size=8, strides=2, activation='liner'), 8 tf.keras.layers.Flatten(), 9 tf.keras.layers.Dense(6), 10 ] 11 ) 12
ですが、画像データではないという点やVAEを使うという点からもっとこういう構成ががよいというアドバイスがありましたら、ぜひお願いします。
※2020/9/25 conv1Dについて勘違いをしており、コードの構成を変更しました。変更後でもこの層の組み合わせについてこれが適切なのかわかりません。知識のある方、お時間がありましたらご回答よろしくお願いします。
あなたの回答
tips
プレビュー