한번에 state value 를 추정하는 방법 - 여기서 N은 방문 횟수가 된다.
근데 이러한 방법보단 한 번의 에피소드마다 업데이트하는 방법이 유용하다.
몬테카를로 방법은 한 에피소드마다 학습을 진행한다. 하지만 실제에서는 에피소드의 끝이 명확하지 않은 경우도 있고 심지어 에피소드가 끝나지 않는 경우도 있다.
이럴 경우에 학습을 어떻게 진행해야 할까?
이러한 동기에서 발생한게 Temporal difference이다.
MC에서는 라는 정의를 활용한다.
이 뜻은 무수히 많은 에피소드를 진행하여 G를 계산하면 v가 참 값으로 근접해간다는 뜻이다.
하지만 우리는 이 식 외에도 벨만 방정식으로 가치함수를 표현할 수 있다.
TD 방법은 위 식에 근거하여 가치함수를 추정한다. 물론 이때 값도 추정값이므로 '추정 값으로 추정한다'라는 꼴이라 이는 편향이 존재하게 된다.
우리가 업데이트에 활용하는 식이 이므로 업데이트도 다음과 같이 진행한다.
MC에선 Episodic MDP 만 가능하고 TD에선 Non-Episodic 상황도 적용 가능하므로 TD가 범용성 있다.
Non-Episodic 상황은 포트폴리오 관리 같은 경우가 있다.
가 TD에서 목표하는 값인데, 우리는 값을 업데이트에 적용한다. 즉, 정확한 값이 아닌 편향된 값으로 업데이트를 적용한다.
따라서 MC가 더 편향적이지 않은 방법이다.
MC에서는 한 에피소드가 끝나야 학습을 시작한다. 즉, 각 에피소드의 경로에 따라서 보상값이 극단에 위치할 수도 있다. 분산이 크다는 것은 보상의 평균값을 찾기 위해 더 많은 데이터가 필요하다는 것을 의미한다.
반면, TD는 한 스텝마다 학습을 진행한다. 이는 업데이트 하는 값에 대해 경로의 다양성이 없으므로 분산이 적다는 것을 의미한다.
여기까지 본 TD는 한 스텝을 간 후 업데이트를 진행한다. 이를 TD-zero라고 부른다.
반면 MC는 에피소드 종료까지 스텝을 간 후 업데이트를 진행한다.
MC는 편향성에서 유리하고 TD는 학습 시점과 분산에서 유리한데 이 둘의 중간은 없을까?
N개의 step을 간 이후 업데이트 하는 방식이 존재한다.