보상에 5를 더했을 뿐인데 같은 정확도에 샘플이 43배 필요해졌다. 상수가 흔들림을 키운다면, 거꾸로 알맞은 숫자를 빼면 흔들림이 줄지 않을까? 그리고 빼도 방향이 틀어지지 않을까?
역사: 분석으로는 고를 수 없던 베이스라인
1992년 로널드 윌리엄스(Ronald J. Williams)가 REINFORCE라고 이름 붙인 학습 규칙들에는 처음부터 베이스라인의 자리가 있었다. 파라미터가 한 번에 움직이는 양이 「학습률 × (보상 − 베이스라인) × 로그확률의 그래디언트」였고, 베이스라인에는 조건이 하나뿐이었다. 이번에 뽑힌 행동에 기대지 말 것. 이 조건만 지키면 베이스라인을 무엇으로 두든, 평균적으로 기대 보상이 오르는 쪽으로 간다는 그의 정리가 그대로 성립했다.
그런데 바로 그 정리 때문에, 그의 분석은 베이스라인을 고르는 데 아무 도움이 되지 않았다. 무엇을 넣어도 평균은 같았기 때문이다. 그는 논문 끝에서 이 한계를 인정하고, 대신 「많은 실험에서 피할 수 없는 결론」을 적었다. 지난 보상들의 이동평균을 베이스라인으로 쓰는 방법(리처드 서튼(Richard S. Sutton)이 1984년에 「강화 비교(reinforcement comparison)」라고 부른 것)이 수렴을 크게 빠르게 하고, 어떤 때는 학습이 어디에 닿는지까지 바꾼다는 것이다. 닿는 곳이 바뀌는 예로 그는 출력이 둘뿐이고 보상이 늘 양수인 가장 단순한 경우를 들었다. 그 계산은 아래 문제에서 직접 해 본다. 흔들림을 가장 작게 만드는 베이스라인도 따져 봤는데(그 자신의 1986년 글과 피터 데이언(Peter Dayan)의 1990년 연구), 그 값은 평균 보상이 아니라 추정하기 더 까다로운 다른 양이었다.
그 이름 REINFORCE는 규칙의 모양을 그대로 옮긴 약자다.
이름 한가운데에 이미 Offset, 즉 베이스라인을 빼는 연산이 들어 있다. 이 절의 결론이 30여 년 전 이름 안에 적혀 있는 셈이다.
이 증명에는 조건이 하나 숨어 있다. b를 합 기호 밖으로 꺼냈다는 것 — 즉 b는 뽑힌 응답 y에 의존하면 안 된다. 프롬프트에 의존하는 것은 괜찮다.
베이스라인을 빼면 가중치(로그확률 앞에 곱하는 수 — 신경망 파라미터가 아니다)의 부호가 의미를 갖는다.
Ri>b: 기준보다 나은 답 → 로그확률을 올린다
Ri<b: 기준보다 못한 답 → 로그확률을 내린다
보상이 전부 0 이상이어도 나쁜 답은 음수 가중치를 받는다. 흔히 "나쁜 예(negative example)를 넣으면 SFT가 RL이 된다"고 하는데, 베이스라인이 나쁜 예를 자동으로 만들어 준다.
흔들림은 얼마나 줄까? 앞 절의 세 답 장난감에서 평균 보상 J≈0.29를 베이스라인으로 빼 보면:
설정
추정치 평균
표준편차
신호 대 잡음비
잡음보다 신호가 커지려면 필요한 샘플 수
보상 그대로 (b=0)
0.098
0.307
0.32
10개
평균 보상을 뺌 (b=J)
0.098
0.209
0.47
5개
앞 절의 그림처럼 샘플 하나의 추정치를 펼쳐 보면, 베이스라인을 뺀 쪽은 「서울입니다」가 뽑힐 때의 큰 값이 줄고 세 값이 서로 가까워진다.
위젯에서 확인할 것:
세 가지 설정 모두에서 히스토그램의 중심은 참값(점선)에 머문다. 베이스라인은 방향을 바꾸지 않는다.
보상에 더할 상수 c를 5로 올리고 베이스라인을 끄면 히스토그램이 넓어지고 학습 곡선 다섯 개가 따로 논다. 이동평균을 켜면 c가 얼마든 모양이 그대로다 — 상수가 베이스라인에 흡수되기 때문이다.
배치 크기 N을 4배로 늘려야 표준편차가 절반이 된다. 베이스라인은 샘플을 더 뽑지 않고 폭을 줄인다.
어떤 b를 쓰는가
베이스라인
계산
장점
한계
고정 상수
b=0.5 같은 값
공짜
보상의 규모가 학습 중 바뀌면 틀어진다
이동평균
최근 배치들의 평균 보상
고전적 REINFORCE의 기본값
모든 프롬프트에 같은 기준을 쓴다
같은 프롬프트의 다른 샘플 평균
프롬프트마다 N개를 뽑아 자기를 뺀 평균
프롬프트 난이도를 반영
프롬프트당 샘플이 여러 개 필요
학습된 가치함수 V(st) (이 시점까지 쓴 풀이에서 앞으로 받을 점수의 평균)
별도 모델이 예측
토큰마다 다른 기준
모델을 하나 더 학습해야 한다
분산을 가장 많이 줄이는 최적 베이스라인도 계산할 수 있다(위버와 타오(Lex Weaver, Nigel Tao) 2001, 그린스미스(Evan Greensmith)와 동료들 2004). 그래디언트 크기의 제곱으로 가중한 평균 보상 b∗=E[R∥∇logπ∥2]/E[∥∇logπ∥2]이다. 답이 셋뿐인 앞 절의 예제(점수 1, 0, 0.6에 확률 약 0.14, 0.61, 0.25)에서 “서울입니다” 성분만 보면 b∗≈0.89이고, 베이스라인 없이 0.307이던 표준편차가 0.035까지 내려간다. 하지만 이 값은 파라미터 성분마다 다르고 추정하기도 번거롭다. 그래서 실무에서는 평균 보상을 쓴다. 최적은 아니지만 거의 공짜로 대부분의 이득을 얻는다.
ML에서: 인과성 — 언어모델이 받지 못하는 선물
한 가지 더 공짜로 줄일 수 있는 흔들림이 있다. 토큰 t에서 한 선택은 그보다 앞서 이미 받은 보상을 바꿀 수 없으니, 토큰 t의 가중치에서 그 과거 보상을 빼도 치우침이 생기지 않는다. 정책 그래디언트의 빈칸 Φt에 넣는 값이 「보상 − 베이스라인」에서 「시점 t 이후에 받은 보상의 합 − 베이스라인」으로 바뀌는 것이다. 로봇이나 게임처럼 매 순간 보상이 들어오는 환경에서는 이 덕을 크게 본다. 그런데 언어모델은 보통 보상이 마지막에 한 번 들어오므로 뺄 과거 보상이 없다. 인과성이 줘야 할 선물을 언어모델은 받지 못한다.
문제 3 — 칭찬 스티커
조교가 과제마다 점수 대신 칭찬 스티커를 준다. 잘 쓴 과제에는 2장, 못 쓴 과제에도 1장이다. 민준은 이번 달 과제 넷 가운데 셋을 급하게 써서 못 쓴 과제가 되었고, 하나는 꼼꼼히 써서 잘 쓴 과제가 되었다. 민준은 「스티커를 더 많이 받은 방식을 다음 달에 더 쓴다」는 규칙을 따른다. (가) 방식별로 받은 스티커는 모두 몇 장인가? 다음 달에는 어느 방식이 늘어나는가? (나) 조교가 스티커 수에서 1.5장씩 빼서 적어 준다면(잘 쓴 과제 +0.5, 못 쓴 과제 −0.5) 방식별 합은?
선생님
민준 학생, 이번 달에는 어느 방식이 더 칭찬받았어요?
김민준
꼼꼼히요. 한 번에 2장이니까요.
선생님
방식별로 모두 더하면요?
김민준
급하게 쓴 게 1장씩 세 번이라 3장, 꼼꼼히 쓴 건 2장…
김민준
급하게 쓴 쪽이 더 받았네요. 제 규칙대로면 다음 달엔 더 급하게 써요.
이서연
못 쓴 과제도 스티커를 받으니까 많이 한 쪽이 이기는 거야. 1.5장씩 빼면 급하게 쓴 건 −0.5가 세 번이라 −1.5, 꼼꼼히는 +0.5. 이제야 꼼꼼히 쓰라는 말이 돼.
이서연
통계 수업에서 원점수 대신 평균과의 차이를 보는 거랑 같네.
정리 (가) 급하게 쓴 방식 3장, 꼼꼼히 쓴 방식 2장. 규칙대로면 급하게 쓰는 방식이 늘어난다. (나) 급하게 −1.5, 꼼꼼히 +0.5. 칭찬이 늘 양수면 자주 한 쪽이 이기고, 기준을 빼야 못한 쪽에 음수가 붙는다.
문제 4 — 보상이 늘 양수일 때
답이 둘인 프롬프트가 있다. 정답은 2점, 오답은 1점이라 보상이 늘 양수다. 지금 모델은 두 답을 0.5씩 고른다. 오답 로짓에 대한 ∇logπ(y) 는 뽑힌 답이 오답이면 1−0.5=+0.5, 정답이면 0−0.5=−0.5 다. 응답 네 개를 뽑았더니 오답, 오답, 오답, 정답이 나왔다. (가) 베이스라인 없이(b=0) 네 샘플의 평균으로 오답 로짓의 그래디언트를 추정하라. 이 한 걸음에서 오답의 확률은 오르는가, 내리는가? (나) b=1.5 이면? (다) 네 응답이 어떻게 나오든 한 걸음마다 오답이 내려가게 하려면 b 를 어느 범위에 두어야 하는가?
정리 (가) 오답 샘플 +0.5 셋, 정답 샘플 −1 하나로 평균 +0.125. 오답이 오른다. 오답이 셋 이상 나오는 배치는 5/16의 확률로 나온다. 모든 배치를 확률로 평균 내면 −0.25라 치우침은 없다. (나) 샘플마다 −0.25, 어느 배치든 −0.25로 오답이 내려간다. (다) 1<b<2. 보상이 늘 양수인데 b=0이면 뽑힌 답을 늘 올리므로, 운 나쁜 배치에서는 나쁜 답이 오른다.
문제 5 — 자기 자신을 기준으로
민준은 "베이스라인은 가까울수록 좋으니, 각 응답의 베이스라인을 그 응답 자신의 보상으로 하자"고 제안했다. 즉 bi=R(yi). 무슨 일이 일어나는가? 이 장의 치우침이 없다는 증명에서 어느 줄이 깨지는가?
김민준
베이스라인이 보상이랑 가까울수록 R − b가 작아지니까 분산이 줄잖아요. 자기 보상이면 R − b = 0, 분산도 0이에요. 완벽하죠.
선생님
분산 0인 추정기네요. 그럼 그 추정기가 가리키는 그래디언트는요?
김민준
전부 0… 이요. 아.
김민준
학습이 아예 안 되네요.
이서연
증명에서 b를 합 기호 밖으로 꺼낸 줄이 깨져. b가 y마다 다르면 Σ π(y) b(y) ∇log π(y) 에서 b(y)를 못 꺼내니까, 기대값이 0이라는 보장이 사라져.
선생님
그래요. 분산이 0이 됐지만 대신 치우침이 전부가 됐어요. "흔들리지 않는다"와 "맞는 곳을 가리킨다"는 다른 이야기예요.
김민준
조교님이 자기 채점을 자기가 하면 안 된다는 거랑 같네요. 제가 제 과제를 채점하면 항상 기준이랑 딱 맞으니까 피드백이 없어요.
정리bi=R(yi)이면 모든 가중치가 0 — 분산은 0이지만 그래디언트도 0이다. 치우침이 없다는 증명의 “b를 합 밖으로 꺼내는” 단계는 b가 뽑힌 응답에 의존하지 않을 때만 성립한다.