본문 바로가기

Data Analysis | AI/강화학습

[Lec2] Value Function과 Bellman Equation

반응형

이 포스팅은 다음 자료들을 정리했음을 알려드립니다. 혹시 저작권 문제가 있으면 바로 삭제하도록 하겠습니다.

강화학습 한글자료(PDF) : https://www.gitbook.com/book/dnddnjs/rl/details.

파이썬과 케라스로 배우는 강화학습 : http://wikibook.co.kr/reinforcement-learning/ 

Reinforcement Learning: An introduction: http://www.incompleteideas.net/book/bookdraft2017nov5.pdf



Value Function과 Bellman Equation

가치함수(Value function)와 벨만 방정식(Bellman equation)은 강화학습에서 매우 중요한 수식이다. 

우선 이들을 이해하기 위해 앞선 내용에 대해 다시 짚고 넘어갈 필요가 있다. 

MDP로 문제를 정의하고 이를 학습하는 방법을 알아 보았는데, 이때 학습하는 방법을 다시 리마인드 해보면, 아래 그림과 같이 에이전트는 환경으로부터 상태()와 보상()을 받게 되고 에이전트는 정책에 따라 행동()을 하게 된다. 

환경은 에이전트의 행동에 대해 새로운 상태()와 보상() 주게 되고 이를 통해 Agent가 스스로 정책을 업데이트 하는 과정을 통해 보상이 최대화 되는 최적 정책을 학습하게 된다.


이를 좀더 자세히 살펴보면 에이전트는 각 상태에서 보상을 극대화 하기 위한 정책, 즉, 앞으로 받을 것으로 예상되는 보상의 기댓값을 고려하여 행동을 선택하게 된다. 여기서 앞으로 받을 것으로 예상되는 보상의 기댓값을 가치함수(value function)로 표현한다.


가치함수(value function)

가치함수는 크게 State-value function Actin-value function 두가지로 구분된다.

State-value function

에이전트가 t시점에 s에서 행동 a 선택하고 리워드 r을 받는것을 매 시점마다 반복해나가면 그때 받았던 일련의 보상의 합을 구하면 다음과 같다.

이때 우리는 앞서 감가율이란 개념을 통해 미래의 보상보다 현재의 보상이 더중요 하다는 것을 배웠다. 따라서 여기서도 미래의 시점에 감가율을 곱해 주어 다음과 같이 나타낸다.

위 식의 기댓 state-value function으로 어떤 상태 S의 가치로 해석한다. 이렇게 구해진 state-value function을 통해 에이전트가 다음으로 갈 수 있는 state들의 가치를 보고서 높은 가치의 state로 이동하게 된다.

여기서 t+2시점부터의 보상은 감가율을 통해 묶어주면 묶여진 텀은 t+1시점부터 받을 보상의 기댓값으로 이는 곧 t+1시점에서의 가치함수로 표현 할 수 있다.


Action-value function (Q-Function)

상태 가치함수는 어떤 상태가 좋은 상태인지는 알려주지만 그 상태로 가는 방법인 행동에 대해서는 평가하지 않는다. 따라서 가치함수를 구하고 높은 가치를 가지는 상태로 가기위한 행동은 따로 고려하여야 하는데, 이를 동시에 하기위해 상태와 행동을 동시에 고려한 Action-value function을 사용한다. Action-value function은 다른말로 Q-function이라고 부르기도 한다.

Q-function은 벨만 기대 방정식의 형태로 나타낼수 있고 상태가치함수에 조건절에 행동이 고려된다는 점만 다르다.

벨만 방정식(Bellman equation)

벨만 기대 방정식(Bellman expectation equation)

다시 벨만 방정식으로 돌아오면 앞서 상태가치함수에 가치함수는 정책을 고려하지 않았지만, 에이전트는 각 상태에서 정책에 따라 행동을 해야 하므로 위의 식을 정책을 고려한 가치함수로 변환하여야 한다.

이렇게 변환된 정책을 고려한 가치함수가 바로 벨만 기대 방정식(Bellman Expectation Equation)이다. 이 벨만 기대 방정식은 현재 상태의 가치함수와 다음 상태의 가치함수 사이의 관계 방정식이다.


벨만 최적 방정식(Bellman Optimality equation) 

벨만 기대 방정식을 계산을 통해 수렴하여 얻은 은 현재 정책 π에 대한 '참 가치함수'로써 정해진 정책에 따라 움직일때 받게 되는 보상의 참값이다. 

반면 '최적 가치함수'는 수많은 정책 중 가장 높은 보상을 주는 최적의 가치함수이다. 이 최적의 가치함수를 찾기 위해서는 단순히 현재 에이전트의 정책에 대한 가치함수를 구하는 것이 아니라 현재의 정책을 최적의 정책으로 업데이트 해 나가야 한다.

이 최적 정책으로의 업데이트를 위해서 우리는 가치함수를 통해 어떤 정책이 더 좋은 정책인지 평가 한다. 따라서 모든 정책에 대해 가장 큰 보상을 기대할 수 있는 가치함수를 찾는다.

Q-function역시 같은 방식으로 표현할 수 있다.

최적의 가치함수를 구하는 방법은 뒤에서 배운다. 일단, 최적의 가치함수를 찾았다면, 이때 최적 정책은 최적 Q-function을 통해 가장 보상 기댓값이 높은 행동을 하는 것으로 다음과 같이 표현한다.


마지막으로 앞서 소개한 최적 가치함수 두 식을 각각 가치함수로 고쳐 표현하면 다음과 같다.

이때, 첫번재 수식을 벨만 최적방정식, 두번째 수식을 큐함수에 대한 벨만 최적 방정식이라 한다.




[강화학습/이론] - [Intro] Reinforcement Learning

[강화학습/이론] - [Lec1] Markov Decision Process

[강화학습/이론] - [Lec2] Value Function과 Bellman Equation






반응형

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

[gym] Env-Intro: FrozenLake-v0  (0) 2017.12.16
[Lec1] Markov Decision Process  (3) 2017.12.06
[Intro] Reinforcement Learning  (3) 2017.11.29