ども、さっきーです。
引き続き、DeepRacerネタ。
前回の記事でたった4行でとりあえず完走できる設定を晒してみましたが、
続・とりあえず完走できるDeepRacerの報酬関数と設定を晒してみる
現在オンラインレースで使われている「Kumo Torakku」をようやく完走できたので、その設定を晒しておきます。
というか、この記事を書いている段階で残り4日間。
若干、時すでに遅し・・・・orz
以下にワタクシも検証した設定内容を晒しておきます。
ちなみに、前回紹介した内容から報酬関数のスピードに関する項目を削除しています。
もともとはスピードが速いほど報酬が高くなるように書かれていたのですが、今回のサーキットの場合は急カーブが多いので減速する必要があるかと思い削除しています。
完走率は上がっていると思いますが、その分、タイムは下がっているかもしれません。
(同じ設定で報酬関数違いはまだ試していないので・・・)
設定内容
Environment simulation
Kumo Torakku Training
Action space
Maximum steering angle : 30 degrees
Steering angle granularity : 3
Maximum speed : 8 m/s
Speed granularity : 3
Reward function
def reward_function(params):
if params[“all_wheels_on_track”] and params[“steps”] > 0:
reward = ((params[“progress”] / params[“steps”]) * 100)
else:
reward = 0.0001
return float(reward)
Hyperparameters
設定変更なし
Stop conditions
Maximum time : 480 mins
気になる結果は・・・?
上記設定した後に学習をかければコースの半分位は走れるモデルが出来ているハズです。
トレーニングコースでは完走できなくてもレースのコースでは完走できる可能性があるので、レースに参加される事をオススメします。
ただし、1度だけでは完走できない事もありますので、レースに参加してみて1Lapも走れずに順位が付かなかったとしても、何度か参加(Submit)すると完走できると思います。
ちなみに、このモデルでレースに参加した結果は最速Lap time 00:00:21.289 で87位でした。
上るべき頂は限りなく高いですな・・・
ちなみに、単純な報酬関数を設定するほど、学習に時間をかける必要がありそうです。
縛り(≒報酬関数)が少ない分、様々なパターンを試す必要があるという事でしょうか。
しかし、8時間のトレーニングとなるとナカナカおいそれとは試せません・・・
ちなみに、今頃気づいたのですが、レースで使われている「Kumo Torakku」とトレーニングで使う「Kumo Torakku Training」は微妙に形状が違うんですね。
トレーニング用のサーキットの方がコースの形状としては難しいと思われるので、トレーニングで完走に拘らなくても、レースに参加すれば完走できるかもしれません。
というか、もっと早く気づいていれば・・・・
次のレースこそは!!