4. Actor-Critic — 비평가를 곁에 두다

자주 하는 실수와 요약

자주 하는 실수
실수 나온 문제 바로잡는 법
결과를 확정한 마지막 단계가 가장 크게 기여했다고 봄 1 기여는 예상(가치)이 얼마나 바뀌었나로 잰다. 마지막 단계는 이미 높던 예상을 확정했을 뿐일 수 있다
한 경로의 증분이나 반반으로 갈리는 자리를 보고 결말을 정한 자리를 판단 2 결말을 정한 몫은 모든 경로에 걸친 E[(ΔVt)2]\mathbb{E}[(\Delta\textcolor{#00897b}{V}_t)^2] 로 잰다. 그 합은 정확히 Var(R)\mathrm{Var}(\textcolor{#d9670b}{R}) 다(온폴리시일 때)
결과를 기다린 오차가 언제나 더 믿을 만하다고 봄 3 결과를 기다리면 그 뒤의 운이 모두 섞인다(분산). 다음 예측을 믿으면 다음 예측의 버릇이 섞인다(치우침)
모델 밖의 무작위가 끼어도 δt\textcolor{#8e44ad}{\delta_t} 가 어드밴티지 그 자체라고 봄 4 고른 토큰이 다음 상태를 정할 때만 그렇다. 사용자·도구가 끼면 δt\textcolor{#8e44ad}{\delta_t} 는 한 샘플이고, 그 평균이 어드밴티지다
종료 상태의 가치 V(sT)\textcolor{#00897b}{V}(\textcolor{#0093b8}{s_T}) 에 비평가 출력을 그대로 넣음 5 끝난 응답은 V(sT)=0\textcolor{#00897b}{V}(\textcolor{#0093b8}{s_T}) = 0. 길이 제한으로 잘린 응답은 끝난 것이 아니다
학습 메모리를 파라미터 크기(fp16 2바이트)로만 셈 6 혼합 정밀도 Adam은 파라미터당 약 16바이트(파라미터 값·그래디언트·옵티마이저 상태)
5% 쿠폰 20장이면 100% 깎인다고 봄 7 할인은 곱해진다. 0.9520≈0.360.95^{20} \approx 0.36
억울한 토큰의 개수로 치우침을 판단 8 오류가 행동에 붙으면 치우침, 상태에 붙으면 분산만 는다
λ=0.95\textcolor{#993600}{\lambda} = 0.95 면 거의 MC라서 안전하다고 봄 8 치우침은 0.3(1−0.95n)0.3(1 - 0.95^n). 뒤에 100토큰이 남으면 약 0.30으로 거의 TD와 같다
요약

REINFORCE는 응답 전체에 숫자 하나를 주므로 좋은 수와 나쁜 수가 함께 벌을 받는다. 가치함수 V(st)\textcolor{#00897b}{V}(\textcolor{#0093b8}{s_t}) 는 "여기까지 쓴 풀이의 전망"이고, 언어모델은 상태 전이가 결정론적이라 어드밴티지가 곧 전망의 변화량 rt+V(st+1)−V(st)\textcolor{#d9670b}{r_t} + \textcolor{#00897b}{V}(\textcolor{#0093b8}{s_{t+1}}) - \textcolor{#00897b}{V}(\textcolor{#0093b8}{s_t}) 다. 이것을 정책 그래디언트의 빈칸에 넣어도 기대값은 치우치지 않는다. 결말을 맞힐 확률 V(st)\textcolor{#00897b}{V}(\textcolor{#0093b8}{s_t}) 는 마팅게일이라, 결말의 불확실성 Var(R)\mathrm{Var}(\textcolor{#d9670b}{R}) 가 토큰마다 증분의 제곱으로 겹침 없이 나뉜다 — 결말을 정한 자리는 반반으로 갈리는 자리와 다를 수 있다. 진짜 V\textcolor{#00897b}{V} 대신 학습한 비평가를 쓰면, 결과를 끝까지 기다리는 MC(치우침 없음, 분산 큼)와 한 걸음 뒤의 예측을 믿는 TD(분산 작음, 비평가만큼 치우침) 사이에서 골라야 하고, GAE는 그 사이를 λ\textcolor{#993600}{\lambda} 하나로 잇는다. 사용자나 도구처럼 모델 밖의 무작위가 끼면 한 걸음 뒤의 예측도 한 샘플이 된다. 대가는 정책 못지않게 큰 두 번째 모델과, 해킹당할 수 있는 비평가다.