SFT 의 손실은 KL(데이터‖모델)이고, 앞 절의 목적식이 묶는 벌칙은 KL(π‖πref)이다. 같은 KL 인데 두 인자의 순서가 뒤바뀌어 있다. 흔히 이 순서 하나 때문에 KL(데이터‖모델)은 넓게 덮고 KL(π‖πref)는 한 봉우리를 고른다고들 말한다. 정말 순서만으로 결과가 갈릴까?
비유
라디오를 맞추는 방식에는 두 가지가 있다.
방식 1은 시그널 중심 튜닝, KL(π‖목표)다. “내가 잡은 주파수에서 노이즈가 없도록.” 한 채널에 완벽하게 맞추고, 바로 옆 채널은 과감히 놓친다. 평균을 내는 무게가 모델 π 쪽에 있어서, 목표가 거의 0인 곳에 π 가 확률을 두면 큰 벌칙을 받지만, π 가 목표의 봉우리 일부를 버리는 것은 벌하지 않는다. 그래서 모델이 다 덮을 수 없을 때 봉우리 하나에 몰리는, 봉우리를 찾아가는 쪽(mode-seeking)이다.
방식 2는 주파수대 커버 튜닝, KL(목표‖π)다. “목표가 확률을 주는 모든 곳을 놓치지 않도록.” 여러 채널을 동시에 약하게 받는다. 평균을 내는 무게가 목표 쪽에 있어서, 목표가 가진 곳을 π 가 0에 가깝게 두면 큰 벌칙을 받으므로, 모델이 다 덮을 수 없을 때 봉우리들 사이로 넓게 퍼지는, 봉우리를 덮는 쪽(mode-covering)이다.
방향이 차이를 만드는 조건
여기서 조심할 것은, π 가 어떤 분포든 될 수 있다면 두 KL 모두 π = 목표에서 0이 되고 거기서 최소여서 방향이 아무 차이도 만들지 않는다는 점이다. 앞 절에서 보상이 없으면 π* = πref 였던 것도 같은 이야기다.
방향이 차이를 만드는 것은 모델 족이 목표를 담지 못할 때다. 봉우리 둘인 목표를 봉우리 하나짜리 모델로 근사해야 할 때, KL(목표‖π) 는 둘 사이에 넓게 걸치고, KL(π‖목표) 는 한쪽을 고른다. KL(목표‖π) 를 줄이는 것이 m-사영, KL(π‖목표) 를 줄이는 것이 e-사영이다. m-사영과 e-사영의 차이는 모델 족이 목표를 담지 못할 때 이렇게 드러난다.
무게 0.6, 0.4 인 봉우리 둘(평균 −2.5, 2.5, 표준편차 0.8)로 된 목표 p 를 정규분포 하나 q 로 근사한 두 결과. KL(p‖q) 를 줄인 q 는 평균 −0.5, 표준편차 2.58 로 두 봉우리 사이에 넓게 걸치고, KL(q‖p) 를 줄인 q 는 평균 −2.5, 표준편차 0.8 로 무거운 봉우리 하나에 앉는다
언어 모델에서 모델 족의 제한은 유한한 신경망, 유한한 학습 스텝, 그리고 무엇보다 보상 항에서 온다. 앞 절의 목적식(보상의 기댓값에서 β·KL(π‖πref) 를 뺀 것)을 최대화하는 것은 KL(π‖π*) 를 줄이는 것과 같았다(π* ∝ πref·er/β). π* 자체가 보상 쪽으로 기울어 있고, π 가 π* 를 그대로 표현하지 못하면 π 는 π* 의 봉우리 일부에 확률을 몰아 두는 방향으로 틀린다.
이 절의 결론
“KL의 방향은 모델이 목표를 다 담지 못할 때 차이를 만든다. KL(π‖목표)는 목표가 없는 곳을 싫어하고, KL(목표‖π)는 목표가 있는 곳을 놓치기 싫어한다.”
문제 7. 봉우리 둘, 봉우리 하나짜리 족
결과가 0, 1, 2 셋인 분포 p = (0.45, 0.1, 0.45) 는 양 끝에 봉우리가 있다. 결과 값을 x 라 하자. 모델 족을 이항분포 Bin(2, m), 곧 q = ((1−m)², 2m(1−m), m²) 로 제한한다. KL(p‖q) 와 KL(q‖p) 를 각각 최소화하는 q 를 구하라.
양 끝에 봉우리가 있는 목표 p = (0.45, 0.1, 0.45) 와, 이항족 Bin(2, m) 의 원소 몇 개(m = 0.2, 0.4, 0.9)
함께 풀기
김민준
쉽네요. 두 KL 다 q = p 에서 0이니까 답은 둘 다 (0.45, 0.1, 0.45) 요.
선생님
그 q 가 이항분포예요?
김민준
(1−m)² = 0.45 면 m = 0.33, 그러면 m² = 0.108… 0.45가 안 나와요. 족 안에 p 가 없어요. 그럼 둘 다 어디로 가는 거죠?