解説: https://github.com/ibalaboratory/self-driving/wiki
0~14,40,42 50,70,90,110,130 ファイルは全てデフォルト
100-85-4, 8-1-4-6
20世代まで
0~19,40,42 50,70,90,110,130
100-85-4, 8-3-4-6
20世代まで
0~14,40,42 50,70,90,110,130 currentMaxのとき到達距離の評価を*2 carAgent衝突を-10に
100-85-4, 16-2-4-6
25世代まで
challenge1 0~14,40,41,42 50,70,90,110,130 currentMaxのとき到達距離の評価を*1 carAgent衝突を0に
100-85-4, 24-2-4-8
25世代まで
challenge3 0~14,40,41,42 50,70,90,110,130 plusrewardをfalseに currentMaxのとき到達距離の評価を1 LocalMaxのとき評価-5 carAgent衝突を*-10 逆走を*-3
100-85-4, 8-1-4-8
25世代まで
0~14,40,42 50,70,90,110,130 sideは30,60,90,120,150 plusrewardをtrueに currentMaxのとき到達距離の評価を*1 velocity<10なら-0.1 全て-1
100-85-4, 8-1-4-6
// WayPoint通過時に報酬を与える AddReward(1.0f / (WaypointIndex + 1));
Donewithrewardの中身をaddrewardにする 全部-100に
var v = CarRb.velocity.magnitude; AddReward(v/10.0f);
0~14,40,42 50,70,90,110,130 100-85-4, 8-1-4-6
0~14,40,42, 43,44,45 50,70,90,110,130
// WayPoint通過時に報酬を与える AddReward(1.0f / (WaypointIndex + 1));
plusrewardをtrueに currentMaxのとき到達距離の評価を*1
velocity<10なら-0.1 Donewithrewardの中身をaddrewardにする 全部-1に
AddReward(0.01f * TotalDistance); // 前進した距離に応じて微小な報酬を付与
ランダム報酬
100-85-4, 8-1-4-6
0~14,40,42, 43,44,45 50,70,90,110,130 100-85-4, 8-1-4-6 v6をsetRewardに 最強(96びょう)
v7のまま
var v = CarRb.velocity.magnitude; if (v < 5) { AddReward(-0.04f); } else if (v < 10) { AddReward(-0.02f); };
if (UnityEngine.Random.Range(0, 100) < 5) { // ランダムなイベント(5%)
AddReward(0.01f); // 探索報酬
}
// WayPoint通過時に報酬を与える
AddReward(2.0f / (WaypointIndex + 1));
if (CurrentStep % 50 == 0) { // 50ステップごとに進行状況に応じた報酬
AddReward(0.1f * TotalDistance);
}
早かったが壁にぶつかって死んだ
逆走2倍、waypoint通過時の報酬を5倍 速度報酬を2倍 他の設定は一緒 くねくねして死んだ
v7の速度補正だけ段階的に変更 右側79s、左側死ぬ くねくねする 最初のカーブでアウトを走っている->インコースを走ると+評価できるようにすれば?
v11に方向評価を追加 30世代まで 最初の岩で死ぬ
0~14,40,41,42,43,44,45 v11の方向評価、速度評価を極端+正の報酬中心にした 100-85-8, 16-4-4-8
0~14,40,41,42,43,44,45 v11の方向評価、速度評価を極端+正の報酬中心にした 100-85-8, 8-1-4-6 v7よりちょっとだけ速くなった 坂で減速
0~14,40,41,42,43,44,45 100-85-4, 8-1-4-6 方向評価消す 速度、距離の評価方式を変更 AddReward(0.001f*v) AddReward(0.01f * TotalDistance); // 前進した距離に応じて微小な報酬を付与 右側だと72s
v14と同じ 横は1030507090 めっちゃ早かったが終盤ぶつかって死んだ
v14と同じ 横は10,30,50,70,90 後ろ10,20,160,170の4つ element18まで、19個 ->失敗ぽかったので 後ろ20,160の2つにした ->ましにはなったが失敗っぽい 後ろ10,170の2つにした ->完全失敗 15,165の2つにした ->だめっぽい
後ろ30,150の2つにした ->めっちゃいい25世代までやってv16として記録 早かったけど最初のカーブで死んだ
後ろ20,30,150,160にした ->微妙
後ろ30,150の2つにした 16-1-4-6
最後の岩に衝突して死んだ
v17に 角度報酬(小さめ追加) 12-1-4-6 ->微妙
角度報酬消して 12-1-4-6の速度報酬強め(最初の100は速度報酬なし)
角度報酬消して 6-1-4-6の速度報酬強め (最初の100とそれ以降で速度報酬変える) 感想はできたがv7に速度で負けた
v19と同じ 6-1-4-10 急ハンドルに罰則
v19と同じ 12-1-4-8 急ハンドルに罰則
v19と同じ 8-1-4-8 急ハンドルの罰則無し、坂道でのアクセルに報酬
右:72秒!最速!! 左:70秒!最速!!
これを中間発表に提出する
v19と同じ 8-1-4-8
次、次の次まで取得
016,4051
→ゴールはできたが96秒と遅い →要素として与えるとしてもzはいらないかも、もしくは報酬を別途つけてみる?
v23と同じ
8-1-4-8
次、次の次まで取得
016,4042,43,44,46,47,49,50(目標のz成分は計算に入れないことにした)
真っ直ぐのときアクセル-ブレーキ/2の報酬を与える 遅い
v23と同じ
8-1-4-8
次、次の次まで取得
016,4042,43,44,46,47,49,50(目標のz成分は計算に入れないことにした)
真っ直ぐのときアクセル-ブレーキ*2の報酬を与える →80秒
v23と同じ
8-1-4-8
次、次の次まで取得
016,4042,43,44,46,47,49,50(目標のz成分は計算に入れないことにした)
上り坂でアクセル-ブレーキ2の報酬を与える 真っ直ぐのときアクセル-ブレーキ3の報酬を与える challenge2で実行 左:79秒でゴール 右;途中で逆走
v26と同じ currentstepmax = 10000 8-4-4-8
今までの努力が水の泡になった 走りきれない currentstepmax=3000
waypoint通過時の報酬を10に 12-2-4-8 100-70-10 currentstepmax=3000
currentstepmaxを動的に変更 →過学習で動かない
ここからchallenge3 currentstepmaxを動的に変更(+250 , <50000) 16-4-3-8
challenge4 8-1-4-8 →微妙
challenge3 単純にする currentstepmaxを動的に変更(+100 , <5000) localstepmaxを100に Reward+TotalDistance/2
0~14,15,16,40,41,42,43,44,46,47 角度は一緒 8-1-3-8
→過去最速に早かったがカーブを曲がりきれず
challenge2 currentstepmaxを動的に変更(+100 , <5000) localstepmaxを150に Reward+TotalDistance/2
0~14,15,16,40,41,42,43,44,46,47 角度 60-70-90-110-120 10-20-40-60-80 20-160
100-85-4 8-1-3-8
→微妙!!
challenge2 currentstepmaxを動的に変更(+100 , <5000) localstepmaxを150に Reward+TotalDistance/2 坂道のアクセルの評価値を5倍に
0~14,15,16,17,18,40,41,42,43,44,46,47 角度 60-70-90-110-120 10-20-40-60-80 0-30-150-180
100-85-4 8-2-3-8
stage3
currentstepmaxを動的に変更(+100 , <5000) localstepmaxを150に Reward+TotalDistance/2 坂道のアクセルの評価値を5倍に
0~14,15,16,,40,41,42,43,44,46,47 角度 50-70-90-110-130 10-30-50-70-90 30-150
100-85-4 8-1-3-8
stage3
currentstepmaxを動的に変更(+250 , <5000) localstepmaxを200に Reward+TotalDistance/2 坂道のアクセルの評価値を5倍に
0~14,15,16,,40,41,42,43,44,46,47 角度 50-70-90-110-130 10-30-50-70-90 30-150
100-85-4 8-1-3-8
→55.86でゴール challenge1は上り坂の岩にぶつかって後退した →zもいるかも
stage3
currentstepmaxを動的に変更(+250 , <5000) localstepmaxを200に Reward+TotalDistance/2 坂道のアクセルの評価値を5倍に 坂道での評価方法を変更(変位→次のポイントへのベクトル) 直線でのアクセルの評価値を2倍に
0~14,15,16,,40,41,42,43,44,45,46,47,49,50 角度 50-70-90-110-130 10-30-50-70-90 30-150
100-85-4 8-1-3-8
ratio(distanceに対するrewardの割合)は1.7~1.9程度→2.5程度
→stage3最速
stage3 v38と同じ rewardの速度報酬をなくす Reward+TotalDistance/3
0~14,15,16,,40,41,42,43,44,45,46,47,49,50 角度 50-70-90-110-130 10-30-50-70-90 30-150
100-85-4 8-1-3-8
stage3 v39と同じ rewardの速度報酬をなくす Reward+TotalDistance/3 z→yに変更
0~14,15,16,40,41,42,43,44,45,46,47,49,50 角度 50-70-90-110-130 10-30-50-70-90 30-150
100-75-6 8-1-3-8
stage3 速度報酬全消し 真ん中走ってる時に報酬追加 (左からの距離と右からの距離の割合で評価)
0~14,15,16,40,41,42,43,44,45,46,47,49,50 角度 50-70-90-110-130 10-30-50-70-90 30-150
100-85-4 8-1-3-8
→めっちゃはやい。岩があると死ぬ。
v41をc3で学習 45,49,59はなし(忘れた)
c3で学習 48,51以外全部 坂道で脱法(アクセル2倍)
s3で学習 右端走らせる
c2真ん中 10000まで 最初直進 12-3-3-4
100-50-5 8-2-3-8
12-1-3-8 48-51は12-2
8-2-3-8
急ハンドルに罰則をつける 逆になめらかな変化に報酬を与える →できそう。閾値は要検討 角度の調整→微妙だった 角速度に罰則をつける? z軸方向の速度を取得し、上り坂でアクセルを踏むことに報酬を与える できそう。閾値は要検討
斜めに走らせる(何個か後のポイントの方向にたいして報酬を与えてみる)
NNの隠れ層をいじるとくねくねする v4のように低速にペナをつけると速くなる