의학 연구를 위한 기계학습: Supervised learning의 연구 설계 구조

 

이번 학기 마지막 대학원 수업으로 ‘인공지능과 의학 응용’이라는 과목을 수강 중입니다. 수강 인원을 보면, 얼마나 많은 임상 선생님들이 인공지능 (Artificial Intelligence)을 이용하여 의학 연구에 응용하는 것에 관심이 많은지 알수 있었습니다. 학기가 다 끝나지는 않았지만, 안타깝게도 강의 교수님이 통계학과 선생님이라 그런지 수업을 신청한 임상 선생님들의 요구(Needs)와 수준을 제대로 파악하지 못한 듯 합니다. 대학원 수업에 대한 약간의 답답함이 생겨, 의사들의 입장에서 쉽게 이해하고 연구에 적용할 수 있는 관점에서 관련 글을 포스팅 해볼까 합니다. 사실 저도 통계학과 전공자나 컴퓨터 과학 전공자가 아니기 때문에, 전문 용어는 최대한 줄이고 개념적, 응용적 관점에서 글을 쓰도록 하겠습니다.

의학 연구에 적용하기 위해 개념적으로 알아야할 머신 러닝 (Machine Learning) 내용은 그리 어렵지 않습니다. 사실 연구를 위한 머신 러닝 응용은 통계학적 분석이나 크게 다를 바 없는 하나의 분석 도구 (Analytic tool)일 뿐입니다. 그리고 대부분의 연구에서 적용하는 머신 러닝은 대부분 Supervised learning과 Unsupervised learning 2가지 방법 중 하나입니다. (사실 Semi-supervised learning, Reinforcement learning 등의 기법도 있지만, 아직까지 의학 연구에는 그리 많이 쓰이지 않으므로 넘어가겠습니다.) 최근 가장 최신 기법으로 생각되고 있는 딥러닝 또한 적용 알고리즘의 차이 일 뿐 대부분 연구에 사용되는 연구의 큰 틀은 동일합니다. 그리고 그 마저도 대부분이 Supervised learning 방법이라고 생각하면 쉽습니다. 이번 포스팅에서는 Supervised learning을 이용한 연구의 구조와 방법, 각각의 예를 살펴보겠습니다.

  1. Supervised learning (지도 학습)을 이용한 연구: 컴퓨터에게 명확한 결과의 정답지(흔히, Label이라고 부릅니다.) 를 제공하여 훈련(Training)을 시킵니다. 컴퓨터는 정답지를 바탕으로 각 변수의 중요도 및 기여도를 판단하게 되고, 훈련된 데이터를 바탕으로 모델을 수립하게 됩니다. 모델이 수립되면, 우리가 알고자 하는 테스트 데이터를 이용하여, 만들어진 모델의 성능을 평가합니다. 지도 학습은 크게 다음과 같은 2개 target (분류 또는 수치 예측)에 따라 서로 다른 알고리즘을 적용하게 됩니다.

1) 분류 (Classification): 질병 상태와 정상 (Diseased vs. Healthy control)을 여러 임상적 결과에 따라 분류하는 경우로, 가장 흔히 사용하는 방법입니다. 예로, 암 환자와 정상 환자의 여러 가지 임상 변수 데이터를 제공하고 둘을 구분하는 모델을 수립하는 경우가 있습니다. 이 경우에는 2가지 또는 그 이상의 카테고리로 데이터를 구분하게 됩니다.

2) 수치 예측 (Regression): 양적인 값을 예측하는 모델을 수립하고자 할때 사용하는 방법입니다. 예로 암 환자의 여러 가지 임상 변수 데이터를 바탕으로 생존 기간을 예측하고자 하는 경우가 있습니다. 이 경우에는 정량적인 수치로 예측 결과가 나오게 됩니다.

supervised learning
Supervised learning 방법을 이용한 연구 방법의 모식도. Training data를 통해 최적의 모델을 수립하고, Test data를 통해 실제 수립된 모델의 성능을 평가합니다.

Supervised learning을 이용할 때 중요한 점은 다음과 같습니다.

  1. Label 결과가 중요하다.: 머신 러닝은 제공된 정답지(Label; gold standard)를 토대로 수학적 계산을 통해 최적의 모델을 수립하게 되므로, 잘못된 Label을 주거나 모호한 데이터를 토대로 training을 시키면 이상한 모델이 수립될 수 밖에 없습니다. 또한 Supervised learning과 unsupervised learning을 구분짓는 요소가 바로 Label의 존재 유무 입니다. 즉, 모델 수립시 사람의 개입이 있게 되는 모델이 supervised learning이 되겠습니다.
  2. 임상 변수 (Clinical variable) 선택이 매우 매우 중요하다.: 연구를 설계하고, 머신 러닝 알고리즘을 적용할 때, 특징적인 임상 변수 데이터를 제공하여 모델을 수립하게 되는데, 사실 어떠한 변수를 주던지 모델은 만들어집니다. 다시 말하면, 의미없고 전혀 관련성이 없는 변수인데도 불구하고 머신 러닝 알고리즘은 그것을 판단하지 않고 모델 수립에 데이터를 이용하게 된다는 것입니다. 종종 이것은 잘못된 해석을 유도할 수 있습니다. 즉, 모델링에 사용할 임상 변수를 선택하는데 있어 신중하고 꼼꼼하게 고려하고 해석해야한다는 것입니다. 임상 변수의 선택 및 해석에 대한 부분은 머신러닝 전문가라 하더라도 잘 모를 수 있기 때문에, 임상 연구자들이 가장 중요하게 챙겨야 할 부분이라고 할 수 있습니다. 그리고 많은 경우, 수립된 모델에서 변수의 중요도를 계산하여 실제로 적절한 모델인지 해석하게 되는데, 복잡한 알고리즘의 경우 연구자가 그 중요도를 판별하기 어려운 경우도 있기 때문에, 적절한 임상 변수 선택은 매우 중요한 과정이라고 할 수 있습니다.
  3. Over-fitting (과적합)을 피하기 위해, Validation 과정은 필수다.: 일차적으로 모델을 수립할 경우, 머신 러닝 알고리즘은 가장 최적의 모델을 만들어줍니다. 따라서 이때의 모델의 정확도(accuracy)성능(performance)은 좋을 수 밖에 없습니다. (이를 과적합이라고 부릅니다.) 하지만 이 때 수립된 모델의 경우, 매우 지엽적인 데이터에 한정되어 그러한 성능을 보일 수 있기 때문에, 일반적인 상황에서도 수립된 모델이 잘 작동하는지를 평가해야 합니다. 이 과정을 Validation 이라고 부릅니다. Validation은 다른 병원 또는 다른 환자 데이터에서 시행하는 external validation을 시행하는 것이 bias 제거 측면에서 더 좋지만, 임상 데이터가 적은 경우에는 전체 데이터를 Training set과 Test set으로 적절히 쪼개서 (8:2 또는 7:3, 혹은 cross validation 등)  internal validation을 시행하게 됩니다.

마지막으로 대표적인 논문을 살펴보고, 포스팅을 마치겠습니다. 2016년 JAMA에 실린 딥러닝 알고리즘을 적용하여 당뇨병성 망막증을 진단하는 모델을 개발하고 검증한 매우 유명한 머신 러닝 관련 논문입니다. 역시 연구 구조는 위의 틀을 크게 벗어나지 않는 것을 볼 수 있습니다.

1_00000

2

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.

광고

휴먼 게놈 프로젝트, 그 이후.. 그리고 정밀 의료시대까지

Hx of HGP
The landscape of Human Genome Project (National Human Genome Research Institute 에서 발췌)

인간 게놈 프로젝트 (Human Genome Project; HGP)는 인간의 모든 유전자 염기 서열을 밝히는 것을 목표로 1990년 처음 시작되었습니다. 그리고 당초 목표보다 2년 빠른 2003년도에 목표를 완수하게 되었죠. 이 당시만 해도, 인간의 유전체 암호가 모두 해독되어서 마치 모든 유전병을 정복가능하게 될 거라고 기대가 매우 컸습니다. 그렇지만 당시의 기대와 흥분도 잠시, 지금까지 무려 14년이 흘렀지만 아직도 게놈 프로젝트는 현재 진행형입니다. 이번 글에서는 게놈 프로젝트의 역사와 의의, 그리고 앞으로 유전체 연구 진행 방향에 대해서 논의해 보겠습니다.

사실 게놈 프로젝트를 말하는데 있어서, 염기서열 분석 기술의 발전을 떼놓고는 말하기가 어렵습니다. 하지만 각 세부적인 분석 기술 소개하는 것 만으로도 엄청난 분량이 되어버리므로, 이번 글에서는 간단히만 언급하겠습니다.

Frederick-Sanger-and-a-DN-009
1958년 노벨 화학상 수상자, Frederick Sanger (1918 – 2013). 그의 이름을 딴 생거 시퀀싱 방법은 아직까지도 염기 서열 분석 방법의 고전적 분석 표준(Gold standard)으로 인정받고 있습니다.

유전자의 염기 서열을 분석하는 가장 고전적인 방법은 생거 시퀀싱(Sanger sequencing)법 입니다. 영국의 생화학자였던 프레데릭 생거에 개발된 방법은 아직까지도 염기 서열 분석의 표준 방법(Gold standard)로 인정되고 있습니다. 그러나 기술의 발전으로 점점 더 빠르고 정확하게, 대용량의 유전 정보를 시퀀싱하는 것이 가능하게 되었고, 최근에는 이를 두고 차세대 염기 서열 분석법 (Next-generation sequencing, NGS) 라고 부르고 있습니다. 사실 우리는 이미 NGS의 시대에 살고 있기 때문에 엄밀한 의미에서 차세대 라는 말은 맞지 않습니다. 따라서 일부에서는 3세대 염기서열 분석 (Third generation sequencing, TGS) 또는 대용량 염기 서열 분석 (Massively parallel sequencing, MPS)라고 부르기도 합니다. 하지만, 편의상 널리 NGS로 통용되고 있습니다. 예전에는 염기 서열을 밝히는데 수년이 걸렸던 인간 게놈 프로젝트도, NGS 기술의 발달로 이 글을 작성하는 지금도 매우 저렴한 가격에 며칠이면 가능해졌으며, 소요 시간과 가격은 점점 감소하고 있습니다. 그렇다면 이렇게 저렴해진 유전체 서열 분석 기술이 의미하는 바는 무엇일까요?

costs_plummeting_x9001.jpg
2000년대 초, 백만불이었던 전체 유전체 분석 가격은 2017년 현재 이미 1,000불 아래로 떨어졌습니다. 즉, 개인이 100만원의 비용이면 본인의 모든 염기 서열 정보를 알 수 있는 시대에 도달했다는 의미가 됩니다.

사실 인간 게놈 프로젝트 이후에 진행된 프로젝트는 1000 게놈 프로젝트 (1000 Genome Project)가 있습니다. 1000 게놈 프로젝트는 1000명의 사람들의 전체 유전체를 분석해서 서로 차이를 보이는 염기 서열에 무엇이 있고, 이것이 개인마다 어떻게 다름으로써 개인별 특징을 나타내는지를 찾고자하는 첫 시도였다고 볼 수 있죠. 그리고 현재 알게된 사실은 사람들은 무수히 다른 단일 유전자 변이 (Single Nucleotide Variant, SNV)를 가지고 있으며, 이러한 SNV가 각기 어떻게 작용을 해서 서로 다른 형질을 보내는지에 연구의 포커스가 맞춰진 상태입니다. 인간이 가지고 있는 형질과 질병은 무수히 많습니다. 그리고 인간의 유전체도 SNV를 포함해서 매우 다양하며, 무궁 무진한 상호 작용과 조절을 받고 있습니다. 즉, 인간 게놈 프로젝트 초기에 기대했던 목적을 완전히 이수하려면 이러한 모든 유전체의 발현과 조절, 그리고 개개인의 유전 정보와의 관계를 밝히는 것이 필수라는 것이죠. 1000명에서 시작된 프로젝트는 이제 나라와 인종별로 10만명, 100만명 수준으로 확대되고 있으며, 앞서 언급한 유전체와 형질간의 관계를 확인하기 위한 데이터 수집 과정입니다.

즉 앞으로의 유전체 프로젝트와 연구 방향은 이러한 형질 또는 질병과 유전 정보 간의 관계를 파헤치는데 집중될 것입니다. 유전자 지도 완성 뿐 아니라, 유전자 지도 안의 각 위치가 어떠한 역할을 하고, 어떤 형질과 질병을 일으키는지 완벽하게 이해를 해야한 엄밀한 의미의 정밀 의료가 실현 가능하다는 것이죠.  유전체 정보는 매우 방대하고, 이를 분석하는데는 매우 많은 시간과 노력이 필요합니다. 따라서 뒤이어 발전하게 된 것이 이러한 유전 정보를 분석하는 생물 정보학 (Bioinformatics)입니다. 더 나아가 최근에는 이러한 유전 정보를 빅데이터로 간주하여, 인공지능 방법론을 활발하게 적용하고 있는 상황입니다. 정밀 의료를 논의하는데 있어, 유전학, 생물 정보학, 그리고 인공 지능 등을 함께 이해할 필요가 있는 대목입니다.

2-DNA-computer
유전 정보 데이터를 바탕으로 한 정밀 의료 를 실현하기 위해서는 생물 정보학과 같은 분석 도구가 필수적이며, 유전체 데이터가 매우 크기 때문에 이를 효과적으로 처리하기 위해 빅데이터와 인공 지능 기술 적용이 크게 각광 받고 있습니다.

궁극적으로 정밀 의료 시대에는 모든 개인이 자신의 유전 정보를 보유하게 될 것이고, 앞에서 알게된 지식을 바탕으로 사는 시대에 있게 될 것입니다. 그리고 지금은 연구자들이 그러한 지식의 틈을 메꿔가는 과정이라고 볼 수 있겠죠.

유전 정보 분석 및 생물 정보학, 그리고 빅 데이터와 인공지능. 각각의 세부적인 내용은 나중에 더 자세히 알아보도록 하고 이번 글은 여기서 마치겠습니다.