강화학습 개요(2)
강화학습을 구현하기 위해 기본적인 용어를 먼저 알아보자.(2)
이전 포스팅에 이어 강화학습 개념을 살펴보겠다.
강화 학습의 목적은 보상을 최대화하는 의사결정 방법을 학습하는 것이라고 했다.
가치함수
보상을 최대화할 수 있는 행동이란
현재 State에서 이동할 수 있는(Grid World 예시) 다음 상태 중에서 가장 가치가 높은 상태로 이동할 수 있는 행동을 의미한다.
가치가 높다는 것은 그 state에 대한 반환값의 기대값이 높다는 것을 의미한다.
이 가치를 수식적으로 표현하기 위해 가치 함수라는 개념을 도입한다.
가치 함수 : 특정 상태에 대한 가치를 도출하는 함수. 상태를 입력으로 받고 그 상태의 가치를 출력한다. 일반적으로 가치 함수는 $V$로 표기한다.
즉, 다음 step의 보상이 모두 같더라도 그 다음 step의 보상이 더 클 가능성이 있는 곳으로, 즉 가치가 높은 곳으로 가기 위한 과정이다.
수식으로 표현하면 다음과 같다.
\(V(s) = E[R_{t+1}+\gamma R_{t+2}+{\gamma}^2 R_{t+3}+{\gamma}^3 R_{t+4} + \cdots|S_{t}=s]\)
현재 상태 $s$에서 Agent주변의 가치가 높은 상태로만 이동하면 목표에 도달할 수 있다.
최적의 행동을 가치 함수를 통해 표현하면 다음과 같다.
\(a^{*}=argmax_{a\in A}V(s')\)
수식의 의미는 현재 상태 $s$에서 취할 수 있는 행동들 A중에서
최적의 행동 $a^{*}$는 가장 높은 가치를 얻을 수 있는 다음 상태 $s’$으로 이동할 수 있는 행동 a를 의미한다.
Q function
가치 함수가 상태에 대한 가치를 도출했었다면,
큐 함수는 상태에서 특정 행동에 대한 가치를 도출합니다.
따라서 큐 함수는 입력으로 상태와 행동을 받고 해당 상태에서 행동에 대한 가치를 출력한다.
일반적으로 큐 함수는 $Q$라고 표기한다.
큐 함수를 수식으로 표현하면 다음과 같다.
즉, 현재 상태 $s$에서 행동 $a$를 통해 얻을 수 있는 반환 값들의 평균을 의미한다.
벨만 방정식
잘 학습된 가치 함수, 최적의 가치 함수가 있다면 상태마다 최적의 행동이 무엇인지 알 수 있고,
이를 통해 보상을 최대화 할 수 있다.
그렇다면 가치 함수는 어떻게 학습할 수 있을까?
가치 함수는 벨만 방정식을 이용해 업데이트한다.
이는 강화학습에서 상당히 주요한 부분을 차지하는 식이다.
벨만 방정식은 현재 상태의 가치함수와 다음 상태의 가치 함수 사이의 관계를 표현한 것이다.
\[v_{\pi}(S)=E_{\pi}[R_{t+1}+\gamma v_{\pi}(S_{t+1})|S_{t}=s]\]위 식에서 첫 번째 항인 $R_{t+1}$은 시간 t에서 취한 행동에 대한 보상 값이며,
두 번째 항인 $\gamma v_{\pi}(S_{t+1})$은 감가율을 적용한 가치 함수 값을 의미한다.
즉 현재 상태의 가치 함수를 다음 상태의 가치 함수로 표현한 다음, 기댓값으로 나타낸 것이다.
큐 함수 또한 벨만 기대 방정식으로 표현할 수 있다.
큐 함수에 대한 벨만 기대 방정식은 다음과 같다.
\[q_{\pi}(s,a)=E_{\pi}[R_{t+1}+\gamma q_{\pi}(S_{t+1},A_{t+1})|S_{t}=s,A_{t}=a]\]위 방정식으로 업데이트하다 보면 양변의 차이가 0으로 수렴하게 된다.
즉 현재 정책 $\pi$에 대한 참 가치 함수 혹은 큐 함수를 구할 수 있다.
하지만 강화학습의 목적은 최적의 의사결정을 하여 보상을 최대화하는 것이다.
그렇기에 현재 정책에 대한 참 가치 함수가 아닌 최적 가치 함수를 찾아야 한다.
최적의 가치 함수는 모든 가능한 정책 중 제일 높은 가치를 반환하는 가치 함수를 의미한다.
수식은 다음과 같다.
최적의 큐 함수는 다음과 같다.
\[q_{*}(s,a)=\underset{\pi}{max} q_{\pi}(s,a)\]최적의 가치 함수를 다음 상태의 가치 함수를 이용하여 식으로 나타내면 벨만 최적 방정식이 나타난다.
\[v_{*}(s)=\underset{a}{max} E[R_{t+1}+\gamma v_{\pi}(S_{t+1})|S_{t}=s,A_{t}=a]\]최적의 큐 함수에 대해서도 벨만 최적 방정식으로 나타내면 다음과 같다.
\[q_{*}(s,a)= E[R_{t+1}+\gamma \underset{a'}{max} q_{*}(S_{t+1},a')|S_{t}=s,A_{t}=a]\]마무리
가치 함수와 큐 함수를 벨만 기대 방정식과 벨만 최적 방정식으로 표현하는 방법을 살펴봤는데,
솔직히 무슨 식인지 이 식이 기하학적으로 어떻게 작동하는지 와닿지 않는다.
개요 포스팅이기도 하고, 이론적인 내용이지만 다른 포스팅에서 조금 더 이 식들의 의미나 실제 코드로는 어떻게 돌아가는지 다뤄야할 것 같다.
📣
포스팅에서 오류나 궁금한 점은 Comments를 작성해주시면, 많은 도움이 됩니다.💡
Leave a comment