Value Function

State-value function

agent가 state 1에 있다고 가정을 하자. 거기서부터 쭉 action을 취해가면서 이동할 것이고, 그에 따라서 reward를 받는 것들을 기억할 것이다. 끝이 있는 episode 라고 가정했을 때 episode가 끝났을 때 state 1에서부터 받았던 reward를 discount factor를 적용해 다 더할 수 있다. 

Return에 대한 식은 위와 같고, 이 return의 expectation이 state-value function이다. 그리고 이것은 아래와 같이 표현한다.

[State=s 일때, return의 기대값]

즉, 어떤 상태 S의 가치이다. 그렇다면 value function을 어떻게 구할 것인가? agent 가 다음으로 갈 수 있는 state들의 가치를 보고서 높은 가치의 state로 이동하게 되는데, 어떻게하면 효율적이고 정확한 value function을 구할 지가 중요한 문제가 된다. 예를들어 주사위를 던지듯이 계속 던지면서 expectation을 구할 수 있을 것이다. 하지만 거의 무한번을 던져야 true expectation값을 알 수 있듯이 value function 또한 무한 try 해봐야 알 수 있을 것이다. 


 전에 알아봤던 Policy에 대해서도 생각을 해보자. 위에는 전혀 policy에 대한 고려가 되지 않았다. 만약 agent 가 어떤 행동정책을 한다고 가정해보자. Random으로 움직일 때와 비교를 해보면, 각 state들은 완전히 다른 경험을 하게 될것이다. 각 policy마다 value function이 달라질수 있으므로, 그 value function을 최대로 하는 policy를 찾을 수 있을 것이다. policy에 대한 value function은 다음과 같다.


[state=s 이고 policy=π 일 때, return의 기대값]


Action-value function

MDP에서 action이란 무엇인지에 대해 정의를 했다. action이란 어떤 state에서 할 수 있는 행동들을 말하는데, 보통 모든 state에서 가능한 행동은 모두 같다. 위에서 정의를 내린 value function에 대해서 생각을 해보면, state의 가치라는 것은 그 state에서 어떤 action을 했는지에 따라 달라지는 reward들에 대한 정보를 포함하고 있다. 또한 agent 입장에서 다음 행동을 다음으로 가능한 state들의 value function으로 판단하는데, 그러려면 다음 state들의 대한 정보를 모두 다 알아야하고 그 state로 가려면 어떻게 해야하는 지도 알아야한다.

따라서 state에 대한 value function말고 action에 대한 value function을 구할 수 있는데 그것이 바로 action value function이다. action value function을 이용하면 state value function과는 달리 어떤 행동을 할지 action value function의 값을 보고 판단하면 되기 때문에, 다음 state들의 value function을 알고 어떤 행동을 했을 때 거기에 가게 될 확률을 알아야하는 일도 없어진다. action-value function에 대한 정의는 다음과 같다.


[state=s, action=a, policy=π 일 때, return의 기대값]


어떤 state s에서 action a를 취할 경우의 받을 return에 대한 기대값으로서 어떤 행동을 했을 때 얼마나 좋을 것인가에 대한 값이다. 위에서 언급한 이유로 앞으로 value function은 action-value function을 사용할 것이다. Action-value function은 다른말로 Q-value로서 q-learning이나 deep q-network같은 곳에서 사용되는 q라는 것을 의미한다.




+ Recent posts