의료 AI(딥러닝) 공부 일기

Ch 01. 인공지능 헬스케어

ignuy 2024. 7. 5.

시장의 움직임

인공지능 헬스케어 부분 산업 시장 사이즈는 매년 꾸준히 성장하고 있다. 산업 시장이 커지면서 기업들도 상당히 많이 유입되었다. 그중 대표적으로 구글 헬스가 있다. EMR/ EHR 등 쌓여만 가는 임상 데이터를 구글이 빅데이터와 클라우딩 기술로 선점하면서 산업 시장을 이끄는 중이다.

고부가가치 시장

난이도가 어렵지만 큰가치를 가진 분야임이 틀림없다. 해외에서는 Google Health가 시장을 주도하고 있고, 국내 시장으로 눈을 돌리면 네이버와 카카오 헬스케어가 시장을 주도하고 있다. 구글처럼 다양한 산업분야보다는 EHR이나 EMR에 집중적으로 투자하면서 산업 사이즈를 키워가고 있다.

 

산업 시장 자체가 굉장히 블루오션이다. 현재 연구가 진행된 분야는 신약 개발 위주이고 임상 진단 기술에 대해서는 신생 분야라고 할 수 있다.

 

이미 세계적으로 다양한 기업들이 이 분야를 선도하고 있음.

1. Insilico Medicin

 

Main

Artificial Intelligence for Drug Discovery and Aging Research

insilico.com

2. Exscientia | AI Drug Discovery | Pharmatech

 

Exscientia | AI Drug Discovery | Pharmatech

At Exscientia, we combine the power of AI and human creativity to make safer and more sophisticated drugs available to all. Visit our website to find out more.

www.exscientia.com

3. BenevolentAI | AI Drug Discovery | AI Pharma

 

Bio-medical science 개요

바이오 메디컬 사이언스는 결국 Data Science에 대한 학습이 필수적이다. 결국 우리가 할 일은 수많은 데이터를 통해서 인공지능 학습을 시키고 주어진 문제를 빠르고 정확하게 풀어내야 하는 것이다.

전문가가 되기 위해 공부해야 할 분량이 엄청나게 많다. 일단 바이오 메디컬이라는 도메인 지식이 필요하다. 생물학, 약학, 생화학, CS 등 다양한 분야가 합쳐진 분야이다. 모든 분야에 능통한 사람은 극히 드물기 때문에 협업을 통해 하나의 비지니스가 완성되는데 다양한 분야와 커뮤니케이션 하기 위해서 전체적으로 제너럴한 지식을 갖추는 것이 중요하다.

CS에 집중한다면?

보통 인공지능은 사람이 할 수 있는 것을 대신하고 자동화한다고 말하지만 바이오 메디컬 분야에서는 특정 Domain 전문가를 대신하거나 실험으로 얻어진 값을 찾고 사람이 찾지 못하는 Pattern을 찾아내는 경우가 많다(따라서 데이터 레이블링 비용이 비싼 경우가 많다…).

뭐 결국 인공지능을 개발한다는 점에서 모든 분야 공통적으로 나타나는 시퀀스는 아래와 같다. 우리도 인공지능이 추론하기 위한 함수를 만들고 biomedical data로부터 biomedical problem을 해결할 것이다.

우리가 풀어야할 문제

바이오 메디털 데이터 셋으로 풀 수 있는 문제는 3가지로 구분이 가능하다.

  1. 간단하게 사람이 할 수 있는 것
  2. 전문가가 할 수 있는 것
  3. 사람이 할 수 없는 것

각 단계의 문제에서 우리가 대체하거나 해결할 수 있는 문제를 찾자.

왼쪽에 있는 활동은 Basic image analysis tasks로 사람의 지능으로 가능한 일을 자동화해주는 발전가능성이 있는 영역이 된다. 종양을 발견(Tumor detection)하거나 질병을 세부 분류(Subtyping)하거나 중증도를 판별(Grading)하는 동작이 가능하다.

오른쪽의 활동은 사람의 지능으로 수행이 불가능한 Advanced analysis task이다. 생존률을 예측(Survivial prediction)하거나 돌연변이를 예측(Mutation prediction)하거나 면역, 감염, 부작용 등의 반응을 예측(Response prediction)하는 동작이 가능하다.

 

이처럼 일단 현실(바이오 메디털)의 문제를 해결하기 위한 스텝을 정의하면 아래와 같다.

  1. 풀고자하는 문제(Task)를 정의한다.
  2. 해당 Task를 풀기 위한 데이터를 준비하고 생상한다.
  3. 해당 데이터 특징에 맞는 모델을 선택한다.
  4. 평가 후 해석(External data 검증이 필요하다.)한다.
  5. 적용 또는 보완한다.

Workflow

위 도표에서 workflow를 정의하고 그 순서로 설명을 이어나가 보겠다.

Data Curation

  • data modality 종류에 따라 data structure를 만들고 vector화하는 방식이 다르다.
  • 기존에 알려진 방법으로 Feature을 만들기도 하고 간단한 Vector로 처리하여 모델에 Feature Extraction을 맡기는 경우도 있다.
  • 인공지능 연구와 달리 바이오메디컬 연구는 데이터가 정리가 안된 경우가 많아서 직접 처리 해야 하는 경우가 많다. 즉, Data를 정제하거나 Annotation하는 과정도 포함이다.(데이터가 모여 있지 않아서 통합하는 과정도 많이 포함된다.)

Data Split

  • 바이오 메디컬 분야는 특히, Task가 어렵고 데이터가 적은 경우가 많다.
  • Split을 어떻게 하느냐에 따라 성능이 많이 변하게 된다.
  • 데이터가 적을 때는 K-fold(or Cross Validation)를 사용하여 모든 데이터는 Test에 한번, Training에 K - 1번 사용한다.

5-fold(or Cross validation)

Thrapeutics Data commons

  • 바이오 메디컬 학문적인 발전을 위해 Benchmarking DataSet을 위한 연구가 이루어지고 있음
  • NeurIPS (2021)에 발표
  • https://tdcommons.ai/
  • Curration하지 않고 tdcommons api 사용할 수도 있음.

Build ML models

  • 데이터 특성에 맞는 모델을 설계하고 구현하는 과정이다(Inductive bias).
  • 큰 형태의 대표적인 모델에서 크게 벗어나지 않는다(딥러닝 기준).

Inductive bias

각각의 data unit에 대해서 relationship이 있는데 이 relationship을 근거로 사람의 intuition으로 가설을 만들고 그에 맞는 수학적 모델을 설계하는 일.

데이터가 적을 때는 Inductive Bias를 통해서 모델의 정확도를 올릴 수 있어야 한다.

데이터의 특징을 고민하고 Inductive bias에 대해서 고민하는 과정은 모델의 overfitting을 줄이는 과정에도 도움을 줄 수 있다.

Prior(우선 조건)을 제시함으로 문제 해결의 가능성을 높인다.

앞으로 학습하는 과정에서 Model의 intuition이 되는 Inductive bias를 강조하고 모든 모델의 Inductive bias를 비교할 예정이다. 현단계에서 이 개념에 너무 깊게 들어가지 말고 조금만 기다렸다가 다시 돌아오자.

앞으로 8가지 모델을 학습할 것이다. 이 모델은 각자에 맞는 Inductive bias를 가지고 있다. 이 9가지 모델만 알아도 대다수의 biomedical Task들을 해결할 수 있다.

  1. Classic Machine Learning
  2. Deep Neural Network
  3. CNN(Convolutional Neural Network)
  4. RNN(Recurrent Neural Network)
  5. Transformer
  6. GNN(Graph Neural Network)
  7. AE(Autoencoder)
  8. Generative Model

7, 8번은 Unsupervised Learning이므로 크게 다루지 않을 것이다.

1번은 클래식한 머신러닝으로 SVM, 로지스틱 회귀 등이 있는데 강의의 토픽과 거리가 멀기 때문에 나머지 5가지 딥러닝 모델에 대해서 집중적으로 다룰 것이다.

이 중 2번, Deep Neural Network는 그냥 다중 퍼셉트론으로 엮어놓은 형태이기 때문에 Inductive bias가 없는 모델이다. 나머지 모델들이 이 Depp Neural Network를 기반으로 파생되었다.

Validation and Deployment

  • 새로운 실험 데이터에도 훈련한 모델이 효과가 있는지 확인하는 과정이 필요하다.
  • Model의 Interpretability를 통하여 모델을 분석하는 과정이 필요하다.
  • 정답이 없는 실제 Data에 대해서 추론하는 Process를 만들어야 한다.

Model Explainability

  • Explainability 분석 : 만든 예측 모델이 신뢰성이 있는 지 검증을 해야한다.(ML model의 문제인 Generalization을 테스트하는 것이 굉장히 중요한 과정이다.)
  • Domain 전문가와 Model이 결론을 낸 원인이 비슷할수록 신뢰성이 있는 모델이다.
  • Domain 전문가들이 찾지 못한 새로운 원인을 찾아내는 경우 해당 사례가 biomarker를 찾는 사례가 되기도 한다.

→ SHAP value: 원인 분석을 위해 많이 쓰이던 기법을 이용해서 모델의 신뢰성을 측정하기도 한다.

Inductive bias

  • Biomedical Machin learning task는 실제 실험적 검증을 하는 것이 중요하다.
  • 부족한 데이터 포인트를 찾아내고 데이터 세트를 보완하며 더 좋은 모델을 만든다(이전 과정을 반복함녀서 계속 모델을 발전시킨다).
  • 머신러닝 단계에서 끝나면 value가 낮아지고 검증이 있을 시 논문과 특허의 impact가 굉장히 상승한다.

Model Deployment

  • 모델을 바로 사용할 수 있게 웹/앱으로 시스템화 해야한다(개발을 못하는 사람도 바로 사용할 수 있도로 UI/UX를 개발하여 배포하고 상품화하는 부분도 포함된다).
  • IBM의 PaccMann 논문(항암제 효능 예측)

(좌) PaccMann 논문, (우) PaccMann 솔루션 UI/UX

Data modality

data modality는 “데이터 특징 + 데이터 point”라고 할 수 있다. 여러 데이터를 비슷하게 처리할 수도 있고, 다르게 처리할 수도 있다. 즉, 다양하게 활용이 가능하고 그러므로 더 복잡하고 체계적으로 활용해야한다.

Modality는 사전적으로 양식, 형태, 방식 등의 것으로 표현되는데, 데이터 마이닝에서는 데이터의 형태나 차원이 완전히 다른 것에서 가져온 데이터라고 할 수 있다.

→ 결국 데이터 특성 별로 분류하는 것이다.

→ AI researcher는 분류된 데이터 특성에 맞게 적절한 모델을 선택해야한다.

  • data에 따라 중복해서 다양한 모델을 사용 가능
  • Inductive bias 고려

Multi-Modal model

다양한 관점의 데이터를 하나의 인풋에 함께 넣고 정확도를 향상시키는 방법이다.

이 때 중요한 것은, modality에 맞는 모델을 하나하나 각각 만들어야 한다는 점이다.

Multi-tasking model과 헷갈리면 안된다.

Multi-Omics

한 환자에서 나올 수 있는 데이터 컴포넌트들이 굉장히 많다.

예를 들어 환자의 전체 데이터를 함께 모아서 survival prediction을 한다 치자.

한 환자에 대해서 Genome 데이터, Transcriptome 데이터, Proteome 데이터, Metabolome 데이터 등 굉장히 다양한 데이터가 쌓이게 될 것이다. 이 것들을 하나의 인풋에 함께 집어 넣고 Multi modal model을 만들 수 있다.

다른 예시도 비슷비슷하다.

이번엔 두가지의 데이터가 pair로 들어가야 예측이 가능한 모델도 있다. 아래 Multi-omics Multi modal model은 drug-target 모델이다.

개발한 단백질에 대해 Binding affinity를 예측할 수 있다.

Omics는 totality(전체를 다루다)라는 의미이다. Mulit-Omics라는 이름에 맞게 한 환자에서 나오는 모든 데이터를 활용하여 결과를 도출해야하는 영역이 바이오메디컬 분야에서 인공지능이 할 일이다.

아무튼 강조하여 하고싶었던 얘기는 모델을 여러개 사용하고 정확도를 높이고 이런 과정 다 좋은데, 각 과정을 돕는 AI를 만들기 위해서는 좋은 dataset이 구축되어야 하고 data의 특징을 잘 파악해야 하므로 domain knowledge가 상당히 중요하다.

One hot encoding

NLP에서 많이 사용되는 데이터 표현 기법이다. 일반적으로 vocab이 많을 떄는 one hot encoding vector의 크기가 상당히 커지지만 Biomedical 분야는 이 token이 별로 없어서 상관없다(단, Subword embedding할 때는 좀 다르다).

가장 확률이 높은 데이터에 1, 나머지는 0으로 2차원 벡터를 채우는 방식이다.

바이오 메디컬 분야에서는 DNA, RNA, Protein, Compound 등에 활용이 가능하다.

Compound 데이터 군도 one hot encoding을 할 수 있는 예시도 있다. Benzene ring을 SIMLES 방식으로 마치 NLP처럼 처리해서 One-hot encoding할 수도 있다.

기타 생물학적, 생화학적, 임상학적 지식은…

다루지 않겠다. 대학 4년 내내 공부한 내용을 또 정리하기 싫다.

Machine learning method for biomedical data

Classic(Traditional) Machine learning models

  • Tabular data에 잘 적용된다.
  • Input을 미리 정해놓은 Tabular real-valued data로 변형해야 한다.
    • Breast Cancer Wiconsin
  • 대표적인 알고리즘은
    • Linear/logistic regression, dicision trees, random forest, supprot vector machine, and navie Bayes.
  • Biomedical 데이터의 sequence와 graph의 특성을 살리기 어렵다.
  • input data로부터 Feature을 만든 후 전통 머신러닝 방법을 써서 예측력을 높이는 것이 많았다.
    • ex) 병변 이미지로 SVM image 분류 모델, 전통 자연어처리 모델 ← 현재는 Feature Exctraction을 딥러닝으로 수행해서 거의 안쓰임

Multi-layer perceptron

  • Non-linear activation function
  • Layer 수가 많아지면 Depp neural network(DNN)이라고 한다.
  • 모든 Neural network의 기본이 된다.
  • Baseline을 많이 사용되고
  • Feat-Forward Network, Fully connected Layer라고도 불린다.
  • 맨 마지막 층에 추가해서 원하는 Output 크기로 모델을 조절할 수 있다.

Convolution neural network

  • image classification, NLP, signal processing speech recognition에 사용되는 DNN
  • local pattern을 잘 파악할 수 있는 weight filter로 구성되어 있다.
    • EX) Short DNA sequence, compound SMILES strings, cellular images

Recurrent neural network

  • time series, event sequences, and natural language text 같은 sequential data에 사용되는 Model
  • Long short-term memory (LSTM)와 Gated recurrent units(GRU)
  • DNA sequence, protein sequence, and text

Transformer

  • 가장 핵심적인 기술은 self-Attention(데이터 사이의 관계를 스스로 판단한다. 추후에 더 자세히 다루므로 넘어가자.)
  • Self-attention은 input-feature들간의 interaction score을 계산한다.
  • 특히 자연어처리 모델에서 좋은 성능을 보인다.
  • 최근 Protein Sequence 연구에 많이 이용되었다.
  • 자연어처리를 위해 연구 개발 되었으나, 다양한 Data Modality에 사용되고 있다

Graph neural network

  • Input-feature 사이의 관계를 미리 규정하여 Inductive bias를 고려하여 Network를 제작한다. (경우에 따라서는 데이터 전처리를 통해 Graph를 미리 만들기도 한다.)
  • 관계된 가까운 Node을 Convoulation operation를 이용하여 recursive하게 계산하는 방식
  • Biomedical data에는 많은 Graph들이 존재한다.

Autoencoder(unsupervised learning)

  • Labeling이 필요 없는 Unsupervised method
  • Input과 output 같은 network(예외, 노이즈 제거를 위한AutoEncoder)
  • Latent space로 변환하는 Encoder와 Latent space에서 데이터를 복원하는 Decoder로 구성되어 있다.
  • Input space보다 더 작은 차원으로 Latent space를 만들기 때문에 데이터 압축의 효과를 볼 수 있다.
  • Latent Space로 cluster를 만드는 시도를 많이한다. (UMAP을 주로 사용함.)
  • Generative model로도 사용 가능하다

Generative model(unsupervised learning)

  • 앞선 모델들은 주어진 task에 대한 예측 모델이 었다면, 주어진 데이터들의 분포를 학습하여 같은 분포상의 데이트를 생성하는 모델.
  • 데이터 분포중에서도 특정 성질을 가지는 방향으로 Conditional하게 생성하는 경우도 있음.
  • 앞선 모델들을 Feature를 잘 생성하면 모든 Modality의 데이터를 생성할 수 있다.

댓글