확률 예측에 적용한 제곱오차

Brier loss는 예측 확률과 실제 정답 사이의 제곱오차 다. MSE를 확률 예측에 적용한다고 생각하면 된다. 정답 label만 맞혔는지 보는 accuracy와 달리, 정답에 얼마만큼 확률을 줬는지도 평가한다. 확률 calibration을 살펴볼 때 쓰지만, calibration만을 따로 측정하는 지표는 아니다.

환불 요청 여부를 예측한다고 하자. 모델은 ‘환불 요청일 확률’을 내놓고, 실제 정답은 요청이면 1, 아니면 0으로 기록한다. 이진 문제의 사례 하나에 대한 계산은 다음과 같다.

기호의미
모델이 예측한 환불 요청 확률
실제 정답. 환불 요청이면 1, 아니면 0
사례 하나의 Brier loss. 작을수록 좋음

평가에서는 각 사례의 loss를 구한 뒤 평균을 낸다. 이를 Brier score라고 부르기도 한다. 이름에 score가 붙어도 여기서는 낮을수록 좋은 오차 다. 이진 문제에서는 위 정의를 사용하고, 전체 클래스의 오차를 합하는 정의와의 차이는 E절에서 구분한다. 정의와 계산 관례

한 사례를 직접 계산하기

실제로 환불 요청인 사례, 즉 정답이 1이라고 하자. 다음 숫자는 계산을 설명하기 위한 예시다.

예측 확률계산Brier loss
0.900.01
0.600.16
0.100.81

정답에 높은 확률을 주면 오차가 작다. 반대로 정답을 거의 불가능하다고 예측하면 오차가 크다. 0.5를 threshold로 쓰면 0.90과 0.60은 모두 같은 label인 ‘환불 요청’을 고르지만, 확률 예측에 대한 평가는 다르다.

정답이 0인 사례에서는 반대다. 0.90을 예측하면 loss는 0.81이고, 0.10을 예측하면 0.01이다. 확신하는 것 자체가 좋은 것이 아니라, 실제 결과와 맞는 방향으로 확신해야 한다.

여러 사례를 모으면 실제 확률을 맞추게 된다

정답이 1인 사례만 보면 확률을 무조건 1로 예측하는 것이 가장 좋아 보인다. 하지만 정답이 0인 사례도 함께 평가하면 과신의 비용이 드러난다.

모델이 구별할 추가 정보가 없는 같은 조건의 문의 10개 중, 8개가 환불 요청이고 2개는 아니라고 하자. 이 10개에 모두 같은 확률을 보고했을 때의 평균 loss는 다음과 같다.

보고한 확률평균 loss 계산결과
0.500.25
0.800.16
1.000.20

1.00은 환불 요청 8개에서는 완벽하지만, 나머지 2개에서 크게 틀린다. 실제 비율인 0.80을 보고하는 편이 평균 loss가 더 작다. 여기서 ‘같은 조건’이라는 전제가 중요하다. 문의 내용으로 요청 여부를 더 잘 구분할 수 있다면, 모든 문의에 전체 평균인 0.80을 주는 대신 각각의 조건부 확률을 예측해야 한다.

일반적으로도 같은 결과가 나온다. 특정 조건에서 실제 환불 요청 확률을 라고 하면 기대 loss는 다음처럼 정리된다.

기호의미
해당 조건에서 환불 요청이 발생하는 실제 확률
확률 로 1, 확률 로 0이 되는 실제 결과
가능한 실제 결과에 대한 평균, 즉 기대값

마지막 항은 실제 확률이 정해지면 고정된다. 모델이 줄일 수 있는 부분은 이므로 에서 기대 loss가 최소 다. 이런 식으로 실제 확률을 보고하는 것이 유일한 최적 선택이 되는 채점 규칙을 strictly proper scoring rule이라고 한다. Brier loss와 log loss가 그 예다. Proper scoring rule

학습할 때 실제 확률 를 미리 알아야 하는 것은 아니다. 개별 사례의 0 또는 1 정답을 모아 평균 loss를 줄인다. 다만 유한한 데이터와 제한된 모델로 학습하므로, 이 이론적 성질이 학습된 모델의 완벽한 calibration을 보장하지는 않는다.

Cross-entropy와 다른 점

Cross-entropy도 실제 확률을 맞추도록 유도한다. 차이는 확신하면서 틀린 예측에 얼마나 큰 벌점을 주느냐 에 있다. 실제 정답이 1일 때 binary cross-entropy는 가 된다.

예측 확률Brier lossCross-entropy, 자연로그
0.900.01000.1054
0.500.25000.6931
0.010.98014.6052

정답 확률이 0에 가까워지면 Brier loss는 1에 가까워지지만, cross-entropy는 끝없이 커진다. Brier는 이진 스칼라 정의에서 0–1로 제한되고, cross-entropy는 상한이 없다.

두 열의 숫자 크기만 보고 어느 loss가 더 좋은지 판단할 수는 없다. 서로 다른 척도다. Brier가 유한한 벌점을 준다는 이유만으로 더 잘 학습되거나 calibration이 더 좋다고 결론 내릴 수도 없다. 학습 objective로 선택할 때는 실제 검증 데이터에서 확인해야 한다.

다중 클래스와 2배 차이

선택지가 ‘환불·배송·기타’처럼 셋 이상이면, 모델의 전체 확률 벡터와 정답의 one-hot 벡터 사이 제곱오차를 합한다.

기호의미
클래스 개수
클래스 의 예측 확률. 전체 합은 1
정답 클래스이면 1, 아니면 0
전체 클래스의 예측 확률과 one-hot 정답 벡터
클래스별 오차를 합한 Brier loss

예측이 [0.7, 0.2, 0.1]이고 정답이 환불이라면, 정답 벡터는 [1, 0, 0]이다. Loss는 가 된다.

이 정의를 이진 문제에 적용하면 두 클래스의 오차가 같은 값이므로 다음처럼 된다.

따라서 양성 확률 하나로 계산한 값과 두 클래스 모두 합한 값은 2배 차이 가 난다. 전체 클래스 합의 범위는 0–2다. 문헌이나 구현에 따라 2로 나누기도 하므로, 모델 점수를 비교하기 전에 같은 정의를 사용했는지 확인해야 한다. scikit-learn의 정규화 안내

확률 평가와 RL에서 읽는 법

Brier loss는 확률 예측 전체의 품질을 평가한다. Calibration뿐 아니라 입력에 따라 결과를 얼마나 잘 구별하는지도 영향을 준다. 그래서 Brier가 낮아졌다는 사실 하나로 calibration만 좋아졌다고 단정할 수 없다. 비교할 때는 같은 평가 데이터와 계산 정의를 쓰고, calibration curve도 함께 살펴보는 편이 좋다.

Jev와 RLCD에서 소개한 NanoJev의 별도 실험은 이 확률 목표를 RL 방식으로 학습하는 사례다. 직접 Brier loss를 미분할 수도 있고, 기대 보상이 같은 목표와 연결되도록 설계한 뒤 REINFORCE 같은 policy-gradient 방법으로 학습할 수도 있다. Brier는 무엇을 좋다고 평가할지 정하는 loss이고, RL은 업데이트를 만드는 방식 이므로 둘을 같은 개념으로 볼 필요는 없다. 이는 NanoJev의 독립 실험이며 원본 Jev의 공개된 loss가 아니다. NanoJev 실험