일반적으로 학습하는 모델은 Loss를 줄이기 위해 학습을 진행
사용자가 선택함에 따라 Loss와 성능 지표를 같게 설정할 수도 있고 다르게 설정할 수도 있음
MSE(Mean Squared Error)
기본적으로 회귀 모형(Regression Model)에서 많이 사용하는 Loss이자 성능지표
신경망 모형뿐 아니라 선형 회귀 모델 또한 MSE를 Loss로 사용
예측 값과 실제 값의 차이에 대해 평균 제곱합의 개념으로서 낮을수록 좋은 성능지표
상대적인 성능 지표 → 같은 문제에 대해 다른 모델을 적용했을 때만 비교 가능
MAPE(Mean Absolute Percentage Error)
MSE에 비해 절대적인 지표
예측 값과 실제 값의 차이를 실제 값으로 나눠 실제 값 대비 몇 %정도의 오차가 있는지에 대한 성능 지표
분류 모형(Classificaion Model)에서 사용하는 성능 지표
클래스={정상,불량} | 예측한 클래스 | ||
정상 | 불량 | ||
실제 클래스 | 정상 | TP(True Positive) | FN(False Negative) |
불량 | FP(False Positive) | TN(True Negative) |
정확도(Accuracy)
분류 문제에서 가장 많이 사용하는 성능 지표
전체 데이터 중 실제로 잘 예측했는지에 대한 비율을 의미
$Accuracy = \frac{옳게 분류된 데이터의 수}{전체 데이터의 수} = \frac{TP+TN}{TP+FN+FP+TN}$
정밀도(Precision), 재현율(Recall), 특이도(Specificity) 분류 문제에서 기본적으로 사용하는 성능 지표는 ‘Accuracy’
그렇지만 실제 데이터 분석을 해야 하는 많은 도메인에서는 클래스 간의 불균형 현상이 일어남. 즉, 정상의 비율 99%, 불량의비율이 1%인 Class Imbalanced Problem이 일어남. 이러한 경우 성능 지표를 Accuracy로 사용할 경우, 모두 정상이라 예측해버리면 정확도 99%의 미우 좋은 모델이라 잘못 생각 할 수 있음. ⇒ 따라서 상황에 따라 성능 지표는 다르게 설정할 필요가 있음
정상에 대해 얼마나 잘 예측했는지, 불량에 대해 얼마나 잘 예측했는지에 대한 성능 지표가 필요 → Precision, Recall, Specificity
$정밀도(Precision) = \frac{정상으로 올바르게 예측된 데이터의 수}{정상으로 예측된 데이터의 수} = \frac{TP}{FP+TP}$
$재현율(Recall) = \frac{정상으로 올바르게 예측된 데이터의 수}{실제로 정상인 데이터의 수} = \frac{TP}{FN+TP}$
$특이도(Specificity) = \frac{불량으로 예측된 데이터의 수}{실제 불량인 데이터의 수} = \frac{TN}{TN+FP}$
F1-Score (F1-Measure)
Class Imbalance 상황에서 많이 사용하는 성능 지표
Precision과 recall의 조화 평균, 불량으로 예측했을 때 정확한 비율과 실제 불량 중 잘 예측한 비율을 말함
$F1-Score = \frac{2}{\frac{1}{precision} + \frac{1}{recall}} = 2 \times \frac{precision \times recall}{precision + recall}$
'공부 끄적끄적 > Deep Learning' 카테고리의 다른 글
[Deep Learning] 인공지능 (1) | 2023.01.30 |
---|---|
[Deep Learning] Tensor / 스칼라, 벡터, 행렬, 텐서 사칙연산 (0) | 2023.01.30 |
[Deep Learning] CUDA, CuDNN, PyTorch (0) | 2023.01.30 |