Amazon Web Services 한국 블로그
AWS DeepRacer League 온라인 가상 리그전 공개!
AWS DeepRacer는 온보드 하드웨어 및 소프트웨어가 탑재된 1/18 비율의 소형 레이싱카입니다. 지난해 re:Invent 2018부터 시작해 AWS Global Summits에서 DeepRacer League를 통해 직접 경험할 기회가 제공되고 있습니다. 본 리그전에서는 강화 학습을 사용한 모델을 학습하여, 실제 트랙에서 이를 주행할 수 있습니다. 매 서밋에서 가장 빠른 경주용 자동차와 랩 타임이 리더보드에 게시됩니다.
지난 서울 서밋의 딥레이서 리그 기록
DeepRacer League 가상 서킷 공개
AWS는 AWS DeepRacer League 가상 서킷을 공개했습니다. 온라인으로 강화 학습 모델을 구축하고 학습시키며 평가하여, 멋진 수상을 위해 온라인에서 경주에 참가할 수 있습니다. 굳이 오프라인이 아니라 온라인 기반 DeepRacer 콘솔에서 작업할 수 있습니다!
전 세계 유명 경주 트랙의 영감을 받아 매월 새로운 트랙을 추가할 예정이므로, 모델을 조정하고 기술 세트를 확장할 수 있습니다. 매월 리더보드의 상위 입상자에게는 AWS re:Invent 2019의 유료 패키지를 보상으로 제공합니다. re:Invent 2019에서 리그 토너먼트전에 참가해 Championship Cup에 도전할 수 있습니다!
DeepRacer 콘솔 정식 출시
이를 위해 미국 동부(버지니아 북부) 리전에서 DeepRacer 콘솔을 정식 공개했습니다. 이 콘솔을 사용하여 강화 학습에 대한 실용적인 실제 경험을 쌓는 동시에, DeepRacer 모델을 구축 및 학습하고 가상 회로에서 경주에 참가할 수 있습니다. 실제 DeepRacer 워크숍에서 사용했던 DeepRacer Lab의 단계에 따라, 콘솔을 열고 [Get started]를 클릭합니다.
콘솔에서는 모델 학습 프로세스에 대한 개요를 제공하며, 모델 학습 및 평가에 필요한 AWS 리소스를 생성할 것인지 묻습니다. 정보를 검토한 후에 [Create resources]를 클릭하고 계속 진행합니다.
리소스는 몇 분 안에 생성됩니다([Learn RL]을 클릭하면 강화 학습을 진행하는 동안, 강화 학습에 대해 자세히 알아볼 수 있음). [Create model]을 클릭하여 진행합니다.
모델에 대한 이름과 설명을 입력합니다.
트랙을 선택합니다(가상 리그가 진행되는 동안 트랙이 더 표시됨).
이제 모델에 대한 작업 공간을 정의합니다. 모델이 수행할 수 있는 개별 작업 세트입니다. 옵션 수를 늘리는 값을 선택하면 보통 모델 품질이 향상되지만, 학습 시간이 더 길어질 수 있습니다.
다음으로, 모델에 대한 보상 함수를 정의합니다. 이 함수는 전체 학습 프로세스에서 차량의 현재 상태를 평가하고, 모델의 수행 정도를 나타내기 위해 보상 값을 반환합니다(보상이 높을수록 더 나은 성능을 나타냄). 미리 정의된 세 가지 모델([Reward function examples]를 클릭하면 사용 가능) 중에서 하나를 그대로 사용하거나, 사용자 지정해 사용하거나 처음부터 새로 구축할 수 있습니다. 시작하기 위해 지그재그 동작에 페널티를 부여하는 샘플 보상 함수인, Prevent zig-zag를 사용하려고 합니다.
보상 함수는 Python 3로 작성되며, 자동차의 위치와 상태를 설명하는 파라미터(track_width
, distance_from_center
, all_wheels_on_track
등)에 액세스하고, 트랙에 대한 정보도 제공합니다.
또한 전반적인 학습 성능에 영향을 주는 하이퍼 파라미터 세트도 제어합니다. 솔직히 말하면, 이러한 파라미터에 대해 다 아는 것은 아니기 때문에 모든 기본값을 그대로 승인할 것입니다.
하이퍼 파라미터에 대해 자세히 알아보려면 하이퍼 파라미터 체계적 조정을 참조하십시오.
마지막으로 학습 작업에 대한 시간 한계를 지정하고 [Start training]을 클릭합니다. 일반적으로 단순한 모델은 90~120분 안에 수렴되지만, 최대 속도와 보상 함수에 크기 의존합니다.
학습 작업이 시작되고(약 6분 정도가 걸림), 콘솔에서 진행 상황을 추적할 수 있습니다.
학습 작업에서는 AWS RoboMaker를 사용하므로, RoboMaker 콘솔에서도 모니터링할 수 있습니다. 예를 들어, Gazebo 창을 열어 차를 보고 실시간으로 학습 프로세스를 관찰할 수 있습니다.
주의: 직접 Gazebo를 조작하여 학습 환경을 변경하면 학습 실행에 부정적인 영향을 줄 수 있고, 쓸모없게 렌더링될 수 있습니다.
학습이 진행되면서 자동차가 트랙을 주행하는 방법을 학습하면 Reward graph는 오른쪽 상승세를 보입니다(흔히 Amazon에서 말하듯이).
그래프가 평탄해지거나 가파르게 하강하여 낮은 수준에 머무르면 보상 함수가 원하는 동작에 보상을 제공하지 않았거나 뭔가 다른 설정이 잘못된 것입니다. 그러나 모든 일에는 인내심이 필요하듯이, 가끔 기다리다 보면 다시 위로 올라가곤 합니다. 학습을 마친 후에, 새로운 모델을 마무리하고 저장하는 동안 잠시 일시 중지됩니다. 그리고 이때 시뮬레이션으로 모델을 실행하여 모델을 평가해보려고 합니다. [Start evaluation]을 클릭하여 작업을 수행합니다.
사용 가능한 트랙에서 모델을 평가할 수 있습니다. 모델이 일반적인 모델이며, 한 트랙에서만 작동하도록 과도하게 조정하지 않으려면 학습과 평가에 서로 다른 트랙을 사용하는 것이 좋습니다. 그러나 처음에 시작할 때는 학습과 테스트에 동일한 트랙을 사용해도 좋습니다. 여기에서도 같은 트랙을 사용합니다. [Oval Track] 및 [3 trials]를 선택하고 [Start evaluation]을 클릭합니다.
RoboMaker 시뮬레이터가 시작되고, 위에 나온 대로, 평가에 대한 시간당 비용이 표시됩니다. 시뮬레이션에 완료되면 결과(랩 타임)가 표시됩니다.
이제 다른 트랙에서 모델을 평가하고 다시 돌아가 모델을 조정한 후 또 평가하거나 당월 가상 서킷 트랙에 모델을 제출하여 DeepRacer League에 참가할 수 있습니다. 이를 위해 [Submit to virtual race]를 클릭하고 경주용 자동차 이름을 입력하고 모델을 선택하고 이용 약관에 동의하고 [Submit model]을 클릭합니다.
제출한 후에는 시즌 전 트랙에서 모델을 평가하고 이때 랩 타임을 사용하여 Virtual Circuit Leaderboard에서 순위를 정합니다.
주요 사항
다음은 AWS DeepRacer 및 AWS DeepRacer League에 대해 알아야 할 몇 가지 주요 사항입니다.
- AWS 리소스 – Amazon SageMaker는 모델을 학습하는 데 사용되며, 이후 모델은 Amazon Simple Storage Service(S3)에 저장됩니다. AWS RoboMaker에서는 학습 및 평가에 사용되는 가상 트랙 환경을 제공합니다. AWS CloudFormation 스택은 서브넷, 라우팅 테이블, 탄력적 IP 주소, NAT 게이트웨이와 함께 Amazon Virtual Private Cloud를 생성하는 데 사용됩니다.
- 요금 – DeepRacer 콘솔은 무료로 사용할 수 있습니다. 첫 모델 학습을 시작하면 즉시 SageMaker 및 RoboMaker에 대한 서비스 크레딧이 제공되어 이 서비스에서 10시간의 무료 학습을 이용할 수 있습니다. 크레딧은 월말이 적용되며, AWS 프리 티어의 일부로 30일 동안 사용 가능합니다. DeepRacer 아키텍처는 가용성 기반 요금을 지원하는 NAT 게이트웨이를 사용합니다. 사용자 계정에는 자동으로 서비스 크레딧이 제공되어 이 요금을 충당하므로 계정에는 요금이 0으로 표시됩니다.
- DeepRacer 자동차 – 이제 DeepRacer 자동차를 사전 주문할 수 있습니다! 미국에서 2019년 7월부터 배송이 시작됩니다.
여러분도 지금 바로 참여하실 수 있습니다! 지금 경주를 시작해 보세요.
— Jeff;