AI

RL : Value Function & Model

월곡동로봇팔 2020. 9. 6. 17:06

이전 포스팅에서는 강화학습의 Element들을 살펴보고, 이들의 정의와 서로의 관계들을 포스팅하였다.

이번 포스팅에서는 가치를 정하는 Value Function과 실제로 agent가 행해야 할 방향과 보상을 어느정도로 할 것인지를 나타내는 Model에 대해 알아볼 것이다.


Value Function

앞에서 Return은 어떤 policy들의 집합을 담당하는 한 의사결정단계의 가치를 평가하는 지표로 쓰인다고 했다.

그럼, 각 state의 가치는 어떻게 판단 할 수 있을까? 어떤 상태의 가치를 나타내기 위해 Value Function이라는 것을 사용한다. 
Value Function은 순전히 Reward를 계산하는 방법이다. Value Function은 V, Q 두 종류가 있다.

1. State-Value Function

먼저 V는 state value function이라고 하며, 어떤 state(현재 or 미래)의 가치를 표현한다. 즉, V(s)는 s라는 상태로부터 여러 policy가 있을텐데, 각각의 policy를 했을 때, 얻어지는 return의 평균값이다. 즉, State-Value Function은 위의 그림처럼 Discounted Factor를 적용한 Reward를 총합한 것이다.

 

좀 더 쉽게 표현하면, V(s)는 현재 상태에서 시작해서 얼마나 많은 return을 얻게될 지 예상한 값 == 순전히 현재 State가 얼마나 좋은지에 대한 return이다.

2. Action-Value Function

Action-Value Function 의 필요성

Action-State Function을 규명해야하는 이유

하지만, 각각의 state를 표현하는 value 으로는 모두를 설명하기에는 어렵다. 현재의 state 뿐만 아니라, action이 그 다음 state에 영향을 주기 때문이다. 따라서 현재 state에서 어떤 action 을 취할 때, action을 나타내는 function도 규명을 해주어야 한다.


Action value function, 비슷한 개념으로 Q function 이 있는데, 이는 어떤 state와 그 상태에서 선택한 action의 가치를 알려준다. Q(s,a)는 s라는 상태에서 a라는 행동을 취한 뒤에, 주어진 policy를 따라 행동했을 때 얻어지는 return의 기댓값이다. 즉, Q(s,a)는 현재 상태에서 선택한 행동을 취하면 결과적으로 얼마나 많은 return을 얻게 될지 예상한 값이다.

 

정리하자면, 위와 같은 식을호 Value Function 을 표현할 수 있다.

여기까지 MDP가 어떻게 표현되는지 알아봤고, 이제 MDP를 풀어서 최적의 policy를 얻는 방법에 대해 알아보겠다.


Model

Model은 Reward Function과 Transition Probability Function으로 나타난다.

Policy & Transition Probability (인용)

Policy vs Transition probability 잠시 혼동될 수 있는 개념을 짚고 가겠습니다. Policy는 state s에서 action a를 취할 확률이라 했습니다. 근데 비슷한 개념을 앞에서 다루었는데요, state s에서 다음 state s'로 변할, 전이할 확률을 transition probability라고 했습니다. 앞서 말씀드린 transition probability가 MDP에서는 action이란 개념이 추가되어 다음과 같이 쓸 수 있습니다.

 

 

 이제 Policy와 Transition probability를 다음과 같이 구분할 수 있습니다.

 

 Policy : state s에서 action a를 할 확률

 Transition probability : state s에서 action a를 해서 state s'로 전이할 확률 

 

transition probability는 state s에서 policy에 의해 action a까지 한 뒤에 그 결과로 state s'로 변할 확률이라고 이해하시면 편할 것 같습니다. 

 

또한, reward도 이제는 state의 변화가 action에 따라 달라지므로, 다음과 같이 action a를 추가한 함수가 됩니다.