우리가 열심히 만든 딥러닝 모델이 얼마나 성능이 좋은지 파악하려면 어떻게 해야 할까?
이번 포스팅에서 모델을 평가하는 평가 지표에 대해 알아보자.
먼저 Evaluation metric을 알아보기 앞서 Loss와 Metric의 차이를 알 필요가 있다.
간단히 설명하면 Loss와 metric은 다음과 같다.
- Loss: 모델 학습 시 학습 데이터(train data)를 바탕으로 계산되어, 모델의 파라미터 업데이트에 활용되는 함수
- Metric: 모델 학습 종료 후 테스트 데이터(test data)를 바탕으로 계산되어, 학습된 모델의 성능을 평가하는데 활용되는 함수
즉, 학습 도중에 파리미터를 업데이트하는데 관심 있는 함수는 Loss function이 될 것이고, 학습이 끝나고 모델의 성능을 평가하는 데 관심있는 함수는 metric function이 될 것이다.
그렇다면 드는 의문이 하나 있다.
MNIST 손글씨 분류 같은 모델에서 accuracy를 loss로 쓰지 않는 이유는 무엇일까?
그 이유는 accuracy는 이산적이기 때문에 파라미터 업데이트가 매우 비효율적이기 때문이다.
(보다 상세한 설명은 아래 링크의 3.3을 확인할 것!)
https://james-scorebook.tistory.com/entry/%EC%86%90%EC%8B%A4-%ED%95%A8%EC%88%98Loss-function
분류모델의 궁극적인 목표는 테스트 데이터에 대한 정확도가 될 것이다.
따라서 cross entropy 같은 지표보다 accuracy와 같은 지표를 평가 지표로 사용하는 것이다.
따라서 task가 가지는 목적에 따라 어떠한 loss를 사용할지, 어떤 metric이 적당할지 판단하는 직관력은 매우 중요하다.
1. Confusion matrix
앞서 분류 모델에서 accuracy는 좋은 평가지표가 된다고 언급했다. 하지만 모든 경우에 대해 그런 것은 아니다.
그 이유에 대해 알아보기 위해 confusion matrix(혼동행렬)의 개념을 알 필요가 있다.
모델의 결과가 이진 분류되는 형태일 때, 모델의 예측 결과와 실제 정답값을 비교하여 표현하는 행렬을 confusion matrix라고 한다.
각각에 대한 값은 다음과 같다.
True Positive(TP) = 모델이 양성을 양성으로 맞혔을 때
True Negative(TN) = 모델이 음성을 음성으로 맞혔을 때
False Positive(FP) = 모델이 음성을 양성으로 오판했을 때
False Negetive(FN) = 모델이 양성을 음성으로 오판했을 때
여기서 Accuracy는 어떤 값으로 표현할 수 있을까?
전체 표본에서 정확히 분류된 즉, 모델이 맞힌 경우의 표본 수라고 할 수 있다.
2. Precision과 Recall
앞서 살펴본 것과 같이 confusion matrix에서 정확도는 TP와 TN에 관심이 있다는 것을 알 수 있었다.
그렇다면 FN, FP는 어떻게 고려되는 것이 좋을까?
이때 등장하는 개념이 Precision(정밀도), Recall(재현율)이다.
precision과 recall의 의미는 아래의 그림을 보면 이해하기 쉽다.
그림에서 볼 수 있듯이, precision은 양성으로 규정한 것이 얼마나 정확한지 관심이 있고
recall은 '실제 양성이' 모델에 의해 얼마나 정확하게 탐지되었는지에 관심이 있다는 것을 알 수 있다.
task나 도메인에 따라 AI를 개발할 때 precision과 recall값은 상당히 중요하다.
가령 암 환자를 진단해 주는 AI의 정확도는 91%인데 재현율이 11%가 되는 경우에 이 모델은 좋은 모델일까?
전혀 아니다. 실제 암환자를 거의 못 가려낸다는 뜻이므로 정확도가 높은 것은 의미가 없다.
또한 음성 대 양성 데이터 분포가 불균형할 경우 (= 원본 데이터에 암환자 1명, 정상 100 명 있는 경우)
정확도는 모델을 평가하는데 좋은 척도가 될 수 없을 것이다.
이러한 불균형 데이터가 주어진 상황에서 분류 모델을 어떻게 평가하면 좋을까?
3. F-score
위에서 본 precision과 recall은 단독으로 쓰기에는 부족하다.
예를 들어, precision이 좋은 척도가 될만한 스팸메일 분류기 모델을 생각해 보자.
이경우 FN은 다소 허용할 만하다. 반면 FP는 허용하기에 risk가 너무 크다.
중요한 비즈니스 메일이 스팸함에 버려져 큰 손실을 야기할 수 있기 때문이다.
그래서 FP를 줄이기 위해 애매한 메일을 음성으로 판단하는 게 좋은데,
그렇다고 해서 FN을 무한히 허용하면 스팸 메일 분류기 모델은 쓸모없는 것과 마찬가지다.
마찬가지로 Recall이 좋은 척도가 될만한 모델도 있다. 암환자 예측 모델이 그것이다.
F score에 대한 식은 다음과 같다.
여기서 베타(beta)값이 1이 되면 F1-score가 되는 것이다.
따라서 F1-score는 Precision과 Recall의 조화평균이 되는 값으로,
둘 다 고려할 수 있기에 분류 모델에서 자주 사용되는 metric 중 하나이다.
만약 precision보다 recall을 더 중요하게 생각한다면 F score에서 beta값을 1보다 크게 하면 될 것이다.
4. 다양한 머신러닝 Evaluation metrics
지금까지 분류모델의 평가 척도에 대해 알아보았다.
분류 문제에 있어 문제의 성격, 분류 기준 등 다양한 변수에 따라
정확한 모델 평가 척도는 달라질 수 있어 다소 복잡하다.
하지만 머신러닝에는 분류만 있는 것이 아니라 회귀, 추천, 군집등 다양한 모델이 있다.
특히 음성, 이미지, 텍스트등의 생성형 모델들이 가지는 독특한 평가 척도들도 매우 다양하다.
이 내용들은 추후에 관련 내용을 다루게 되면 따로 다루도록 하겠다.
이번 포스팅에서 알아야 할 점은 우리가 다루고자 하는 문제의 특성에 따라 다양한 평가 척도가 존재할 수 있다는 것이다.
다음 다양한 task에 따른 모델의 평가 척도 내용을 참고하자.
1. 회귀
https://white-joy.tistory.com/10
2. 추천시스템 랭킹
3. 이미지 생성 모델
4. 기계 번역
https://jrc-park.tistory.com/273
'인공지능 > ML-DL 기초' 카테고리의 다른 글
Cross-Entropy란? (2) | 2024.10.02 |
---|---|
Inductive bias란? (2) | 2024.05.28 |
Regularization(모델의 규제, 정칙화)에 대한 이해 (3) | 2023.12.23 |
활성화 함수에 대한 이해 (3) | 2023.12.01 |
데이터 전처리 기법 : 결측치 / 중복 / 이상치 데이터 (3) | 2023.10.18 |