MC는 치우침이 없는 대신 분산이 크고, TD는 분산이 작은 대신 비평가가 틀린 만큼 치우친다. 학습은 응답마다, 토큰마다 이 추정을 되풀이하므로 어느 쪽 오류를 받아들일지는 매번 따라오는 선택이다. 둘 중 하나만 골라야 할까? 가까운 미래는 실제 결과를 보고 먼 미래만 비평가에 맡기는 중간은 없을까?
역사: 버클리의 절충
이 중간을 손잡이 하나로 만든 것이 UC 버클리의 존 슐먼(John Schulman)과 동료들(모리츠 Philipp Moritz, 레빈 Sergey Levine, 조던 Michael Jordan, 아빌 Pieter Abbeel)이 2016년 ICLR에 발표한 GAE다. 그들이 겨냥한 것은 시뮬레이션 속 로봇이었다. 두 다리·네 다리 로봇이 관절에 주는 힘만으로 달리게 하고, 누운 자세에서 일어서게 하는 일이다. 정책 그래디언트로 이런 일을 배우려면 샘플이 너무 많이 든다는 것이 큰 걸림돌이었고, 그들은 가치함수로 분산을 크게 줄이는 대신 치우침을 조금 받아들이는 쪽을 골랐다. 두 다리 로봇이 달리기를 배우는 데 든 시뮬레이션 경험은 실제 시간으로 1~2주 분량이었다. 같은 슐먼이 이듬해 내놓은 PPO(비평가를 쓰는 정책 그래디언트의 대표 방법)와 짝을 이루며, GAE는 언어모델 RLHF의 기본 부품이 됐다.
λ로 더하는 TD 오차
GAE(Generalized Advantage Estimation)는 두 극단 사이를 연속적으로 잇는다. TD 오차를 앞으로 쭉 더하되, 멀어질수록 λ(람다)배씩 줄인다.
오답 응답, 비평가 완벽에서 λ를 1 → 0으로 내려 보라. λ=1에서는 모든 토큰이 벌을 받지만, λ=0에서는 "24"에만 큰 음수가 몰리고 "10 × 3"은 오히려 상을 받는다.
비평가 오차를 올리고 다시 λ=0을 보라. 마름모(진짜 기여도)와 막대가 어긋난다. λ=1 쪽은 비평가 오차에 훨씬 덜 흔들린다.
ML에서: 언어모델의 기본값
GAE를 처음 내놓은 논문도 λ 를 0부터 1까지 바꿔 가며 수레 위 막대 세우기를 배우게 해 보았다. 가장 빨리 배운 것은 양 끝이 아니라 0.92~0.98 사이였다. 언어모델 RLHF의 흔한 기본값도 γ=1, λ=0.95다. 보상이 응답 끝에 한 번만 오므로 할인할 이유가 없고, λ 는 1 쪽에 두어 학습 초기의 부정확한 비평가에 덜 기댄다. 비평가를 학습할 때의 목표값도 보통 이 GAE 어드밴티지에 가치를 더한 G^t=A^t+Vϕ(st)(λ-리턴: GAE로 섞어 만든 '앞으로 받을 점수’의 추정)를 쓴다. 비평가를 학습하는 제곱 손실 ∑t(Vϕ(st)−G^t)2 의 목표값 G^t 가 바로 이것이다.
문제 5 — 망원경처럼 접히는 합
γ=1, λ=1일 때 GAE가 R−V(st)가 됨을 보이시오. 정답 응답(R = 1, 풀이가 나아가며 가치가 0.45 → 0.70 → 0.80 → 0.95)의 첫 토큰 "10 × 3"으로 수치를 확인하시오. 위젯의 「문제 5 값」 단추로 같은 설정을 불러와 수치판의 “10×3” 값과 답을 견주어 보라.
김민준
코드로 해봤어요. λ=1이면 δ를 전부 더하는 거니까, 첫 토큰부터 끝까지 δ를 더하면… 0.55가 나와요. R − V(s₀) = 1 − 0.45 = 0.55랑 같네요.