[딥러닝] 척도(Metrics)의 설명 및 종류

    척도(Metrics)의 개념

     

    척도라는 것은 어떤 모델을 평가(Evaluate)하기 위해서 사용하는 값이다. 그러다보니 비슷한 개념의 목적/손실함수(Loss Function)와의 개념이 헷갈릴 수 있다. 

     

    손실함수는 모델의 성능을 끌어올리기 위해서 참조하는 값이다. 즉, 트레이닝(training, 학습)을 위해서만 사용하는 나침반과 같은 존재라고 한다면, 척도는 결과적으로 이 모델의 성능은 얼마짜리야라는 개념이다. 

     

    그렇기 때문에 척도와 손실 함수의 개념은 분리되어야 하지만 경우에 따라서는 특정 척도에 따라 최적화 하는 것이 최상일 때도 있다. 둘간의 개념이 사실상 유사하기 때문에 동일한 개념으로 어쩔땐 척도를 사용하기도 하고 어쩔땐 손실함수를 쓰기도 한다.

     

    척도의 종류

     

    confusion matrix

    정확도(Accuracy)

    사실상 가장 많이 쓰이는 개념으로 타겟 대비 정확히 예측한 비율을 정의한다.

    Accuracy = (TP + TN) / (TP + FP + FN + TN)

     

    정밀도(Precision)

    precision

    모델이 참(True)으로 예측한 것 중 실제로 True인 비율이다.

    Precision = TP / (TP + FP)

     

    재현율(Recall)

    recall

    실제로 True인 것 중에서 모델이 True로 예측한 비율이다.

    Recall = TP / (TP + FN)

     

    F1 Score

    Accuracy와 함께 인기있는 척도 중 하나로 F1 Score를 뽑을 수 있다. F1-score는 정밀도(Precision)과 재현율(Recall)의 조화 평균(Harmonic mean)을 나타내는 것으로 분류기 등을 만들 때 Precision과 Recall 사이에서 절충이 이루어지며 특이값의 리스크를 회피 할 수 있다.

     

    다음과 같은 예를 들어보도록 하자.

    Precision = 1
    Recall = 0.1

    둘간의 값의 온도차가 존재하며, 뭔가 잘못된 모델이라는 것을 알 수 있다. 하지만 단순히 정밀도와 재현율의 평균을 구하게 되면 다음과 같다

    (1 + 0.1) / 2 = 0.55

    단순히 평균을 구해버리니 0.1이라는 값이 어느정도 희석 되어버린다. 

     

    그러면 동일한 값, F1 공식으로 구해보도록 한다

    2 * (1*0.1) / (1+0.1) = 0.1818...

    F1 Score가 0.1818..이 나왔고, 이를 통해 해당 모델이 문제가 있다는 것을 쉽게 알 수 있을 것이다.

     

     

    케라스(Keras) 척도 리스트

    https://www.tensorflow.org/api_docs/python/tf/keras/metrics

     

    모듈 : tf.keras.metrics  |  TensorFlow 코어 v2.3.0

    내장 측정. 보기 별칭 주 별칭 tf.metrics 클래스 class AUC : 리만 합을 통해 계산하여 (곡선 아래 면적) 대략 AUC. class Accuracy : 예측 레이블에 해당하는 빈도를 계산합니다. class BinaryAccuracy : 계산하는 �

    www.tensorflow.org

     

     

     

    댓글

    Designed by JB FACTORY