続々・とりあえずレースを完走できるDeepRacerの報酬関数と学習設定を晒してみる

ども、さっきーです。

引き続き、DeepRacerネタ。

前回の記事でたった4行でとりあえず完走できる設定を晒してみましたが、
deepracer続・とりあえず完走できる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」は微妙に形状が違うんですね。

Kumo Torakku

Kumo Torakku

Kumo Torakku Training

Kumo Torakku Training

トレーニング用のサーキットの方がコースの形状としては難しいと思われるので、トレーニングで完走に拘らなくても、レースに参加すれば完走できるかもしれません。

というか、もっと早く気づいていれば・・・・

次のレースこそは!!