모델 학습의 숫자는 같은 “성능”을 말하지 않습니다. 예측 확률을 얼마나 잘 맞추는지, optimizer가 어떤 전체 식을 줄이는지, 임계값 뒤 실제 운영 행동이 어떤 비용을 만드는지를 분리해야 손실 개선과 제품 개선의 관계를 설명할 수 있습니다.
분류 파이프라인을 확률 → threshold → 행동 → 비용으로 고정해 생각하면 각 지표의 위치가 보입니다. 확률이 0.2에서 0.4로 바뀌어도 threshold가 0.5이면 행동은 그대로지만, review budget이나 threshold를 바꾸면 같은 예측이 다른 운영 비용을 만들 수 있습니다.
손실 감소와 차단 결과의 불일치
정답이 양성인 사례의 예측 확률이 0.2에서 0.4로 올라가면 로그 손실은 줄어듭니다. 하지만 판정 임계값이 0.5라면 여전히 음성으로 분류되므로 이 사례의 재현율 기여는 그대로입니다. 학습이 개선되지 않았다는 뜻도, 운영 결과가 개선됐다는 뜻도 아닙니다. 서로 다른 것을 측정했습니다.
손실 함수는 개별 예측의 오차를 학습 신호로 표현합니다. 목적 함수는 예측 손실을 집계하고 가중치·정규화·제약 비용 등을 더해 optimizer가 줄이는 전체 식입니다. 평가 지표는 최종 목적에 맞는 예측·행동 결과를 측정합니다.
예측 손실과 threshold 판정 기준
이진 로그 손실은 -[y log(p)+(1-y)log(1-p)]입니다. 양성 y=1에서 p=0.2이면 약 1.609, p=0.4이면 약 0.916으로 감소합니다. 하지만 threshold=0.5의 0/1 판정은 둘 다 오답입니다.
| 측정 | 예 | 의미 |
|---|---|---|
| 개별 예측 손실 | 로그 손실 | 확률 예측의 오차 신호 |
| 전체 objective | 평균 가중 손실 + λ·정규화 | optimizer의 실제 목적 |
| 판정 지표 | 재현율·정밀도 | 임계값 이후 오류 비율 |
| 운영 결과 | 검토 건수·피해 비용 | 실제 행동과 자원 제약 |
정규화 계수를 늘리면 objective 숫자가 달라지므로 서로 다른 설정의 총 loss를 그대로 비교하기 어렵습니다. 예측 손실·정규화 항·집계 방식·분할을 함께 기록해야 어떤 항이 변했는지 알 수 있습니다.
그림을 글로 읽기
- 모델 점수·확률
- 손실·목적 함수: 정답 · 클래스 가중치 · 정규화 · 미분
- 판정 정책: 임계값 · 검토 예산 · 차단 · 검토 · 통과
- 독립 평가: 오탐·미탐·비용 비교
- 모델 점수·확률 → 손실·목적 함수: 학습 신호
- 모델 점수·확률 → 판정 정책: 행동 선택
- 판정 정책 → 독립 평가: 결과 측정
대체 손실과 미분 가능한 학습 목표
정확도는 확률 0.2를 0.4로 조금 바꿔도 변하지 않다가 임계값을 넘으면 갑자기 바뀝니다. 이런 불연속 지표를 gradient로 직접 최적화하기는 어렵습니다. 로그 손실 같은 대체 손실은 더 연속적인 학습 신호를 주지만 운영의 모든 오류 비용과 일치하지는 않습니다.
회귀의 평균 제곱 오차는 큰 오차를 강하게 벌주지만 “허용 오차 5 이내 비율”과 다릅니다. 추천 순위의 평균 품질이 좋아도 아주 드문 중요한 실패는 남을 수 있습니다. 손실이 줄었는지와 원하는 운영 지표가 좋아졌는지를 같은 검증 자료에서 각각 측정해야 합니다.
클래스 가중치 학습과 임계값 판정
양성 손실에 더 큰 가중치를 주면 학습에서 양성 오류의 상대적 비용이 커집니다. 임계값은 이미 만든 점수를 행동으로 바꾸는 규칙입니다. 가중치를 높였다고 정밀도·재현율이 원하는 방향으로 반드시 바뀌는 것은 아니며, 점수의 확률 보정도 달라질 수 있습니다.
예를 들어 검증 세트의 실제 양성이 100개일 때 두 후보를 다음처럼 비교할 수 있습니다. 숫자는 가상 예이며 실제 효과를 주장하는 것이 아닙니다.
| 후보 | TP | FP | FN | 양성 예측·검토량 | 재현율 | 정밀도 |
|---|---|---|---|---|---|---|
| 기존 정책 | 60 | 20 | 40 | 80 | 60% | 75% |
| 새 가중치·임계값 | 80 | 80 | 20 | 160 | 80% | 50% |
검토 가능량이 100건이면 표의 두 번째 정책에서 양성 예측·검토량으로 잡힌 160건이 한도를 넘으므로, 재현율이 80%로 높아져도 정밀도가 50%로 낮아진 이 정책을 그대로 운영할 수 없습니다. 원인을 나누려면 가중치만 바꾼 실험과 임계값만 바꾼 실험을 따로 두고, 실제 양성 비율에서 각 정책의 검토량·FP(오탐)·FN(미탐)과 비용을 같은 표로 계산합니다. 이 표를 고를 때 테스트 데이터를 다시 보며 임계값을 조정하지 않습니다.
predictionLoss·regularization·objective 기록
predictionLoss = mean(weight[y] * perExampleLoss(y, prediction))
regularization = lambda * parameterPenalty(model)
objective = predictionLoss + regularization
backpropagate(objective)
validation = evaluate_without_training_updates(model, fixed_validation)
record(predictionLoss, regularization, objective,
validation.loss, validation.confusion_by_threshold)
mean의 분모가 배치 크기인지 가중치의 합인지에 따라 같은 예측이라도 gradient 스케일이 달라질 수 있습니다. 그래서 클래스 가중치를 바꾼 실험의 loss 숫자를 비교할 때는 분모와 집계 방식을 고정하고, 예측 손실·정규화 항·objective를 분리해 기록해야 합니다. 실제 로그 손실은 p=0·1 근처에서 수치 안정성을 처리해야 하므로, 확률에 직접 로그를 취하는 임의의 코드를 쓰기보다 검증된 logits 기반 함수를 사용하는 것이 일반적입니다.
재현 연습으로 같은 score 집합에 threshold만 0.5, 0.3으로 적용하고 confusion matrix와 검토량을 다시 계산한 뒤, 별도의 실험에서 class weight만 바꿉니다. 예상 결과는 threshold 실험에서는 모델 파라미터가 변하지 않고 판정량만 변하며, weight 실험에서는 score 분포와 calibration까지 변할 수 있다는 것입니다. 검증 세트에서 좋아진 threshold를 테스트 세트에 다시 맞추지 않아야 비교가 독립적입니다.
학습 실패와 목표 불일치의 분리 진단
훈련 loss도 안 줄면 학습률·모델·특징·라벨·gradient를 먼저 살핍니다. 훈련은 좋아지고 검증은 나빠지면 과적합·분포·분할 문제를 봅니다. 검증 loss는 좋아지는데 운영 지표가 그대로라면 임계값·비용·대체 손실의 불일치를 조사합니다. 이 순서는 가설을 나누는 기준이지 모든 문제가 한 원인으로 분류된다는 뜻은 아닙니다.
배포 여부는 독립 평가의 지표와 운영 제약으로 결정하고, loss 감소만으로 성공을 선언하지 않습니다. 작은 계산 예를 확인한 뒤 실제 후보별 임계값 표·집단별 성능·확률 보정·검토 용량을 기록해야 학습 목적과 제품 목적의 연결을 설명할 수 있습니다.