작성
·
195
·
수정됨
1
2.7 TD와 SARSA를 공부하던 중 이해가 가지 않는 부분이 있어 질문 드렸습니다!
상태가치함수 V(t)는 반환값에 대한 기댓값이고 다이내믹 프로그래밍은 model-based이기 때문에 전체 상태와 가치를 다 안다는 전제하에 V(t)를 구할 수 있습니다. MC에서는 에피소드를 여러번 반복해서 실행하고 누적된 반환값을 에피소드 횟수로 나누어서 V(t)를 구합니다.
그런데 여기에서 이해가 안되는 것이 TD에서 V(t+1)을 구하는 방법입니다. 다이내믹 프로그래밍과 같이 model-based인 것도 아니고 MC처럼 에피소드가 끝날때까지 계속 구하는 것도 아닌데 어떻게 상태 가치 함수를 구할 수 있는 건가요? 상태가치함수는 반환값에 대한 기댓값이라고 이해했는데, 반환값은 에피소드가 끝날때까지 실행해야 알 수 있는 것 아닌가요?
질문 봐주셔서 감사합니다!
답변 1
0
안녕하세요 정윤상님.
강의를 수강해주셔서 감사합니다.
정윤상님이 말씀하신 바와 같이 상태가치함수는 전체 환경에 대한 가치를 측정할 수 있습니다.
모든 정보를 알고 있는 상황에서는 다이내믹 프로그래밍과 같은 기법으로 상태가치함수를 계산할 수 있지만, 정보가 부족한 상황에서 사용할 수 있는 방법이 바로 MC입니다. 하나의 경로를 끝까지 가보고 반환값을 계산하고, 이 과정을 무한 반복하다보면 참상태가치함수(정확한 상태가치함수)를 구할 수 있다는 통계적인 방법론입니다.
TD는 한 스텝만 가보고 가치를 계산하는 것입니다. 이 방법 또한 MC와 마찬가지로 통계적인 방법론입니다. 한 스텝만 가서 계산하는 과정을 무한 반복하는 것입니다. 언제까지 반복해야 하나면 참상태가치함수와 TD로 구한 상태가치함수의 차이가 0이 될때까지 입니다.
충분한 답변이 됐는지 모르겠네요.
이해가 안가신다면 DQN 알고리즘까지 읽어보시고, 처음부터 다시 반복해서 보시는 것을 추천드립니다.
강화학습이 한 번에 이해할 수 있는 쉬운 내용은 아닙니다.
감사합니다.