AI/강화학습

벨만 기대 방정식, 벨만 최적 방정식

luke12 2022. 4. 25. 15:10

벨만 기대 방정식, 벨만 최적 방정식

벨만 기대 방정식

기대값을 이용하면 바로 참값을 계산하는 것이 아니라 for문을 통해서 점점 참값으로 유추해 갈 수 있다.

기대값을 계산하기 위해 정책과 상태 변환 확률을 포함하여 계산이 가능한 벨만 기대 방정식으로 나타낼 수 있다.

$V_{\pi}(s)=E_{\pi}[R_{t+1}+\gamma V_{\pi}(S_{t+1})|S_{t}=s]$

$V_{\pi}(s)=\sum_{a\in A}^{}\pi(a|s)q_{\pi}(s,a)$

$V_{\pi}(s)=\sum_{a\in A}^{}\pi(a|s)(r(s,a)+\gamma\sum_{s'\in s }P_{ss'}^{a}V_{\pi}(s'))$


벨만 최적 방정식

최적의 가치함수는 참가치함수와 다르다. 수 많은 정책 중 가장 높은 보상을 얻는 정책을 따르는 가치함수를 최적의 가치함수, 어떤 정책을 따라 움직였을 때 받는 보상의 참값을 참가치함수라고 한다.

기대값의 계산 가능한 현태의 벨만 기대 방정식은

$V_{k+1}(s)\leftarrow \sum_{a\in A}^{}\pi(a|s)(r(s,a)+\gamma V_{k}(s'))$

강화학습 문제는 위의 식을 통해 현재의 참가치함수를 구하는 것이 아닌 최적정책을 찾아 현재의 정책을 업데이트해야 한다. 최적의 정책은 가치함수를 통해 알 수 있고, 가장 큰 가치함수를 주는 정책이 최적 정책이다.

최적 가치 함수는

$V_{*}(s)=\underset{\pi}{\textrm{max}}[v_{\pi}(s)]$

최적의 큐함수는

$q_{*}(s,a)=\underset{\pi}{\textrm{max}}[q_{\pi}(s,a)]$

최적 정책은 상태 s에서 가장 큰 큐함수를 갖는 행동을 하는 것이고

$\pi_{*}(s,a)=\left\{\begin{matrix}
1\textrm{ if a = argmax}_{a\in A }q_{*}(s,a) \\0\textrm{ otherwise }
\end{matrix}\right.$이다.

큐함수 중 최대를 선택하는 최적 가치함수

$V_{*}=\underset{\pi}{\textrm{max}}[q_{}(s,a)|S_{t}=s, A_{t}=a]$

큐함수를 가치함수로 고쳐서 표현하면

$V_{*}=\underset{\pi}{\textrm{max}}E[R_{t+1}+\gamma V_{}(S_{t+1})|S_{t}=s, A_{t}=a]$

이를 벨만 최적 방정식이라고 한다.

큐함수에 대한 벨만 최적 방정식은

$q_{*}(s,a)=E[R_{t+1}+\gamma \underset{a'}{\textrm{max}}q_{}(S_{t+1},a')|S_{t}=s, A_{t}=a]$

벨만 기대 방정식과 벨만 최적 방정식을 이용해 MDP로 정의된 문제를 계산으로 푸는 방법이 다이나믹 프로그레밍이다.

'AI > 강화학습' 카테고리의 다른 글

다이나믹 프로그래밍  (0) 2022.04.26
가치함수와 큐함수  (0) 2022.04.15
MDP  (0) 2022.04.13