딥레이서는 실제 기기의 inAWS Summit Tokyo time12를 시운전했다.94
사용된 모델
강화된 학습과 AWS 경험이 없기 때문에 우선 참고AWS의 공식 문서로 모형을 만들어 봤다.
활주로에 네 바퀴가 머무르고 가장 가까운 웨이포인트의 각도와 차체의 각도가 큰 편차가 없다면 높은 보수를 받을 수 있도록 설계됐다.노선 내에 머무르는 것을 목적으로 하는 모형이다.
model_1.pydef reward_function(params):
import math
# paramsの取得
waypoints = params['waypoints']
closest_waypoints = params['closest_waypoints']
heading = params['heading']
all_wheels_on_track = params['all_wheels_on_track']
distance_from_center = params['distance_from_center']
track_width = params['track_width']
# 報酬の初期値
reward = 1e-3
# コースのセンターに近いほど高い報酬を設定
if all_wheels_on_track and (0.5*track_width - distance_from_center) >= 0.2:
reward = 1.0
elif all_wheels_on_track and (0.5*track_width - distance_from_center) >= 0.1:
reward = 0.8
elif all_wheels_on_track and (0.5*track_width - distance_from_center) >= 0.05:
reward = 0.5
# 現在の位置から最も近い次のwaypointと前のwaypointを取得する
next_point = waypoints[closest_waypoints[1]]
prev_point = waypoints[closest_waypoints[0]]
# 前のwaypointから次のwaypointに向かう角度(radian)を計算する
track_direction = math.atan2(next_point[1] - prev_point[1], next_point[0] - prev_point[0])
# degreeに変換
track_direction = math.degrees(track_direction)
# コース上の基準軸に対する車体の向きと直近のwaypointを繋ぐ向きの差分を取る
direction_diff = abs(track_direction - heading)
# 算出した方向の差分から車体の向きが大きくズレている場合にペナルティを与える
DIRECTION_THRESHOLD = 10.0
if direction_diff > DIRECTION_THRESHOLD:
reward *= 0.5
return float(reward)
딥레이서 내 강화학습이 어떻게 변했는지는 파악이 안 되지만, 보수를 기울이면 모델 학습이 용이하다는 점을 고려하면 수업의 중심과 차량의 거리에 보수가 쏠린다.
5시간 학습(클론 전 모드에서 2시간 학습)
하이퍼매개변수는 초기 값을 유지합니다.
실기 를 시험적으로 가동 하다
이 모형의 약 40퍼센트의 맥심 스피드는 거의 전 코스를 완주했다.
그보다 높아지면 대부분 아웃 쪽에서 코스프레를 진행합니다.
회의장에서 가끔 듣는 말, 맥심스피드는 60%라도 완주할 수 있는 모델이다
시간 좋다면서요?
참고로 아날로그 Evaluation에서
| 1 | 00:00:23.434 | 100% |
| 2 | 00:00:23.029 | 100% |
| 3 | 00:00:25.052 | 100% |
네.
제가 첫날 봤을 때 탑이었다고 하면 아웃 보상을 주더라고요.
도대체 어떤 보수 함수를 구성했을까...
Reference
이 문제에 관하여(딥레이서는 실제 기기의 inAWS Summit Tokyo time12를 시운전했다.94), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/temp_ge/items/9c932eb052dc40aabdb1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
def reward_function(params):
import math
# paramsの取得
waypoints = params['waypoints']
closest_waypoints = params['closest_waypoints']
heading = params['heading']
all_wheels_on_track = params['all_wheels_on_track']
distance_from_center = params['distance_from_center']
track_width = params['track_width']
# 報酬の初期値
reward = 1e-3
# コースのセンターに近いほど高い報酬を設定
if all_wheels_on_track and (0.5*track_width - distance_from_center) >= 0.2:
reward = 1.0
elif all_wheels_on_track and (0.5*track_width - distance_from_center) >= 0.1:
reward = 0.8
elif all_wheels_on_track and (0.5*track_width - distance_from_center) >= 0.05:
reward = 0.5
# 現在の位置から最も近い次のwaypointと前のwaypointを取得する
next_point = waypoints[closest_waypoints[1]]
prev_point = waypoints[closest_waypoints[0]]
# 前のwaypointから次のwaypointに向かう角度(radian)を計算する
track_direction = math.atan2(next_point[1] - prev_point[1], next_point[0] - prev_point[0])
# degreeに変換
track_direction = math.degrees(track_direction)
# コース上の基準軸に対する車体の向きと直近のwaypointを繋ぐ向きの差分を取る
direction_diff = abs(track_direction - heading)
# 算出した方向の差分から車体の向きが大きくズレている場合にペナルティを与える
DIRECTION_THRESHOLD = 10.0
if direction_diff > DIRECTION_THRESHOLD:
reward *= 0.5
return float(reward)
이 모형의 약 40퍼센트의 맥심 스피드는 거의 전 코스를 완주했다.
그보다 높아지면 대부분 아웃 쪽에서 코스프레를 진행합니다.
회의장에서 가끔 듣는 말, 맥심스피드는 60%라도 완주할 수 있는 모델이다
시간 좋다면서요?
참고로 아날로그 Evaluation에서
| 1 | 00:00:23.434 | 100% |
| 2 | 00:00:23.029 | 100% |
| 3 | 00:00:25.052 | 100% |
네.
제가 첫날 봤을 때 탑이었다고 하면 아웃 보상을 주더라고요.
도대체 어떤 보수 함수를 구성했을까...
Reference
이 문제에 관하여(딥레이서는 실제 기기의 inAWS Summit Tokyo time12를 시운전했다.94), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/temp_ge/items/9c932eb052dc40aabdb1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)