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

ども、さっきーです。

引き続き、DeepRacerネタ。

前回の記事で「とりあえず完走できるDeepRacerの報酬関数と設定」を晒してみましたが、
deepracerとりあえず完走できるDeepRacerの報酬関数と設定を晒してみる それ以上にスゴイ報酬関数を見つけてしまいました。

見つけたというのが悲しいですが、下記GitHub上にソースが上がっています。
Iteration 4 – SelfMotivator

何がスゴイって、たった4行ですよ!お客さん!!
しかも、長々と書いた前回の報酬関数より性能がイイ!
「re:Invent 2018」のコースを18秒弱で完走してくれます。
それにしてもこれを作ったScott Pletcherさんて何者なんでしょうか・・・?

ちなみに、現在オンラインレースで使われている「Kumo Torakku Training」には残念ながら対応しておりません。(コース半分くらいので脱落)
というか、このコース、どれだけ難しいんですかと・・・・
報酬の設定 or ハイパーパラメータを調整すればイケるかもしれませんが・・・
以下にワタクシも検証した設定内容を晒しておきます。

Environment simulation

re:Invent 2018

Action space

Maximum steering angle : 30 degrees
Steering angle granularity : 7
Maximum speed : 5 m/s
Speed granularity : 2

Reward function

def reward_function(params):

    if params["all_wheels_on_track"] and params["steps"] > 0:
        reward = ((params["progress"] / params["steps"]) * 100) + (params["speed"]**2)
    else:
        reward = 0.01
        
    return float(reward)

Hyperparameters

設定変更なし

Stop conditions

Maximum time : 150 mins

上記設定した後に学習をかければ完走できるモデルが出来ているハズです。

この報酬関数のスゴイところは「良い走り方」を報酬として与えるのではなく、「達成すべき事」を報酬にしている点ですね。
報酬の条件は以下の3つ
・車両がコース内にあること
・なるべく少ないステップ数でトラック(行動)を走行すること
・車両のスピードが速いこと
細かい走り方は強化学習で自動的に学習するとして、最低限達成しなければいけない事を報酬として与えているという発想の転換がスゴイ。

う~ん、世の中にはスゴイ人が居るもんです。
というか、これで8位だそうなので、さらに上位ってどうなってるんでしょうか???

コメントを残す

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