이 글은 "[개정판]파이썬과 케라스로 배우는 강화학습"(https://book.naver.com/bookdb/book_detail.nhn?bid=16315117)을 참고하여 정리/작성하였습니다.
강화학습이란, 순차적으로 행동을 계속 결정해야 하는 문제를 푸는 것. MDP(Markov Decision Process)는 이런 문제를 수학적으로 표현한다. MDP의 구성요소는 "상태(State)", "행동(Action)", "보상 함수(Reward Fuction)", "상태 변환 확률", "할인율"이다.
상태는 "에이전트 자신이 처한 상황에 대한 관찰"이라고 할 수 있다. 행동은 말 그대로 어떤 상태에서 에이전트가 취할 수 있는 요소이다. 상태를 바꾸고 어떤 보상을 받을지 확률적으로 선택할 수 있다. 보상함수는 시간 t일 때 상태가 s이고 행동이 a일 경우, 받을 보상에 대한 기댓값 E이다. 기댓값이란 어떤 정확한 값이 아니라 나오게 될 숫자에 대한 예상이다. 상태 변환 확률은 상태의 변화에는 확률적인 요인이 들어간다는 것을 수학적으로 표현한 것이다. 상태 변환 확률 P는 상태 s에서 행동 a를 취했을 때 다른 상태 s'에 도달할 확률이다. 이 값은 보상과 마찬가지로 에이전트가 알지 못하는 값으로서 에이전트가 아닌 환경의 일부이다. 그래서 환경의 모델이라고도 부른다. 할인율은 미래의 보상의 가치는 현재의 보상의 가치보다 낮다는 것을 수학적으로 표현한 것이다. 정책은 "모든 상태에서 에이전트가 할 행동"이다. 에이전트가 강화학습을 통해 학습해야 하는 것은 수많은 정책 중에서 최적 정책이다.
문제를 MDP로 정의했지만, 어떻게 최적 정책을 찾는가? 현재 상태에서 앞으로 받을 보상을 고려해서 선택할 수 있어야 한다. 가치 함수는 "현재 상태로부터 정책을 따라갔을 때 받을 것이라 예상되는 보상의 합"이다. 에이전트가 좋은 정책을 판단하는 기준이 가치 함수다. 가치 함수는 상태가치함수(State value-function)와 행동가치함수(Q함수/Q Function)가 있다.
벨만 방정식이란, 현재 상태의 가치함수와 다음 상태 가치함수의 관계식을 말한다. 더 좋은 정책을 찾아가다 보면 최적을 정책을 찾을 것이다. 최적의 정책은 최적의 가치함수를 받게 하는 정책이며, 그때 가치함수 사이의 관계식이 벨만 최적 방정식이다.
"강화학습은 벨만 방적식을 어떻게 풀어나가느냐의 스토리입니다."