logo

[강화학습] 동적 프로그래밍

 

동적 프로그래밍

동적 프로그래밍(Dynamic Programming, DP)은 복잡한 문제를 간단한 하위 문제로 나누어 해결하는 방법입니다. 이는 중복 계산을 피하고 문제를 효율적으로 해결할 수 있게 하는 핵심 아이디어로, 각 하위 문제의 해답을 저장하고 이를 이용해 최종 결과를 얻습니다.

 

강화학습에서 동적 프로그래밍이 중요한 이유

강화학습에서는 에이전트가 환경과 상호작용하며 최적의 행동 정책을 학습합니다. 이 과정에서 동적 프로그래밍은 효율적인 학습 과정을 도울 수 있는 중요한 도구로 작용합니다. 특히, 강화학습 문제는 대부분 Markov Decision Process(MDP)로 모델링되는데, 이 경우 동적 프로그래밍이 자연스럽게 적용됩니다.

 

강화학습 문제를 푸는데 있어 동적 프로그래밍의 역할

동적 프로그래밍은 강화학습 문제를 해결하기 위해 정책 평가와 정책 개선 과정을 반복하여 최적 정책을 찾는 데 있어 핵심적인 역할을 합니다. 이를 통해 강화학습 알고리즘은 보상을 최대화하는 행동 전략을 효율적으로 찾을 수 있습니다.

벨만 방정식 소개

 

벨만 방정식의 정의

벨만 방정식은 동적 프로그래밍의 기본 개념으로, 각 상태의 가치 함수를 해당 상태에서 취할 수 있는 행동과 후속 상태들의 가치 함수를 통해 정의합니다. 상태 가치 함수와 행동 가치 함수를 이용해 각각 벨만 방정식을 표현할 수 있습니다.

 

벨만 방정식이 강화학습에서 어떻게 사용되는지

벨만 방정식은 강화학습에서 정책의 성능을 평가하고, 최적 정책을 도출하기 위한 기준으로 사용됩니다. 즉, 강화학습의 목적인 최대 보상을 달성하기 위한 경로를 찾는 데 핵심적인 역할을 수행합니다.

 

상태 가치 함수와 행동 가치 함수의 벨만 방정식

  • 상태 가치 함수 V(s)V(s)에 대한 벨만 방정식:
V(s)=aπ(as)s,rp(s,rs,a)[r+γV(s)] V(s) = \sum_{a} \pi(a|s) \sum_{s', r} p(s', r|s, a)[r + \gamma V(s')]
  • 행동 가치 함수 Q(s,a)Q(s, a)에 대한 벨만 방정식:
Q(s,a)=s,rp(s,rs,a)[r+γaπ(as)Q(s,a)] Q(s, a) = \sum_{s', r} p(s', r|s, a)[r + \gamma \sum_{a'} \pi(a'|s') Q(s', a')]

여기서 ss는 상태, aa는 행동, rr는 보상, π\pi는 정책, pp는 상태 전이 확률, γ\gamma는 할인율을 나타냅니다.

정책 평가(Policy Evaluation)

 

정책 평가의 목적과 정의

정책 평가는 주어진 정책의 성능을 평가하는 과정입니다. 정책 평가를 통해 각 상태의 가치를 계산함으로써, 에이전트가 얼마나 좋은 성과를 낼 수 있는지를 평가할 수 있습니다.

 

벨만 기대 방정식을 통한 정책 평가 과정

정책 평가 과정에서는 벨만 기대 방정식을 사용하여 주어진 정책 하에서의 상태 가치 함수를 반복적으로 계산합니다. 이 과정은 정책이 수렴할 때까지 반복됩니다.

 

반복적 정책 평가 알고리즘

  1. 모든 상태에 대해 임의의 초기 가치 함수 V(s)V(s)를 설정합니다.
  2. 모든 상태에 대해 다음의 업데이트를 수행합니다:
V(s)aπ(as)s,rp(s,rs,a)[r+γV(s)] V(s) \leftarrow \sum_{a} \pi(a|s) \sum_{s', r} p(s', r|s, a)[r + \gamma V(s')]
  1. 상태 가치 함수의 변화가 충분히 작아질 때까지 2번 과정을 반복합니다.
 

정책 평가의 수렴성

해당 반복 과정은 충분한 반복 후 수렴하며, 이는 정책 평가의 수렴성을 보장합니다. 수렴한 상태 가치 함수는 주어진 정책 하에서의 진정한 가치 함수에 근접합니다.

정책 개선(Policy Improvement)

 

정책 개선의 기본 원리와 방법

정책 개선 과정에서는 평가된 가치 함수를 바탕으로 현재 정책을 개선하는 방법을 찾습니다. 이는 가치 함수에 기반해 각 상태에서 최적의 행동을 선택하는 과정을 통해 이루어집니다.

 

벨만 최적 방정식을 이용한 정책 개선

벨만 최적 방정식은 최적 정책 하에서의 가치 함수를 제공합니다. 이를 이용해 각 상태에서 최대 가치를 제공하는 행동을 선택함으로써 정책을 개선할 수 있습니다.

 

정책 개선과 정책 평가의 반복 과정

정책 평가를 통해 얻어진 상태 가치 함수를 사용하여 정책을 개선하고, 이 새로운 정책에 대해 다시 평가를 실시하는 과정을 반복함으로써 점점 최적 정책에 수렴하게 됩니다.

 

정책 반복 알고리즘

  1. 초기 정책 π\pi와 상태 가치 함수 V(s)V(s)를 설정합니다.
  2. 정책 평가: 주어진 정책에 대해 상태 가치 함수를 계산합니다.
  3. 정책 개선: 계산된 가치 함수를 바탕으로 각 상태에서 최적의 행동을 선택하여 정책을 개선합니다.
  4. 2와 3의 과정을 정책에 더 이상 변화가 없을 때까지 반복합니다.

정책 반복(Policy Iteration)과 가치 반복(Value Iteration)

 

정책 반복의 전체 과정 소개

정책 반복은 정책 평가와 정책 개선을 번갈아가며 수행하는 과정입니다. 이는 수렴할 때까지 반복되며, 최종적으로 최적의 정책과 상태 가치 함수를 제공합니다.

 

가치 반복: 정책 평가와 개선 단계의 통합

가치 반복은 정책 평가와 정책 개선을 하나의 단계로 통합한 방법입니다. 가치 함수를 갱신함으로써 동시에 평가와 개선이 이루어지는 효율적인 방식입니다.

 

가치 반복 알고리즘 설명

  1. 모든 상태에 대해 초기 가치 함수 V(s)V(s)를 설정합니다.
  2. 모든 상태에 대해 다음의 업데이트를 수행합니다:
V(s)maxas,rp(s,rs,a)[r+γV(s)] V(s) \leftarrow \max_{a} \sum_{s', r} p(s', r|s, a)[r + \gamma V(s')]
  1. 가치 함수의 변화가 충분히 작아질 때까지 2번 과정을 반복합니다.
 

정책 반복과 가치 반복의 비교 및 선택 기준

정책 반복은 명확한 정책 평가와 개선 단계를 가지며, 가치 반복은 가치 함수 갱신만으로 평가와 개선을 동시에 처리합니다. 두 방법의 선택은 문제의 특성과 계산 자원 등에 따라 달라질 수 있습니다.

동적 프로그래밍의 한계와 실제 사용

 

동적 프로그래밍의 한계점(상태 공간의 차원 문제 등)

동적 프로그래밍은 상태 공간이나 행동 공간이 매우 크거나 연속적인 경우 효율적으로 적용하기 어렵습니다. 이는 계산 비용과 메모리 요구량이 매우 커지기 때문입니다.

 

근사 방법을 통한 한계 극복 방안

근사 동적 프로그래밍이나 함수 근사 기법을 사용하여 상태-행동 공간을 근사적으로 나타내는 방법이 개발되었습니다. 이를 통해 고차원 문제에 대한 효율적인 해결책을 제공할 수 있습니다.

 

실제 강화학습 문제에 동적 프로그래밍 적용 사례

동적 프로그래밍은 체스나 바둑 등의 복잡한 게임, 자동차 자율 주행, 로봇 제어와 같은 다양한 분야에서 강화학습 문제 해결에 적용되고 있습니다. 이러한 문제들은 일반적으로 정책 반복이나 가치 반복과 같은 전략을 사용해 접근됩니다.

Previous
마르코프 결정 과정(MDP)