강화학습에서 정책 이터레이션과 가치 이터레이션의 차이점
강화학습은 에이전트가 환경과 상호작용하며 최적의 행동을 배우는 과정입니다. 이 과정에서 "정책"과 "가치 함수"라는 두 가지 중요한 개념이 등장합니다. 정책 이터레이션(Policy Iteration)과 가치 이터레이션(Value Iteration)은 이 두 개념을 활용하여 최적 정책을 찾기 위한 알고리즘입니다. 두 알고리즘은 비슷한 목적을 가지고 있지만, 그 방식에는 차이가 있습니다.
1. 정책 이터레이션(Policy Iteration)
정책 이터레이션은 "정책 평가"와 "정책 개선"을 번갈아 가며 반복하여 최적의 정책을 찾는 방법입니다. 정책은 에이전트가 각 상태에서 취할 행동을 정의한 규칙입니다. 정책 이터레이션은 다음 두 단계로 구성됩니다:
- 정책 평가(Policy Evaluation): 주어진 정책에 대해 각 상태에서의 가치를 계산합니다. 이때, 상태 가치 함수 \(V^\pi(s)\)를 구하게 됩니다.
- 정책 개선(Policy Improvement): 현재 가치 함수에 기반하여, 각 상태에서 최적의 행동을 선택하고, 정책을 개선합니다.
정책 이터레이션은 이 두 단계를 반복하면서 점점 더 나은 정책을 찾게 됩니다. 이 방식은 비교적 직관적이고, 작은 상태 공간에서는 빠르게 수렴할 수 있습니다.
2. 가치 이터레이션(Value Iteration)
가치 이터레이션은 가치 함수 \(V(s)\)를 직접 갱신하여 최적 정책을 찾는 알고리즘입니다. 정책 이터레이션과 달리, 가치 이터레이션은 정책을 바로 개선하는 대신, 각 상태에서의 가치를 반복적으로 업데이트합니다. 이 알고리즘의 주요 단계는 다음과 같습니다:
- 가치 함수 갱신(Value Update): 각 상태에 대해 벨만 기대 방정식을 사용하여 가치 함수를 갱신합니다. 이때, 정책은 암묵적으로 최적화됩니다.
가치 이터레이션은 정책을 명시적으로 개선하지 않고, 대신 가치 함수가 충분히 수렴할 때까지 반복합니다. 가치 함수가 수렴되면, 그때서야 최적 정책을 도출할 수 있습니다.
3. 정책 이터레이션과 가치 이터레이션의 차이점
정책 이터레이션과 가치 이터레이션의 주요 차이점은 정책 개선이 언제 이루어지는지에 있습니다:
구분 | 정책 이터레이션 | 가치 이터레이션 |
---|---|---|
정책 평가 | 정책 평가 단계에서 가치 함수 \(V^\pi(s)\)를 구합니다. | 정책을 직접 평가하지 않고, 가치 함수만 업데이트합니다. |
정책 개선 | 정책 개선 단계에서 각 상태에서의 최적 행동을 선택하여 정책을 개선합니다. | 가치 함수가 수렴할 때까지 반복하고, 그 후에 최적 정책을 도출합니다. |
수렴 속도 | 작은 상태 공간에서는 빠르게 수렴하지만, 큰 상태 공간에서는 느릴 수 있습니다. | 상태 공간이 크더라도, 점진적으로 수렴하지만 더 느릴 수 있습니다. |
장점 | 정책과 가치 함수가 분리되어 있어 이해하기 쉬운 구조입니다. | 가치 함수만 업데이트하므로 메모리 사용이 상대적으로 적습니다. |
4. 요약
정책 이터레이션과 가치 이터레이션은 최적 정책을 찾기 위한 두 가지 방법입니다. 정책 이터레이션은 정책을 명시적으로 평가하고 개선하는 반면, 가치 이터레이션은 가치 함수만을 갱신하며 정책을 암묵적으로 개선합니다. 둘 다 강력한 알고리즘이지만, 상태 공간이 크거나 복잡할 때는 다른 방식이 더 효율적일 수 있습니다.