brunch

You can make anything
by writing

C.S.Lewis

by Looxid Labs Feb 20. 2023

머신러닝이라는 도구에 관하여 3편

일반 투자자를 위한 기계학습 결과 깐깐하게 보는 방법

written by Bogyeom Kim

bogyeom.kim@looxidlabs.com

룩시드랩스는 VR과 모바일 앱에 뇌파를 접목하여 인지기능의 저하를 손쉽게 발견하고 손쉽게 멘탈헬스케어를 관리할 수 있는 플랫폼을 개발하고 있습니다. 머신러닝은 기계가 과거의 데이터를 학습하여 새로운 예측을 하는 도구로, 대규모 생체 데이터가 활발하게 수집되는 빅데이터 시대에 바이오, 헬스케어 분야에 발전을 가져오고 있습니다. 본 아티클 시리즈에서는 룩시드랩스에서 인지기능 저하를 발견하고 정신건강 전반을 관리하는데 사용할 머신러닝 기술에 대해 알아보고, 멘탈헬스케어 산업 동향을 소개하도록 하겠습니다. 




기계학습 연구 결과를 주로 어떻게 접하시나요? 저는 많은 경우 뉴스를 통해 새로운 기계학습 연구 성과를 알게 되는 것 같습니다. 


국내 연구진, 한국인 맞춤형 ‘당뇨 발병 예측 모델’ 개발

뷰노-서울대병원, 심전도 기반 심부전 탐지 AI 기술...글로벌 학술지 '사이언티픽 리포트'에 게재

흉부 엑스레이 영상분석 AI 솔루션, '루닛 인사이트 CXR' 영국 임상시험 통해 경력 20년 전문의 수준 정확도 입증


뉴스에서는 보통 연구에 실패했다는 소식 보다는 성공했다는 소식을 전합니다. 전부 성공했다고 하는 뉴스 기사들 속에서 어떻게 하면 진짜 의미있는 기계학습 연구 결과를 골라낼 수 있을까요? 이번 아티클에서는 기계학습 연구 결과를 깐깐하게 읽는데 도움이 되는 몇 가지 개념을 소개하고자 합니다.





성능 지표 Performance metric 


기계학습 모델의 성능이 좋다, 나쁘다를 평가하는 지표에 대해 소개하고자 합니다. 성능 지표는 여러가지가 사용되는데, 문제의 특성에 맞게 적절한 지표를 사용하는 것이 중요합니다. 간혹 잘못된 성능 지표를 사용할 경우 모델의 성능을 과도하게 좋게 평가하거나 평가절하 하는 일이 발생할 수 있습니다. 이에 대해서는 아래에서 설명하도록 하겠습니다. 또한 지도학습 (분류, 회귀), 비지도학습, 생성모델 등 모델의 종류에 따라 평가하는 기준 또한 달라집니다. 본 절에서는 지도학습 분류 모델 성능 평가 지표를 소개하도록 하겠습니다. 


성능 평가 지표를 이해하기 위해서는 오차 행렬(Confusion matrix)에 대해 알아봅시다. 오차행렬은 분류 모델이 예측한 값과 실제 값의 범주를 교차 표의 형태로 정리한 것을 말합니다. 하나의 데이터는 네 가지 경우의 수로 분류될 수 있습니다. 



  

    True positive: 실제 positive인 정답을 positive라고 정확하게 예측

    True negative: 실제 negative인 정답을 negative라고 정확하게 예측  

    False positive: 실제 negative인 정답을 positive라고 예측 (1종 오류)  

    False negative: 실제 positive인 정답을 negative라고 예측 (2종 오류)  



Accuracy: (True positive + True negative)/ (True positive + True negatives + False positives + False negatives)


정확도는 ‘전체 데이터 중 정확하게 예측한 데이터의 비율'이라고 할 수 있겠습니다. 

정확도는 예측 변수의 분포가 불균형한 데이터 (즉, imbalanced data)에는 적합한 평가지표가 아닙니다. 가령, 자살경향성 분류 모델의 정확도가 98% 가까이 나왔다고 해봅시다. 이 모델은 예측 성능이 100%에 가까우니 성능이 뛰어나다고 말할 수 있을까요? 만약 이 모델이 98명의 비자살군을 모두 정확하게 예측하고, 2명의 자살 위험군을 비 위험군으로 예측했다면 어떨까요? 정확도는 98%로 100%에 가깝지만, 실제로 예측하고자 했던 자살 위험군을 제대로 예측하지 못했기 때문에 좋은 모델이라고 말하기 어려울 것입니다. 이처럼 분류 모델의 예측 성능은 문제의 특성을 고려하여 적절한 지표로 평가되어야 합니다. 



Recall: True positives / (True positives + False negatives)


Recall은 ‘진짜 positive인 것들 중, 올바르게 positive로 판단한 비율'을 의미합니다. Positive 결과를 정확하게 예측하는 능력이라고 말할 수 있으며, positive를 정확하게 예측하는 것이 중요할 때 사용하면 적절합니다. Recall은 다른 말로 Sensitivity라고도 합니다. 

Precision: True positive / (True positive + False positive)


positive라고 판단한 것들 중 진짜 positive의 비율을 의미합니다. Recall이 positive를 정확하게 예측한 데이터 세트에 초점을 맞췄다면 Precision은 진짜 positive인 데이터 세트에 초점을 두었다고 볼 수 있습니다. 예를 들어, 실제 negative data를 positive로 잘못 판단하게 되었을 때 문제가 발생한다면 Precision을 중요한 지표로 사용할 것입니다. 한편, positive 데이터를 negative로 잘못 예측했을 때 문제가 발생한다면 recall을 더 중요한 지표로 사용할 수 있을 것입니다. 



F1 score: 2 * (( Precision * Recall) / (Precision + Recall))

정밀도와 재현율의 조화평균입니다. 정밀도와 재현율은 trade-off 관계에 있기 때문에 두 평가지표 중 하나에 치우치지 않는 지표를 사용하고자 할 때 F1 score가 적절합니다.



AUC ROC

AUC ROC는 Area under the curve of Receiver Operating Characteristics의 줄임말로, ROC curve의 아래쪽 면적을 말합니다. AUC ROC를 이해하기 위해 ROC curver에 대해 알아봅시다. 


Figure from Wikipedia (Receiver operating characteristic)


ROC curve는 False positive rate (FPR) 를 x축, True positive rate (TPR) 를 y축으로 하는 그래프입니다. 앞서 오차행렬을 설명하면서 FPR, TPR의 개념을 다뤘었는데요. 이를 가져와 다시 설명하면 ROC curve는 실제 negative인데 잘못 예측한 비율 대비 실제 positive인데 정확하게 예측한 비율의 정도를 의미합니다. 위의 그림에서 (0, 1)의 좌표는 모델이 완벽하게 예측했을 때를 나타냅니다. 그래프가 왼쪽 상단에 가까울수록 분류 정확도가 높다는 것을 보여줍니다. 


다시 AUC ROC로 돌아오면, AUC ROC는 위 ROC curve의 아래쪽 면적으로, 100%에 가까울수록 모델의 성능이 좋다는 것을 보여줍니다. 


지금까지 머신러닝 성과 지표에 대해 살펴보았습니다. 각 지표별 의미하는 바가 다르며, 분류의 목적에 맞게 중점적으로 평가하는 지표를 사용하는 것이 필요합니다.



다양한 성능 지표를 보여주는 사례


아래는 실제 논문에서 제안한 머신러닝 모델의 성능을 보여주는 표입니다. 앞서 소개해드린 Accuracy, Sensitivity, F1 score를 찾아볼 수 있는데요. 통상적으로 머신러닝 모델 성능은 1) 하나의 지표를 중심으로 성능을 비교하되, 2) 다른 지표들도 제시하여 종합적으로 평가하는 것이 권장됩니다. 


Figure from Hahn et al,, (2022)




벤치마크 모델 Benchmark model


적절한 성능 지표를 활용하여 모델을 평가했는지와 더불어 적절한 벤치마크 모델을 설정했는지도 연구 결과를 살펴볼 때 중요합니다. 벤치마크 모델은 성능 평가의 기준점이 되는 모델을 뜻합니다. 연구 결과를 제시할 때에는 벤치마크 모델보다 본인들이 제시하는 모델의 성능이 뛰어나다는 식으로 논리를 전개하는 경우가 많습니다. 그렇기 때문에 적절한 벤치마크 모델을 설정해야 연구에서 제시하는 모델의 가치를 평가할 수 있을 것입니다.


흉부 엑스레이 영상분석 AI 솔루션, '루닛 인사이트 CXR' 영국 임상시험 통해 경력 20년 전문의 수준 정확도 입증


가령, 위 기사에서 다룬 연구 결과는 경력 20년 전문의와 기계학습 모델의 성능을 비교하고 있습니다. 다시 말해, 경력 20년의 전문의가 영상 분석을 한 성능을 기준점으로 잡았을 때, 제시하는 모델이 기준점보다 더 정확하게 영상을 분석했다고 말하고 있습니다. 전문의 1명을 배출하여 20년의 경력을 쌓기까지 소요되는 시간과 비용을 고려한다면, 20년 경력 전문의와 비슷한 수준의 영상 분석 정확도를 보인 기계학습 모델의 개발은 효과와 효율성 측면에서 충분히 의미있어 보입니다. 


이처럼 기계학습 연구 결과는 벤치마크 모델과 함께 제시되며, 비교하는 벤치마크 모델이 연구의 의의를 보여준다고 해도 과언이 아닙니다. 따라서 우리는 연구에서 적절한 벤치마크 모델을 설정하고 있는지 따져보는 것이 중요합니다. 




일반화 가능성 Generalizability


개인의 생체 데이터에 기계학습을 적용해서 정신건강 상태를 예측해주는 서비스가 있다고 해봅시다. 이 서비스를 제시한 기업에서는 자신들이 확보한 데이터에, 특정 기계학습 모델을 적용한 결과를 서비스 개발의 기반으로 보여줄 것입니다. 즉, ‘우리가 확보한 사람들의 생체 데이터로, 이렇게 모델링을 해보았더니, 그들의 정신건강 상태에 대한 예측 성능이 굉장히 높게 나오더라.’ 이런 식으로 말입니다. 그런데 과연 내가 사용하는 서비스에서도 연구에서 보여준 성능이 나올까요? 


연구 결과는 특정 조건에서 실험한 결과라는 것을 기억할 필요가 있습니다. 다르게 말하면, 조건이 바뀌면 결과도 바뀔 수 있다는 것이지요. 이처럼 연구 결과가 다른 맥락에서는 적용되지 않을 때, 일반화 가능성이 낮다고 얘기합니다. 


일반화 가능성


우리는 연구 결과를 믿고 서비스를 사용할 것입니다. 그렇다면 우리는 연구 결과가 일반화 가능성이  높은지, 즉, 여러 조건에서도 비슷한 결과를 보일 수 있는 것인지 따져봐야 합니다. 이번에는 일반화 가능성을 높이기 위해 머신러닝 분야에서 사용하는 두 가지 방법에 대해 살펴보겠습니다. 앞으로 연구를 보실 때 아래의 방법들이 적절하게 적용되었는지 따져보시면 좋겠습니다. 



Validation 


2번째 편에서 실습을 할 때 데이터셋을 train set과 test set으로 나눴던 것을 아마도 기억하실 것입니다.  Train set으로 모델을 학습시키고 test set에 예측하여 모델의 성능을 확인했었습니다. 그런데 Train set에서 학습이 잘 되었다는걸 어떻게 판단하고 test set 예측으로 넘어가는걸까요?


위 그림은 Train set에서 학습이 계속 진행될 때 모델이 학습하는 decision boundary의 형태의 변화를 보여주고 있습니다. 시간이 계속될수록 decision boundary가 Train set의 패턴에 조밀하게 맞춰지는 것을 확인할 수 있습니다. 


그런데 이렇게 Train set에 조밀하게 맞춰진, 복잡한 모델은 Test set에서 예측을 잘 해낼까요? 아마도 그렇지 않을 것입니다. Train set과 Test set은 형태가 다르기 때문에 Train set에 지나치게 맞춰진 모델은 Test set에서 좋은 성능을 보이지 못할 것입니다. 이렇게 Train set에 모델이 과하게 fitting된 것을 과적합(overfitting)이라고 합니다. 


우리는 과적합을 피하고 적절한 타이밍에서 학습을 멈춰야 합니다. 그리고 Test set에 예측을 해야하지요. 이 적절한 타이밍을 알기 위해서 Validation set을 사용하게 되었습니다.


Validation set은 보통 Train set에서 일부를 자르거나 cross validation을 적용하여 확보합니다. Validation을 하게 되면 특정 데이터셋에 대한 과적합을 방지할 수 있고, 따라서 더 일반화된 모델을 만들 수 있습니다.


Validation을 위한 데이터셋 구분



Independent test set


일반화 가능성을 보여주기 위한 가장 좋은 방법은 독립적인 데이터셋에서 모델이 잘 작동하는지 보여주는 것입니다. 실제 연구들에서는 Train, Validation, Test set의 성능을 확인하여 모델을 개발한 후 독립된 데이터셋들에서 모델의 성능을 보여주는 식으로 모델의 일반화 가능성을 주장합니다. 


독립된 데이터셋은 학습 데이터와는 별개의 데이터이며 학습에 사용되지 않은 경우를 의미합니다. 학습된 모델이 독립된 데이터셋에서도 작동을 잘 한다는 것은, 모델이 보지 않은 새로운 데이터에서도 예측을 잘 한다는 것입니다. 따라서 일반화 가능성을 보여주기 위한 황금률로 여겨지고 있습니다. 


연구에서 말하는 독립된 데이터셋도 크게 두 가지 경우로 나누어볼 수 있습니다. 하나는 학습 데이터에서 Test set을 나누고 이것을 예측을 위해 남겨둔 경우입니다. 앞서 실습에서도 Train set에서 학습한 결과를 validation set에서 확인했고 Test set에 예측하여 모델 성능을 살펴보았었는데요. 이 경우가 해당됩니다. 또 다른 경우는 Train set과는 아예 다른 샘플 데이터를 칭하기도 합니다. 




Independent test set을 지칭하는 두 가지 경우(각 타원은 dataset을 의미). (A) 같은 샘플에서 나온 dataset의 일부를 test set으로 사용하는 경우, (B) 서로 다른 샘플에서 나온 dataset 2개 중 하나를 test set으로 사용하는 경우




나가며


지금까지 기계학습 결과를 비판적으로 볼 때 살펴보면 좋을 것들에 대해 알아보았습니다. 연구목적에서 보고자 하는 바와 맞는 성능지표로 연구결과를 해석하고, 결과에 대한 비교분석을 위한 적절한 벤치마크 모델의 설정이 필요합니다. 또한 연구에 사용된 기계학습 모델의 일반화 가능성을 따져보기 위해 validation 과정이 필수적이며, 학습되지 않은 독립된 test dataset에서의 결과가 어느정도인지 살펴볼 필요가 있습니다. 이런 부분들을 떠올리시면서 의미있는 기계학습 결과를 선별해내시길 바랍니다. 





Reference

Choi, J., Lee, S., Chang, M., Lee, Y., Oh, G. C., & Lee, H. Y. (2022). Deep learning of ECG waveforms for diagnosis of heart failure with a reduced left ventricular ejection fraction. Scientific Reports12(1), 1-10.


Hahn, S. J., Kim, S., Choi, Y. S., Lee, J., & Kang, J. (2022). Prediction of type 2 diabetes using genome-wide polygenic risk score and metabolic profiles: A machine learning analysis of population-based 10-year prospective cohort study. Ebiomedicine86, 104383.


van Beek, E. J. R., Ahn, J. S., Kim, M. J., & Murchison, J. T. (2023). Validation study of machine-learning chest radiograph software in primary and emergency medicine. Clinical Radiology78(1), 1-7.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari