Value Function(가치함수)
value function(가치함수) : agent가 계산하는 값으로 각 state가 얼마나 가치있는지를 계산하는 함수이다.
정책 π를 따를 때, 상태 s로부터 예상되는 장기 보상의 누적값이다.
여기서 중요한 점은 "장기 보상의 값"이라는 것이다.
이는 reward(보상)과는 다른 의미이다.
Reward : 즉각적인 보상
ex) 야구 게임을 할 때 희생 번트를 하는 것은 그 번트를 하는 타자가 1루에서 아웃 될 확률이 매우 높다. 그래서 번트를 하는 action은 낮은 reward를 가지게 될 수 있다.
Value Function : 장기적 관점의 누적 보상 (가치 판단)
ex) 희생 번트는 reward는 낮을 수 있지만 장기적으로 보았을 때 출루되어있는 선수들이 진로할 수 있고, 득점을 할 확률이 높아지게 된다. 따라서 장기적으로 보았을 때는 번트를 하는 action이 다르게 가치가 매겨질 수 있다.
Value Function은 두 가지로 나눌 수 있다.
- State Value function (상태 가치 함수) : $ V^{\pi }(s) $
- agent가 정책 π를 따를 때 state S의 가치 (상태 자체의 가치)
- Action Value Function (행동 가치 함수) : $ q^{\pi }(s, a) $
- Agent가 정책 π를 따를 때 상태 state S 에서 action a를 취하는 것의 가치 (행동의 가치)
상태가치함수와 행동가치함수는 서로 상호보완된다.
행동 가치 함수를 알아내기 위해서는 next state의 value와 current state를 알아야 한다.
그렇기 때문에 state value 를 알아야 action value를 알 수 있게 된다.
value function을 더 알아보기 전에 reward와 return(이득) 에 대해서 조금 더 알고있어야 한다.
보상(Reward)과 이득(Return)
Return(이득) : 보상값들의 누적 합
return을 다음과 같은 식 $ G_{t} $ 으로 나타낼 수 있다.
$$ G_{t}=R_{t+1} + R_{t+2} + R_{t+3} + ... + R_{T} $$
$ G_{t} $ : time t 이후의 reward의 총합
T : final time sleep
$ G_{t} $ 는 항상 랜덤하다.
그 이유는 MDP의 dynamics가 stochastic 하기 때문이다.
그럼 agent는 return값을 통해 목표를 수립할 수 있다.
return(이득)이 reward의 총 합이므로 agent는 return 값이 최대가 되는것을 목표로 둘 수 있게 된다.
$$ \mathbb{P}[G_{t}]=R_{t+1} + R_{t+2} + R_{t+3} + ... + R_{T} $$
return은 Episodic Task, Continuing Task 에 따라 다르게 책정 된다.
하지만 그 식은 하나의 식으로 통합될 수 있다.
Episodic Task 에서의 Return은 다음과 같이 정의될 수 있다.
$$ G_{t}=R_{t+1} + R_{t+2} + R_{t+3} + ... + R_{T} $$
각 episode는 terminal state로 종료된다. 그렇기 때문에 각 episode는 독립적이라고 할 수 있다.
그렇기 때문에 각 episode가 끝날 때 마다 return이 계산되고, 유한한 값이 된다.
체스 게임이나 최단경로 길 찾기 같은 경우 episodic task 라고 할 수 있다.
Continuing Task 에서의 Return은 다음과 같이 설명된다.
Continuing Task은 환경과의 interaction이 break 되지 않고 지속되는 것을 의미한다.
그렇기 때문에 Continuing Task은 terminal state가 없고, return값이 무한으로 된다고 할 수 있다.
$$ G_{t}=R_{t+1} + R_{t+2} + R_{t+3} + ... = \infty $$
이 식을 Finite Task와 통합할 수 있다.
이때 할인율(discount rate, $ \gamma $)을 사용하게 된다.
$ G_{t} = R_{t+1} + \gamma R_{t+2} + \gamma ^{2}R_{t+3} + \gamma ^{3}R_{t+4} + ... $
$ = R_{t+1} + \gamma (R_{t+2} + \gamma R_{t+3} + \gamma ^{2}R_{t+4} + ...) $
$ = R_{t+1} + \gamma G_{t+1} $
Continuing을 Finite ($ 0 \leq \gamma < 1 $) Task로 전환할 수 있음을 위 식을 통해 확인할 수 있다.
그래서 Episodic Task, Continuing Task의 Reward 식을 통합하면 다음과 같이 제귀적으로 정리할 수 있다.
$$ G_{t}=\sum_{k=0}^{\infty }\gamma R_{t+k+1} $$
식 $ G_{t} = R_{t+1} + \gamma G_{t+1} $에서 $ \gamma $ 값을 조절하면서 Return 값을 조절할 수 있음을 알 수 있다.
이를 Discounting 효과라고 한다.
- $ \gamma $ = 0일 때
- $ G_{t} = R_{t+1} $ 이므로 agent는 당장의 reward만 계산하면 된다.
- 근시안적 agent
- $ \gamma $ = 1일 때
- $ G_{t}=R_{t+1} + R_{t+2} + R_{t+3} + ... + R_{t+k} $ 이므로 현재의 reward와 미래의 reward를 똑같이 간주하게 된다.
- agent는 미래의 reward를 더 강하게 고려하게 된다.
- 원시안적 agent
$ \gamma $는 하이퍼파라미터 이다.
여기까지 Reward와 Return 값의 관계에 대해 알아보았다.
그렇다면 Return값을 통해서 Value Function(가치함수)를 재정의 할 수 있게 된다.
Return을 통한 Value Function 정의
Value Function은 주어진 state에서 agent가 기대 가능한 future reward (expected return)을 평가하는 함수라고 할 수 있다.
$$ \nu (s) = E[G_{t}|S_{t}=s] $$
$ \nu (s)$ : value function
식을 해석하면 "agent가 state s로 갔을 때 어떤 $ G_{t} $ 를 얻을 수 있는가" 에 대한 의미이다.
그리고 Value Function은 agent의 경험으로부터 학습 가능하다.
이 value function을 통해서 강화학습의 고질적인 문제젬들을 해결할 수 있게 된다.
Value Function 으로 미래의 reward를 예측
- 강화학습에서는 보상이 즉시 주어지지 않는다. 수십 step이 지난 후 reward가 주어질 수 있다. 하지만 value function으로 current state와 next state의 value를 계산할 수 있게 된다.
- reward, policy, environment가 모두 stochastic한 상황들을 value function을 통해서 계산할 수 있게 된다
- Value Function은 모든 가능한 미래 reward를 평균화 낼 수 있게 된다.(서로 다른 policy를 평가 가능)
정리하자면 강화학습의 궁극적인 목표는 좋은 Policy를 학습하는것이고, 그 수단으로 Value Function이 쓰이게 되는 것이다.
그렇다면 return으로 행동가치함수를 재정의 해보면
$$ q_{\pi }(s, a)\doteq E_{\pi }[G_{t}|S_{t}=s, A_{t}=a] $$
: time t, state s 에서 action a를 했을 때의
Value Function 예시
value function이 실제로 어떻게 계산이 되는지 student markov chain을 통해서 알아보자.
일단 Class1 에서 시작되고, Sleep이 end point이다.
$ \gamma = 1 $ 이라고 가정할 것이다.
우리는 value function으로 각 state들의 가치들을 판단하여 최적의 policy를 찾고자 한다. 그것이 목표라고 할 수 있다.
그러기 위해서는 어떤 action을 해야하는지 정하는 것이 중요하다고 할 수 있다.
그 action을 판단하기 위해서는 각 state들의 기댓값을 구해야 한다.
그러기 위해 Class 1의 기댓값을 구하는 과정을 알아보자.
일단 Class 1에서 시작하는 모든 가능한 episode들을 알아봐야 한다.
식 $ G_{t} = R_{t+1} + \gamma R_{t+2} + \gamma ^{2}R_{t+3} + \gamma ^{3}R_{t+4} + ... $ 에서
Class1에서의 return값인 $ G_{1} $ 값을 알고자 할 때,
$$ G_{1} = R_{2} + \gamma R_{3} + ... + \gamma ^{T-2} R_{T} $$
식을 통해서 각 episode들의 return값을 알아볼 수 있게 된다.
가능한 episode들의 예를 들어본다면
Episode 1 : C1 C2 C3 Pass Sleep
Episode 2 : C1 C2 C3 Pub C2 Sleep
Episode 3 : C1 FB FB C1 C2 Pub C1 FB FB FB C1 C2 C3 Pub C2 Sleep
이렇게 예를 들어볼 수 있을 것 같다.
각 episode들의 value $ \nu $를 구해보자.
$ \nu _{1} $ = (-2) + (-2)*1/2 + (-2)*1/4 + 10*1/8 = -2.25
$ \nu _{1} $ = (-2) + (-2)*1/2 + (-2)*1/4 + 1*1/8 + (-2)*1/16 + 0*1/32 = -3.5
$ \nu _{1} $ = (-2) + (-1)*1/2 + (-1)*1/4 + (-2)*1/8 + ... = -3.2
agent는 모든 가능한 episode들을 시행한 후 각 return들의 평균을 구할 것이다.
평균을 구하게 되면 그것이 Class 1의 기댓값이 된다.
'Data Science > 강화학습' 카테고리의 다른 글
[강화학습] 동적 계획법 - 반복 정책 평가 (Iterative Policy Evaluation) (7) | 2024.10.12 |
---|---|
[강화학습] 벨만 방정식 (Bellman equation) (7) | 2024.10.04 |
[강화학습] 결정론적 vs 확률론적 환경 (Deterministic vs Stochastic Environment) (2) | 2024.10.02 |
[강화학습] 결정론적 vs 확률론적 정책 (Deterministic vs Stochastic Policy) (1) | 2024.10.02 |
[강화학습] MDP(마르코프) 환경과 동역학(dynamics) (3) | 2024.10.01 |