Satisficing and Optimizing Metric
이번 글에서는 지난 3-3의 Sinlge Number Evaluation Metric에 이어서, ML Model의 결과를 평가하는 추가적인 방법론에 대해서 얘기해보려 한다.
Sinlge Number Evaluation Metric을 통한 ML Model 평가 방법론은 간단히 요약하자면, 평가의 기준을 단일 스코어 하나로 보고 평가하자는 것이다. (3-3.ML Model 평가 방법론 1 참조 https://brunch.co.kr/@minsukshin/14) 예를 들어 Precision과 Recall을 모두 ML Model의 성능 기준의 잣대로 삼는다면, A Model은 Precision이, B Model은 Recall이 더 우세할 때, A, B 둘 중에 어느 Model이 더 우수하다고 평가하기가 어렵다. 이럴 때 F1 Score를 사용하여 Precision과 Recall을 산술적으로 모두 반영하되 하나의 단일 Score로 나타낼 수 있는 기준을 마련해서 선정의 기준을 명확히 할 수가 있는 것이다.
하지만 꼭 최적의 Model 선정에 있어서 Precision 혹은 Recall과 같은 Accuracy 관련 수치만 판단의 잣대가 되는 것은 아니다. 다음의 고양이 분류기 예제를 한번 보도록 하자.
고양이 분류기를 위해 만든 ML Model이 위와 같이 A, B, C 세 가지 종류가 있고, 선정기준을 Accuracy(F1 Score)와 Running time이 두 가지를 모두 고려해야 한다고 하자. 여기서 Running time이란, Takt time, 즉 이미지 한 장을 고양이 여부를 구분하여 아웃풋을 내는데 걸린 시간을 말한다.
물론 Accuracy 만 고려한다면 당연히 95%의 수치를 보이는 C Model이 최적의 Model이라고 할 수 있다. 하지만 이 모델이 이미지 1장을 판별하는데 걸린 시간이 1,500ms (1.5초) 정도 걸렸다. 다른 모델이 각각 80ms(0.08초), 95ms(0.095초) 시간이 걸린 것에 비하면 너무 터무니없이 오랜 시간이 걸려, 정확도는 높을지 몰라도 실제 효용성 측면에서 효용이 낮다.
앤드류 응 교수는 여기서 Satisficing and Optimizing Metric이라는 방법론을 제시한다. 나는 이것을 직역하기보다 이렇게 부르고 싶다. '조건부 최적화 모델 찾기'
위의 예제에서 Accuracy는 높으면 높을수록 좋은, 즉 Optimizing이 되어야 할 성능이고, Running time 은 일정 수치 이하만 되면 별 상관없는, 즉 Satisficing이 되면 되는 성능이다. 예를 들어 Running time은 100ms 이하면 되면 모두 동일한 성능으로 간주하겠다는 의미이다. 즉 일정한 '조건'만 만족하면 되는 것이다.
이 기준으로 하자면 자동적으로 C 모델은 100ms를 훌쩍 뛰어 넘으므로 탈락이다. Running time기준으로 여기서 A, B는 동등한 모델이다. 이때 Optimizing 되어야 하는 Accuracy가 더 높은 모델, 즉 B가 최적의 모델로 결정될 수 있는 것이다.
슬라이드 우측에 앤드류 응 교수가 조금 더 재미있는 예시를 설명하였는데, 바로 인공지능 스피커에 대한 것이다. 요새 집에 다들 기가 지니, 구글, 알렉사 등등등 인공지능 스피커 하나씩은 가지고 계실 것이다. 나는 기가 지니를 가지고 있는데, 스피커에다 대고 '지니야' 라고 부르면 네?라고 대답을 한다. 이렇게 스피커를 깨우는 단어를 영어로 'Wake words' 혹은 'Trigger words'라고 한다. 아마존은 'ALEXA', 구글은 'OK GOOGLE' 애플은 'HEY SIRI', 바이두는 'Nihao Baidu'가 각각의 Wake words이다. 여기서 Accuracy, False Positive 두 가지의 기준을 가지고 인공지능 스피커 성능을 판별한다고 하자. Accuracy는 내가 인공지능 스피커를 불렀을 때 제대로 대답하는 정확도, False positive는 부르지 않았는데 스피커가 대답하는 숫자(24시간 동안)를 의미한다. 스피커 성능 판단의 척도로 accuracy는 최대화되어야 하고, False positive는 1 이하만 되면 상관없다는 기준을 놓으면 결국 Satisficing and Optimizing Metric이라는 방법론을 사용하게 되는 것이다.
어찌 보면 우리가 실생활의 많은 상황에서 무엇인가 판단을 내려할 때 이러한 Metric으로 추상적으로나마 판단을 하고 있을 것이기 때문에, 별것 아닌 내용을 너무 주저리주저리 어려운 단어로 서술했다고 생각하실지도 모르겠다. 하지만 적어도 ML 모델 성능의 판단에 있어서는 이러한 판단 기준을 추상적으로 정의하지 말고 이렇게 명확히 테이블화 시켜서 Optimizing과 satisficing 하는 기준을 분리하는 습관을 들이도록 하는 것은, 사고의 체계화와 명확화를 위해서 분명히 필요한 것이라고 본다.