강화 학습을 통한 체육관 자동차 경주 문제 해결

Michael Kudlaty
Michael Kudlaty
September 1, 2024

소개

끊임없이 진화하는 인공 지능 세계에서 강화 학습 (RL) 은 에이전트가 복잡한 환경에서 의사 결정을 내리도록 가르치는 강력한 방법으로 두각을 나타내고 있습니다.RL 분야에서 가장 흥미로운 과제 중 하나는 Gyum의 Car Racing 환경입니다. 이 환경은 에이전트가 레이스 트랙을 효율적으로 탐색해야 하는 지속적인 제어 작업입니다.이러한 환경은 고차원의 관측 공간과 정밀한 제어 작업의 필요성 등 독특한 문제를 안고 있습니다.

이 블로그 게시물에서는 세 가지 주요 RL 알고리즘인 소프트 액터-크리틱 (SAC), 근위 정책 최적화 (PPO), 딥 Q-Network (DQN) 를 사용하여 카 레이싱 환경을 해결하는 흥미로운 과정을 자세히 살펴보겠습니다.이러한 알고리즘은 각각 고유의 강점과 약점을 가지고 있어 비교 연구에 적합합니다.

각 알고리즘의 이론적 토대를 살펴보고, 구현에 대해 논의하고, Car Racing 환경에서의 성능을 분석해 보겠습니다.이 여정을 마치면 각 접근 방식의 뉘앙스에 대한 통찰력을 얻고 연속적인 활동 공간과 역동적인 환경으로 인한 문제를 어떻게 처리하는지 이해할 수 있을 것입니다.노련한 RL 실무자이든 호기심 많은 초보자이든 관계없이 이 탐색을 통해 강화 학습과 이를 복잡한 제어 작업에 적용하는 방법에 대한 이해를 심화할 수 있습니다.

자동차 경주 환경 및 보상

체육관의 CARRacing-v2 환경은 에이전트가 절차적으로 생성된 경마장에서 차량을 제어하는 지속적인 제어 작업입니다.목표는 트랙 주위를 최대한 효율적으로 주행하여 트랙을 벗어나는 시간을 최소화하고 덮을 수 있는 타일 수를 최대화하는 것입니다.이 환경은 상태 및 동작 공간이 연속적이기 때문에 어려운 문제를 일으키며, 트랙을 벗어나지 않도록 정밀한 제어가 필요합니다.

Carracing-v2의 보상 시스템은 주로 에이전트가 트랙에 머무를 수 있도록 인센티브를 제공합니다. 이는 해당 에이전트가 차지하는 트랙 타일 수에 비례하여 긍정적인 보상을 지급합니다.각 타일에 대한 일반적인 보상은 +1000/N이며, 여기서 N은 총 타일 수입니다.차량이 트랙을 벗어나면 에이전트는 긍정적인 보상을 더 이상 받지 못하게 되며, 이는 해당 행위에 간접적으로 불이익을 줍니다.차량이 트랙 밖에서 너무 많은 시간을 보내거나 모든 트랙 타일을 성공적으로 덮으면 에피소드가 종료됩니다.이러한 보상 구조는 에이전트가 원활하게 주행하고, 트랙을 벗어나는 시간을 피하고, 레이스 트랙을 최대한 활용할 수 있도록 도와줍니다.

근위 정책 최적화 (PPO)

PPO는 TRPO와 같은 알고리즘에 사용되는 신뢰 영역 최적화를 간소화하는 온-정책 알고리즘입니다.특히 작업 공간이 연속적인 환경에서 안정성과 견고성을 발휘하는 것으로 잘 알려져 있습니다.

구현:

1import gymnasium as gym
2from stable_baselines3 import PPO
3
4# Create CarRacing environment
5env = gym.make('CarRacing-v2')
6
7# Initialize PPOmodel = PPO('CnnPolicy', env, verbose=1)
8
9# Train the model
10model.learn(total_timesteps=1000000)
11
12# Save the model
13model.save("ppo_car_racing")


자동차 경주에서의 성능:

  • 강점: PPO는 교육을 불안정하게 만들 수 있는 급격한 변화를 피하면서 정책을 점진적으로 조정할 수 있기 때문에 Car Racing과 같은 지속적인 활동 환경에서 잘 작동합니다.
  • 약점: PPO는 온-폴리시 알고리즘이기 때문에 SAC와 같은 정책 외 방법에 비해 더 많은 데이터를 필요로 하므로 샘플 효율성이 떨어질 수 있습니다.

PPO 실무 사례:
카 레이싱에서 PPO는 탐험과 착취의 균형을 효과적으로 유지합니다.PPO의 클리핑 메커니즘은 대규모 정책 업데이트를 방지하므로 원활하고 안정적인 제어가 필요한 환경에 적합합니다.

소프트 액터-크리틱 (SAC)

SAC는 엔트로피 최대화와 행위자-비평가 프레임워크를 모두 활용하는 오프 정책 알고리즘으로, 에이전트가 학습하는 동안 최대한 무작위로 행동하도록 장려하여 탐색을 촉진합니다.

구현:

1import gymnasium as gym
2from stable_baselines3 import SAC
3
4# Create CarRacing environment
5env = gym.make('CarRacing-v2')
6
7# Initialize SAC
8model = SAC('CnnPolicy', env, verbose=1)
9
10# Train the model
11model.learn(total_timesteps=1000000)
12
13# Save the model
14model.save("sac_car_racing")

자동차 경주에서의 성능:

  • 강점: SAC는 샘플 효율성이 매우 높아 동작이 연속적이고 정밀한 제어가 필요한 Car Racing과 같은 환경에 적합합니다.
  • 약점: 알고리즘은 구현하기가 더 복잡하며 특히 탐색과 활용의 균형을 맞추는 온도 파라미터의 세심한 조정이 필요합니다.

실제 SAC:
Car Racing 환경에서 SAC의 엔트로피 기반 탐색은 에이전트가 다양한 전략을 발견하고 트랙의 변화에 적응하는 데 도움이 됩니다. 이는 복잡하고 고차원 공간을 탐색하는 데 매우 중요합니다.

딥 Q-네트워크 (DQN)

DQN은 RL 영역의 선구적인 알고리즘으로, 특히 개별 동작 공간에서 효과적입니다.신경망을 사용하여 작용값 추정을 위한 Q-값의 근사치를 구합니다.

구현:

1import gymnasium as gym
2from stable_baselines3 import DQN
3
4# Create CarRacing environment
5env = gym.make('CarRacing-v2')
6
7# Initialize DQN
8model = DQN('CnnPolicy', env, verbose=1)
9
10# Train the model
11model.learn(total_timesteps=1000000)
12
13# Save the model
14model.save("dqn_car_racing")


자동차 경주에서의 성능:

  • 강점: DQN은 상대적으로 계산 요구가 적은 개별 작업이 있는 환경에서 간단하고 효과적입니다.
  • 약점: 카 레이싱과 같은 연속적인 액션 공간에는 적합하지 않습니다.액션의 이산화가 필요하면 정책이 최적화되지 않고 성능이 저하될 수 있습니다.

실제 DQN:
DQN은 Atari와 같은 게임에서 성공을 거두었지만, Car Racing에서는 지속적인 환경 특성으로 인해 성능이 제한적입니다.액션 공간을 분산하거나 하이브리드 접근 방식을 사용하는 등의 수정이 필요하지만 종종 최적의 결과를 얻지 못하는 경우가 많습니다.

알고리즘 비교

팝:

  • 강점: 정책 기울기 접근 방식으로 인해 지속적인 작업 공간이 있는 환경에서 안정적이며 잘 작동합니다.
  • 약점: 온-폴리시 알고리즘이기 때문에 샘플 효율성이 떨어지고 환경과의 상호 작용이 더 많이 필요할 수 있습니다.

낭:

  • 강점: 시료 효율이 매우 높고 연속 작업 공간에서 탁월합니다.엔트로피 최대화를 사용하면 강력한 탐색을 할 수 있습니다.
  • 약점: 특히 엔트로피 계수와 관련하여 구현 및 조정이 더 복잡합니다.

댄:

  • 강점: 개별 작업 환경에서의 단순성 및 효율성.일부 정책 기반 방법보다 계산 집약도가 낮습니다.
  • 약점: 큰 수정 없이 고차원적이고 연속적인 액션 공간에서 어려움을 겪습니다.

결론

연속 작업 공간이 있는 CarRacing 환경에서는 PPO와 SAC가 더 효과적인 선택입니다.SAC의 샘플 효율성과 연속 작업 환경에서의 강력한 성능은 특히 유리합니다.반면, DQN은 개별 작업 공간에서는 강력하지만 고유한 설계 한계로 인해 이러한 환경에는 적합하지 않습니다.

요약하면, 이러한 알고리즘의 강점과 약점을 이해하면 Car Racing과 같은 복잡한 작업에 적용할 수 있는 귀중한 통찰력을 얻을 수 있습니다.올바른 알고리즘을 신중하게 선택하고 조정하면 까다로운 환경에서 에이전트의 성능을 크게 향상시킬 수 있습니다.

추가 학습 자료

코드 리포지토리 및 모델

Updated On:
October 27, 2025
Follow on social media: