AWS DeepRacer 액션 스페이스 및 보상 기능 - AWS DeepRacer

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

AWS DeepRacer 액션 스페이스 및 보상 기능

액션 스페이스

강화 학습에서는 에이전트가 환경과 상호 작용할 때 사용할 수 있는 모든 유효한 행동 또는 선택 집합을 행동 공간이라고 합니다. AWS DeepRacer 콘솔에서는 개별 또는 연속 작업 공간에서 에이전트를 교육할 수 있습니다.

분리형 액션 스페이스

개별 액션 스페이스는 각 상태에 대해 에이전트가 할 수 있는 모든 액션을 유한한 집합으로 나타냅니다. DeepRacerAWS의 경우 이는 환경 상황이 점차 달라질 때마다 에이전트의 신경망이 카메라와 (선택 사항) LiDAR 센서의 입력을 기반으로 차량의 속도와 방향을 선택한다는 것을 의미합니다. 선택 범위는 사전 정의된 스티어링 각도와 스로틀 값 조합으로 제한됩니다.

회전이 가까워지는 개별 작업 공간에 있는 AWS DeepRacer 차량은 가속 또는 제동을 선택하고 좌회전, 우회전 또는 직진할 수 있습니다. 이러한 동작은 조향 각도와 속도의 조합으로 정의되며 에이전트를 위한 옵션 메뉴 (0-9) 가 생성됩니다. 예를 들어 0은 -30도 및 0.4m/s를 나타내고, 1은 -30도 및 0.8m/s를 나타내고, 2는 -15도 및 0.4m/s를 나타내고, 3은 -15도 및 0.8m/s를 나타낼 수 있으며, 이런 식으로 9부터 9까지를 나타낼 수 있습니다. 각도가 음수이면 차량을 오른쪽으로, 양수 각도는 차량을 왼쪽으로 돌리고 0도는 바퀴를 똑바로 유지합니다.

AWS DeepRacer 기본 개별 작업 영역에는 다음 작업이 포함됩니다.

AWS DeepRacer 기본 개별 액션 스페이스
행동 번호 조향 각도 속도
0 -30도 0.4m/s
1 -30도 0.8m/s
2 -15도 0.4m/s
3 -15도 0.8m/s
4 0도 0.4m/s
5 0도 0.8m/s
6 15도 0.4m/s
7 15도 0.8m/s
8 30도 0.4m/s
9 30도 0.8m/s
연속 액션 스페이스

연속 액션 스페이스를 통해 에이전트는 각 상태의 다양한 값 중에서 액션을 선택할 수 있습니다. 개별 액션 스페이스와 마찬가지로, 환경 상황이 점점 달라질 때마다 에이전트의 신경망이 카메라와 (선택 사항) LiDAR 센서의 입력을 기반으로 차량의 속도와 방향을 선택합니다. 하지만 연속 액션 스페이스에서는 에이전트가 액션을 선택하는 옵션 범위를 정의할 수 있습니다.

이 예시에서는 회전에 가까워지는 연속 동작 공간에 있는 AWS DeepRacer 차량은 0.75m/s ~ 4m/s의 속도를 선택하고 -20도에서 20도 사이의 조향 각도를 선택하여 좌회전, 우회전 또는 직진 주행할 수 있습니다.

불연속형 vs. 연속형

연속 동작 공간을 사용하면 성능을 최적화하는 트랙의 특정 지점에서 속도/조향 동작을 장려하도록 모델을 학습시키는 보상 함수를 작성할 수 있다는 이점이 있습니다. 또한 다양한 동작 중에서 선택하면 속도와 조향 값을 부드럽게 변경할 수 있으며, 잘 훈련된 모델에서는 실제 조건에서 더 나은 결과를 얻을 수 있습니다.

개별 액션 스페이스 설정에서는 에이전트의 선택을 미리 정의된 한정된 수의 액션으로 제한하면 해당 액션의 영향을 이해하고 환경 (트랙, 레이싱 형식) 및 보상 기능에 따라 해당 액션을 정의해야 합니다. 그러나 연속 동작 공간 설정에서는 에이전트가 훈련을 통해 사용자가 제공한 최소/최대 범위에서 최적의 속도 및 조향 값을 선택하는 방법을 학습합니다.

모델에 선택할 수 있는 다양한 값을 제공하는 것이 더 나은 옵션인 것 같지만 에이전트는 최적의 동작을 선택하는 방법을 배우려면 더 오랜 시간 훈련해야 합니다. 성공 여부는 보상 함수 정의에 따라 달라집니다.

보상 함수

에이전트가 환경을 탐색하면서 에이전트는 가치 함수를 학습합니다. value 함수는 에이전트가 환경을 관찰한 후 취해진 조치가 얼마나 좋은지 판단하는 데 도움이 됩니다. value 함수는 AWS DeepRacer 콘솔에서 작성한 보상 함수를 사용하여 작업에 점수를 매깁니다. 예를 들어 AWS DeepRacer 콘솔의 중심선 따르기 샘플 보상 기능에서 좋은 행동은 상담원을 트랙의 중앙 부근에 머물게 하고, 잘못된 행동을 하면 상담원이 트랙의 중심에서 멀어지게 하는 것보다 더 높은 점수를 받게 됩니다.

시간이 지남에 따라 value 함수는 상담원이 총 보상을 높이는 정책을 학습하는 데 도움이 됩니다. 최적 또는 최상의 정책은 에이전트가 환경을 탐색하는 데 소비하는 시간과 정책이 경험을 통해 배운 것을 악용하거나 최대한 활용하는 데 소비하는 시간의 균형을 맞추는 것입니다.

중심선 따라가기 AWS DeepRacer 샘플 보상 함수 예시에서는 에이전트가 먼저 환경을 탐색하기 위해 무작위 행동을 취합니다. 즉, 트랙의 중심에 머무르는 것은 그다지 효과적이지 않습니다. 시간이 지남에 따라 에이전트는 어떤 동작이 자신을 중심선 근처로 유지하는지 배우기 시작하지만, 무작위 행동을 계속하여 이 작업을 수행하면 전체 랩 동안 트랙의 중앙 근처에 머무르는 법을 배우는 데 오랜 시간이 걸립니다. 따라서 정책에서 올바른 조치를 학습하기 시작하면 상담원은 무작위 조치를 취하는 대신 해당 조치를 사용하기 시작합니다. 하지만 에이전트가 항상 좋은 행동을 사용하거나 악용한다면 에이전트는 더 이상 환경을 탐색하지 않기 때문에 새로운 발견을 하지 못할 것입니다. 이러한 절충점을 종종 RL에서는 탐색 대 악용 문제라고 합니다.

기본 액션 스페이스와 샘플 보상 함수를 실험해 보세요. 모두 살펴본 후에는 자신만의 사용자 지정 작업 공간과 사용자 지정 보상 기능을 설계하여 지식을 활용하세요.