[ML] AUC vs log loss/cross-entorpy(auc와 log loss의 차이점)

gunny·2024년 4월 11일
0

ML

목록 보기
17/17

Instroduction

AUC(Area Under the Curve)와 Log loss는 둘 다 분류 모델의 성능을 측정하는데 사용되는 지표이다.
해당 지표들은 각 다른 측면을 평가하는데, 해당 평가 지표를 공부할 때 둘의 차이점을 제대로 파악하지 못하고 있는 것 같아서 정리를 해보려고 한다.

[1] classification

  • 머신러닝 지도학습(suvervised learning)의 대표적인 유형 중 하나
    주어진 데이터를 클래스 별로 구별해 내는 과정으로, 다양한 분류 알고리즘을 통해 데이터와 데이터의 레이블 값을 학습시키고 모델을 생성
    데이터가 주어졌을 때 학습된 모델을 통해 어느 클래스에 속할 데이터인지 판단하고 예측함

  • 이렇게 주어진 데이터를 두 개의 클래스 중 하나로 예측하느냐?
    세 개 이상의 클래스 중 하나로 예측하느냐에 따라서
    즉, 모델이 예측하려고 하는 출력 범주의 개수 에 따라서

  • 두 개의 클래스 중 하나로 예측하는 분류 문제인 '이진 분류(binary classification)' 과 세 개 이상의 클래스 중 하나를 예측하는 '다중 분류(multiclass Classification)' 로 나눌 수 있다.

분류를 위한 알고리즘은 현재 작성 중인 주제와 관련은 있지만 양이 방대해지므로 패스

[2] classification 성능 평가

  • 이러한 분류 모델을 평가하는 데 사용되는 주요 평가 지표는
    정확도(Accuracy), 정밀도(Precision), 재현율(Recall, Sensitivity),F1점수(f1 score), roc curve/auc, 혼동행렬(confusion matrix)가 있다.

각 평가 지표에 대한 자세한 정의는 주제와 벗어나니 다음에

각 지표들은 평가할 대상의 다른 측면(기준)들을 보고 판단하기 때문에 이렇게 분류 모델의 평가하는 평가 지표가 다양하지 않을까?
그렇다면 자주 활용하는 Accuracy와 ROC curve는 분류 모델의 어떤 측면을 어떤 기준으로 보고 판단하는 것일까?

[3] AUC(Area Under the Curve)

  • ROC curve 아래의 면적을 나타냄

[3]-1. ROC Curve

출처 : 공돌이의 수학정리노트 머신러닝 part의 ROC curve

  • ROC(Receiver Operating Characteristic) curve는
    다양한 threshold에 대한 이진 분류기의 성능을 한번에 표시한 것이다. ROC curve는 좌상단에 붙어 있는 커브가 더 좋은 분류기를 의미한다.

  • 이진 분류의 성능은 True Positive Rate와 False Positive Rate 두 가지를 이용해 표현한다.

이러한 ROC curve를 이해하기 위해 세 가지 측면을 이 파악하는 것이 좋다고 하는데

(1) True Positive rate(TPR) / False Postivie rate(FPR)

  • 둘 다 'Positive' 라는 공통 단어를 가지는데, 여기서의 'Positive'는 '그렇다' 라고 판별했다는 의미이다.
    분류 모델 성능 평가를 위해서 가장 많이 나오는 예시인 '암 발병 여부' 를 다시 또 예로 들어보자면, 병원에서의 발병 여부 검사를 했을 때 '암에 걸렸다' 라고 판단했다면 여기서 True positive는 실제로 암에 걸려있는 환자에게 암에 걸렸다고 판단한 것이고, False Postivie는 실제로 암에 걸리지 않았지만 암에 걸렸다고 판단한 것이다.

  • 여기서 '암에 걸렸다/걸리지 않았다' 를 예측하는 것을 하나의 이진 분류 모델로 본다면, 모두 암에 걸렸다고 예측한다면 실제 암에 걸린 사람들이 모두 암환자로 판별되면서 True Positive Rate (실제 암에 걸렸고 암에 걸렸다고 예측하는 비율)은 당연히 높아진다.
    그러나, 실제 암에 걸리지 않았던 환자들 또한 모두 암환자로 판별해버림으로써 False Positive Rate(실제 암에 걸리지 않았지만 암에 걸렸다고 예측하는 비율) 또한 높아지게 된다.
    추가적으로 여기서 모두 암에 걸렸다고 예측한다는 것은 모델의 threshold가 매우 낮다는 것을 의미한다.

  • 반면에 모두 암에 걸리지 않았다라고 예측한다면 True Positive Rate(실제 암에 걸렸고 암에 걸렸다고 예측하는 비율)은 낮아지고, False Positive Rate(실제 암에 걸리지 않았지만 암에 걸렸다고 예측하는 비율) 또한 낮아진다.
    여기서는 모두 암에 걸리지 않았다고 예측하는 것은 모델의 threshold가 매우 높다는 것을 의미한다.

(2) ROC curve에서의 한 점

  • 위에서 threshold의 값이 변하면서 True positive Rate, False Positive Rate가 변하고 있는데 threshold 값이 변하더라도 TPR, FPR은 같이 증가하고 같이 감소한다는 것이다.
    그래서 ROC curve의 한 점은 Threshold 별 TPR, FPR을 알아보겠다는 의미이다.
  • 현재 이진 분류기 모델의 분류 성능은 변하지 않지만 가능한 threshold 별 TPR, FPR의 비율을 알 수 있는 것이 ROC curve의 한 점이다.

(3) ROC curve의 휜 정도

  • 즉, 커브의 휨 정도는 두 클래스를 더 잘 구별할 수 있다면 ROC 커브는 좌상단에 가까워진다.

즉, 정리하면 ROC cuve는 이진 분류기의 성능을 나타낸 것이고,
가능한 모든 threshold에 대해 FPR< TPR의 비율을 표현한 것이다.

[4] log loss (cross-entropy)

  • log loss 역시 classification의 대표적인 평가 지표이다.
    실제 값을 예측하는 확률에 로그를 취하여 부호를 발전시킨 값으로, 분류 모델 자체의 잘못 분류된 수치적인 손실값(loss)를 계산한다.
    즉, 모델의 출력값과 정답의 오차를 정의하는 함수이다.
  • 최종적으로 모델이 맞춘 결과만 가지고 성능을 평가할 경우, 얼마의 확률로 해당 답을 얻었는지에 대한 평가는 불가능하다. 만약 모델이 답을 맞추더라도 적은 확률로 예측한 것이라면 성능이 좋다고 보기 어렵다.
    이를 위해서 확률 값을 평가지표로 사용하는데, log loss는 이러한 모델이 예측한 확률의 값을 직접적으로 반영해서 평가하는 것이다.

수식으로 표현하면 위와 같이 표현할 수 있다

  • 확률의 값을 음의 log 함수에 넣어 변환을 하는데, 잘못 예측할수록 페널티를 부여하기 위해서이다.
    예를 들어서 100% 확률로 답을 구한 경우 log loss는 -log(1.0) =0이 된다. 그러나 50%의 확률로 답을 구한경우 log loss는 -log(0.5)로 약 0.69가 된다.
    log loss는 낮을 수록 좋은데, 낮은 확률로 답을 구한 경우 log loss가 더 높은 것을 볼 수 있다.
    즉, 확률이 낮아질수록 log loss는 기하 급수적으로 증가하고, log loss는 확률이 낮을 때 패널티를 더 많이 부여하기 위해 음의 로그 함수를 사용한다.

  • log loss는 가능도(likelihood) 함수라고 불리긴 하지만, 실제로 log loss는 가능도(likelihood) 함수의 log * -1 이라고 한다.

[4]-1. likelihood(가능도)

  • 가능도 함수는 모델이 실제로 예측한 결과 셋을 어느 정도 생각했는가? 라고 보면되는데, 예를들어서 모델이 정답이 True인 3건에 관해 [0.8, 0.4, 0.1]의 확률로 예측했다고 가정한다면,
    첫 번째 가능도 함수의 예측값은 0.8 이고, 두 번째 가능도 예측값은 0.4 이다. 여러 독립적인 사건의 확률은 개별 확률의 곱이라는 규칙에 따라서 관련된 두 확률을 곱해서 두 예측에서 결환된 가능성인 0.8 0.4=0.32 가 나오게 된다.
    마지막 세번째에서는 1일 가능성이 0.1 이라고 했으므로 예측한 확률이 90% 이므로 0.32
    0.9를 해준다.
    이러한 예측을 단계별로 진행해서, 실제 발생한 결과와 관련된 확률을 찾을 때마다 이전 결과와 곱하는 것이 likelihood의 값이다.

  • 각 예측은 0~1 사이에 존재하고, 이 범위에 수를 계속해서 곱한다면 결과가 작아져 컴퓨터가 이를 추적하기 어려워 질 수 있다. 그래서 가능도(likelihood)의 값에 로그를 취해서 이를 추적하고, log loss가 작을수록 성능이 좋기 때문에 이에 -1를 곱해주는 것이다.

[5] AUC vs Log loss 정리

  • log loss나 AUC는 위에서 보듯이 분류 문제에서 모델 성능을 측정하는데 사용되는 지표이다. 그러나 둘은 서로 다른 측면에서 모델의 성능을 평가한다.

AUC는 하나의 분류 모델에서 다양한 임계값을 확인할 수 있으므로, 임계값에 대한 모델의 성능 변화를 보고 싶을 때 사용한다.
즉, 분류 모델링 클래스를 올바르게 분류하는 능력을 보고자 할 때 확인한다.

log loss는 모델이 예측하는 클래스의 확률이 중요할 때 확인하면 되며, 모델의 확률 예측 정확도를 확인할 수 있는 것이다.

즉, auc는 분류 모델의 두 클래스간 분리 능력을 측정하고,
log loss는 모델 확률 예측의 정확성을 측정하는 지표라고 보면 되겠다.

참고사이트

profile
꿈꾸는 것도 개발처럼 깊게

2개의 댓글

comment-user-thumbnail
2024년 6월 5일

안녕하세요, 인공지능에 대해 지식이 전무한 상태에서 회사 ai 모델 기능개선과 유지보수를 맡게된 신입 개발자입니다.. (백엔드 개발을 했습니다) 작성자님이 올리신 서적 요약본을 정독중인데, 혹시 어떻게 ai 개발을 빠르게 습득할수 있을지 의견이 있으신가 궁금해서 질문드려봅니다!

1개의 답글