AWS DeepRacer 모델 훈련 및 평가 - AWS DeepRacer

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS DeepRacer 모델 훈련 및 평가

AWS DeepRacer 차량이 트랙을 따라 스스로 주행할 때는 전면에 장착된 카메라를 사용해 환경 상태를 수집하여 관측 결과에 따라 행동합니다. AWS DeepRacer 모델은 관측 결과와 행동을 예상되는 보상으로 매핑하는 역할을 합니다. 모델 훈련이란 예상되는 보상을 최대화하는 함수를 찾거나 학습하는 과정을 말합니다. 이러한 과정을 통해 최적화된 모델은 차량이 출발선부터 결승선까지 트랙을 따라 스스로 주행하는 데 필요한 행동(속도와 조향 각도 쌍)을 결정합니다.

실제로 함수는 신경망을 통해 표현되며, 이러한 신경망 훈련은 관측된 환경 상태의 시퀀스와 여기에 반응하는 차량의 행동을 고려하여 최적의 신경망 가중치를 찾는 작업이 수반됩니다. 기본적인 최적성 기준은 차량이 교통 사고나 법규 위반 없이 합법적이고 생산적인 주행을 할 수 있도록 유도하는 보상 함수로 설명됩니다. 간단한 보상 함수는 차량이 트랙을 주행할 경우 보상 점수 0을, 트랙을 벗어날 경우 보상 점수 -1을, 그리고 결승선에 도달하면 보상 점수 +1을 반환합니다. 이 보상 함수를 사용하면 트랙에서 벗어날 경우 패널티를 받고 목표 지점에 도달하면 보상을 받습니다. 시간이나 속도가 문제가 되지 않는 경우 이 함수는 좋은 보상이 될 수 있습니다.

직선 트랙에서 벗어나지 않고 최대한 빨리 차량을 운전해야 하는 경우를 가정해 보십시오. 차량 속도가 증가와 감소를 반복하면서 차량은 장애물을 피하거나 트랙에서 벗어나지 않기 위해 왼쪽이나 오른쪽으로 조향하기도 합니다. 고속으로 너무 크게 회전하면 차량이 트랙에서 쉽게 이탈할 수 있습니다. 또한 너무 작게 회전하면 장애물이나 다른 차량과 충돌하는 것을 피하지 못할 수도 있습니다. 일반적으로 비교적 낮은 속도로 크게 회전하거나, 혹은 급커브에서 조향 각도를 줄여야만 최적의 행동이라고 할 수 있습니다. 이러한 동작을 유도하려면 보상 함수가 높은 속도에서 작은 회전을 할 경우 양의 점수를 할당하여 보상하고, 높은 속도에서 큰 회전을 할 경우 음의 점수를 할당하여 벌점을 부과해야 합니다. 마찬가지로 직선 구간에서 속도를 높이거나, 혹은 주변에 장애물이 있을 경우 속도를 낮추면 양의 보상 점수를 반환할 수 있습니다.

보상 함수는 AWS DeepRacer 모델에서 중요한 역할을 합니다. AWS DeepRacer 모델을 훈련할 때는 보상 함수가 반드시 필요합니다. 훈련할 때는 시작부터 끝까지 트랙을 따라 에피소드가 반복됩니다. 에피소드에서는 에이전트가 트랙과 상호 작용하면서 예상되는 누적 보상을 최대화하여 최적의 행동을 학습합니다. 결국, 훈련은 강화 학습 모델을 산출합니다. 훈련이 끝나면 에이전트가 모델에 대해 추론을 실행하여 임의 상태일 때 최적의 행동을 보이면서 자율 주행을 실행합니다. 이러한 훈련은 시뮬레이션 환경에서 가상 에이전트를 사용하거나, 혹은 실제 환경에서 AWS DeepRacer 모형 차량 같은 물리적 에이전트를 사용해 가능합니다.

실제로 강화 학습 모델을 훈련하려면 학습 알고리즘을 선택해야 합니다. 현재 AWS DeepRacer 콘솔은 근위 정책 최적화(PPO) 및 소프트 액터 크리틱(SAC) 알고리즘만 지원합니다. 그런 다음 처음부터 새로 작성하려는 경우가 아니라면 선택한 알고리즘을 지원하는 딥 러닝 프레임워크를 선택할 수 있습니다. AWS DeepRacer는 SageMaker와 통합되어 TensorFlow와 같은 인기 있는 딥 러닝 프레임워크를 AWS DeepRacer 콘솔에서 쉽게 사용할 수 있습니다. 프레임워크를 사용하면 훈련 작업 구성 및 실행을 간소화하고 문제와 관련된 보상 함수를 작성 및 개선하는 데 집중할 수 있습니다.

강화 학습 모델의 훈련은 반복 프로세스입니다. 먼저, 한 환경에서 에이전트의 모든 중요한 동작을 한 번에 포함할 수 있는 보상 함수를 정의하기는 어렵습니다. 두 번째로, 하이퍼파라미터는 일반적으로 만족스러운 훈련 성능을 보장하기 위해 튜닝됩니다. 둘 다 실험이 필요합니다 신중한 접근 방식은 간단한 보상 함수로 시작한 다음 점진적으로 개선하는 것입니다. AWS DeepRacer는 훈련된 모델을 복제한 후 이를 사용하여 다음 교육 단계를 바로 시작할 수 있도록 함으로써 이러한 반복 프로세스를 용이하게 합니다. 반복할 때마다 보상 함수에 하나 이상의 정교한 처리를 도입하여 이전에 무시된 변수를 처리하거나 결과가 수렴될 때까지 하이퍼파라미터를 체계적으로 조정할 수 있습니다.

기계 학습에서 일반적인 방법처럼 훈련된 강화 학습 모델을 평가하여 실제 상황에서 추론을 실행할 수 있도록 물리적 에이전트에 배포하기 전에 효과를 확인해야 합니다. 자율 주행의 경우 평가는 시작부터 끝까지 차량이 지정된 트랙을 주행한 빈도 또는 트랙을 벗어나지 않고 코스를 완주한 시간을 기반으로 할 수 있습니다. AWS DeepRacer 시뮬레이션에서는 성능 평가 후 다른 AWS DeepRacer 사용자가 훈련한 모델과 비교할 목적으로 성능 지표를 리더보드에 게시하는 것도 가능합니다.