나는 6월달부터 열린 AWS Deepracer Virtual league 부터 참가했다.
그 경기는 Virtual Race #2 였다.
처음엔 20.695초를 기록해 104등을 차지 했다.
오늘 끝난 Virtual Race #5 에서는 9.976초를 기록해 39등을 차지 했다.
Lap Time은 꾸준히 발전해 목표했던 9.976초를 기록했다.
반면에 순위는 거의 변동이 없다.
참가자 모두가 비슷하게 실력이 향상되고 있는 것 같다.
최고 기록은 첨부터 9초대였고 3회때부터는 8초대를 기록하고 있다.
참가자 수는 4회때부터 1300명이 넘게 참가하고 있다.
6회 Toronto Turnpike 경기에는 아마존이 1등 상금을 1300달러로 올렸다.
이번엔 좀 더 많이 참가 할지 기대 된다.
1등을 하려면 8초대를 끊어야 할 것 같은데... 쉽지는 않을 것 같다.
지금까지 2회부터 5회 까지의 경기에 참가하면서 자율주행 모델을 훈련시키는 방법을 조금씩 변화를 주었었다.
그 결과 20초대에서 9초대로 기록을 향상 시킬 수 있었다.
각 Virtual 경기에 참가시켰던 AI 모델을 어떻게 훈련 시켰는지 기억을 더듬어 정리해 보겠다.
혹시 AWS DeepRacer 대회에 참가하고 있거나 참가할 계획인 분들에게 도움이 됐으면 좋겠다.
1. Virtual Race #2 Kumo Torraku
첫 대회에서는 모델을 여러 트랙에서 훈련 시켰다.
가장 간단한 직선 트랙에서 훈련을 시작해서 Oval Track, Bowtie Track, 그리고 London Loop 트랙을 거쳐서 대회에 사용됐단 트랙인 Kumo Torakku트랙에서 훈련 시켰다.
이 대회에서 Action Space와 Reward Function은 어떻게 사용했는지는 이전 글에서 정리 했으니 참고 바람.
https://coronasdk.tistory.com/1007?category=816561
이 대회는 그야말로 정석대로 한 것 같다.
가장 간단한 트랙에서 훈련을 시작해서 점차 난이도 높은 트랙에서 모델을 훈련 시켰다.
그리고 기록 단축은 Reward Function으로 조절하려고 노력했다.
기록은 위에 적은 대로 20.695초로 104등을 차지했다.
이때의 심정은 제발 20초대만 돌파하고 싶었다.
남들은 10초대 초반이나 심지어 9초대의 기록을 보이고 있었는데 나는 20초대를 깨자가 목표였다.
하지만 잘 되지 않아서 거의 절망적이었다.
이 20초대는 두번째 대회에 참가하면서 쉽게 깨졌다.
2. Virtual Race #3 Empire City Circuit
이 대회가 열렸던 7월에는 New York 에서 Offline 대회가 열렸다.
훈련시킨 모델을 직접 자동차에 upload 시켜서 진짜 트랙에서 운행 시키는 경험을 할 수 있었다.
사는 곳이 Florida여서 가깝지는 않지만 그래도 New York 대회가 가장 가까운 곳이어서 이틀 휴가를 내고 참가하고 왔다.
이 대회의 참가 후 소감은 아래 글에서 볼 수 있다.
https://coronasdk.tistory.com/1010?category=816561
Offline 대회에 참가하고 난 후 왜 그런지 알 수는 없지만 의욕과 열정이 배가 되는 것 같았다.
Virtual 대회와 실제 Offline 대회의 차이점도 느낄 수 있었고 직접 최고 실력자들의 실력을 눈으로 보고 간단히 인사도 나누고 한 것이 영향을 미친 것 같았다.
이 대회를 다녀오고 난 후에는 해당 Track에서만 훈련 시켰다.
여러 트랙에서 두루 훈련을 시켜서 어떠한 트랙에서도 제대로 자율 주행을 할 수 있도록 하는 것이 이상적이겠지만..
그러기에는 시간이 너무 많이 걸릴 것 같았다.
훈련 시키는 만큼 돈도 내야 되기 때문에 더 효율적인 방법을 써야겠다고 생각했다.
그래서 Empire City 트랙에서만 계속 훈련을 시켰다.
결과는 13초 505를 기록해 39등을 했다.
지난 대회에서 그렇게 넘고 싶었던 20초대 벽을 훌쩍 뛰어 넘었다.
이 대회를 경험하고 나서 쓴 글은 여기서 확인 할 수 있다.
https://coronasdk.tistory.com/1011?category=816561
3. Virtual Race #4 Shanghai Sudu
이 대회에서는 Action Space 값을 최대로 한 후 훈련 시킨 것이 주요했었던 것 같다.
그리고 처음으로 Hyperparameters도 손을 댔다.
뭘 알아서 손 댄건 아니고 Forum에 질문올린것에 대한 답변을 누군가가 (아마도 AWS 직원?) 하면서 자기는 Hyperparameter 몇개를 조정했다고 해서 그냥 따라 했다.
이 대회와 관련된 자세한 글은 여기에서 볼 수 있다.
https://coronasdk.tistory.com/1012?category=816561
4회 대회 그리고 내가 3번째로 참가한 이 대회에서는 10.133초를 기록해 35등을 했다.
이제 10초대 벽을 깨는게 목표가 됐다.
다음 대회에서 9초대 기록을 깰 수 있을까?
4. Virtual Race #5 Cumulo Carrera
이 Cumulo Carrera 대회에서는 9초대에 진입하려고 무지 애를 썼다.
결국엔 대회 종료 마지막 날에 9.976초를 달성 할 수 있었다.
목표를 달성할 수 있었던 데는 다른 사람들의 도움이 컸다.
Forum에 질문을 올리면 대답해주던 사람들, 그리고 Slack의 deepracer-community.slack.com 커뮤니티 사람들의 도움이 있었다.
특히 #meetup-seoul 채널에서 만단 nalbam 님과 kim wooglae님의 도움은 아주 컸다. (감사)
이 대회에서는 Console을 통해 제공되는 기능을 활용하는 것 이외에 직접 Meta Data 파일에 접근해 Action Space 값을 조절하면서 훈련시키거나 submit 하는 방법을 사용했다.
Action Space의 값을 변경하는 방법은 두가지가 있다.
하나는 Submit 할 때 적용되도록 하는 방법이다.
변경하는 방법은 아래와 같다.
1. 해당 모델의 Training Section으로 간다.
2. Resources에 있는 Simulation job 아래에 있는 링크를 클릭한다.
3. Simulation application탭을 클릭한 후 SAGEMAKER_SHARED_S3_BUCKET 값과 SAGEMAKER_SHARED_S3_PREFIX 값을 복사해 둔다.
여기 까지는 Action Space Meta Data 파일에 대한 정보를 얻는 과정이다.
이제는 S3로 들어가서 해당 파일을 다룰 차례다.
4. S3 서비스를 오픈한다.
5. Bucket list가 나오는데 SAGEMAKER_SHARED_S3_BUCKET 값으로 Search 한 후 해당 버킷을 클릭한다.
6. 그러면 각 모델 리스트가 나오는데 SAGEMAKER_SHARED_S3_PREFIX 값으로 Search 해 해당 모델을 클릭한다.
7. model 폴더를 오픈한다.
8. model_metadata.json 파일을 다운로드해 수정한 후 다시 upload 한다.
이렇게 하면 submit 할 때 자신이 수정한 action space 값이 적용되서 진행된다.
참고로 이 model 폴더에 있는 모든 파일들을 다운 받은 후 다른 account 의 model 폴더에 업로드해 덮어쓰기를 하면 훈련된 모델을 A account 에서 B account 로 복사할 수 있다.
그 다음은 Action Space 값을 변경한 후 그 변경된 값으로 clone 해서 훈련을 진행시키는 방법이다.
일단 1번부터 5번까지는 위의 방법과 같다.
6. model-metadata 폴더를 오픈한다.
7. 해당 모델 폴더를 오픈한다.
8. model_metadata.json 파일을 다운받아 수정후 다시 upload 한다.
이렇게 한 후 해당 모델을 clone 하면 내가 수정한 Action Space 값이 적용되서 traning을 진행하게 된다.
간략하게 내가 AWS Deepracer Virtual 대회에서 9초대를 기록하기까지의 과정을 정리해 봤다.
이쪽에 관심있는 사람들에게 도움이 됐으면 좋겠다.
그리고 혹시 내가 사용한 방법 이외에 다른 방법을 시도하신 분들의 경험담을 공유해 주시면 정말 고맙겠다.
'IoT > AWS DeepRacer' 카테고리의 다른 글
AWS DeepRacer Console updates at re:Invent 2019 (0) | 2019.12.11 |
---|---|
Deepracer Championship Cup Warm-up 8초대 진입 !!! (0) | 2019.12.02 |
DeepRacer 새 모델 및 2020년도 이벤트 계획 (0) | 2019.11.28 |
AWS Deepracer 10월 Virtual Race 경기 평가 (0) | 2019.11.07 |
Robolink Zumi 도착 (0) | 2019.08.28 |
AWS Deepracer 이렇게만 하면 상위권 간다. (0) | 2019.08.06 |
AWS Deepracer Virtual Circuit The Empire City 2019/7 (0) | 2019.08.04 |
AWS DeepRacer League - New York을 다녀와서 (0) | 2019.07.24 |
Using Jupyter Notebook for analysing DeepRacer's logs (0) | 2019.07.23 |
AWS Deepracer Forum Q&A (1) | 2019.07.08 |