인지야공/수학·공학 노트/15번째 글
로짓과 오즈 — 확률을 더하기로 바꾸는 자리
실행:
python 딥러닝/mathnotes/M13_logit_prior.py긴 꼬리 편의 로짓 보정과 캘리브레이션 편의 임계값 조정이 같은 것임을 정리한다.
1. 왜 로짓으로 가는가
확률은 에 갇혀 있어 더하기가 어색하다. 0.9에 0.2를 더할 수 없다. 오즈로 바꾸고 로그를 씌우면 축이 로 펴지고, 그때부터 곱셈이 덧셈이 된다.
| 확률 | 오즈 | 로짓 |
|---|---|---|
| 0.01 | 0.0101 | −4.595 |
| 0.10 | 0.1111 | −2.197 |
| 0.50 | 1.0000 | 0.000 |
| 0.90 | 9.0000 | +2.197 |
| 0.99 | 99.0000 | +4.595 |
가 로짓 0이고, 0.9와 0.1이 로 대칭이다. 확률 축에서는 0.9와 0.1이 각각 끝에 몰려 있어 다루기 나쁘지만 로짓 축에서는 원점에서 같은 거리다.
이 축이 값어치를 하는 건 베이즈 정리를 씌울 때다. 이진 분류에서 로그오즈를 쓰면 이렇게 쪼개진다.
| 기호 | 뜻 |
|---|---|
| 양성 클래스의 사전확률 — 학습 데이터에서 양성이 차지하는 비율 | |
| 그 클래스에서 가 나올 가능도 |
두 몫이 곱이 아니라 합으로 분리된다. 그래서 사전확률이 바뀌어도 기울기는 그대로고 높이만 움직인다 — 데이터가 주는 몫은 건드리지 않은 채 상수만 더해지는 것이다.
2. 직접 재 보기
두 클래스가 평균만 다른(0과 2) 정규분포인 아주 단순한 세상에서 쟀다.

같은 관측값 에서, 양성 비율만 바꿔 가며 로짓을 계산했다.
| 양성 비율 | log 사전오즈 | 의 로짓 | 0.5일 때와의 차이 |
|---|---|---|---|
| 0.500 | 0.0000 | 0.0000 | — |
| 0.100 | −2.1972 | −2.1972 | −2.1972 |
| 0.020 | −3.8918 | −3.8918 | −3.8918 |
| 0.005 | −5.2933 | −5.2933 | −5.2933 |
관측값이 똑같은데 로짓이 내려가고, 내려간 양이 log 사전오즈의 변화량과 소수점까지 같다. 데이터는 한 글자도 안 바뀌었는데 판정이 달라지는 것이 사전확률의 몫이다.
이제 긴 꼬리 편과 같은 상황을 만들었다. 학습 데이터는 양성이 2%뿐이고, 배포 환경은 균등하다고 하자. 균등으로 옮기려면 로짓에 을 더해야 한다.
| 방법 | 양성 재현율 | 음성 재현율 | 균형 정확도 |
|---|---|---|---|
| 그대로 (로짓 > 0) | 17.13% | 99.84% | 58.49% |
| 로짓에 상수 +3.8918 을 더함 | 84.48% | 84.08% | 84.28% |
| 임계값을 −3.892 로 옮김 | 84.48% | 84.08% | 84.28% |
보정 없이 쓰면 양성을 17%밖에 못 잡는다. 음성 재현율 99.84%에 가려 전체 정확도는 멀쩡해 보이지만 쓸모가 없다. 상수 하나를 더하니 84.48%가 된다.
그리고 뒤의 두 줄은 30만 건 중 단 한 건도 예측이 다르지 않았다. 당연하다 — 과 는 같은 부등식이다.
3. 왜 중요한가
- 긴 꼬리 편의 “추론할 때만 보정”이 왜 공짜인지가 설명된다. 모델의 가중치를 하나도 건드리지 않고 결정 경계만 사전확률만큼 되민 것이다. 학습 비용 0이고, 이미 배포된 모델에도 바로 걸 수 있다.
- 다중 클래스로 확장하면 긴 꼬리 편에서 쓴 그 식이다. 로그오즈 대신 소프트맥스 로짓에서 를 빼면 된다. 이진에서의 상수 하나가 클래스마다 하나씩 있는 것뿐이다.
- 임계값 튜닝과 로짓 보정은 같은 일이므로, 둘 중 편한 쪽을 쓰면 된다. 다만 클래스가 셋 이상이면 ‘임계값’이라는 말이 애매해지고 로짓 쪽이 자연스럽다.
- 조심할 것: 이 보정은 결정을 옮길 뿐 정보를 만들지 않는다. 위 표에서도 균형 정확도는 올랐지만 음성 재현율은 99.84%에서 84.08%로 내려갔다. 어느 쪽 오류가 더 비싼지는 수학이 아니라 용도가 정한다.
4. 한 줄 요약
확률을 오즈로, 다시 로그로 바꾸면 축이 펴지고 데이터가 주는 몫과 사전확률이 주는 몫이 그냥 더해진다. 그래서 사전확률이 바뀌면 로짓은 기울기 없이 상수만큼 통째로 움직이고(실측에서 소수점까지 일치), ‘로짓에 상수 더하기’와 ‘임계값 옮기기’는 30만 건에서 한 건도 다르지 않은 같은 연산이었다. 양성이 2%인 데이터에서 이 상수 하나가 양성 재현율을 17.13%에서 84.48%로 바꿨다.