이번 학기 마지막 대학원 수업으로 ‘인공지능과 의학 응용’이라는 과목을 수강 중입니다. 수강 인원을 보면, 얼마나 많은 임상 선생님들이 인공지능 (Artificial Intelligence)을 이용하여 의학 연구에 응용하는 것에 관심이 많은지 알수 있었습니다. 학기가 다 끝나지는 않았지만, 안타깝게도 강의 교수님이 통계학과 선생님이라 그런지 수업을 신청한 임상 선생님들의 요구(Needs)와 수준을 제대로 파악하지 못한 듯 합니다. 대학원 수업에 대한 약간의 답답함이 생겨, 의사들의 입장에서 쉽게 이해하고 연구에 적용할 수 있는 관점에서 관련 글을 포스팅 해볼까 합니다. 사실 저도 통계학과 전공자나 컴퓨터 과학 전공자가 아니기 때문에, 전문 용어는 최대한 줄이고 개념적, 응용적 관점에서 글을 쓰도록 하겠습니다.
의학 연구에 적용하기 위해 개념적으로 알아야할 머신 러닝 (Machine Learning) 내용은 그리 어렵지 않습니다. 사실 연구를 위한 머신 러닝 응용은 통계학적 분석이나 크게 다를 바 없는 하나의 분석 도구 (Analytic tool)일 뿐입니다. 그리고 대부분의 연구에서 적용하는 머신 러닝은 대부분 Supervised learning과 Unsupervised learning 2가지 방법 중 하나입니다. (사실 Semi-supervised learning, Reinforcement learning 등의 기법도 있지만, 아직까지 의학 연구에는 그리 많이 쓰이지 않으므로 넘어가겠습니다.) 최근 가장 최신 기법으로 생각되고 있는 딥러닝 또한 적용 알고리즘의 차이 일 뿐 대부분 연구에 사용되는 연구의 큰 틀은 동일합니다. 그리고 그 마저도 대부분이 Supervised learning 방법이라고 생각하면 쉽습니다. 이번 포스팅에서는 Supervised learning을 이용한 연구의 구조와 방법, 각각의 예를 살펴보겠습니다.
- Supervised learning (지도 학습)을 이용한 연구: 컴퓨터에게 명확한 결과의 정답지(흔히, Label이라고 부릅니다.) 를 제공하여 훈련(Training)을 시킵니다. 컴퓨터는 정답지를 바탕으로 각 변수의 중요도 및 기여도를 판단하게 되고, 훈련된 데이터를 바탕으로 모델을 수립하게 됩니다. 모델이 수립되면, 우리가 알고자 하는 테스트 데이터를 이용하여, 만들어진 모델의 성능을 평가합니다. 지도 학습은 크게 다음과 같은 2개 target (분류 또는 수치 예측)에 따라 서로 다른 알고리즘을 적용하게 됩니다.
1) 분류 (Classification): 질병 상태와 정상 (Diseased vs. Healthy control)을 여러 임상적 결과에 따라 분류하는 경우로, 가장 흔히 사용하는 방법입니다. 예로, 암 환자와 정상 환자의 여러 가지 임상 변수 데이터를 제공하고 둘을 구분하는 모델을 수립하는 경우가 있습니다. 이 경우에는 2가지 또는 그 이상의 카테고리로 데이터를 구분하게 됩니다.
2) 수치 예측 (Regression): 양적인 값을 예측하는 모델을 수립하고자 할때 사용하는 방법입니다. 예로 암 환자의 여러 가지 임상 변수 데이터를 바탕으로 생존 기간을 예측하고자 하는 경우가 있습니다. 이 경우에는 정량적인 수치로 예측 결과가 나오게 됩니다.

Supervised learning을 이용할 때 중요한 점은 다음과 같습니다.
- Label 결과가 중요하다.: 머신 러닝은 제공된 정답지(Label; gold standard)를 토대로 수학적 계산을 통해 최적의 모델을 수립하게 되므로, 잘못된 Label을 주거나 모호한 데이터를 토대로 training을 시키면 이상한 모델이 수립될 수 밖에 없습니다. 또한 Supervised learning과 unsupervised learning을 구분짓는 요소가 바로 Label의 존재 유무 입니다. 즉, 모델 수립시 사람의 개입이 있게 되는 모델이 supervised learning이 되겠습니다.
- 임상 변수 (Clinical variable) 선택이 매우 매우 중요하다.: 연구를 설계하고, 머신 러닝 알고리즘을 적용할 때, 특징적인 임상 변수 데이터를 제공하여 모델을 수립하게 되는데, 사실 어떠한 변수를 주던지 모델은 만들어집니다. 다시 말하면, 의미없고 전혀 관련성이 없는 변수인데도 불구하고 머신 러닝 알고리즘은 그것을 판단하지 않고 모델 수립에 데이터를 이용하게 된다는 것입니다. 종종 이것은 잘못된 해석을 유도할 수 있습니다. 즉, 모델링에 사용할 임상 변수를 선택하는데 있어 신중하고 꼼꼼하게 고려하고 해석해야한다는 것입니다. 임상 변수의 선택 및 해석에 대한 부분은 머신러닝 전문가라 하더라도 잘 모를 수 있기 때문에, 임상 연구자들이 가장 중요하게 챙겨야 할 부분이라고 할 수 있습니다. 그리고 많은 경우, 수립된 모델에서 변수의 중요도를 계산하여 실제로 적절한 모델인지 해석하게 되는데, 복잡한 알고리즘의 경우 연구자가 그 중요도를 판별하기 어려운 경우도 있기 때문에, 적절한 임상 변수 선택은 매우 중요한 과정이라고 할 수 있습니다.
- Over-fitting (과적합)을 피하기 위해, Validation 과정은 필수다.: 일차적으로 모델을 수립할 경우, 머신 러닝 알고리즘은 가장 최적의 모델을 만들어줍니다. 따라서 이때의 모델의 정확도(accuracy)나 성능(performance)은 좋을 수 밖에 없습니다. (이를 과적합이라고 부릅니다.) 하지만 이 때 수립된 모델의 경우, 매우 지엽적인 데이터에 한정되어 그러한 성능을 보일 수 있기 때문에, 일반적인 상황에서도 수립된 모델이 잘 작동하는지를 평가해야 합니다. 이 과정을 Validation 이라고 부릅니다. Validation은 다른 병원 또는 다른 환자 데이터에서 시행하는 external validation을 시행하는 것이 bias 제거 측면에서 더 좋지만, 임상 데이터가 적은 경우에는 전체 데이터를 Training set과 Test set으로 적절히 쪼개서 (8:2 또는 7:3, 혹은 cross validation 등) internal validation을 시행하게 됩니다.
마지막으로 대표적인 논문을 살펴보고, 포스팅을 마치겠습니다. 2016년 JAMA에 실린 딥러닝 알고리즘을 적용하여 당뇨병성 망막증을 진단하는 모델을 개발하고 검증한 매우 유명한 머신 러닝 관련 논문입니다. 역시 연구 구조는 위의 틀을 크게 벗어나지 않는 것을 볼 수 있습니다.
Development set은 모델 수립을 위한 training data 이며, 각각의 이미지에는 전문가가 당뇨병성 망막증이라고 labeling된 데이터가 제공됩니다. 이 데이터를 토대로 수립된 모델을 다른 기관의 validation set에서 그 성능을 평가한 것을 볼 수 있습니다. 보통 모델의 성능 평가는 ROC 커브 (Receiver operating chracteristic curve)를 통해 하게 되는데, ROC curve의 작성과 해석에 관한 부분은 다음번 포스팅에서 다루도록 하겠습니다.
[참고 문헌]
Deo, Rahul C. “Machine learning in medicine.” Circulation 132.20 (2015): 1920-1930.
Gulshan, Varun, et al. “Development and validation of a deep learning algorithm for detection of diabetic retinopathy in retinal fundus photographs.” JAMA 316.22 (2016): 2402-2410.