brunch

You can make anything
by writing

C.S.Lewis

by Jaehoon Lee May 08. 2018

#8. 의료정보학과 인공지능

인공지능은 과연 또 하나의 지나가는 유행일까?

이번 장에서는 드디어 말많고 탈많은 의료 인공지능 이야기를 해볼까 합니다. 필자는 인공지능 전문가와는 거리가 멀고 최신 알고리즘인 딥러닝 등에 대해선 유용한 정보들이 여기저기에 차고 넘치니 의료정보학 관점에서 보는 의료 인공지능의 효용성과 발전 가능성을 중심으로 다뤄보도록 하겠습니다.


시대를 너무 앞서간 (???) 금성사


인공지능이 무엇인가에 대한 정의는 지금도 그렇게 명확하지 않고 시대에 따라 계속 바뀌어 왔습니다. 처음으로 인공지능이라는 용어가 나온 것은 무려 1950년대입니다. 위의 금성사 포스터를 살펴보면 지금은 너무나도 당연하게 여겨지는 기능들도 인공지능이라고 불리웠던 시절이 있었습니다. 물론 저 위의 문구는 마케팅용이였긴 하지만 저것보다 훨씬 더 이전 시절에 아주 간단한 로직을 컴퓨터로 구현한 것도 인공지능이라고 했던 적도 있습니다. 지금은 인공지능이라면 왠만큼 인간과 비슷한 행동을 따라하는 정도의 수준으로는 성이 안차서 스카이넷처럼 인간을 초월한 존재 정도는 되어야 얘기거리가 되는 것 같습니다.


문구 하나하나 인공지능의 감성이 충만한 터미네이터 1편 포스터


인공지능의 역사가 길고 부침이 많은 분야이다보니 수십년동안 몇번의 부흥기와 몇번의 침체기를 겪었는데 수많은 박사 실업자를 양성하고 지금은 아마도 인공지능 연구의 최전성기가 아닌가 싶습니다. 요새 인공지능 붐을 일으킨 주역은 구글 딥마인드의 알파고로 유명한 딥러닝이니 이것이 뭔지부터 시작해봅시다. 딥러닝은 머신러닝의 한 갈래이며 머신러닝은 보통 데이터마이닝과 한데 묶여 취급됩니다. 요새는 컴퓨터 사이언스나 산업공학과 대학원에 들어가면 데이터마이닝, 머신러닝 과목은 왠만하면 개설되어 있습니다 (최근에는 몇군데 학교의 Biomedical informatics에서도 가르치기 시작했습니다). 이 둘은 학문적으로 분류하면 응용통계학의 범주에 들어갑니다. 필자가 대학원 다니던 시절에 응용통계쪽 연구를 하거나 실험실에 들어가면 먼저 선형통계를 배우고, 그 후 고등통계, 통계적 추론 등을 들었습니다. 그런데 인공지능이 확 뜨면서 뉴럴넷, 전문가시스템, 머신러닝, 데이터마이닝 등의 과목이 수강생이 폭증하였고 앞의 통계과목을 싹 다 듣고 이것들까지 들으면 일단 인공지능의 학문적 기본은 갖게 됩니다. 박사학위 지망생 정도 되어서 깊이있게 가려면 확률론과 해석학도 들으면 좋습니다. 그냥 수학과를 가 왜 이렇게 길게 관련 교과목들을 설명하는가 하면 이들이 결국 인공지능의 현재 위치가 어디이며 어디로 가는가를 말해주기 때문입니다. 인공지능은 통계를 중심으로 여러가지 도메인 기반 정보학을 섞은 짬뽕스런 분야입니다. 그런데 왜 이제와서 갑자기 인공지능이 뜨게 된 것일까요?


일단 통계라는 학문이 어디서 왔는지 역사 이야기부터 해봅시다. 통계란 영어로 Statistics인데 이는 State + istic의 조어입니다. State란 국가, 주, 정부라는 뜻이고 istic이란 ~에 관한 정보라는 뜻이니 Statistics란 국가의 정보를 다루는 분야 내지는 학문 뭐 이런 뜻입니다. 중학교인가 국민학교 때 국가란 국민+영토+주권 이라고 배운것을 기억한다면 결국 통계는 이 셋에 관한 정보를 다루는데, 이 중에서 조금만 옛날 시대로 가면 주권은 뭐 그냥 왕권이 주권이었고 영토는 지리학과 교통이 발전하기 이전에는 정보랄게 별로 없었습니다. 인류의 역사에서 대부분의 시기에 인간은 평생 태어난 마을에서 10마일 이상 벗어나지 않고 뉴요커처럼 살았다고 합니다. 고대로 가면 영토의 개념이고 뭐고..... 


아이고 의미없다


결국 통치를 할 때 제일 중요한 것은 국민에 관한 정보인데 이는 국가를 지탱하는 두가지: 세금과 군역 빙뜯기와 부려먹기 을 수행하기 위한 핵심 정보이기 때문입니다. 지금도 그렇지만 한 나라의 사람 머릿수는 곧 생산력이고 군사력이기에 이를 파악하는 것은 통치집단에게 있어 매우 중요한 일입니다. 우리나라 머릿수가 10만명인데 옆나라가 5만명이면 어차피 전쟁하면 나올수 있는 병력은 거기에 비례해서 2:1일테니 쳐들어가면 이길거라는 계산이 나올수 있겠습니다. 또한 10만명으로부터 나올수 있는 올해의 수확량을 예상하여 세금을 책정할 수 있습니다.


그런데 옛날옛적부터 이렇게 중요한 통계를 하는데 몇가지 실제적인 문제가 있었습니다. 하나는 정보를 수집하는데 드는 비용입니다. 만약 현시점에서 대한민국의 인구수를 알고 싶으면 주민등록 시스템에 들어가 간단히 SQL을 날려볼수 있습니다. 이 주민등록은 출생신고하면서 부모가 입력해놓은 정보입니다. 전산시스템이 없던 시절에는 종이로 동사무소에 제출하고 그걸 합산해서 계산할수 있었겠죠. 1000년 쯤 전 중세 유럽에서는 가톨릭 교회에서 세례받으면서 올린 교적이 주민등록의 역할을 상당부분 했었습니다. 물론 외국인, 이교도, 필자같은 냉담자 그시절에 그랬다간 화형일텐데 등의 오차는 있겠지만 어쨌든 일일이 세어보는 수고는 안해도 되었습니다. 그럼 대체 2000년쯤 전에는 어찌했을까요? 상식적으로 생각하면 나라에서 보낸 사람이 마을마다 직접 방문하여 세어 보는 수 밖에 없었을 겁니다. 그런데 교통도 발달 안된 시절에 인구가 남한정도 되는 땅에 50만명이라 치면 돌아다니면서 그걸 일일이 세다가 공무원들이 먼저 늙어죽을 수도 있고 전쟁이 나거나 역병이 돌아 인구수가 중간에 확 달라지면 처음부터 다시 해야 할수도 있고 공무원들 니네도 당해봐야 아무튼 쉽지 않으리라는 것은 뻔합니다. 그럼 여기서 몇가지 방법이 있는데 예를 들면,


1. 빨리 세기 위해 오만명 정도의 인구조사원을 보낸다. 국가예산을 거기 다 쓰고 디폴트

2. 대충 센다. 예를 들어 산위에 마을이 하나 있으면 굳이 가보지 말고 대충 50명이라고 친다. 어느 촌장이 우리 마을은 100명이 산다고 하면 그대로 믿는다. 

3. 다른 지표를 활용하여 어림한다. 예를 들어 저번에 세었을때 10만명이었는데 올해 농사가 풍년이고 전쟁이 없었다면 경험적으로 10만 1천명 정도로 늘어났을 거라고 친다. 역병이 돌아 마을에서 10명당 한명이 죽은것 같으면 나라 전체는 9만명 정도로 줄었을 거라 친다.


이 간단한 예에 사실 통계학의 핵심적인 방법들이 다 들어있습니다. 1번을 전수조사라고 하는데 보통 비용이 엄청나게 들기에 꼭 필요한 경우에만 합니다. 하지만 정보량은 최고로 많습니다. 2, 3번은 추정, 예측, 통계적 추론 등의 방법의 예인데, 이렇게 얻은 통계치는 같은 정보라도 1번보단 좀 덜 믿을만합니다.


1,2,3번 통털어 변하지 않는 사실은 정보수집 비용과 정보량은 비례한다는 것입니다. 세상 모든 것이 그렇듯이 공짜는 없으며 싸게 얻은 정보는 뭔가 구릴수 밖에 없습니다. 그러나 정보수집비용은 왠만해선 줄이기 어렵습니다. 조사원을 다 계약직으로 대체한다던가 따라서 갖고 있는 한정된 표본으로부터 어떻게든 하나라도 수학적으로 더 정보량을 뽑아내는 것이 통계의 중요한 역할입니다. 


왜 인공지능 제목을 달고 지금까지 줄창 통계 얘기만 하는가 하면, 현재의 인공지능 붐을 일으킨 배경은 바로 이 정보수집비용이 획기적으로 싸졌기 때문입니다. 좀 과장해서 말하면 수리통계적 방법론이 발전해 왔던 이유는 유한한 데이터 수집 비용을 극복하기 위해서였는데, 무제한으로 표본수를 늘릴수만 있다면 굳이 복잡한 통계방법을 쓰지 않고도 유의미한 결과를 얻기가 쉬워집니다. 위의 인구조사 예에서 보듯이 극단적으로는 그냥 다 일일이 세어볼수 있다면 (측정) 그게 가장 정확하기 때문입니다.


그런데 지난 10년간 IT분야에서 데이터의 수집 및 저장 기술에서 큰 발전이 있었습니다. 수집 측면에서는 스마트폰, 무선 센서, 모바일 기기, 다양한 측정기기, 카메라 기술, 인터넷 페북질 등이 등장하였고 저장 측면에서는 데이터센터와 클라우드 시스템의 발전으로 데이터를 얻는 비용이 매우 싸졌습니다. 이렇게 폭증하는 데이터의 양을 바탕으로 분포 가정이고 신뢰구간이고 뭐고 무식하게 입력 데이터를 때려부으면 억지로라도 결과가 나오게 되는데 이게 바로 머신러닝의 성공포인트입니다. 표현이 좀 심했나 여담으로 종이와 연필로 문제푸는 걸 좋아하는 순수수학 분야에서는 이런식으로 컴퓨팅 파워를 활용해서 문제를 푸는 걸 싫어하는 경향이 있습니다.


전 세계 데이터 생성량과 저장 비용의 관계


여하튼 최근에 인공지능이 뜨게 된 배경은 이렇고 비단 인공지능의 이름을 붙이지 않더라도 이러한 접근방법, 즉 데이터 중심의 의사결정과 문제해결 방법론인 Data-driven approach는 한동안 전성기를 맞이하리라 보입니다. 데이터가 압도적으로 많으면 모델을 엄격하게 세우지 않고도 좋은 예측을 할수 있기 때문입니다. 이러한 추세를 블로그 이전 편에서도 언급했었는데, 바로 Brent James가 추진해왔던 Statistical approach와 의료 프로세스 표준화이며, 근거중심의학의 발전과도 깊은 관련이 있습니다.


의료분야에서는 다른 분야보다도 인공지능을 활용해야하는 당위성이 큰데 이는 다뤄야하는 정보의 양이 워낙 많기 때문입니다. 이는 단순히 의료인이 하는 지식노동을 자동화해서 비용을 절감한다던가 하는 정도의 문제가 아닙니다. 인식의 차이는 있지만 대체로 의료정보의 증가량은 의사가 올바른 의사결정을 할수 있는 처리능력의 범위을 넘어섰다고들 합니다. 즉 앞으로는 어떤 형태로든 컴퓨터의 도움이 없이 제대로 환자를 보는 것이 거의 불가능하다고 보고 있습니다. 마치 예전에는 네비게이션 없이도 다들 운전했지만 이제는 못하는 것과 마찬가지입니다.


폭증하는 정보량과 인간의 한계 (출처: Intersystems의 Dr. Leftwich의 슬라이드)


간단한게 인공지능이 의료현장에서 어떻게 쓰이는지 인터마운틴의 예를 들어보겠습니다. Medical informaticst인 Peter Haug와 Pulmonologist인 Nathan Dean은 응급실에서 Community Acquired Pneumonia (CAP) 환자를 조기 스크리닝하는 프로그램인 ePneumonia를 개발하여 10여년 이상 운용하고 있습니다. 모든 급성질환이 그렇지만 특히 CAP은 조기에 발견하는 것이 중요하며 만약 응급환자가 들어오자마자 EHR에 입력된 기존 환자정보를 바탕으로 CAP에 해당할 위험도를 계산해서 알려줄 수 있다면 매우 유용합니다.


유타에 1년짜리 Fellowship왔다가 결국 근속 40년을 꽉 채우신 분


ePneumonia의 가장 기본적인 로직은 "진단에 필요한 정보"를 입력변수로 받아 "환자가 CAP일 확률"을 결과로 내보내는 것입니다. 이때 필요한 정보는 EHR 데이터베이스에서 읽어오고 만약 진단에 부족한 정보가 있으면 추가적으로 입력을 요구하기도 합니다. 이 위험도 계산을 위해 초창기의 ePneumonia는 컴퓨터 프로그래밍에서 기본적으로 배우는 IF THEN ELSE 형태로 구현되었으나 개선을 거듭하여 지금은 자연어처리 (Natural Language Processing)과 베이지안 네트워크의 조합으로 이루어져 있습니다. 아래의 그림을 보면 각각의 입력변수의 값이 주어졌을때 최종적으로 Pneumonia의 Absent / Present 여부가 조건부 확률로 계산된다는 것을 알수 있습니다. 추후에는 머신러닝 기반 알고리즘으로 개선하기 위한 연구가 진행중이라고 합니다.



환자의 Pneumonia present 가능성이 높으면 입원환자 목록에 위 그림과 같이 경고가 뜹니다 (빨간 원)


최근에 인공지능이 많이 뜨기도 했고 원체 흥미있는 떡밥 주제이다 보니 인공지능이 의사를 대체할것인가 아닌가 하는 갑론을박이 도처에서 활발히 벌어지고 있습니다. 


..................
.....................


필자는 인공지능 전문가가 아닌지라 뭔가 견해를 보탤 처지는 아니지만 의료정보학 입장에서 보는 인공지능의 현실과 한계는 이렇습니다.


1. 앞에서 설명하였듯이 지금의 인공지능 시대를 열게 된 것은 첫째도 둘째도 마지막도 폭증하는 데이터 덕분입니다. 그런데 의료정보 분야에서 한정해서 보자면 전체 데이터의 양은 많이 늘었는데 그다지 건질것은 없는 경우가 많습니다. 사실 전통적인 관점에서의 의료정보인 진단, 랩, 처방 등의 데이터는 그다지 많이 늘지 않았고, 앞으로 발전가능성이 높은 유전체 데이터와 모바일 데이터의 양을 뭉뚱그려 한데 묶다 보니 엄청 커진 것처럼 보이는 착시효과가 있습니다. 인터마운틴은 20년 전부터 Enterprise Data Warehouse를 도입하여 Clinical data를 축적해왔지만 그래봐야 관계형 데이터베이스에 저장된 데이터의 총량은 10 테라바이트 정도입니다. 적은 양은 아니지만 최근 빅데이터 스케일이 어느정도인지 페이스북 예를 들자면 하루에 20억장 정도의 사진이 업로드된다고 합니다. 장당 100KB로만 쳐도 하루에 200 테라바이트(!)입니다. 페이스북 나온 김에 더 얘기하자면 빅데이터의 대표적인 예인 페이스북 데이터는 마케팅 용도로 쓰기에 좋은 편인데 이유는 컨텐츠의 특징 자체가 뭘 먹고 사고 어딜 놀러갔다는 등의 허세용 정보이기 때문에 일반인의 소비성향을 파악하기 적합합니다. 어떤 성향의 유저가 뭘 올렸는지의 관계 (Association)만 뽑아도 20억명이 올려대는 데이터의 양이 있으니 쭉쭉 잘 나옵니다. 하지만 의료정보같은 전문 분야의 정보로서의 가치는 매우 낮은데 페이스북에서 그런걸 다룰 일도 없거니와 있더라도 일반인이 생성하는 전문 분야 정보의 질은 상대적으로 낮습니다.


2. 둘째로 인공지능을 제대로 일시키기 위해서 입력데이터를 "떠먹여줘야하는" 고질적인 문제는 아직도 전혀 해결되지 않았습니다. 이를 전처리 문제라고 하는데, 한마디로 데이터를 입력값으로 넣기까지의 수고가 너무 많아 배보다 배꼽이 큰 문제입니다. 인공지능 뿐 아니라 엔지니어링에서는 상황이 잘 통제된 실험실에서 개발한 기능이 현실세계에 나갔을 때 외부 변수나 예외상황에 대처하지 못하는 공통적인 문제가 있습니다. 최근 괄목할만한 성과를 내는 몇몇 분야의 인공지능들은 (예를 들어 바둑) 잘 통제된 환경과 정제된 입력데이터라는 공통점이 있습니다. 의료분야에서는 영상의학 쪽이 대표적입니다.


반면 현존하는 임상데이터의 70% 정도는 위의 바둑판처럼 코드화되어 있지 않고 Clinical note등에 Free text 형태로 되어 있습니다. 따라서 위의 Pneumonia의 예처럼 자연어 처리로 먼저 양념을 해야하며 이 변환 과정도 그렇게 완전하지 않습니다. (현 수준에서 좋은 NLP엔진이 70~80% 정도 변환합니다) 또한 Missing data와 같은 기본적인 데이터 품질 문제 이외에도 용어표준화 문제 (아직도!!!!), 의미적 상호운용성, 청구 데이터와 임상 데이터의 분리 등 넘어야 할 산이 한둘이 아닙니다. 필자는 이 상황을 바둑에 빗대어 아래와 같은 그림을 예시로 들곤 합니다.


야 알파고 이걸로 바둑 한판 두자


이런 근본적인 문제를 바닥부터 해결하려는 노력은 그다지 주목을 받지 못합니다. 반면 고차원적인 임상의사결정을 인공지능으로 대체하는 것은 기술적으로도 어렵고 첨예한 윤리문제 및 법적 제도적 이슈가 걸려 있습니다. 필자는 오히려 인공지능을 전처리, 의미론적 연결, 용어 매핑 같은 노가다에 주로 써먹고 고차원적인 의사결정은 사람이 하는게 좋지 않나라는 생각도 합니다. 하지만 그런 방향으로 가면 일단 연구주제가 폼이 안나고 임용도 안되고 언론사 인터뷰도 안 들어오고 친척 형제들은 다 잘 나간다는데 너는 박사 백수 현실적인 문제가 있습니다.

 


참고문헌

Dean NC, Jones BE, Ferraro JP, Vines CG, Haug PJ. Performance and Utilization of an Emergency Department Electronic Screening Tool for Pneumonia. JAMA Intern Med. 2013;173(8):699–701. 



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari