기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS DeepRacer 행동 공간 및 보상 함수
행동 공간
강화 학습에서는 에이전트가 환경과 상호 작용할 때 사용할 수 있는 모든 유효한 행동 또는 선택의 집합을 행동 공간이라고 합니다. AWS DeepRacer 콘솔에서는 개별 또는 연속 작업 공간에서 에이전트를 훈련할 수 있습니다.
불연속 행동 공간
불연속 행동 공간은 유한한 집합의 각 상태에 대해 에이전트가 수행할 수 있는 모든 작업을 나타냅니다. AWS DeepRacer의 경우 이는 모든 환경 상황에 대해 에이전트의 신경망이 카메라 및 (선택 사항) 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, 3은 -15도 및 0.8m/s 등 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도 사이의 조향 각도를 선택하여 좌회전, 우회전 또는 직진할 수 있습니다.
불연속형 및 연속형
연속 행동 공간을 사용하면 트랙의 특정 지점에서의 속도/조향 동작을 장려하여 성능을 최적화하는 보상 함수를 작성할 수 있다는 이점이 있습니다. 또한 다양한 동작 중에서 선택하면 속도 및 조향 값을 부드럽게 변경할 수 있으므로 잘 훈련된 모델에서는 실제 상황에서 더 나은 결과를 얻을 수 있습니다.
불연속 작업 공간 설정에서 에이전트의 선택을 미리 정의된 유한한 수의 행동으로 제한하면 이러한 행동이 미치는 영향을 이해하고 환경(트랙, 레이싱 형식) 및 보상 함수를 기반으로 행동을 정의해야 하는 부담이 있습니다. 하지만 연속 작업 공간 설정에서는 에이전트가 훈련을 통해 제공한 최소/최대 범위 중에서 최적의 속도 및 조향 값을 선택하는 방법을 학습합니다.
모델에서 선택할 수 있는 다양한 값을 제공하는 것이 더 나은 방법인 것 같지만 에이전트는 최적의 동작을 선택하는 방법을 배우려면 더 오래 훈련해야 합니다. 성공 여부는 보상 함수 정의에 따라서도 좌우됩니다.
보상 함수
에이전트는 환경을 탐색하면서 가치 함수를 학습합니다. 가치 함수는 에이전트가 환경을 관찰한 후 취한 행동이 얼마나 좋은지 판단하는 데 도움이 됩니다. 가치 함수는 AWS DeepRacer 콘솔에서 작성한 보상 함수를 사용하여 행동에 점수를 매깁니다. 예를 들어, AWS DeepRacer 콘솔의 센터 라인 따르기 샘플 보상 기능에서 좋은 행동은 에이전트를 트랙 중앙에 가깝게 유지하고 에이전트를 트랙 중앙에서 멀어지게 하는 잘못된 행동보다 높은 점수를 받게 하는 것입니다.
시간이 지남에 따라 에이전트는 가치 함수를 통해 총 보상을 늘리는 정책을 학습할 수 있습니다. 최적 또는 최선의 정책은 에이전트가 환경을 탐색하는 데 소비하는 시간과 경험을 통해 정책을 학습한 내용을 악용하거나 최대한 활용하는 데 소비하는 시간의 균형을 맞추는 것입니다.
중앙선을 따르는 AWS DeepRacer 샘플 보상 함수 예제에서 에이전트는 먼저 환경을 탐색하기 위해 무작위 행동을 취합니다. 즉, 트랙의 중심에 잘 머무르지 않습니다. 시간이 흐르면서 에이전트는 어떤 행동이 중앙선 근처에 머무르게 하는지 알아내기 시작하지만, 무작위 동작을 계속 취함으로써 그것을 알아내게 된다면 전체 랩 동안 트랙 중앙 부근에 머무르는 법을 배우는 데 오랜 시간이 걸립니다. 따라서 정책에서 적절한 행동을 학습하기 시작하면 에이전트는 무작위 행동을 취하는 대신 해당 행동을 사용하기 시작합니다. 하지만 에이전트가 항상 좋은 행동을 이용하거나 악용한다면 에이전트는 더 이상 환경을 탐색하지 않기 때문에 새로운 발견을 하지 않을 것입니다. 이러한 절충안을 종종 RL에서의 탐색과 활용 문제라고 합니다.
기본 행동 공간과 샘플 보상 함수를 사용해 실험해 보세요. 모두 살펴본 후에는 사용자 지정 행동 공간과 사용자 지정 보상 함수를 설계하여 지식을 활용하세요.