사내 학습회: AWS DeepRacer에서 기초편(모형 제작) 개최
개시하다
사내 AWS 딥레이서 인구가 늘자 조금 따라가지 못하는 사람을 대상으로 AWS 딥레이서 학습회 기초편을 열고 그 내용을 공개했다.
본 보도는 기초편의 모형 제작을 해설하였다.
기타 학습회의 내용에 관해서는 아래 보도를 확인해 주십시오.
모형 제작 준비
AWS 관리 콘솔에 로그인
AWS 관리 콘솔에 로그인하여 서비스 요약 테이블에서 AWS DeepRacer를 검색합니다.
영역 선택
탐색 모음 오른쪽 상단에서 영역 이름을 선택하여 미국 동부(버지니아 북부)/North Virginia로 변경합니다.
Reinforcement learning 시작
AWS DeepRacer 콘솔이 열리면 왼쪽 창의 [Reinforcement learning]을 클릭합니다.
모형 제작
시동 모형 제작 화면
AWS DeepRacer 콘솔 화면에서 [Create model] 버튼을 클릭합니다.
모델 이름 설정하기
모델 이름(Model name)과 모델 설명(Model description-optional)을 입력합니다.
※ 모델 명칭은 계정에 중복 없이 설치해야 합니다.
Environment simulation 설정
훈련에 사용할 과정을 선택하다.
※ 7개 코스(2019/07/17 현재) 이용 가능
Action space 설정
다음 Action space(AWS DeepRacer 핸들의 각도 및 속도)와 관련된 매개변수를 설정합니다.
시동 모형 제작 화면
AWS DeepRacer 콘솔 화면에서 [Create model] 버튼을 클릭합니다.
모델 이름 설정하기
모델 이름(Model name)과 모델 설명(Model description-optional)을 입력합니다.
※ 모델 명칭은 계정에 중복 없이 설치해야 합니다.
Environment simulation 설정
훈련에 사용할 과정을 선택하다.
※ 7개 코스(2019/07/17 현재) 이용 가능
Action space 설정
다음 Action space(AWS DeepRacer 핸들의 각도 및 속도)와 관련된 매개변수를 설정합니다.
Reward function 설정
차량 동작에 상응하는 보수 함수를 정의하다.보수 함수의 샘플을 보려면 Reward function examples 를 클릭합니다.
※ 3개 샘플(2019/07/17 현재) 사용 가능
Follow the center line (Default)
중심선을 따라 주행하는 보수 함수
def reward_function(params):
'''
Example of rewarding the agent to follow center line
'''
# Read input parameters
track_width = params['track_width']
distance_from_center = params['distance_from_center']
# Calculate 3 markers that are at varying distances away from the center line
marker_1 = 0.1 * track_width
marker_2 = 0.25 * track_width
marker_3 = 0.5 * track_width
# Give higher reward if the car is closer to center line and vice versa
if distance_from_center <= marker_1:
reward = 1.0
elif distance_from_center <= marker_2:
reward = 0.5
elif distance_from_center <= marker_3:
reward = 0.1
else:
reward = 1e-3 # likely crashed/ close to off track
return float(reward)
Stay inside the two borders트랙 경계 내 주행 보수 함수
def reward_function(params):
'''
Example of rewarding the agent to stay inside the two borders of the track
'''
# Read input parameters
all_wheels_on_track = params['all_wheels_on_track']
distance_from_center = params['distance_from_center']
track_width = params['track_width']
# Give a very low reward by default
reward = 1e-3
# Give a high reward if no wheels go off the track and
# the agent is somewhere in between the track borders
if all_wheels_on_track and (0.5*track_width - distance_from_center) >= 0.05:
reward = 1.0
# Always return a float value
return float(reward)
Prevent zig-zagZ자형 주행 억제 보수 함수
def reward_function(params):
'''
Example of penalize steering, which helps mitigate zig-zag behaviors
'''
# Read input parameters
distance_from_center = params['distance_from_center']
track_width = params['track_width']
steering = abs(params['steering_angle']) # Only need the absolute steering angle
# Calculate 3 markers that are at varying distances away from the center line
marker_1 = 0.1 * track_width
marker_2 = 0.25 * track_width
marker_3 = 0.5 * track_width
# Give higher reward if the agent is closer to center line and vice versa
if distance_from_center <= marker_1:
reward = 1
elif distance_from_center <= marker_2:
reward = 0.5
elif distance_from_center <= marker_3:
reward = 0.1
else:
reward = 1e-3 # likely crashed/ close to off track
# Steering penality threshold, change the number based on your action space setting
ABS_STEERING_THRESHOLD = 15
# Penalize reward if the agent is steering too much
if steering > ABS_STEERING_THRESHOLD:
reward *= 0.8
return float(reward)
※ 필자는 AWS 서밋 토키오 2019에 참가했을 때 프리미엄 지그재그를 기반으로 한 보수 함수를 훈련했습니다.Hyperparameters 설정
다음 하이퍼매개변수를 설정합니다.
※ 필자는 AWS 서밋 토키오 2019에 참가했을 때 그라디언트 데스센터 배치사이즈를 128로 설정하고 그 외에 훈련을 묵인했습니다.
※ 수퍼 파라미터에 대한 자세한 내용은 사내 학습: AWS DeepRacer에서 기초 편(슈퍼 파라미터)을 개최확인하세요.
Stop condition 설정
여기서 Maximum time의 훈련 시간을 설정합니다.
※ 필자는 AWS Summit Tokyo 2019에 참가해 re:Invent 2018시간, AWS Track 1시간, Bowtie Track 1시간, re:Invent 2018분 훈련을 했습니다.
훈련을 시작하다
[Start training]을 클릭하여 훈련을 시작합니다.
훈련 중인 그림.
왼쪽의 도표는 훈련의 진전 상황을 나타내고 가로축은 훈련 시간을 나타내며 세로축은 보수를 나타낸다.
오른쪽 상단에 있는 도표라면 최상의 보수를 찾는 상태라고 볼 수 있다.
오른쪽 그림(콘솔 화면에서 영상)은 주행 중인 자동차의 시점을 표시해 주행 모습을 확인할 수 있다.
모형 제작 후
트레이닝이 끝나면 트레이닝의 오른쪽에 Compuleted가 표시됩니다.
모델 평가
[start evalution]을 클릭하고 평가하고자 하는 노선과 시험 횟수를 선택하여 모델을 평가합니다.
평가가 완료되면 AWS 딥레이서 콘솔 화면에서 평가 결과를 확인할 수 있다.
재훈련
훈련된 모형을 사용해 추가 훈련을 하려면 [Clone] 버튼을 클릭하고 Environment simulation, Reward function, Hyperparameters, Stop condition을 설정해 재훈련을 한다.
※ 액션 스페이스는 변경할 수 없습니다.
모델 다운로드
실제 컴퓨터로 이동하려면 [Download 모델] 버튼을 클릭하여 모델을 다운로드합니다.
Virtual race의 참여
Virtual race에 참가하고 싶을 때 [Submit to virtual race] 버튼을 클릭하고 사용할 모델을 선택한 후 [Submit model] 버튼을 클릭합니다.
Virtual race 화면에서 결과를 확인할 수 있습니다.
총결산
이 글에는 모델 제작 준비~경기 참가 방법에 대한 설명이 담겨 있다.
Action space, Reward function, Hyperparameters에 관해서는 정밀도를 높이기 위해 다양한 오류를 시도해 보고 싶습니다.
Reference
이 문제에 관하여(사내 학습회: AWS DeepRacer에서 기초편(모형 제작) 개최), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/dnp-yonezawa/items/51a609b2c26ddc40d292
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이 글에는 모델 제작 준비~경기 참가 방법에 대한 설명이 담겨 있다.
Action space, Reward function, Hyperparameters에 관해서는 정밀도를 높이기 위해 다양한 오류를 시도해 보고 싶습니다.
Reference
이 문제에 관하여(사내 학습회: AWS DeepRacer에서 기초편(모형 제작) 개최), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/dnp-yonezawa/items/51a609b2c26ddc40d292텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)