My Blog

강화학습(작은 환경 MDP를 이미 알고있을때 푸는 방법)


MDP를 안다는 것

전체적인 규모가 작고 실행할 수 있는 액션의 수도 작을때, 보상함수와 전이확률행렬을 알고 있을때 MDP(마르코프 결정 프로세스)를 안다고 표현합니다. 쉽게 말하면 어떠한 상태 s에 있든 액션 a를 실행하면 다음 상태가 어떻게 정해지는지, 보상은 어떻게 되는지 이미 알고 있다는 말입니다. 또한 알고 있다는 것은 아래의 요소들을 알고 있다는 말이 됩니다. 상태(S): 에이전트가 인식할 수 있는 환경의 모든 가능한 상태들의 집합입니다. 상태는 에이전트에게 환경에 대한 정보를 제공합니다. 행동(A): 에이전트가 각 상태에서 취할 수 있는 모든 가능한 행동들의 집합입니다. 행동을 통해 에이전트는 환경에 영향을 줄 수 있습니다. 보상 함수(R): 에이전트가 특정 상태에서 특정 행동을 했을 때 받게 되는 보상을 정의합니다. 보상 함수는 에이전트가 어떤 행동을 취해야 하는지 결정하는 데 중요한 기준이 됩니다. 상태 전이 확률(P): 에이전트가 현재 상태에서 특정 행동을 했을 때 다음 상태로 이동할 확률을 나타냅니다. 이는 환경의 동적인 특성을 모델링합니다. 이러한 요소들로 정책이 주어졌을 때 각 상태의 밸류를 평가하고 최적의 정책함수를 찾을 수 있습니다. 주로 테이블 방법론으로 하는데, 모든 상태 s 또는 상태와 액션의 결합 (s,a)에 대한 값을 모두 기록해놓고, 어떠한 행동 이후 그 내용을 업데이트하는 방식으로, 환경이 작고 액션의 개수가 적을때 가능한 방법론입니다.

반복적 정책평가((iterative policy evaluation)

강화학습에서 MDP(Markov Decision Process)를 완전히 알고 있다면, 반복적 정책 평가(iterative policy evaluation)를 사용하여 주어진 정책의 가치 함수를 계산할 수 있습니다. 반복적 정책 평가는 주어진 정책의 가치를 정확히 추정하기 위해 사용되며, 이는 정책 개선(policy improvement) 단계로 넘어가기 전에 필요한 과정입니다. 반복적 정책 평가의 과정은 다음과 같습니다. 초기화: 가치 함수 V(s)를 모든 상태 s에 대해 임의의 값(예를 들어, 0)으로 초기화합니다. 반복 업데이트: 모든 상태에 대해 가치 함수를 업데이트하는 과정을 반복합니다. 이를 위해 벨만 기대 방정식을 사용합니다. 벨만 기대 방정식 사용: V(s)=∑a π(a∣s)∑s′,r P(s′,r∣s,a)[r+γV(s′)] V(s): 상태 s의 가치 π(a∣s): 상태 s에서 행동 a를 선택할 정책의 확률 P(s′,r∣s,a): 상태 s에서 행동 a를 취했을 때 상태 s′으로 이동하고 보상 r을 받을 확률 r: 보상 γ: 할인율, 미래의 보상을 현재 가치로 환산하기 위한 계수 s′: 다음 상태 수렴 판단: 가치 함수의 변화가 특정 임계값(epsilon)보다 작아질 때까지 업데이트를 반복합니다. 즉, V new(s)−V old(s)∣<ϵ 이 될 때까지 계속합니다. 중요성 정책 평가: 이 과정을 통해 정책의 효율성을 정량적으로 평가할 수 있습니다. 즉, 주어진 정책이 얼마나 좋은지 가치 함수를 통해 알 수 있습니다. 정책 개선: 평가를 완료한 후, 개선 단계에서는 이 가치 함수를 기반으로 더 나은 정책을 찾을 수 있습니다. 이는 강화학습에서 정책 개선의 근간을 이룹니다. 반복적 정책 평가는 강화학습에서 정책을 평가하고 개선하기 위한 기본적인 도구로, 정책의 질을 체계적으로 평가하고 개선해 나가는 과정에서 중요한 역할을 합니다.

정책 이터레이션

정책 이터레이션(Policy Iteration)은 강화학습에서 정책(policy)의 품질을 개선하기 위해 사용되는 방법 중 하나입니다. 이 방법은 정책 평가(Policy Evaluation)와 정책 개선(Policy Improvement)의 두 단계를 반복적으로 수행하여 최적의 정책을 찾아내는 과정입니다. 쉽게 말하면 평가를 하고, 더 좋은 방향으로 개선하고의 반복입니다. 정책 평가 (Policy Evaluation) 이 단계에서는 현재 정책의 가치 함수를 계산합니다. 주어진 정책 하에서 각 상태의 가치를 반복적으로 업데이트하여, 해당 정책을 따랐을 때 얻을 수 있는 누적 보상의 기대값을 계산합니다. 이는 앞서 설명한 반복적 정책 평가 과정을 사용합니다. 정책 개선 (Policy Improvement) 가치 함수를 기반으로 현재 정책을 개선합니다. 각 상태에 대해 모든 가능한 행동을 고려하고, 그 중에서 가장 높은 가치를 생성하는 행동을 선택함으로써 정책을 업데이트합니다. π′(s)=argmax a ∑s′,r P(s′,r∣s,a)[r+γV(s′)] 여기서: π′(s)는 개선된 정책에서 상태 s에서 선택되어야 하는 최적의 행동입니다. P(s′,r∣s,a)는 상태 s에서 행동 a를 취했을 때 상태 s′로 이동하고 보상 r을 받을 확률입니다. V(s′)는 현재 가치 함수에서 상태 s′의 가치입니다. γ는 할인율입니다. 정책 이터레이션의 수렴 정책 이터레이션은 이 두 단계를 반복하면서 최적의 정책으로 수렴합니다. 즉, 더 이상 정책에 변화가 없을 때까지, 또는 개선된 정책으로부터의 가치 함수 변화가 미미할 때까지 이 과정을 반복합니다. 중요성 정책 이터레이션은 여러 강화학습 문제에서 최적의 정책을 찾기 위해 널리 사용됩니다. 이 방법은 정책을 체계적으로 평가하고 개선하는 과정을 통해, 복잡한 의사결정 문제에 대한 효율적이고 실용적인 해결책을 제공합니다. 이러한 정책 이터레이션을 했을 경우, 매번 다른 데 수렴할지, 수렴하는 지점이 최적의 정책이라는 보장이 있는지 의문을 가질수도 있지만, 여러 정리와 증명으로 정책 이터레이션을 실행했을 경우 최적의 정책에 수렴한다는 보장이 있습니다. 정리와 증명은 이번 장에서 모두 다룰수 없기에 다음을 기약하겠습니다.

밸류 이터레이션

밸류 이터레이션(Value Iteration)은 강화학습에서 최적의 정책을 찾기 위한 방법 중 하나로, 상태의 가치를 직접적으로 계산하고 업데이트하여 최적의 정책을 도출합니다. 이 방법은 정책 이터레이션과 비슷하지만, 각 상태에서 최대 가치를 주는 행동을 찾는 과정에서 정책 평가와 개선 단계를 병합하여 처리합니다. 밸류 이터레이션의 과정 초기화: 모든 상태의 가치를 임의의 값(예를 들어, 0)으로 초기화합니다. 가치 업데이트: 각 상태에 대해 가치 함수를 업데이트합니다. 이때, 모든 가능한 행동에 대해 계산하여 가장 높은 가치를 가지는 행동을 선택하고, 그 행동에 대한 가치를 현재 상태의 가치로 설정합니다. 가치 함수의 업데이트는 다음과 같은 식을 사용합니다: V(s)=max a ∑ s′,r P(s′,r∣s,a)[r+γV(s′)] 여기서 V(s)는 상태 s의 가치, a는 상태 s에서 선택할 수 있는 행동, P(s′,r∣s,a)는 상태 s에서 행동 a를 취했을 때 상태 s′로 이동하고 보상 r을 받을 확률, r는 보상, γ는 할인율입니다. 수렴 판단: 가치 함수의 변화가 어떤 임계값(예를 들어, 매우 작은 수)보다 작아질 때까지 업데이트를 반복합니다. 최적 정책 추출 가치 함수가 수렴한 후, 최적 정책을 추출하기 위해 각 상태에서 가치 함수를 최대화하는 행동을 선택합니다. 이렇게 하여 최종적으로 최적의 정책을 얻습니다. 밸류 이터레이션의 특징 효율성: 밸류 이터레이션은 각 상태의 가치를 독립적으로 업데이트하므로, 계산적으로 효율적입니다. 수렴성: 적절한 조건 하에서, 밸류 이터레이션은 최적의 가치 함수로 수렴하며, 이를 통해 최적의 정책을 도출할 수 있습니다. 단순성: 정책 평가와 정책 개선의 분리 없이 단일 과정에서 가치를 업데이트하고 최적의 정책을 결정할 수 있습니다. 밸류 이터레이션은 복잡한 의사결정 과정을 명확하고 효율적으로 해결할 수 있는 강력한 방법으로, 오로지 최적 정책이 만들어내는 최적 밸류 하나만 바라보고 달려갑니다.

Blog Home Back to Post List