우리는 이미 일상 생활에 머신러닝의 개념을 적용하고 있었다…

Precision과 recall은 머신러닝에서 모델의 성능을 가늠하는 가장 중요한 두 가지 지표이다. Precision은 내가 찾고자 하는 것을 정확하게 찾아내는 능력이고, recall은 내가 찾고자 하는 것을 주어진 표본에서 최대한 많이 찾아낼 수 있는 능력이다. 보통 precision을 높이면 recall이 떨어지고, recall을 높이면 precision이 떨어지기 나름이다. 아쉽지만 당연하게도, 이상적인 시나리오인 precision과 recall이 모두 매우 높은 경우는 현실적으로 존재하지 않는다. 따라서 어떻게 이 두 지표들을 나의 목적에 맞게 최적화 시키는 것이 중요한데, 문득 이런 사고 방식이 머신 러닝 뿐만 아니라 우리 일상에 예전부터 적용되고 있음을 느꼈다.

Precision과 recall 정의 (출처: wikipedia)

Precision 우선주의

Precision을 높인다는 것은 내가 예측한 것 중에 그 예측이 맞을 확률을 더 높인다는 것이다. 인공지능을 이용하여 고객에게 제품을 추천을 해주는 시스템을 고안하는 회사들은 precision을 매우 중요시 해야한다. 예를 들어 남성 스포츠 의류를 구입할 의향이 있는 사람에게 여성 속옷을 추천한다면 이건 안하느니만 못한 것 아닌가. 즉, false positive (위양성; 실제론 틀린데 맞다고 예측된 것)의 위험성이 높아 이를 최소화 해야하는 경우엔 precision 우선주의를 택하는 것이 좋다. 일상 생활에서도 이런 방식을 택하는 제도들을 찾을 수 있다:

  • 채용 과정: 실력있는 사람들이 떨어지는 것이 아쉽지만, 혹시나 실제로 실력 없는 사람이 입사하는 것을 방지하는 것이 더 중요.
  • 사법 기구: 죄 있는 사람들이 간혹 무죄를 받는 것이 괘씸하지만, 무죄인 사람이 처벌을 받는 것을 방지하는 것이 더 중요.
  • 위험한 수술 결정: 심한 질병을 가진 환자들을 모두 찾아내지 못하는 것은 안타깝지만, 병이 없는 사람에게 위험한 수술을 시행하는 것을 방지하는 것이 더 중요.

Recall 우선주의

Recall을 높인다는 것은 내가 찾고자 하는 것을 더욱 더 많이 찾는 다는 것이다. Recall 우선주의는 false negative (위음성; 실제론 맞는데 틀리다고 예측된 것)의 위험성이 높을 때 택하는 것이 좋다. 예를 들어 구글 플레이에서는 머신러닝 기법을 이용하여 악성앱들을 찾아내는데, 나쁜 앱 하나라도 더 찾는 것이 중요하기에 recall을 강조해야만 한다. 이 방식에서 주의할 점은 false positive에서 오는 비용이 높을 수 있기 때문에, 이 비용을 고려한 후 얼마 만큼의 recall을 추구할 것인지 선택을 해야 한다. 일상 생활에서 recall 우선주의를 택하는 것들의 예는 다음과 같다:

  • 음주 단속: 음주 운전을 하지 않는 사람이 대다수 이지만, 소수의 음주 운전자들을 찾아내서 더 안전한 도로를 유지하는 것이 중요하기에 체크포인트에서 일일히 모두 음주 측정기 검사를 거친다.
  • 예방 접종: 대부분은 신종 바이러스에 감염되지 않을테지만, 혹시 한 명이라고 걸리게 되면 전염성 및 사망률이 높기 때문에 최대한 많은 사람들에게 예방 접종을 함.
  • 119 전화 대응: 장난전화의 의심이 커도 혹시 실제 상황일 것을 대비하여 대응을 함. (119 장난전화는 제발 엄벌하길…-_-+ )

아무리 머신러닝을 잘하는 천재이건, 아무리 잘 만들어진 제도이던, 위와 같이 문제의 본질을 파악하고 precision과 recall에서 오는 장단점, 그리고 제약 조건들을 제대로 파악하고 접근해야지 최적의 결과를 얻을 수 있을 것이다. 바로 이런 사고 방식과 판단력이 인공지능의 시대에서 인간이 제공하는 ‘가치’가 아닐까?