Home     지난뉴스레터보기
  발행인: 정정임   편집인: 김정아, 이지원 News Letter Vol.37
 37th Issue (May 2018)
  Atrium

A·T·R·I·U·M

입문자를 위한 AI 관련 서적 / 컬럼


분당서울대학교병원 영상의학과
이경준


오늘날 주목받고 있는 AI(Artificial Intelligence)는 기계학습(Machine Learning)이라는 컴퓨터공학의 한 분야에 기반하고 있고, 기계학습의 여러 기법 중에서도 심층 신경망(Deep Neural Network)을 활용한 소위 딥러닝(Deep Learning) 기법의 급속한 발전이 큰 역할을 하고 있습니다. 본 회차에서는 컴퓨터공학 비전공자인 의학연구자 입장에서 이해할 수 있는 딥러닝의 기초 개념과 의미를 소개하고 이를 더 심층적으로 이해하기 위한 관련 서적 및 강의 등을 소개하려고 합니다.

기계학습은 의학연구에서 이미 널리 활용되고 있으며 대표적으로 많은 분들에게 익숙한 선형회귀분석 (Linear Regression)을 예로 들 수 있습니다. 선형회귀분석을 기계학습 관점에서 정리하면 아래의 3단계로 볼 수 있습니다.
  • 1. 학습 데이터 준비
  • 2. 예측 모델 선택
  • 3. 모델 파라미터 최적화
아래 그림 1의 예시에서 환자의 키를 통해 몸무게를 예측할 수 있는 기계를 만들기 위해 입력(키)-출력(몸무게) 쌍의 환자 데이터를 수집하고, 몸무게가 키에 선형 비례할 것을 가정하여 선형의 모델을 선택합니다. 선형 모델은 기울기와 절편의 두 파라미터를 가지고 있으며 수집한 데이터에 대하여 최소한의 오차를 가지는 최적의 파라미터를 계산하는 과정을 통해 예측 모델을 완성하게 됩니다.


그림 1. 선형회귀분석의 예시 (출처: Linear Regression Analysis, Dtsch Arztebl Int. 2010)

그러나 이러한 접근법의 가장 큰 문제는 매우 복잡한 관계를 가지는 실제 현장의 입출력 데이터에 대해서는 어떠한 가정으로 모델을 선택해야 하는지조차 알기 어렵다는 것입니다. 또한 데이터를 잘 설명하는 모델을 찾았다 하더라도 최적화 기법의 수학적 한계로 인하여 최적의 파라미터를 찾을 수 없는 한계도 존재합니다. 특히 키, 몸무게 등 1차원적 데이터와 달리 매우 고차원적인 영상 데이터를 입력으로 하는 경우 어려움이 더욱 가중됩니다.

따라서 기존의 기계학습에서는 영상 등의 고차원적 데이터를 대리할 수 있는 지표(Biomarker)를 정의하여 데이터의 차원을 낮춘 후, 비교적 단순하고 수학적으로 해결 가능한 모델만을 사용하는 방식으로 접근해 왔습니다. 이에 따라 단순한 모델로 인하여 예측 오차가 커지는 것은 물론이고, 데이터 차원을 낮추는 과정에서 많은 정보가 유실되어 정확한 예측 모델을 만들기 어려운 고질적 문제가 있어 왔습니다.

딥러닝의 경우 이러한 예측모델의 선택과 그 최적화에 관한 문제를 해결했다고 생각할 수 있습니다. 심층 신경망의 구성 요소인 뉴런은 매우 단순한 구조로 선형 모델의 결과값에 활성화 함수(Activation Function)를 적용한 것입니다. 이러한 뉴런들을 다양한 방법으로 연결하고 깊은 계층을 구성하여 고차원 데이터를 설명가능한 복잡한 모델을 만들 수 있습니다. 복잡한 모델의 파라미터 최적화는 역전파(Back-propagation) 기법과 고성능 병렬계산 하드웨어(GPU)로 해결하였습니다.


그림 2. 심층 신경망 뉴런의 구조 (출처: https://deeplearning4j.org/kr/neuralnet-overview)

그 결과 지표를 따로 정의하지 않고 영상 자체를 입력으로 하는 예측 모델의 설계도 가능해졌습니다. 기존의 방법에서는 지표, 예측모델의 선택을 고민해야 했다면 딥러닝에서는 충분한 양의 데이터를 공급하는 것만 고민하면 됩니다. 가히 패러다임의 변화라고 할 수 있겠습니다.

이상 딥러닝의 간단한 개념과 의의를 기존 기계학습의 관점에서 짚어보았습니다. 더 자세한 이야기를 원하시는 분들을 위해 몇몇 입문서와 강의 링크를 소개합니다.

밑바닥부터 시작하는 딥러닝

스크립트 언어인 파이썬(Python)을 이용 기본적인 기계학습 기법부터 최근의 합성곱신경망(Convolutional Neural Network)까지 구현해볼 수 있는 책. 이론적인 면에서도 비교적 깊이 있게 설명하고 있기 때문에 신경망이 전반적으로 어떻게 동작하는 지 이해하는 데에 적합합니다. 단, 파이썬을 처음 접해본 사람에게는 꽤 어려울 수 있으므로 기본적인 언어의 습득이 요구됩니다.

 
신경망 첫걸음

위에 소개하였던 밑바닥부터 시작하는 딥러닝에서 조우한 의문점은 모두 이 책에서 답을 찾을 수 있습니다. 오차역전파 등 최적화 기법에 대해서도 보다 더 직관적으로 이해할 수 있고, 파이썬 코드가 초보자에게도 쉽게 작성되어 있기 때문에, 딥러닝을 처음 시작하는 사람에게 적합합니다.

 
파이썬 라이브러리를 이용한 머신러닝

파이썬에서 사용하는 가장 기본적인 Numpy 라이브러리 뿐만 아니라 Scikit-Learn, Scipy 등 기계학습 관련하여 자주 쓰이는 라이브러리를 다룹니다. 복잡한 수학을 동원하지 않고도 실용적으로 머신러닝 알고리즘을 구축하는 방법을 소개하고 있어서, 머신러닝 입문자가 사용하기에 적합합니다.
 
딥러닝 (Deep Learning)

딥러닝에 필요한 수학 개념(선형대수 수치 미분 등)에 대해 상세히 다룹니다. 또한 기본적인 딥러닝 분류모델 CNN, RNN뿐만 아니라 생성모델인 GAN, 오토인코더 등에 대해 자세히 다루는 책으로서 중급 이상의 딥러닝 사용 경험과 그에 맞는 지식 및 이해도가 요구됩니다.
 
Deep Learning for Medical Image Analysis

딥러닝을 의료영상 분석에 적용하고 싶은 연구원 및 대학원생에 추천하는 책입니다. 기계학습의 기본지식부터 다양한 영상 모달리티, 장기, 질환별 분석 방법에 대해 전반적으로 파악할 수 있습니다. 단, 영상처리 및 딥러닝에 사용되는 여러가지 수학적인 개념들에 대한 기본적인 이해가 필요합니다.
 
모두를 위한 머신러닝/딥러닝 강의
http://hunkim.github.io/ml/
홍콩과학기술대학교 김성훈교수님의 강의입니다. “더 많은 분들이 머신 러닝과 딥러닝에 대해 더 이해하고 본인들의 문제를 이 멋진 도구를 이용해서 풀수 있게 하기위한” 강의가 준비되어 있습니다. 강의 비디오, PPT자료뿐 아니라 각종 코드 및 코드작성에 대한 상세설명 비디오까지 제공하여 수학이나 컴퓨터 공학적인 지식이 없이도 비교적 쉽게 접근할 수 있습니다.

Coursera ­ Machine Learning
https://www.coursera.org/learn/machine-learning
온라인 교육사이트 Coursera의 창업자이자 스탠포드대학교 컴퓨터공학과 교수인 Andrew Ng의 강의입니다. 매우 기초적인 기계학습의 원리에서부터 시작하여 최신 기법에 이르기까지 다양한 내용을 체계적으로 학습할 수 있습니다.

CS231n: Convolutional Neural Networks for Visual Recognition
http://cs231n.stanford.edu/2016/syllabus
스탠포드대학원의 딥러닝 강의로 영상인식 분야에서 가장 유명한 연구자중 하나인 Fei-Fie Li 교수 그룹에서 만든 강의입니다. 매우 기초적인 개념까지 명확하고 쉽게 설명하여 딥러닝의 동작원리를 상세하게 이해하는데 큰 도움이 됩니다. 단, 선형대수 등 수학적 배경지식이 필요하며 주로 영상에 관한 주제로 진행되고 있어 심도있는 학습을 원하는 분에게 적합합니다.



경기도 성남시 분당구 안골로 11번길 7, 202호
TEL : 031-704-4262  E-mail : kosci.heart@gmail.com
Copyright ⓒ by The Korean Society of Cardiovascular Imaging. All rights reserved.