Tuesday 19th March 2024,
최윤섭의 디지털 헬스케어

인공지능은 의료를 어떻게 혁신할 것인가 (4) 딥러닝 기반의 영상 의료 데이터 분석 (상)

두 번째 유형의 의료 인공지능은 바로 ‘이미지로 나타낼 수 있는 의료 데이터를 분석 및 판독하는 인공지능’이다. 최근 이러한 유형의 의료 인공지능의 개발에는 대부분 딥러닝(deep learning)이라는 기술이 활용된다. 아마 인공지능에 관심이 없는 사람이라도 이 딥러닝이라는 기술의 이름 정도는 들어보았을 것이다. 특히 한국인들에게는 알파고의 원리가 되는 기술이기 때문에 귀에 익은 이름이기도 하다. 근래에 인류가 또 한 번 맞이하고 있는 인공지능의 활황기를 이끌고 있는 근본 기술이 바로 이 딥러닝이다.

신경망과 인공신경망

앞서 몇 번 언급한 적이 있지만, 우리는 인공지능을 구현하기 위한 방법 중에서 특히 기계학습(machine learning)을 논의 범위로 하고 있다. 딥러닝은 많은 기계학습 방법 중에서 인공신경망이라는 방법론에서 발전한 기술이다. 또한 딥러닝도 다양한 방식의 테크닉으로 나누어지는데, 대표적으로 이미지 데이터의 분석에 특화된 컨볼루션 신경망(Convolution Neural Network, CNN)과 시간의 흐름에 따라 변화하는 데이터를 분석하기 위한 순환신경망(Recurrent Neural Network, RNN) 등으로 나눌 수 있다. 간략하게 관계를 표현하면 아래의 그림과 같을 것이다.

ai-ml-dl-2

사실 이번 챕터의 제한적인 지면에서 딥러닝의 기술적인 설명을 모두 하기는 어렵다. 딥러닝의 기술적인 측면은 우리가 논하고자 하는 의료 인공지능의 범위를 넘어설 뿐만 아니라, 그 자체로 책 한 권이 필요할 정도로 방대한 내용이기 때문이다. 또한 딥러닝 기술 자체가 너무도 빨리 발전하고 있다는 것도 문제다. 지금 이 순간에도 딥러닝 관련 논문이 전 세계에서 쏟아지고 있다. 오죽하면 딥러닝 연구자들 사이에서는 ‘딥러닝 분야의 새로운 아이디어의 유효기간은 3주’라는 푸념도 나온다. 새로운 아이디어에 대한 또 다른 연구가 그만큼 빠르게 나온다는 것이다. 우리는 의료와 관련된 딥러닝을 설명할 수 있을 정도로 딥러닝의 기본 개념과, 특히 이번 장의 주제에 맞는 이미지 인식 분야 딥러닝의 성과를 위주로 살펴보도록 하겠다.

(Foot note: 혹시 딥러닝의 기술적인 측면을 학습하고 싶은 독자라면, 다음과 같은 컨텐츠를 보기를 추천한다. 가장 유명한 것은 소위 ‘딥러닝 4대 천왕’ 중의 한 명인 스탠퍼드 대학교의 앤드류 응(Andrew Ng) 교수님의 Coursera 온라인 강의이다. 한글로 된 조금 더 기초적인 강의는 홍콩과기대 김성훈 교수님의 ‘모두를 위한 머신러닝/딥러닝’ 온라인 강의도 많이 추천을 받는다. 개인적으로 한빛 미디어에서 나온 ‘신경망 첫걸음‘, ‘딥러닝 첫걸음‘도 기본 개념의 이해에 큰 도움이 되었다.)

딥러닝을 설명하기 위해서는 먼저 동물의 신경망(neural network) 및 인공신경망(artificial neural network)에 대한 소개가 필요하다. 인공신경망이라는 이름 자체에서도 알 수 있듯이 이 기계학습 방법은 동물의 신경망, 특히 뇌에서 영감을 얻은 알고리즘이기 때문이다. 이 인공신경망이 처음 고안된 이후 오랜 세월에 걸쳐 거듭된 기술적 개선의 결과로 나온 것이 바로 딥러닝이라고 할 수 있다.

생물의 신경망은 뉴런(neuron)이라는 단위의 신경 세포로 구성된다. 이 뉴런의 특징은 다른 여러 뉴런으로부터 신호를 전달받아서, 또 다른 뉴런에게 신호를 보낸다는 것이다. 결국 동물의 뇌는 이러한 수많은 뉴런의 연결로 이루어진 거대한 네트워크라고 할 수 있다.

635965173527052708-540999202_wallpaper-2870969

그런데 우리의 뇌는 어떻게 배우고, 어떻게 지식을 기억할까? 컴퓨터는 정보를 메모리의 특정 위치에 저장한다. 하지만 뇌에는 정보를 저장하는 위치가 별도로 있지 않다. 뇌의 신경 세포, 즉 뉴런에도 정보를 저장하는 공간이 따로 없다. 그저 한 뉴런은 다른 여러 뉴런에서 오는 신호를 받아서, 그 신호가 어떤 임계치(threshold)를 넘어서면 그 뉴런은 ‘활성화’되어 자신의 신호를 또 다른 뉴런에 보낼 뿐이다.

그렇다면 이런 단순한 기능을 하는 뉴런이 어떻게 정보를 저장하는 것일까. 바로 수많은 뉴런이 네트워크를 이룬 ‘연결 상태’ 자체가 바로 저장된 정보를 나타낸다고 할 수 있다. 즉, 개별 뉴런은 신호를 받고 보내는 단순한 기능만 하지만, 이런 뉴런들이 거대한 네트워크를 이루면 인간의 뇌가 될 만큼 강력해지는 것이다. 이것이 바로 ‘신경망’이다.

인공신경망은 이러한 신경망의 작동 원리를 본따서 만들었다. 수많은 신경세포가 연결되어 뇌를 구성하는 것처럼, 인공신경망은 뇌의 신경세포에 해당하는 ‘노드’라고 하는 작은 요소들을 연결해서 만든 네트워크이다. 흔히 인공신경망을 표현할 때 동그라미에 들어오는 선과 나가는 선으로 구성된다.

neuron신경망의 뉴런과 인공신경망의 뉴런의 비교

NeuralNetwork-
인공신경망의 기본적인 구조

여기에서 동그라미를 ‘노드(node)’라고 부르고, 선(화살표)은 ‘엣지(edge)’라고 부르며 신호의 흐름을 나타낸다. 인공신경망은 여러 개의 노드가 서로 연결되어 있다. 자세히 살펴보면, 하나의 노드에는 여러 개의 다른 노드로부터 들어온 신호를 받아들여서, 모종의 처리 과정을 거친 다음, 자신의 신호를 다른 노드에 보내는 것으로 표현되어 있다. 이 과정을 굳이 수식으로 설명하지 않더라도 신경망 속 뉴런의 기본적인 역할이 인공신경망에서도 구현되어 있다는 것을 알 수 있다. 이렇게 인공신경망에서도 하나의 노드에 신호가 입력되고, 출력되는 단위를 아예 ‘뉴런’이라고 부르기도 한다.

 

인공 신경망이 배우는 법

그런데 뇌의 작동 원리 중에서 중요한 뉴런들의 ‘연결 상태’는 인공 신경망에서 어떻게 구현될까. 상식적으로 인공신경망에서도 모든 노드가 같은 강도로 신호를 주고받으면 정보를 학습할 수 없을 것이다. 어떤 경우 특정 노드 사이의 신호는 더 강해지고, 또 반대로 매우 약해지거나 끊어지기도 할 것이다.

인공신경망에서는 뇌의 신경세포의 ‘연결 상태’를 노드들의 연결 가중치(weight)로 표현한다. 노드들이 서로 연결된 강도를 변수로 나타내는 것이다. 만약에 두 노드를 잇는 연결의 가중치가 0이라면, 그 연결은 끊어졌다고 할 수 있다. 인공신경망을 ‘학습’시킨다는 것은 이러한 가중치를 체계적으로 변화시켜 나가면서, 우리가 가진 데이터를 잘 설명할 수 있는 모델을 만드는 것이라고 할 수 있다.

앞서 설명한 것들은 수식으로 표현할 수도 있으니, 간단히만 알아보자. 인공신경망의 뉴런은 노드에 들어오는 신호인 x1, x2, x3 과 각 신호의 가중치(weight)인 w1, w2, w3 등으로 표현할 수 있다 (위의 ‘인공신경망의 뉴런’ 그림 참고). 노드가 받는 신호는 이 신호와 가중치를 각각 곱해서 더하는, 가중 합(weighted sum)으로 표현된다. 즉 아래의 수식과 같다. 참고로 b는 ‘바이어스(bias)’라고 하며 가중치와 함께 신경망이 정보를 저장하는데 관여하는 변수이다. 즉, 엄밀히 말해 신경망에서 정보는 가중치와 바이어스의 형태로 저장된다.

v = w1*x1 + w2*x2 + w3*x3 + b

동물의 신경망에서는 뉴런이 이렇게 받아들인 신호를 결코 무조건 다음 뉴런으로 보내지 않는다. 받은 신호가 어떤 임계치를 넘어야만, 비로소 ‘활성화(activation)’되어 다음 뉴런으로 신호를 보내는 것이다. 즉, 신호를 ‘보내거나’, ‘보내지 않거나’의 두 가지 경우 중의 하나가 되는 ‘실무율(all-or-none)’의 규칙을 따른다.

이와 마찬가지로 인공신경망에서도 각각 노드는 받아들인 신호를 일정한 계산을 거쳐서, 다음 뉴런에게 내보낸다. 수식에서는 각 노드별로 이뤄지는 이러한 계산을 함수로 표현하는데, 이 함수를 ‘활성 함수(activation function)’ 이라고 표현한다. 인공신경망의 활성 함수에는 ReLu 등등의 여러 종류가 있으며, 어떤 활성 함수를 선택할지에 따라서 인공신경망의 성격도 바뀐다.

활성 함수 등등의 용어가 어렵게 느껴질 수도 있겠지만, 딥러닝을 공부할 때 이런 용어 정도는 익혀두고 가는 것이 좋다. 활성 함수를 수식으로 표현하면 아래와 같다. 변수로는 앞선 수식에서 계산한 신호와 가중치의 가중합인 v 가 들어가며, 이 활성 함수에서 나온 y 값이 바로 다음 노드에 전달되는 신호가 된다.

y = f (v)

조금 어려울 수도 있지만, 인공신경망을 학습시키는 과정에 대해서 조금 더 이야기해보겠다. 우리가 인공신경망을 학습시킨다는 것은 우리가 가지고 있는 데이터를 잘 설명할 수 있는 모델을 만들어가는 과정이다.앞서 설명했듯이 인공신경망을 구성하는 개별 뉴런들은 우리가 입력한 데이터를 받아들여서, 각각의 뉴런들이 가중 합과 활성 함수 등의 과정을 거쳐서 그다음 뉴런으로 신호를 보내는 과정을 거쳐, 최종적으로 어떤 ‘결과값’을 내어놓게 된다.

이렇게 내어 놓은 ‘결과’는 우리가 가지고 있는 ‘정답’과 비교해보면 완전히 일치할 수도 있고, 차이가 있을 수 있다. 만약 차이가 있다면 ‘결과’와 ‘정답’을 비교하여 ‘오차’를 계산한 다음, 그 오차를 반영하여 인공신경망의 각 뉴런들의 연결에 대한 ‘가중치’를 체계적으로 수정하게 된다. 즉, 데이터를 바탕으로 가중치를 적절히 바꿔주면서 인공신경망을 구성하는 뉴런들의 연결이 최적의 의사결정을 할 수 있는 수학적 모델을 만드는 것이다.

(Foot note: 학습 데이터의 종류에 따라서 인공신경망을 훈련시킬 수 있는 ‘정답’이 있는 경우도 있고, 없는 경우도 있다. 기계학습에서 입력에 대한 정답이 있는 데이터를 학습시키는 것을 지도 학습(supervised learning)이라고 하며, 입력만 있고 정답이 없는 데이터를 학습시키는 것을 비지도 학습(unsupervised learning)이라고 한다. 지도 학습에서 학습은 ‘입력’에 대한 모델의 출력과 해당 ‘정답’의 차이가 줄도록 모델을 수정하는 과정이다. 여기서는 편의상 지도 학습을 가정하고 설명하였다)

우리가 가지고 있는 데이터에 대해서 이러한 과정을 반복해서 거치면서 인공신경망을 ‘학습’시킬 수 있게 되고, 이 과정이 잘 작동한다면 우리가 가진 데이터를 잘 설명할 수 있는 인공신경망을 얻게 될 것이다.

사실 이 부분들은 복잡한 내용을 수식 없이 개념만으로 매우 간추려서 이야기하려고 노력했으나, 이해가 쉽지 않을 수도 있다. 실제로 학습, 활성 함수, 오차 계산, 가중치 업데이트 등의 과정은 다양한 수학적 방법을 통해서 구현된다. 인공신경망의 기술적 부분을 더 깊게 공부하는 것은 지면 관계상 독자들의 몫으로 남기고, 다음 설명으로 넘어가도록 하겠다. (인공신경망을 더 공부해보고 싶은 부분들은 앞서 언급한 몇 가지 리소스가 도움이 될 것이다.)

 

인공신경망의 발전과 도전

인공신경망을 대략 설명하였으니, 이제 딥러닝(deep learning)에 활용되는 ‘심층’ 인공신경망의 개념도 간략히 소개해보겠다. 딥러닝은 간략하게 ‘심층 신경망을 이용한 기계 학습 방법’이라고 정의할 수 있기 때문이다.

심층이라는 말은 여러 층으로 깊이 이뤄진다는 말이다. 앞서 설명했듯이 인공 신경망은 여러 노드가 연결된 네트워크이며, 이 노드를 어떻게 연결하는지에 따라서 다양한 형태의 네트워크를 만들 수 있다. 그중에서 가장 일반적으로 사용되는 형태는 노드를 계층(layer)적으로 표현하는 형태이다. 심층 신경망의 경우, 이 계층을 깊게 쌓는 것이다.

인공신경망을 구성하는 계층은 크게 세 종류로 구분할 수 있다. 가장 왼쪽에 있는 것이 처음에 신호를 받아들이는 입력층(input layer), 가장 오른쪽에 있는 것이 인공신경망의 최종 결과 값이 되는 출력층(output layer)이 된다. 그리고 이 입력층과 출력층 사이에 있는 것이 은닉층(hidden layer)이라고 부른다. 인공신경망은 이러한 은닉층을 더 ‘깊게’ 쌓아가는 방식으로 발전해왔다.

main-qimg-257af1d7bfdc2d7c1c4f4c30366a3c77얕은 신경망(왼쪽)과 심층 신경망(오른쪽)

인공신경망의 아이디어가 처음 제시된 것은 1943년에 출판된 ‘신경 활동에 내재한 개념들의 논리적 계산‘ 이라는 미국 일리노이 의대 정신과 교수인 워렌 맥컬록과 당시 의대 학생이었던 월터 피츠의 논문에 의해서였다. 이때의 인공신경망은 입력층과 출력층만 있는 ‘단층 신경망’이었다. 이후에 은닉층이 하나만 있는 ‘얕은(shallow) 신경망’으로 (그림의 왼쪽), 그리고 두 개 이상의 신경망을 갖춘 ‘심층 신경망’으로 (그림의 오른쪽) 발전해왔다.

그런데 주목해야 할 사실은 은닉층이 없는 ‘단층 신경망’에서 은닉층을 하나 추가하는 ‘얕은 신경망’으로 발전할 때까지는 1980년대까지 40여 년의 세월이 걸렸으며, 얕은 신경망이 두 층 이상의 은닉층을 가진 2000년대의 ‘심층 신경망’으로 발전되기까지는 또 20여 년이 걸렸다는 것이다.

고작 은닉층이 하나가 추가되는데 이렇게 시간이 오래 걸렸다는 것이 의아하게 느껴질 수도 있다. 이 문제를 해결하는데 그렇게 오랜 세월이 걸렸던 이유는 은닉층이 추가되었을 경우에, 이 네트워크를 학습시키는 것이 매우 어려워지기 때문이다. 앞서 인공신경망을 ‘학습’시킨다는 것을 학습 데이터에 대한 ‘오차’를 모델의 가중치를 수정한다는 것으로 설명하였다. 그런데 기존 방식으로는 은닉층의 뉴런에 오차를 반영하는 방법이 없었다.

이 문제는 거의 40년 이후 1986년에 현재 ‘딥러닝 4대 천왕’의 한 사람으로 불리는 토론토 대학의 제프리 힌튼 교수가 역전파(backpropagation) 알고리즘을 제안함으로써 해결된다. 이 역전파 알고리즘이라는 것이 바로 은닉층의 오차를 어떻게 정의하고, 가중치를 어떻게 조절할 것인지에 대한 체계적인 방법이다. 이렇게 ‘얕은 신경망’의 학습 문제를 해결하면서 신경망은 또 많은 관심을 받게 된다.

그런데 여기에도 또 다른 문제가 있었다. 얕은 신경망에 은닉층을 더 추가한 ‘심층 신경망’의 경우에는 이 역전파 알고리즘으로도 여전히 학습이 어려워졌다는 것이다. 또한 신경망이 깊어질수록 기하급수적으로 늘어나는 계산량을 1980년대 당시 하드웨어로는 수행하기 어려웠다는 점도 있다.

 

마침내, 딥러닝의 시대

이러한 문제는 또다시 20여 년간 해결되지 못하다가, 2000년대 중반에 여러 가지 기술적인 돌파구가 마련되면서 이제야 딥러닝의 중흥기가 도래하게 된다. 지면 관계상 이런 기술적 돌파구를 자세히 소개하기는 어렵지만, 심층 신경망의 학습이 원래 어려웠던 원인으로는 그래디언트 소실(vanishing gradient), 과적합(overfitting), 그리고 너무 많은 계산량의 문제가 있다.

(Foot note 1 그래디언트 소실: 앞서 인공신경망을 학습시키는 방식으로 역전파 알고리즘을 설명했다. 역전파 알고리즘은 오차를 출력층에서 거꾸로 입력층 방향으로 반영시킨다. 그런데 이 방식으로는 출력층에서 멀어질수록 신경망의 오차가 잘 전달되지 않는 현상이 발생한다. 이 때문에 입력층에 가까운 은닉층이 잘 학습되지 않는 문제가 생긴다. 이를 그래디언트 소실 문제라고 부른다.)

(Foot note 2 과적합 현상: 일반적으로 학습 데이터는 완벽하지 않고 대개 노이즈가 섞여 있게 마련이다. 이런 학습 데이터를 모두가 정답이라 생각하고 모델을 지나치게 여기에 맞추다 보면 오히려 성능이 떨어지는 모델을 얻게 된다. 이를 과적합 현상이라고 한다.)

그래디언트 소실, 과적합의 문제는 ReLu와 같은 활성 함수의 사용, 비용함수(cost function)로 크로스 엔트로피(cross entropy) 함수의 활용, 드롭아웃(drop out) 기법 등이 고안되면서 점차 해결되었다. 또한 과중한 계산량에 따른 학습시간이 너무 오래 걸리는 문제는 다중 연산이 가능한 그래픽처리장치(GPU)와 같은 고성능 하드웨어와 배치 정규화(batch normalisation) 등의 알고리즘 덕분에 상당 부분 개선되었다.

특히 이 GPU가 바로 딥러닝의 과중한 계산량 문제의 해결에 결정적인 돌파구를 마련하는 역할을 했던 점을 좀 더 이야기해 보겠다. 사실 과거에는 엔비디아(NVIDIA) 등의 회사가 만드는 고성능 그래픽 처리 장치인 GPU는 고화질 게임을 즐길 때나 필요했다. 엔비디아는 컴퓨터를 구입할 때 그래픽 카드를 선택하면서나 들어보는 이름이었다.

그런데 GPU는 수천 개의 코어로 이루어져 있어서 수많은 연산을 ‘동시에’ 병렬적으로 처리하는데 최적화되어 있다. 고화질 모니터의 모든 픽셀에 동시에 그래픽 이미지를 나타내기 위해서는 수많은 계산을 동시에 처리하는 것이 필요하기 때문이다. 일반 PC나 랩탑에 사용되는 CPU가 대부분 수 개 (쿼드코어는 4개, 옥타코어는 8개 등)의 코어로 이루어지는 것과 대비된다. 그런데 이렇게 GPU가 수많은 계산을 동시에 수행할 수 있다는 것이야말로 심층 신경망의 학습에 필요한 것이었다. (이 때문에 엔비디아는 딥러닝 시대의 최고 수혜 기업 중 하나로 부각되며, 지난 5년 동안 주가도 10배 넘게 올랐다)

cpu-vs-gpu

아래에서 구글 브레인(Google Brain)의 연구를 소개할 예정인데, 이에 앞서 이 연구에 구글이 투입했던 엄청난 컴퓨팅 파워와 GPU의 위력을 잠깐 비교해보록 하자. 2012년 구글 브레인과 스탠퍼드의 앤드류 응(Andrew Ng) 교수는 유튜브 영상을 딥러닝으로 학습하는 연구를 수행했다. 이를 위해 구글은 1,000개의 서버를 병렬로 연결했다. 서버 하나당 2개의 CPU가 탑재되어 있으니, 2,000개의 CPU가 사용되었고, 옥타코어 (개당 8개) CPU의 코어 개수를 계산해보면 16,000개가 된다. 이러한 하드웨어 장비를 구축하기 위해서는 50억 원의 비용이 들며, 전력 소모량도 60만 와트에 달한다.

하지만 GPU의 경우 개당 수천 개의 코어로 이루어져 있다. 2015년 엔비디아의 인터뷰에 따르면 엔비디아 GPU 서버의 경우 3대만 사용하면 18,000개 이상의 코어를 가진 구글 브레인 수준의 환경을 만들 수 있다. 이러한 병렬 서버의 구축 비용은 3,300만 원밖에 들지 않고, 전기 소모량도 4,000와트에 그친다. 즉, GPU를 활용하면 구글과 같이 엄청난 비용을 들여서 병렬 서버를 구축하지 않아도, 딥러닝의 계산을 위한 환경을 저렴하게 만들 수 있게 된 것이다.

 

인공지능이 유튜브를 본다면

매우 기초적이기는 하지만 딥러닝의 대략적인 개념과 배경에 대해서 알았으니, 이제 딥러닝의 몇 가지 특징에 대해서 살펴보자. 무엇보다도 딥러닝의 가장 큰 특징은 성능이 좋다는 것이다. 이것이 결국에는 딥러닝이 주목받게 된 가장 큰 특징이라고 할 수 있다.

흔히 기계학습 분야의 주요 연구 분야로 이미지 인식, 음성 인식, 자연어 처리를 꼽는다. ‘이미지 인식’이라면 물체의 사진이 주어졌을 때 그것이 무엇인지 맞추거나, 페이스북에 올린 사람의 사진을 알아본다든지, 여러 엑스레이 사진 중에서 정상과 암이 있는 사진을 분류하는 문제가 있을 수 있다. ‘음성 인식’은 아이폰의 시리처럼 사람의 목소리를 인식하는 인공지능이다. ‘자연어 처리’는 인간의 언어를 이해하는 인공지능이다. 이러한 분야의 인공지능 연구는 오랜 역사를 가지고 있으며, 저마다 다양한 기계학습 방법론이 적용되어 왔다.

그런데 2000년대에 딥러닝이 새롭게 등장하여 이미지 인식, 음성 인식, 자연어 처리 등 기계학습 분야에 모두 적용되면서, 주요 난제들에 대한 기록을 모조리 갈아치우고 말았다. 딥러닝은 이미 산업계에서도 활발하게 사용되고 있다. 사실 기계학습이 활용되는 서비스의 경우 딥러닝을 사용하지 않는 곳을 고르기가 어려울 정도다. 예를 들어, 애플 시리, 구글 나우, 스카이프 번역기 등 현재 모든 주요 상업 음성 인식 시스템을 비롯하여, 최근 성능이 급격히 향상된 구글 번역기, 테슬라를 비롯한 자율주행차 역시 딥러닝 기술을 활용하고 있다. [ref 1, 2, 3, 4, 5, 6, 7, 8] 또한 소위 ‘딥러닝 4대 천왕’ 이라고 부르는 제프리 힌튼 토론토대 교수, 얀 리쿤 뉴욕대 교수, 그리고 앤드류 응 스탠퍼드대 교수 등은 구글, 페이스북, 바이두 등이 인공지능 연구 부분의 수장으로 영입되기도 했다.

Deep_learning_MarketMap_sept2016_2
다방면에 딥러닝을 이용하는 회사들 (출처: CBInsight)

뿐만 아니라, 기존의 방법 대비 딥러닝의 또 다른 큰 특징이 있다. 바로 딥러닝은 데이터의 특징을 스스로 학습한다는 것이다. 딥러닝 이전의 기존 기계학습 방법으로 컴퓨터를 학습시키기 위해서는 데이터의 어떤 특징을 기준으로 볼 것인지를 사람이 정해주었다. 이 ‘특징’이라는 것을 기계학습 분야에서는 ‘피쳐(feature)’라고 부른다. 예를 들어서, 과거에는 개와 고양이의 사진을 컴퓨터에게 구분하는 법을 가르친다면, 눈의 모양, 털의 색, 다리의 개수, 꼬리의 길이 등을 기준으로 판단해보라고 지정해줘야 했다. 이러한 피쳐들 중에 어떤 것은 개와 고양이를 구분하기 위해 유용할 것이고, 어떤 것은 유용하지 않을 수 있다.

그러므로 과거의 기계학습 방법에서는 해당 데이터에 대해서 연구자가 가지고 있는 사전 지식이 중요했다. 개와 고양이의 특성과 차이점에 대해서 더 잘 알수록 유의미한 기준을 컴퓨터에게 알려줄 수 있기 때문이다. 이를 의료 영상에 빗대서 설명해보자. 컴퓨터에게 유방 엑스레이 사진에서 유방암 의심 병변을 골라내거나, 조직 검사 사진에서 암세포와 정상 세포를 구분을 가르치려면 어떻게 해야 할까. 과거에는 연구자가 유방암 의심 병변이나, 암세포와 정상 세포를 구분하기 위한 특징을 정해줘야만 했다. 그러려면 암에 대한 배경 지식이 필요했다.

하지만 딥러닝의 위력은 이런 데이터의 특징을 사람이 미리 알려줄 필요가 없다는 것이다. 딥러닝은 스스로 학습한다. 이를 위해서 필요한 것은 그저 많은 데이터뿐이다. 예를 들어, 개와 고양이를 구분한다면 수만, 수십만 장의 개와 고양이의 사진을 딥러닝에게 보여주면, 특징을 스스로 파악해서 학습할 수 있다는 것이다.

이는 아기가 태어나서 엄마의 얼굴을 익히는 과정과 비슷하다. 갓난아기가 사람의 얼굴이라는 것이 어떻게 생겼는지, 그중에서 엄마의 얼굴은 다른 사람과 어떻게 다른지를 누가 가르쳐줘서 아는 것이 아니다. 그냥 계속 보다 보면 자연스럽게 알게 될 뿐이다. 딥러닝이 학습하는 방식도 이와 같다. 인공신경망은 사람의 신경망, 즉 뇌를 본따서 만들었기 때문에 비슷한 방식으로 배우는 것이다. 이것이 딥러닝의 큰 장점이자, 또 약점이기도 하다. (약점은 딥러닝이 일종의 블랙박스라는 것으로, 왜 그러한 답이 나왔는지에 대한 설명력이 떨어진다는 것이다. 이는 추후에 더 설명하도록 하겠다)

google brain

이렇게 ‘사람처럼 스스로 학습한다’는 것을 잘 보여주는 사례 중의 하나가, 앞서 잠깐 언급했던 구글 브레인의 연구이다. [1, 2, 3, 4] 이 연구에서 구글브레인 연구진은 유튜브에서 갈무리한 정지화면 이미지 천만 장을 3일 동안 심층 신경망에 보여줘서 딥러닝했다. 아무런 다른 추가 정보나 사전 지식 없이, 그저 엄청나게 많은 사진을 컴퓨터에게 보여준 것이다. 그 결과 이미지들을 ‘스스로’ 학습한 딥러닝은 이미지에서 사람의 얼굴이나, 고양이의 얼굴을 알아보는 능력을 갖추게 되었다. 이 방식으로 만든 분류 모델은 기존의 고양이 얼굴에 대한 특징(피쳐)을 가르치는 방식에 비해 정확도가 70%나 개선되었다.

즉, 이 연구에서 딥러닝은 고양이의 얼굴이 어떻게 생겼는지 특징을 미리 알려주지 않았음에도 많은 데이터에서 그 특징을 스스로 학습했다. 이는 의미하는 바가 매우 크다. 딥러닝 이전의 기계학습 방법들의 한계는 뚜렷했다. 사람이 인공지능에 미리 알려주는 데이터의 피쳐를 기반으로 하므로, 사람이 골라주는 피쳐에 따라서 성능이 제한될 수 있다. 하지만 이 구글 브레인의 연구에 따르면 인공지능은 전혀 분류되지 않은 데이터를 알아서 인식하고 학습해 분류할 수 있다는 것이다. 이는 인간이 그 특징을 완전하게 파악하지 못하고 있는 미지의 데이터에 대해서도 스스로 학습할 수 있다는 것을 의미한다. 이러한 부분은 결국 의료 인공지능에도 큰 의미를 가진다.

cat paper fig구글 브레인의 연구에서 딥러닝이 파악한 사람 얼굴, 사람의 신체, 고양이의 특징

 

이미지넷: 영상 인공지능의 마중물

이제 이번 챕터의 주제와 가까운 인공지능의 이미지 데이터 인식에 대해서 좀 더 설명해도록 하겠다. 지금 우리는 인공지능의 두 번째 유형인 ‘이미지로 나타낼 수 있는 의료 데이터를 분석 및 판독하는 인공지능’을 설명하기 위한 배경 설명 중이라는 점도 잊지 말자. 딥러닝이 워낙 방대하고 영향력이 크면서도, 이해가 쉽지 않은 분야이기 때문에 사설도 다소 길 수밖에 없음을 양해해주기 바란다.

앞서 설명했다시피 딥러닝은 이미지, 음성, 텍스트 등 다양한 종류의 데이터에 두루 적용할 수 있다. 그중에서 현재 가장 주목받고 있는 분야는 단연 이미지 분석이라고 할 수 있다. 딥러닝이 세상에 그 위력을 처음 증명했던 것이 바로 ‘이미지넷(ImageNet)’의 인공지능 이미지 인식 세계 대회였기 때문이기도 하다.

사실 이미지를 인식하는 ‘컴퓨터 비전’ 분야의 인공지능을 설명하기 위해서 이미지넷 대회를 빼놓을 수는 없다. 앞서 강조했다시피 기계가 학습을 하기 위해서는 데이터가 필요하다. 그것도 매우 방대한 양의 데이터가 말이다. 만약에 컴퓨터가 이미지를 보고 그 물체가 무엇인지를 학습하려면 방대한 양의 이미지와 그 이미지에 대한 답도 달려 있어야 한다.

Screen Shot 2017-08-03 at 4.56.35 PM이미지넷 프로젝트에 대한 페이페이 리 교수님의 TED 강의

스탠포드 대학의 컴퓨터 비전 연구실의 페이페이 리(Fei-Fei Li) 교수는 인공지능이 아이처럼 ‘보고’ 학습할 수 있는 대규모 이미지 데이터를 만들기 위해서 2007년부터 이미지넷 프로젝트를 시작했다. 플리커 등 인터넷에서 무려 10억 장에 이르는 이미지를 다운 받고, 아마존의 미캐니털 터크와 같은 크라우드 소싱 기술을 이용해서 전 세계 수많은 사람이 함께 이미지에 대한 답(레이블)을 붙이는 작업을 진행것이다. 세계 167개국에서 5만 명에 가까운 작업자가 이미지를 정리하고 분류하는 작업을 도왔다.

지금 돌이켜보면 인공지능의 발전을 위해 이러한 이미지 데이터베이스의 중요성은 너무도 명백하지만, 사실 작업을 진행하던 당시의 분위기는 꼭 그렇지도 않았다고 한다. 동료 교수들은 페이페이 리 교수에게, 종신교수가 되려면 논문을 쓸 수 있는 다른 프로젝트를 하라고 권유하기도 했다고 한다. 하지만 이들은 결국 2009년에 사물을 2,200개의 종류로 분류한 1,500만 장의 이미지 데이터베이스를 공개하기에 이른다. 예를 들어, 고양이의 경우 62,000장의 다양한 모양과 자세, 집고양이부터 들고양이까지 망라되어 있다. 이 데이터베이스는 전 세계 누구나 사용할 수 있다. 그 결과 이미지넷의 풍부한 데이터는 딥러닝 기술이 학습할 수 있는 가장 중요한 영양분을 공급한 기초되었다.

 

이미지 인식 인공지능의 폭발적 발전

이미지넷이 이러한 데이터베이스를 기반으로 매년 진행해온 것이 바로 이미지넷 이미지 인식 대회ILSVRC (Large Scale Visual Recognition Competition)이다. 이 대회에서는 1,000개의 카테고리로 나뉘어진 총 120만 장의 이미지를 인공지능이 학습한 다음, 15만 장의 이미지 중에 무작위로 고른 10만 장의 이미지를 분석하는 정확도를 평가한다. 2010년에 시작한 이 대회는 올해까지 매년 개최되어, 구글, 마이크로소프트, 퀄컴을 비롯한 전 세계의 쟁쟁한 기업, 대학, 연구진이 출전해 저마다 개발한 인공지능을 경쟁한다.


imagenet-example이미지넷 대회에 포함된 데이터들 (출처)

이 대회에서 참가자들은 물체 인식 및 검출, 분류, 동영상 물체 검출 등의 다양한 부문에서 경쟁하게 되고, 해마다 새로운 경쟁 부문이 추가되기도 한다. 이 중에서 2010년부터 첫 대회부터 진행한 ‘물체의 분류(classification)’ 부문과, 2012년 시작된 ‘위치 식별(localisation)’ 부문을 대표적으로 꼽을 수 있다. 물체 분류는 주어진 이미지에 대해서 최대 다섯 개까지의 답을 제출하여 그 중에 정답이 있는지를 기준으로 오차율을 계산한다 (top-5 error). 또한 위치 식별 문제는 이미지 속에 있는 물체의 이름과 위치까지도 파악하는 것으로, 역시 다섯 개의 답을 제출해야 한다.

imagenet loc cls-물체의 분류와 위치 식별 문제 (출처)

딥러닝은 이 대회에 처음 참가한 2012년에 돌풍을 일으키게 된다. 토론토 대학의 제프리 힌튼 교수팀의 딥러닝에 기반한 알렉스넷(AlexNet)이 오차율 16.4%로 전년도 우승팀 대비 큰 폭의 개선을 보이면서 우승하여, 주목을 받게 된 것이다. 이 알렉스넷은 8개의 층으로 이루어진 ‘컨볼루션 신경망(Convolution Neural Network)’, 흔히 CNN으로 불리는 영상 인식에 특화된 심층 신경망을 사용하였다.

CNN은 뇌의 시각피질이 이미지를 처리하고 인식하는 원리를 차용한 신경망으로, 알렉스넷 이후로 이미지 인식 분야에서 딥러닝은 대부분 CNN을 활용한다. 이 이름 정도는 꼭 기억해두는 것이 좋다. 사실 CNN은 이미 얀 리쿤(Yann LeCun) 교수가 (역시 ‘딥러닝 4대 천왕’ 중 한 명이다) 1980년대에 고안한 기술이다. 하지만 실제 현장의 복잡한 이미지를 처리하기에는 역부족이라는 이유로 한동안 잊혔다가, 알렉스넷을 통해서 2012년에 화려하게 부활한 것이다. 사실상 이 알렉스넷이 딥러닝 시대의 도래에 도화선 역할을 했다고 해도 과언이 아니다. (알렉스넷을 발표한 제프리 힌튼 교수님의 2012년 논문은 지금까지 무려 14,000번 가까이 인용되었다)

이후로 ILSVRC 대회의 우승팀은 모두 딥러닝 (특히 CNN)을 사용하면서, 해마다 오차율은 더욱 줄어들게 된다. 물체 분류 부문을 기준으로 보자면, 2014년에는 구글이 흔히 구글넷(GoogleNet)이라고도 불리는 ‘인셉션(Inception)’ 아키텍쳐로 에러율 6.7% 을 보이며 우승하였다. (이 구글의 딥러닝 모델인 ‘인셉션’이라는 이름은 기억해두자. 뒤에서 계속 언급될 것이다) 2015년에는 마이크로소프트의 레즈넷(ResNet)이 오차율을 3.57%까지 줄이면서 우승했다. 구글 인셉션의 경우 22층의 계층을 가졌으나, 마이크로소프트의 레즈넷의 경우 152층까지 계층을 늘린 것이 눈에 띈다. 2016년에는 중국 공안부 산하의 연구기관 (Trimps-Soushen) 팀이 3.03%의 오차율을 보이며 우승을 차지했다.

imagenet 2016해마다 개선되는 ILSVRC의 분류와 위치 식별 부문의 성적 (출처)

imagenet 2016 - depth -‘분류’ 부문 우승팀의 심층신경망의 ‘깊이(depth)’는 해마다 더욱 깊어진다

참고로, 국내에서도 이 ILSVRC 대회에 참가하여 좋은 성과를 내었던 팀들이 있다. 스타트업 중에서는 루닛(Lunit)과 뷰노(VUNO)가 대표적이다. (Foot Note: 필자는 뷰노의 자문을 맡고 있음을 밝힌다.) 이 두 회사는 창업 초기이던 2015년에 참가하여 각각 위치 식별 및 분류 부문에서 세계 5위에 올랐다. (2016년에는 모두 참여하지 않았다) 세계적인 수준의 딥러닝 기술력을 증명한 이 두 회사는 스타트업 업계에서도 세계적으로도 주목받고 있다. 그리고 향후 더 자세히 언급하겠지만, 두 기업 모두 다름 아닌 의료 영상 인공지능 개발에 집중하고 있다.

 

인간을 능가하는 인공지능의 인지능력

이처럼 인공지능이 이미지에서 물체를 인식하고 분류하는 능력이 갈수록 좋아지고 있다. 그런데 이런 인지 능력이 어느 정도로 정확한 것일까. 사진에 있는 물체가 무엇인지를 인지하는 능력은 사람도 아주 잘하니까 말이다. 만약 이미지에 대해서 사람과 인공지능의 인지 능력을 비교한다면 누가 더 정확할까?

결론은 인공지능이다. 인공지능은 이미 사람의 시각적 인지능력을 뛰어넘고 있다. 적어도 앞서 설명한 ILSVRC 대회의 규칙에 따라서는 그러하다. 이미지넷 팀의 일원인 스탠퍼드 대학의 안드레 카파티(Andrej Karpathy)는 2014년 그의 블로그에 “내가 이미지넷에 대해 컨볼루션 신경망과 경쟁하면서 배운 것” 이라는 흥미로운 을 남겼다. 2014년은 구글의 구글넷(인셉션)이 분류 분야에서 오차율 6.7% 을 보이며 우승했던 해다.

그는 구글넷의 성과를 보면서 흥미로운 질문이 떠올렸는데, ‘인간이 이미지넷 문제를 직접 풀어보면 어느 정도로 정확할까?’ 하는 것이었다. 이를 위해서 그는 누구나 이미지넷 테스트를 직접 해볼 수 있는 웹페이지를 만들어서 공개했다. 이 웹페이지에서는 사람이 사진을 보고, 해당 사진이 어떤 범주에 들어가는지를 수작업으로 직접 분류해볼 수 있다. (관심 있는 분은 직접 한 번 해보자!)

imagenet-human
ILSVRC에서 우리가 인공지능을 이길 수 있을지 직접 테스트해볼 수 있다! (출처)

안드레 카파티는 자신도 열심히 연습한 결과, 분류 부문에서 오차율을 5.1%까지 줄일 수 있었다고 언급한다. 2014년 당시 우승팀인 구글넷의 오차율인 6.7%와 비교하면, 통계적으로 계산해보면 유의미하게(p-value=0.022) 자신의 분류 능력이 더 좋다고 언급하고 있다. 그런데 위에서 언급했다시피 2015년, 2016년에는 인공지능의 오차율이 3%대로 떨어진다. 이제는 적어도 ILSVRC의 문제에 대해서라면 인간이 인공지능을 이기기는 어려워 보인다.

물론 인공지능이 인간의 시각적 인지 능력을 모든 부문에서 뛰어넘었다고 하기는 어려울지 모른다. 앞서 ‘적어도 ILSVRC의 문제에 대해서라면’ 이라는 조건을 단 것도, 이 대회 데이터의 특성이 인공지능에게 더 유리할지도 모르기 때문이다. 예를 들어, 이미지넷 데이터에는 무려 120종의 강아지가 포함되어 있다. 개인적으로 필자는 강아지는 잘 알아보지만, 강아지가 무슨 종인지는 거의 구분하지 못하는 편이다. ILSVRC에서는 동물의 자세한 종까지 맞춰야 하므로 배경지식이 없는 사람에게는 더 불리할 수 있다.

 

사람보다 사람을 더 잘 알아보는 인공지능

그럼에도 불구하고 이미지 데이터에 대한 인공지능의 인지능력은 여러 방면에서 인간과 비슷한 수준이거나 이를 능가하고 있다. 예를 들어서, 사람의 얼굴을 알아보는 문제가 그러하다. 페이스북을 즐겨 하는 독자들은 쉽게 이해하겠지만, 이제 인공지능은 사람의 얼굴을 무척 정확하게 알아본다. 사람의 얼굴이 포함된 사진을 페이스북에 업로드하게 되면, 자동으로 이 얼굴이 누구인지를 태깅해주기도 한다. 그 정확도는 매우 높다. 모두 컨볼루션 신경망(CNN) 기반의 딥러닝을 통해서 인지하는 것이다.

페이스북의 연구자들은 2014년에 CNN 기반의 ‘딥페이스(DeepFace)‘라는 얼굴을 인식 인공지능을 만들었다. 이  인공지능은 사람과 거의 같은 정확도로 얼굴을 인식했다. 6,000쌍의 사진으로 이루어진 데이터에 대하여 같은 사람인지 여부를 판별하는 문제에서 사람의 정확도는 97.5%였으며, 딥페이스의 정확도는 97.35%로 거의 동일했다.

deepface
페이스북이 CNN을 기반으로 만든 안면 인식 인공지능, 딥페이스

2015년 3월에 구글의 연구자들은 딥페이스의 실력을 능가하는 ‘페이스넷(FaceNet)‘이라고 하는 인공지능을 발표했다. 역시 CNN을 기반으로 한 이 인공지능은 동일한 데이터에 대하여 99.63%의 정확성을 보여주었다. 즉, 사람보다 사람의 얼굴을 더 정확하게 알아보는 인공지능이다. 특히, 이 페이스넷은 사진 속 사람들의 자세가 다르거나, 어두워서 전체 얼굴이 모두 보이지 않는 경우에도 정확도가 높았다.

불과 3개월 후에는 중국의 바이두가 조금 더 나은 안면 인식 인공지능을 발표했다. 이 인공지능의 정확도는 99.77%로 사람은 물론 페이스북과 구글의 인공지능을 능가한다. 당시 바이두의 인공지능 연구진을 이끌던 앤드류 응(Andrew Ng) 박사는 이 인공지능이 사람보다 정확함은 물론 더 빠르기 때문에 본인 확인 검사 용도로 활용할 수 있다고 언급하기도 했다. (2014년 바이두의 최고 과학 책임자로 부임했던 앤드류 응 스탠퍼드 교수는, 다시 2017년 3월 바이두를 떠났다)

바이두의 안면 인지 인공지능의 실력을 조금 더 살펴보자. 6,000쌍의 얼굴 사진 중에 바이두의 인공지능은 불과 14쌍만을 잘못 판단했다 (아래의 그림). 12쌍은 실제로 같은 사람의 사진인데 인공지능은 동일한 사람이 아니라고 잘못 판단했다 (False Reject). 나머지 2쌍에 대해서는 실제로는 다른 사람인데 같은 사람이라고 잘못 판단했다 (False Accept).

그런데 알고 보니 이 14쌍 중의 5쌍의 사진은 오히려 정답에 오류가 있었고, 실제로는 인공지능이 정확했던 것으로 드러났다(붉은 사각형으로 표시). 사실 정답에 오류가 없던, 즉 붉은색의 박스가 쳐지지 않은 사진들의 경우에도, 인간인 우리 눈에도 좀 알쏭달쏭한 것들이 있다.

baidu 3_

바이두의 안면 인식 인공지능이 틀렸던 14개의 사례들.
그런데 이 중에 오히려 5개의 경우(붉은 사각형)에는 정답이 틀리고,
인공지능이 정확했던 것으로 드러났다.

 

이미지를 이해하고 설명하는 인공지능

이렇듯 인공지능은 이제 많은 부분에서 인간의 인지 능력을 뛰어넘고 있다. 그런데 단순히 사진 속의 물체를 분류하고, 위치를 맞추고, 동일한 사람의 얼굴을 구분한다고 해서 인공지능이 이미지의 내용을 이해한다고 보기는 어려울 수도 있다. 하지만 이에 대해서 좀 더 도전적인 연구도 진행 중이다. 이미지를 ‘이해’한다는 것은 여러 가지로 정의할 수 있을 것이다. 만약 인공지능이 주어진 이미지를 보고 어떤 내용인지를 설명할 수 있다면, ‘이해’한 것으로 간주해도 되지 않을까?

구글과 마이크로소프트 등은 사진을 이해하고 이를 문장으로 설명해주는 인공지능을 개발하고 있다. 사진을 보고 어떤 물체가 어디에 있는지를 인식한 다음, 그 상황이나 내용을 가장 잘 설명할 수 있는 문장을 만들어내는 것이다 [1, 2]. 참고로 구글의 경우 두 단계의 딥러닝을 사용해서 이 문제를 해결하려고 한다. 첫 단계에서는 이미지를 분석하기 위해서 CNN을 사용하고, 두 번째 단계에서는 이미지를 설명할 수 있는 문장을 만들기 위해 순환신경망(Recurrent Neural Network, RNN)이라는 방법을 사용한다. RNN은 CNN과 함께 딥러닝에 사용되는 대표적인 심층 신경망이다.

이렇게 이미지를 이해하고 설명하는 ‘자동 영상 캡션’ 인공지능의 실력은 아직 인간에게 미치지는 못한다. 하지만 이 분야의 경우에도 딥러닝의 적용 이후 정확도는 크게 올라갔다. 구글과 마이크로소프트의 연구 결과를 보면 매우 정확한 결과를 보여주는 경우도 있고, 다소 부정확한 답을 주는 경우도 있다. 논문에 나온 그림을 보면, 가장 왼쪽의 사진의 경우 ‘더러운 도로에서 사람이 모터사이클을 타고 있다’, ‘한 무리의 젊은이들이 프리스비 게임을 하고 있다’, ‘한 무리의 코끼리가 마른 초원을 가로질러 걷고 있다’ 등으로 설명이 정확하다. 오른쪽으로 갈수록 설명이 부정확해지지만, 꽤 그럴듯한 설명을 해주는 것도 많다. 이렇게 이미지를 이해하는 인공지능의 역량이 커질수록 영상 의료 데이터의 분석에도 더 폭넓게 활용될 수 있을 것이다.

captioning
이미지의 내용을 파악하여 문장으로 설명해주는 인공지능의 실력 (출처)

 

딥러닝을 이용한 의료 인공지능

인공신경망과 딥러닝에 대한 개념을 설명하느라 상당히 많은 지면을 할애했다. 드디어 이제 딥러닝을 활용한 의료 인공지능에 대해서 본격적으로 이야기해보려 한다. 지금까지 설명한 것을 종합해보면, 딥러닝의 발전으로 인해 인공지능은 인간의 전유물로 여겨졌던 많은 영역에서 큰 성과를 보이고 있다. 특히 영상을 분석하는 영역에서는 인간이 알려주지 않아도 이미지 속에 등장하는 대상의 특징을 스스로 파악하고, 인식하고, 종류를 가려내며, 내용까지도 이해하는 모습을 보여주고 있다.

이러한 인공지능의 역량이 엑스레이, MRI, CT 등의 영상 의료 데이터의 분석으로 이어진 것은 어찌 보면 자연스러운 일인지도 모르겠다. 사람의 건강과 생명이 달린 중요한 이미지 데이터의 분석인 만큼, 혁신적인 성과를 내는 기술이 가장 먼저 적용될 영역이기도 하다. 또한, 의료 영역에서 전문의, 즉 ‘사람’이 판단하는 과정에서 많은 부분 오류가 들어가거나, 판독 결과가 일관적이지 못하고, 효율성도 떨어진다는 문제가 있다. 이러한 부분 때문에 인공지능의 도입은 기존에 ‘사람의 인지 능력’을 바탕으로 영상 데이터를 분석하던 영상의학과 전문의나 병리과 전문의 등의 일에 큰 영향을 주게 될 것이다.

deep medical papers딥러닝을 활용한 영상 의료 데이터 분석 연구의 현황 (출처)

인공지능은 매우 다양한 영역의 영상 의료 데이터 분석에 다양한 목적으로 적용이 시도되고 있다 [1, 2, 3]. 부위로 따지자면, 뇌, 폐, 복부, 심혈관, 유방, 뼈, 안구 등에 관한 연구가 진행되고 있으며, 조직검사 등의 병리 데이터도 주요한 연구 영역이다. 영상 데이터의 종류로는 MRI, CT, 초음파, 엑스레이, 현미경, 유방 촬영술(mammography), 안저 사진, 피부 사진 등이 있다. 이렇게 진행되고 있는 연구의 종류를 보면 영상을 활용한 대부분의 영역을 망라하고 있다고 해도 과언이 아닐 정도다. 이러한 연구에는 역시나 딥러닝 중에 이미지 분석의 왕좌를 차지하고 있는 컨볼루션 신경망(CNN)이 대부분 활용되고 있다.

이러한 의료 영상 연구는 대학이나 병원에서 이뤄지는 경우도 있지만, 최근에는 딥러닝 기술력을 가진 스타트업이 이끄는 경우가 많다. 앞서 언급한 뷰노나 루닛 외에도, 미국의 엔리틱(Enlitic)이나 이스라엘의 지브라 메디컬 비전(Zebra Medical Vision) 등의 스타트업이 이 분야에서 좋은 성과를 보여주고 있다. 이 회사들은 대부분 앞서 언급한 의료 영상 종류 중에서 한 가지 이상의 영역에 대한 연구를 진행하고 있다. 예를 들어, 루닛의 경우에는 유방 엑스선 검사, 흉부 엑스레이, 유방암 병리 데이터 등을, 뷰노의 경우 흉부 CT, 골연령, 안저, 소화기암 병리 데이터 등을 다루고 있다.

imaging-ai-startups-

여러 의료 영상 관련 인공지능 스타트업들 (출처)

 

딥러닝 기반 유방암 엑스레이 판독

이처럼 다양한 연구 결과 중에 대부분은 영상 의료 데이터의 분석을 위한 기술적인 진전을 다루고 있다. 많은 연구진이 딥러닝 테크닉이나 데이터의 전처리 과정 등의 다양한 전략을 발전시키며 분석 정확성을 높이려고 노력하고 있다. 이러한 노력을 모두 소개하기는 어렵거니와 앞으로도 더욱 발전된 방법들이 새롭게 소개될 것이므로, 우리는 세부적인 방법보다는 인공지능의 성과를 중심으로 논하도록 하겠다.

그런데 인공지능이 얼마나 정확해야, 우수하다고 이야기할 수 있을까? 인공지능의 역량을 판단하려면 비교할 수 있는 기준과 근거가 있어야 한다. 앞서 IBM 왓슨에 대해서 알아볼 때도, 정확성의 판단을 위한 기준과 근거의 중요성에 대해서 언급한 바 있다. 특히 의료 인공지능의 경우에는 실제 의사의 판독에 도움을 줄 수 있을 정도로 정확한가, 환자에게 도움이 될 수 있는가, 의료 비용을 낮출 수 있는가 등의 다양한 기준이 적용될 수 있을 것이다.

이렇게 여러 기준이 있을 수 있겠지만, 인공지능의 정확성을 판단할 수 있는 가장 직관적이고 이해하기 쉬운 기준은 의사의 판독 실력과 비교하는 것이다. 최근 발표되는 많은 의료 인공지능은 전문의 실력과 비교했을 때 비슷한 수준이거나, 오히려 더 나은 정확성을 보여주는 경우들이 있다. 이제부터는 다양한 의료 영역에서 이렇게 좋은 성과를 보여주는 인공지능의 사례들을 중심으로 살펴보겠다.

먼저 살펴볼 것은 이스라엘의 의료 인공지능 스타트업인 ‘지브라 메디컬 비전’에서 내어놓은 유방 촬영술(mammography) 엑스레이 사진의 판독 연구이다. 참고로 지브라는 세계적으로 이름 있는 의료 인공지능 스타트업으로, 최근 몇 년간 총 2,000만 달러를 투자받아서 동종 업계에서는 가장 큰 규모의 투자를 받은 기업이다. 특히 ‘미래에 80%의 의사가 컴퓨터로 대체될 것’이라는 도발적인 주장을 했던 비노드 코슬라가 이끄는 실리콘밸리의 유명 벤처캐피털, ‘코슬라 벤처스(Khosla Ventures)’가 2015년 지브라에 투자를 주도했다.

유방암은 가장 발병률이 높은 암종 중 하나로 미국에서만 매년 23만 명이 새롭게 진단을 받고, 4만 명이 유방암으로 사망한다. 다른 많은 암과 마찬가지로 유방암도 조기 발견이 중요하다. 유방 촬영술은 엑스레이 촬영을 통해서 유방암 의심 병변을 발견할 수 있는 검사로, 미국 산부인과학회(ACOG)는 40세부터 유방촬영술을 2년마다 받는 것을 권고하고 있다. 정기적인 유방 촬영술을 통한 검진은 지난 30년간 유방암 환자의 사망률을 30% 정도 감소시켰다는 연구 결과도 있다.

breast-cancer-mammogram유방 촬영술 이미지

이러한 유방촬영술 이미지의 판독에 대해서 영상의학과 전문의들의 실력은 어떠할까. 기존 연구에 따르면, 민감도는 62%~87% 정도이며, 특이도는 75%~91% 정도이다 [1, 2, 3, 4]. (footnote: 민감도와 특이도에 대해서는 포스팅 말미의 설명을 참고) 딥러닝으로 유방촬영술 판독에 대하여 비슷한 수준의 민감도와 특이도를 달성할 수 있다면, 영상의학과 전문의 수준에 도달했다고 해도 무리가 없을 것이다.

지브라는 이 문제를 해결하기 위하여 구글이 이미지넷 대회에서 좋은 성과를 거두었던 인셉션(Inception) 모델을 가져와서 여기에 추가로 유방 엑스레이 사진을 학습시켰다. (더 구체적으로는 CLAHE 라는 이미지 전처리 과정 등의 다른 기법들을 사용했지만, 여기서는 세부적인 사항에 대한 설명은 생략하도록 한다) 앞서 언급했다시피, 구글의 인셉션은 이미지넷 대회에서 120만 장의 일반적인 이미지를 이미 학습한 딥러닝 모델이다.

딥러닝의 장점 중 하나가 이렇게 이미 학습된 모델을 재사용하여, 다른 영역의 데이터를 추가로 학습시키는 전이 학습(transfer learning)이 가능하다는 점이다. 완전히 처음부터 새롭게 인공신경망을 학습시키는 것보다, 이렇게 추가로 학습시키면 학습의 속도가 빨라지거나 최종 모델의 성능이 높아진다고 알려져 있다. 인셉션의 경우, 이미지넷 데이터를 통해 점, 선, 색, 모양 등의 이미지를 인식하는 기본적인 능력이 학습되어 있을 것이므로, 여기에 엑스레이 판독을 추가로 학습시키는 것이 용이했을 것이다.

이러한 전이 학습은 학습시킬 데이터가 부족한 경우나, 의료 인공지능 영역에서 널리 활용되고 있다 [1, 2, 3]. 앞서 필자가 ‘구글의 인셉션은 계속 언급되니 기억해두라’고 한 것도 이 전이학습 때문이다. 앞으로 소개할 연구들에서도 많은 경우 구글의 인셉션을 기반으로 전이 학습을 하므로, 한 번 더 기억해두자.

그렇게 고안한 모델을 기반으로 지브라는 유방촬영술 영상을 ‘의심스러운’과 ‘의심스럽지 않은’의 두 가지 종류로 구분해보았다. 그 결과 ROC 커브에 대한 AUC(Area Under the Curve)는 0.922로 상당히 우수하게 나왔다. 이러한 결과는 최근까지 보고된 유방촬영술 인공지능 중에는 가장 정확하다고 할 수 있다. 또한, 이 결과는 특이도를 80%로 하였을 경우, 민감도는 91%에 해당한다. 앞서 영상의학과 전문의의 민감도는 62%~87% 정도이며, 특이도는 75%~91% 정도라고 언급한 바 있다. 따라서 지브라가 개발한 딥러닝 기반의 인공지능은 적어도 유방촬영술 이미지 판독에 대해서는 영상의학과 전문의의 실력과 비슷한 수준이라고 해도 무리가 없을 것이다.

zebra-roc지브라의 유방 촬영술 판독 인공지능에 대한 ROC 커브

(Foot Note: 인공지능이나 진단기법 등의 성능은 흔히 민감도(sensitivity)와 특이도(specificity)라는 두 가지 척도를 통해서 평가한다. 쉽게 말해서 민감도는 실제로 질병이 있는 사람을 검사했을 때 ‘질병이 있다’고 정확하게 판단하는 비율이며, 특이도는 질병이 없는 사람을 검사했을 때 ‘질병이 없다’고 정확하게 판단하는 비율이다.

판단 기준(threshold)을 더 엄격하게 할수록 민감도는 높아지지만, 특이도는 낮아질 가능성이 많다. (예를 들어, 판단 기준을 극도로 엄격하게 하여, 모든 참가자에 대해서 ‘질병이 있다’ 고 판단해버린다면, 민감도는 100%이겠지만, 특이도는 0%가 될 것이다) 민감도와 특이도는 이렇게 서로 상반되는 값이기 때문에 두 가지 모두 높은 값을 얻기란 매우 어렵다.

ROC (Receiver Operator Characteristic) 커브는 ‘판단 기준’을 최소값부터 최대값까지 바꿔가면서 민감도와 특이도를 동시에 시각화한 곡선으로, 곡선 아래의 면적인 AUC (Area Under the Curve)를 계산하여 진단기법의 성능을 수치화한다. AUC 값이 1이면 100% 완벽한 판단 방법이며, 경험적으로 0.9가 넘으면 정확하다고 볼 수 있다.)

 

(계속)

 

About The Author

디지털 헬스케어를 통해 의료를 혁신하고 세상을 더 건강하게 만들고자 하는 벤처투자자, 미래의료학자, 에반젤리스트입니다. 포항공대에서 컴퓨터공학과 생명과학을 복수 전공하였고, 동대학원에서 전산생물학으로 이학박사를 취득했습니다. 스탠퍼드 대학, 서울대학교병원 등에서 연구하였습니다. 현재 디지털 헬스케어 스타트업 전문 투자사, 디지털 헬스케어 파트너스 (DHP)를 2016년에 공동창업하였고, 대표를 맡고 있습니다. 지금까지 40여 개의 디지털 헬스케어 스타트업에 투자하였습니다. 네이처의 디지털 헬스케어 분야 자매지 『npj 디지털 메디슨』의 편집위원이자, 식약처, 심평원의 전문가 협의체 자문위원입니다. 『디지털 헬스케어: 의료의 미래』 『의료 인공지능』 『헬스케어 이노베이션』 등을 집필하였습니다.

Leave A Response