4. 마르코프 결정 과정: 지금만 보고 고르고, 앞날을 셈한다
자주 하는 실수와 요약
자주 하는 실수
| 실수 | 나온 문제 | 바로잡는 법 |
|---|---|---|
| 행동이 다음 상태를 바꾸는 문제에서 정책을 정하지 않고 「모레의 확률」을 셈하려 함, 또는 한 길만 셈 | 1 | 상태마다 무엇을 할지 먼저 정한다. 그러면 마르코프 체인이 되고, 거쳐 가는 상태마다 길을 더한다 |
| 한 스텝의 확률(승차장 → 대학가 0.63)이 두 스텝 뒤에도 남는다고 봄 | 2 | 다음 상태의 행동이 무엇인지까지 넣어 두 스텝을 셈한다. 정책은 모든 상태의 선택을 묶은 것이다 |
| 이번 차례의 보상이 0인 행동(되묻기)은 손해라고 봄 | 3 | 그 행동이 다음 상태를 어디로 옮기는지까지 셈한다 |
| 토큰 단위 MDP 에도 세상이 뽑는 무작위가 있다고 봄 | 3 | 다음 상태는 고른 토큰을 붙인 문장 하나다. 무작위는 정책에서만 나온다 |
| 기록을 다 들고 있어야 「지금만 보는」 셈을 할 수 있다고 봄 | 4 | 앞날에 쓰일 것만 남긴 요약이 상태다. 규칙이 바뀌면 요약의 칸도 바뀐다 |
| 같은 구역이면 앞날도 같다고 봄 | 5 | 끝나는 규칙이 지나온 손님 수를 기억하면(여덟 명이면 퇴근) 남은 손님 수를 상태에 넣는다 |
| 오래 일했으니 이제 끝날 차례라고 봄 | 5 | 손님마다 같은 확률로 끝나면 지나온 손님 수는 앞날과 상관없다 |
| 길이 제한이 있으면 언어 모델의 상태가 마르코프가 아니라고 봄 | 6 | 쓴 토큰이 모두 상태에 있으므로 쓴 개수와 남은 개수도 상태에서 읽힌다 |
| 잘라 낸 문맥도 상태라고 봄 | 6 | 앞날에 쓰일 과거가 입력 밖에 남으면 마르코프 상태가 아니다. 쓰일 것을 요약해 입력에 남긴다 |
| 할인을 빼기로 셈함 | 7 | 할인은 한 스텝마다 같은 수 |
| 할인한 리턴은 끝까지 다 받는 리턴보다 늘 작다고 봄 | 8 | 스텝마다 1 − |
| 9 | 300스텝 뒤에는 0.99²⁹⁹ = 0.050 이다. 끝나는 에피소드에서 |
|
| 한 상태의 가치는 정책과 상관없이 하나라고 봄 | 10 | 가치는 정책을 정해야 정해진다. 고르기 전의 값은 행동 가치들을 정책의 확률로 섞은 평균이다 |
| 이번 보상이 큰 행동이 더 나은 행동이라고 봄 | 11 | 행동 가치로 견준다. 이번 보상만 보는 것은 |
| 상태의 가치를 가장 흔한 행동의 값으로 읽음 | 12 |
요약
상태와 행동과 행동에 따라 달라지는 전이 확률, 그리고 보상으로 적은 문제가 마르코프 결정 과정(MDP)이다. 마르코프 체인에 「행동을 고르는 손」을 더한 것이고, 정책을 정해 두면 다시 전이 행렬이
MDP는 지금 상태가 앞날의 셈에 필요한 과거를 다 담고 있다는 마르코프 성질에 기댄다. 마르코프 성질은 무엇을 상태로 잡았느냐에 달린 성질이라, 모자라면 (구역, 남은 손님 수)처럼 상태를 넓혀 되찾는다. 프롬프트와 지금까지 쓴 토큰 전부를 상태로 잡은 언어 모델은 늘 마르코프이고, 문맥을 잘라 내거나 세상의 일부만 볼 때 마르코프 성질이 깨진다.
앞으로 받을 보상을 할인율
상태에서 정책을 따를 때 리턴의 기댓값이 가치함수
막힌 곳
이 장에서 가치를 재는 방법은 하나뿐이었는데, 가치를 알고 싶은 상태에서 에피소드를 끝까지 돌리고, 리턴을 모아 평균 낸다. 시장의 두 행동 가치 차이 0.34를 가리는 데 하루 200만 번이 들었고, 풀이의 자리 하나의 가치를 표준오차 0.04쯤으로 재는 데 이어 쓰기 100번이 들었다. 그런데 백업 나무를 다시 보면, 한 자리의 가치는 바로 아래 자리들의 가치와 이어져 있었다. 에피소드를 다 돌려야만 가치를 알 수 있을까?