학습 속도 향상¶
강화 학습은 계산적으로 어려운 문제일 수 있으며, 표본 비효율적이고 복잡한 환경으로 확장하기 어렵습니다. 이 페이지에서는 학습 속도를 높이기 위한 일반적인 전략에 대해 이야기할 것입니다: 환경 벡터화, 학습 최적화 및 알고리즘 휴리스틱입니다.
벡터화된 환경¶
일반적으로 학습에서 에이전트는 단일 환경에서 샘플링하여 초당 단계(샘플) 수를 환경 속도로 제한합니다. 여러 환경에서 동시에 작동하는 것을 통해 학습을 상당히 증가시킬 수 있으며, 이를 벡터화된 환경이라고 합니다. 여기서 동일한 환경의 여러 인스턴스가 병렬로 실행됩니다(여러 CPU에서). Gymnasium은 대부분의 일반적인 환경을 벡터화하기 위한 두 가지 내장 클래스를 제공합니다: gymnasium.vector.SyncVectorEnv
및 :class:`gymnasium.vector.AsyncVectorEnv`이며, 이는 :meth:`gymnasium.make_vec`을 사용하여 쉽게 생성할 수 있습니다.
환경을 벡터화하려면 학습 알고리즘을 변경해야 할 수 있으며, 매우 많은 수의 하위 환경에서 학습 불안정성을 유발할 수 있다는 점에 유의해야 합니다.
학습 최적화¶
학습 속도 향상은 일반적으로 코드 최적화를 통해 달성할 수 있으며, 특히 RAM과 GPU 메모리 간의 데이터 전송이 필요한 GPU를 사용하는 딥 강화 학습의 경우 더욱 그렇습니다.
PyTorch 및 Jax로 작성된 코드의 경우, 학습 시간을 줄이기 위해 CPU, GPU 및 TPU(Jax의 경우)에 대해 코드를 jit
(Just-In-Time 컴파일)할 수 있는 기능을 제공합니다.
알고리즘 휴리스틱¶
학계 연구자들은 에이전트 성능을 향상시키고 에이전트를 학습하는 데 필요한 샘플 수를 줄이기 위한 새로운 최적화를 지속적으로 탐구하고 있습니다. 특히, 표본 효율적인 강화 학습은 강화 학습의 전문 하위 분야로서, 에이전트가 성능을 극대화하기 위해 필요한 에이전트 관찰 수를 줄이는 학습 알고리즘 및 환경 휴리스틱에 대한 최적화를 탐구합니다. 이 분야는 지속적으로 개선되고 있으므로, 독자들에게 현재 존재하는 가장 효율적인 알고리즘 개선 사항을 파악하기 위해 조사 논문 및 최신 연구를 찾아보도록 권장합니다.