4. 마르코프 결정 과정: 지금만 보고 고르고, 앞날을 셈한다

자주 하는 실수와 요약

자주 하는 실수
실수 나온 문제 바로잡는 법
행동이 다음 상태를 바꾸는 문제에서 정책을 정하지 않고 「모레의 확률」을 셈하려 함, 또는 한 길만 셈 1 상태마다 무엇을 할지 먼저 정한다. 그러면 마르코프 체인이 되고, 거쳐 가는 상태마다 길을 더한다
한 스텝의 확률(승차장 → 대학가 0.63)이 두 스텝 뒤에도 남는다고 봄 2 다음 상태의 행동이 무엇인지까지 넣어 두 스텝을 셈한다. 정책은 모든 상태의 선택을 묶은 것이다
이번 차례의 보상이 0인 행동(되묻기)은 손해라고 봄 3 그 행동이 다음 상태를 어디로 옮기는지까지 셈한다
토큰 단위 MDP 에도 세상이 뽑는 무작위가 있다고 봄 3 다음 상태는 고른 토큰을 붙인 문장 하나다. 무작위는 정책에서만 나온다
기록을 다 들고 있어야 「지금만 보는」 셈을 할 수 있다고 봄 4 앞날에 쓰일 것만 남긴 요약이 상태다. 규칙이 바뀌면 요약의 칸도 바뀐다
같은 구역이면 앞날도 같다고 봄 5 끝나는 규칙이 지나온 손님 수를 기억하면(여덟 명이면 퇴근) 남은 손님 수를 상태에 넣는다
오래 일했으니 이제 끝날 차례라고 봄 5 손님마다 같은 확률로 끝나면 지나온 손님 수는 앞날과 상관없다
길이 제한이 있으면 언어 모델의 상태가 마르코프가 아니라고 봄 6 쓴 토큰이 모두 상태에 있으므로 쓴 개수와 남은 개수도 상태에서 읽힌다
잘라 낸 문맥도 상태라고 봄 6 앞날에 쓰일 과거가 입력 밖에 남으면 마르코프 상태가 아니다. 쓰일 것을 요약해 입력에 남긴다
할인을 빼기로 셈함 7 할인은 한 스텝마다 같은 수 γ\textcolor{#7a1f5a}{\gamma}를 곱하는 것이다
할인한 리턴은 끝까지 다 받는 리턴보다 늘 작다고 봄 8 스텝마다 1 − γ\textcolor{#7a1f5a}{\gamma} 확률로 끝나는 세상의 리턴과 평균이 같다. 리턴의 표준편차는 다르다
γ\textcolor{#7a1f5a}{\gamma} = 0.99 정도면 할인이 거의 없다고 봄 9 300스텝 뒤에는 0.99²⁹⁹ = 0.050 이다. 끝나는 에피소드에서 γ\textcolor{#7a1f5a}{\gamma} < 1 은 짧은 응답으로 기우는 길이 편향을 만든다
한 상태의 가치는 정책과 상관없이 하나라고 봄 10 가치는 정책을 정해야 정해진다. 고르기 전의 값은 행동 가치들을 정책의 확률로 섞은 평균이다
이번 보상이 큰 행동이 더 나은 행동이라고 봄 11 행동 가치로 견준다. 이번 보상만 보는 것은 γ\textcolor{#7a1f5a}{\gamma} = 0 의 답이다
상태의 가치를 가장 흔한 행동의 값으로 읽음 12 Vπ=∑aπ(a∣s) Qπ(s,a)\textcolor{#00897b}{V^\pi} = \sum_{\textcolor{#1c9c60}{a}} \textcolor{#1565c0}{\pi}(\textcolor{#1c9c60}{a} \mid \textcolor{#0093b8}{s})\, \textcolor{#00897b}{Q^\pi}(\textcolor{#0093b8}{s}, \textcolor{#1c9c60}{a})
요약

상태와 행동과 행동에 따라 달라지는 전이 확률, 그리고 보상으로 적은 문제가 마르코프 결정 과정(MDP)이다. 마르코프 체인에 「행동을 고르는 손」을 더한 것이고, 정책을 정해 두면 다시 전이 행렬이 Pπ\textcolor{#8877ff}{P}^{\textcolor{#1565c0}{\pi}}인 마르코프 체인으로 줄어든다. 언어 모델의 토큰 MDP는 다음 상태가 하나로 정해진 특수한 경우이고, 사람과 도구가 끼어들면 전이 확률이 다시 퍼진다.

MDP는 지금 상태가 앞날의 셈에 필요한 과거를 다 담고 있다는 마르코프 성질에 기댄다. 마르코프 성질은 무엇을 상태로 잡았느냐에 달린 성질이라, 모자라면 (구역, 남은 손님 수)처럼 상태를 넓혀 되찾는다. 프롬프트와 지금까지 쓴 토큰 전부를 상태로 잡은 언어 모델은 늘 마르코프이고, 문맥을 잘라 내거나 세상의 일부만 볼 때 마르코프 성질이 깨진다.

앞으로 받을 보상을 할인율 γ\textcolor{#7a1f5a}{\gamma}로 할인해 더한 값이 리턴 Gt\textcolor{#5d4037}{G_t}다. 끝이 없는 문제에서 γ\textcolor{#7a1f5a}{\gamma} < 1은 한없이 커지는 합을 유한하게 만들고, 1/(1−γ)1/(1-\textcolor{#7a1f5a}{\gamma})는 대략 몇 스텝 앞까지 보는지를 알려 준다. 할인은 「스텝마다 1 − γ\textcolor{#7a1f5a}{\gamma} 확률로 끝날지 모른다」로도 읽힌다. 응답이 반드시 끝나는 언어 모델 RLHF는 γ\textcolor{#7a1f5a}{\gamma} = 1을 쓰고, 1보다 작으면 짧은 응답 쪽으로 기운다.

상태에서 정책을 따를 때 리턴의 기댓값이 가치함수 Vπ\textcolor{#00897b}{V^\pi}, 첫 행동을 정해 둔 기댓값이 행동 가치 Qπ\textcolor{#00897b}{Q^\pi}이고, Vπ\textcolor{#00897b}{V^\pi}는 Qπ\textcolor{#00897b}{Q^\pi}들을 정책의 확률로 섞은 평균이다. 에피소드를 여러 번 돌려 리턴을 평균 내면 가치를 어림할 수 있지만, 한 번의 리턴이 에피소드마다 크게 달라져 표준오차를 줄이려면 많이 돌려야 한다. 행동 가치로 견주면 이번 보상이 작아도 다음 상태를 좋은 곳으로 옮기는 행동이 보이고, 할인율이 그 무게를 정한다. 언어 모델에서 가치는 「여기까지 쓴 풀이에서 결국 맞힐 확률」이다.

막힌 곳

이 장에서 가치를 재는 방법은 하나뿐이었는데, 가치를 알고 싶은 상태에서 에피소드를 끝까지 돌리고, 리턴을 모아 평균 낸다. 시장의 두 행동 가치 차이 0.34를 가리는 데 하루 200만 번이 들었고, 풀이의 자리 하나의 가치를 표준오차 0.04쯤으로 재는 데 이어 쓰기 100번이 들었다. 그런데 백업 나무를 다시 보면, 한 자리의 가치는 바로 아래 자리들의 가치와 이어져 있었다. 에피소드를 다 돌려야만 가치를 알 수 있을까?