3. REINFORCE — 샘플로 추정하고, 베이스라인을 빼다
자주 하는 실수와 요약
자주 하는 실수
| 실수 | 나온 문제 | 바로잡는 법 |
|---|---|---|
| 평균이 절반이 되면 필요한 샘플도 두 배면 된다고 봄 | 1 | 필요한 수는 (표준편차 ÷ 평균)²이다. 평균이 절반이면 네 배가 든다 |
| 점수 규모를 키워도 방향이 같으니 아무 문제 없다고 봄 | 2 | 방향은 같아도 보폭이 커진다. 사실상 학습률을 올린 것과 같다 |
| 규모를 키우면 분산이 커지니 추정이 나빠졌다고 봄 | 2 | 평균도 같은 배수로 커진다. 신호 대 잡음비는 그대로다 |
| 한 번에 많이 받는 쪽이 이긴다고 봄 | 3 | 칭찬이 늘 양수면 합은 횟수를 따른다. 기준을 빼야 못한 쪽에 음수가 붙는다 |
| 정답 점수가 더 높으면 어느 배치에서나 정답 쪽으로 간다고 봄 | 4 | 보상이 늘 양수이고 |
| 자기 보상을 베이스라인으로 쓰면 분산이 0이라 좋다고 봄 | 5 | 그래디언트도 0이 된다. |
| 쉬운 시험의 높은 점수를 더 잘 본 것으로 봄 | 6 | 시험마다 그 시험의 평균을 빼야 난이도가 지워진다 |
| 여러 개를 섞은 평균이면 자기 보상이 들어가도 괜찮다고 봄 | 7 | 자기를 포함한 평균은 기대값을 |
| 전역 평균과 그룹 평균 중 하나가 늘 낫다고 봄 | 7 | 문제 난이도가 제각각일수록 그룹 평균이 이긴다. 대가는 프롬프트당 여러 샘플이다 |
요약
기대값을 계산할 수 없으니 지금의 모델로 응답
막힌 곳
REINFORCE에 베이스라인까지 더했다. 그래도 두 가지가 남는다.
- 문장 전체에 숫자 하나. 풀이의 한 토큰만 틀렸어도 보상은 문장 끝에 하나뿐이라, 모든 토큰이 똑같은 음수 가중치를 받는다. 잘 쓴 앞부분까지 함께 벌을 받고, 어느 토큰이 문제였는지는 여러 샘플을 평균내야 겨우 드러난다. 그래서 샘플이 많이 필요하다.
- 베이스라인이 상태를 모른다. 프롬프트별 베이스라인은 "이 문제의 평균"은 알지만, "여기까지 쓴 풀이가 얼마나 유망한가"는 모른다. 풀이 중간마다 기준을 다시 매길 수는 없을까?