자주 하는 실수와 요약
자주 하는 실수
| 실수 | 나온 문제 | 바로잡는 법 |
|---|---|---|
| 평균만 맞으면 된다며 한 값(1천 원짜리 빵)의 확률을 0으로 둠 | 1 | 들은 적 없는 것을 단정하지 않는다. 가능한 목록을 모두 세면 모든 값이 살아남고, 손님이 많으면 이웃 비가 한 값으로 모인다 |
| 학습 첫 손실이 큰 것을 당연하게 봄 | 2 | 아무것도 모르는 분류기는 1/K씩 주고 손실이 ln K다. 이보다 훨씬 크면 근거 없이 단정하도록 초기화된 것이다 |
| 클래스가 불균형한데 ln 2를 기준 손실로 봄 | 2 | 알려진 클래스 비율을 지키는 분포가 기준이다. 손실은 그 비율의 엔트로피(10%면 0.325)이고 편향은 ln(0.1/0.9) |
| 지킬 수 없는 평균에도 뉴턴 방법이 답을 준다고 봄 | 3 | 평균이 도달할 수 있는 범위 밖이면 승수가 끝없이 커진다 |
| 지키는 평균이 따로 없으니 샘플링 온도는 승수가 아니라고 봄 | 4 | 온도를 정하면 로짓 평균이 하나 정해지고 거꾸로도 그렇다. 1/τ는 로짓 평균의 승수다 |
| 최대 엔트로피 분포는 늘 눈(상태 값)의 지수라고 봄 | 5 | 지수는 지킨 평균의 특징에 대한 것이다. 특징이 구별하지 않는 상태끼리는 같은 확률 |
| MSE와 MAE를 계산 편의로만 고른다고 봄 | 6 | MSE는 잔차의 제곱 평균만, MAE는 절댓값 평균만 믿는 최대 엔트로피 가정 |
| 평균을 맞추는 아무 분포나 고름 (곧은 선을 가정) | 7 | 말하지 않은 것을 단정하지 않는다. 평균을 지키는 분포 가운데 엔트로피가 가장 큰 것 |
| 「고르게 퍼진 정도」면 제곱합도 엔트로피와 같다고 봄 | 7 | 독립인 계를 합치면 없던 상관이 생긴다. 일관성 요구를 지키는 기준은 엔트로피(기준 분포가 있으면 상대 엔트로피)뿐 |
| 봉우리를 못 보는 모델은 그런 데이터에서 손실이 더 크다고 봄 | 8 | 교차 엔트로피는 지킨 평균만으로 정해진다. 손해는 KL = H_max − H(p) |
| 손실이 바닥까지 내려가면 예측 확률의 합이 늘 개수와 같다고 봄 | 9 | 개수가 맞는 것은 절편이라는 특징의 평균을 맞췄기 때문이다. 넘겨받지 않은 평균은 맞춰지지 않는다 |
| 엔트로피를 줄이려고 α를 올림 | 10 | 온도를 올리면 엔트로피가 커진다. 엔트로피가 목표보다 낮을 때 α를 올린다 |
| 도달할 수 없는 목표 엔트로피를 둠 | 10 | 제약을 지킬 수 없으면 승수가 무한대로 달아난다 |
| 점수를 그대로 곱해 확률을 매김 (점수 0인 선택지가 사라짐) | 11 | 점수 차는 확률 비의 로그다. 기준 비율에 e^(점수)를 곱하고 합이 1이 되게 나눈다 |
| 기준 정책이 있는데 softmax(r/β)를 씀 | 12 | 기준에서의 KL을 줄이면 π_ref × e^(r/β)/Z. softmax(r/β)는 기준이 균등할 때의 답이다 |
요약
평균 몇 개만 알 때는 그 평균을 지키는 분포 가운데 엔트로피가 가장 큰 분포를 고른다. 평균을 지키는 수열을 모두 똑같이 믿고 세어도, 관계없는 것을 관계없게 두라는 일관성 요구에서 출발해도 같은 기준이 남는다. 제약마다 라그랑주 승수를 붙여 풀면 확률의 로그가 특징들의 일차식이 되어 지수족 e^(Σθₐφₐ)/Z가 나오고, 알려진 것이 평균 에너지 하나이면 볼츠만 분포다. 승수는 제약의 값을 조금 옮길 때 가장 큰 엔트로피가 늘어나는 비율이므로, 평균 에너지의 승수는 정의상 역온도와 같은 양이다. 평균을 승수로 미분한 값이 분산이므로 승수는 평균마다 하나로 정해진다. 같은 지수족을 최대우도로 맞추는 것은 이 문제의 쌍대이므로, 학습이 끝나면 모델은 넘겨받은 평균을 데이터와 맞추고 손실은 모델의 엔트로피와 같아진다. 평균을 지키는 모든 데이터에서 교차 엔트로피가 같으므로 최대 엔트로피 모델은 가장 나쁜 경우의 손실을 가장 작게 한다. 기준 분포가 있으면 KL을 가장 작게 하는 q·e^(Σθₐφₐ)/Z를 고른다. ML에서는 로지스틱 회귀와 softmax 분류기의 가중치가 승수이고, 샘플링 온도의 역수 1/τ는 로짓 평균의 승수이며, SAC의 soft 가치는 α ln Σe^(Q/α)이며, 엔트로피를 목표값에 묶으면 승수가 온도 α가 된다. KL로 묶인 RLHF의 최적 정책은 π_ref·e^(r/β)/Z이고, DPO는 이것을 보상에 대해 뒤집어 쓴다.
ML에서 최대 엔트로피 원리는 출력층이 지수 모양인 모델로, 그리고 정책의 엔트로피를 크게 두거나 기준 정책에 묶는 강화학습의 목적 함수로 나타난다. 어느 쪽이든 라그랑주 승수가 가중치나 온도나 KL 계수라는 이름으로 등장한다.
flowchart LR A["평균 에너지 ⟨E⟩를 지킴"] --> A2["승수 β = 역온도<br/>볼츠만 분포, softmax"] B["특징 × 라벨의 평균을 지킴"] --> B2["승수 θ = 가중치<br/>로지스틱 회귀"] C["정책 엔트로피 ≥ H̄를 지킴"] --> C2["승수 α = 온도<br/>SAC"] D["보상 평균을 지키며<br/>π_ref에서 KL 최소"] --> D2["승수 1/β (β는 KL 계수,<br/>역온도와 글자만 같다)<br/>RLHF, DPO"]
막힌 곳
이제 e^(−에너지)라는 모양이 어디서 오는지 열원 없이도 말할 수 있다. 몇 가지 평균만 알고 나머지는 단정하지 않으려면 지수 모양을 골라야 하고, 그 평균을 맞추는 승수가 역온도 자리에 서며, 최대우도 학습은 그 평균을 데이터에 맞추는 일이다. 그런데 지금까지 지킨 평균은 모두 변수 하나하나의 평균이었다. 위아래 두 방향만 가질 수 있는 스핀 N개에서 각 스핀이 위를 향하는 비율만 맞추면, 최대 엔트로피 분포는 스핀마다 따로 정해진 확률의 곱이고 Z도 스핀별 합의 곱으로 쪼개진다. 하지만 두 스핀이 같은 방향을 향하는 정도 ⟨sᵢsⱼ⟩까지 맞추려 하면 지수에 sᵢsⱼ 항이 들어오고, Z는 더 이상 쪼개지지 않는다. N = 100이면 2¹⁰⁰개의 배치(스핀 100개가 각각 위(+1)인지 아래(−1)인지 적은 목록 하나, 예: (+1, −1, +1, …). ML의 미니배치와는 다른 말)를 모두 더해야 하고, 승수를 찾는 뉴턴 방법도 한 걸음마다 모델의 ⟨sᵢsⱼ⟩를 알아야 한다. 막히는 것이 계산뿐일까? 짝끼리 같은 방향을 향하는 정도 하나를 맞췄을 뿐인데, 그 분포에서 뽑은 스핀들은 어떤 모습을 하고 있을까?