본문 바로가기
딥러닝 with Python

[딥러닝 with Python] GRPO란? (Group Relative Policy Optimization)

by CodeCrafter 2025. 1. 30.
반응형

 

오늘 알아볼 것은 GRPO(Group Relative Policy Optimization)입니다.

 

1. GRPO란?

- Group Relative Policy Optimization(GRPO)는 강화학습(Reinforcement Learning, RL)에서 정책 최적화(Policy Optimization)를 수행할 때, 기존의 Proximal Policy Optimization(PPO)과 달리,상대적인 그룹 기준(Group-relative criterion)**을 활용하여 안정적인 학습을 유도하는 방법입니다.

 

- 이는 정책(policy)의 업데이트를 더 효과적으로 제어하고, 불필요한 정책 변화(excessive policy shifts)를 방지하며, 샘플 효율성(sample efficiency)을 향상시키는 데 초점을 두고 있는 방법인데요.

- GRPO는 기존의 PPO(Proximal Policy Optimization)와 유사한 구조를 가지지만, 각 에피소드의 정책 변화를 그룹 단위(group-wise)로 상대적으로 측정하여 보상을 조정하는 방식으로 작동합니다.

 이는 특정 환경에서의 정책 다양성(Policy Diversity)을 확보하는 데 유용할 수 있으며, 특히 멀티 에이전트 환경(Multi-agent environments)이나 다중 작업 강화학습(Multi-task RL)에서 효과적으로 사용될 수 있습니다.

 

- GRPO에 대해 수식적으로 자세히 알아보도록 하겠습니다. 

 1) 먼저 기존 PPO의 손실 함수(Loss function)에 대해서 알아보면.

 정책을 업데이트할 때 Trust Region을 유지하기 위해 Clipping을 적용하여 아래와 같은 손실함수를 정의하여 학습을 진행합니다.

 

 * 여기서 Clipping Factor란, 정책(Policy) 변화의 크기를 제한하는 역할을 하는 하이퍼 파라미터를 얘기합니다. 

  ( 이 값을 크게하면 정책의 변화가 더 커지기에 다양한 값을 찾을 수 있지만 수렴이 되지 않을 수 있어 최적해를 찾을 수 없을수도 있으며, 이 값을 작게하면 정책 변화의 폭이 작아지기에 수렴은 안정적으로 되겠지만 학습속도가 느려질 수 있습니다)

 

 2) GRPO에서 활용하는 손실함수는 다음과 같습니다.

 * 정책 변화가 개별적으로 평가되는것이 아닌, 그룹 단위(Group-wise)에서 상대적으로 평가가 되며 이를 위해 같은 그룹 내의 평균적인 정책 변화를 비교하는 방식이라고 보시면 되겠습니다.

 * GRPO의 손실함수에 대해서 알아보면 아래와 같습니다.

 * 즉, 정책 업데이트가 개별적인 샘플이 아닌, 그룹 단위를 기준으로 평가되므로 더 균형 잡힌 정책 변화를 유도하기 위해 GRPO에서는 위와 같은 손실함수가 활용이 되는 것입니다.

 

2. GRPO의 특징 및 예시

GRPO의 특징에 대해서 간략히 정리해보면

1) 그룹 단위의 상대적인 정책 비교
 : 기존 PPO에서는 개별 샘플의 정책 변화만 고려했지만, GRPO는 그룹 내의 평균적인 정책 변화와 비교하여 안정적인 업데이트를 수행

 

2)과도한 정책 변화 방지
 : 정책의 변화량이 클 경우, GRPO는 그룹 내 평균값을 기준으로 조절하므로 과도한 정책 변화(excessive policy shift)를 억제할 수 있음

 

3) 샘플 효율성 향상
 : 그룹 단위의 비교를 수행함으로써 샘플 효율성(sample efficiency)이 향상되며, 이는 강화학습에서 데이터 효율성을 극대화하는 데 도움

 

4)멀티 에이전트 환경과 다중 작업 RL에 적합
 : 다수의 에이전트가 존재하는 환경이나, 여러 개의 작업을 동시에 학습하는 멀티태스킹 환경에서 더 안정적인 학습을 수행

 

 

이를 활용하는 예시를 알아보면

ex.1) 멀티 에이전트 협력 환경(Multi-agent Cooperation)
 : 예를 들어, 드론 제어(drone control) 문제에서 여러 개의 드론이 동시에 특정 목표를 추적해야 한다고 가정해봅시다. 기존의 PPO를 적용하면, 각각의 드론이 독립적으로 보상을 받아 학습합니다. 그러나 GRPO를 사용하면, 같은 그룹에 속한 드론들의 정책 변화율을 상대적으로 비교하면서 학습하게 되어, 더 일관된 행동 패턴을 유도할 수 있습니다. 결과적으로 각 드론의 개별적인 탐색이 아니라, 그룹 내에서 조화로운 행동을 학습할 수 있습니다.

 

ex.2) 다중 작업 강화학습(Multi-task Reinforcement Learning)
 : 예를 들어, 로봇이 다양한 작업(예: 물건 집기, 장애물 피하기, 문 열기 등)을 동시에 학습해야 한다면,
GRPO는 각 작업(task)별로 개별적인 업데이트를 수행하는 것이 아니라, 비슷한 작업을 수행하는 그룹 내에서 상대적인 보상 기준을 설정하여 보다 일반화된 정책 학습이 가능합니다.

반응형

댓글