인공지능 예측 모델, 현장에서의 한계와 문제점

2020.09.09

라인웍스에서는 Electronic Health Record (이하 EHR) 데이터를 이용하여 다양한 머신러닝 프로젝트를 진행하고 있습니다. 

공개된 MDwalks-EXI에서 선보였던 재입원 예측 모델 외에도, 사망 예측 모델, 심혈관 환자의 MACE 이벤트 예측 모델, 입원일 수 예측 모델, 장기 입원 예측 모델 등 다양한 프로젝트를 내부적으로 진행하고 있습니다.

EHR 데이터를 이용한 예측 모델을 실제 의료 현장에서 사용하기 위해서는 모델이 예측한 결과가 의료진이나 환자의 의료적인 행동을 유도할 수 있어야 합니다. 

모델이 30일 이내 사망 확률을 높게 예측했다면 어떤 이유로 그런 예측을 했는지, 어떤 행동을 하면 사망 확률을 낮출 수 있는지에 대한 설명이 가능해야 합니다. 그래야 의료진이나 환자가 사망 확률을 낮추기 위해 노력할 수 있습니다.

하지만 모델의 설명을 사람이 이해할 수 없다면 어떨까요? 모델의 설명을 분석하는 일을 또 해야할까요? 이번 글에서는 예측 모델이 실제 사용되었을 때 발생할 수 있는 문제에 대해서 얘기해 보겠습니다.

진단 vs 예측 – 데이터는 필요한 모든 정보를 담고 있을까?

최근 의료 관련 AI 모델 개발 기사를 보면 진단 모델의 정확도가 90%를 넘어 100%에 가까운 경우도 많이 나옵니다.

조기 위암 진단 정확도 98.5%
(https://www.doctorsnews.co.kr/news/articleView.html?idxno=131298)

폐렴 진단 정확도 97.6%
(http://www.skyedaily.com/news/news_view.html?ID=100424)=

망막질환 진단 성능 96%
(https://jhealthmedia.joins.com/article/article_view.asp?pno=21620)

하지만 예측 모델의 경우는 대부분 이러한 성능을 보여주지 못합니다. 구글이 발표한 논문(https://www.nature.com/articles/s41746-018-0029-1.pdf)을 보면 입원 후 24시간 시점을 기준으로 예측할때, 30일 이내 재입원 예측 모델의 성능은 77%, 최소 7일 이상 입원 예측 모델 성능은 86%입니다. 모두 90% 이하의 성능을 보여줍니다.
원내 사망 예측 모델은 입원 후 24시간 시점에서는 95%의 성능을 기록하고 있지만, 입원 시점에서는 90%, 입원 전 24시간 시점에서는 87%로 예측 시점이 입원 기간과 멀어질수록 성능이 떨어짐을 확인할 수 있습니다. 

왜 예측 모델은 진단 모델들처럼 높은 성능을 내지 못할까요? 원내 사망 예측의 성능과 30일 이내 재입원 예측의 성능이 차이가 나는 이유는 무엇일까요?

대부분 진단 문제의 경우, 현재 상태를 판별하는 것이 목적입니다. 의료진도 환자의 현재 상태를 보고 진단을 내릴 수 있습니다. 모델이 실제로 사용된다면 환자의 현재 상태를 쉽게 진단할 수 있는 경우는 모델이 자체적으로 진단하여 의료진의 업무를 덜어주고 업무 효율성을 높이는데 사용이 될 것입니다.

예측 문제의 경우, 현재 상태를 바탕으로 미래에 일어날 일을 예측해야합니다. 가까운 미래라면 예측이 쉽겠지만, 기간이 길어질수록 데이터에서 볼 수 없는 많은 변수가 생길 수 있습니다.

예를 들어, 퇴원 후 30일 이내 재입원 예측 문제에서 환자가 퇴원 후 의료 외적으로 어떤 행동을 할지 예측할 수 없습니다. 다른 지역으로 이사를 간다던가, 사고나 다른 질병으로 다른 병원에 입원한다던가, 병원이 마음에 들지 않아 병원을 옮긴다던가, 개인적인 이유로 병원 방문을 미룬다던가 등 다양한 이유로 재입원 여부에 영향이 갈 수 있습니다. 이러한 외부 요인이 많지만 이 정보들은 데이터에 포함되지 않고 포함시킬 수도 없기 때문에 예측이 어려워집니다.

병원에 환자가 입원한 상태에서 환자의 행동을 의료진이 제어할 수 있다면, 환자의 상태가 어떻게 바뀔지 예측이 가능할 것입니다. 위에서 제시한 구글의 논문에서도 원내 사망 예측은 환자가 입원한 뒤, 해당 입원 중에 사망할 것인지를 예측한 것이기 때문에 다른 예측 모델에 비해 성능이 매우 높고 진단 모델들과도 비슷한 성능이 나올 수 있었습니다.

설명 가능한 AI – 인간이 이해할 수 없다면?

환자의 사망 예측 모델이 실제로 사용된다고 가정해봅시다. 특정 환자를 진료하는데 모델이 위험도를 아주 높게 예측했습니다. 의사는 이 환자를 그냥 퇴원시키면 안되겠다 싶어서 어떻게 해야 위험도를 낮출 수 있는지를 모델에게 물었습니다. 모델은 마약성 진통제인 모르핀을 투여하라고 추천합니다.

모르핀은 의존성이 아주 강하기 때문에 처방주의약품 중 하나이며, 정말 필요한 경우에만 사용해야합니다. 그렇기 때문에 의사 입장에선 이해가 잘 되지 않는 처방일 것입니다.

위 사례는 공개된 MDwalks-EXI에서 사용된 30일 이내 재입원과 사망 예측 모델에서 실제로 발생한 사례입니다.

왜 이런 경우가 발생하는 걸까요? AI는 각종 의료 지식을 학습하는 것이 아니라 데이터의 패턴을 보고 학습을 하기 때문입니다. 극단적인 예를 들어 설명해보겠습니다.

다음과 같은 약이 있다고 가정해보겠습니다.

  • 20대 이상에게 사용하면 모든 병을 치료함
  • 10대 이하에게 사용하면 사망에 이름

의사는 이 약에 대해서 알기 때문에 10대 이하에게는 절대 사용하지 않습니다. 하지만 AI가 볼 때는 이 약은 20대 이상 대부분 환자의 모든 병을 치료해주는 마법의 약입니다. 이 약을 10대에게 처방해 사망에 이르게 한 데이터가 없기 때문에, AI는 이 약을 왜 10대에게 사용하지 않았는지는 이해하지 못합니다. 하지만 대부분의 병을 낫게 해주는 약이니 10대에게도 처방하라고 추천합니다.

데이터만 가지고 학습하는 인공지능의 문제점이라고 볼 수 있습니다. 인간이 사전 지식을 갖고 행동한 데이터를 쌓기 때문에, (인간의 지식으로) 해선 안되는 일을 했을 때 초래되는 결과에 대한 예측이 어렵습니다. 이로 인해, 인간이 이해할 수 없는 설명을 하는 경우가 생기고, 모델의 설명을 완전히 신뢰할 수 없게 됩니다.

모델이 실제 환경에 배치될 경우

환자의 성향이나 의료진의 진료 성향은 시간에 따라 조금씩 바뀌게 됩니다. 새로운 의약품이나 검사가 나올 수도 있고, 최근의 감염병 사태처럼 병원 방문을 자제하는 등 상황이 계속 생깁니다. 실제 환경에서 모델이 계속하여 사용되기 위해서는 주기적으로 실제 사용하며 쌓은 데이터를 이용하여 모델의 성능을 점점 더 올리는 작업을 해야합니다. 또한, 모델이 잘못 예측한 데이터에 가중치를 두어 학습하거나 분석하여 단점을 보완해나가야합니다.

대부분 진단 모델의 경우, 정답이 정해져 있기 때문에 맞고 틀림을 바로 모델에 피드백을 줄 수도 있고, 의료진이 데이터를 검증한 뒤, 모델이 잘못 판단한 데이터만 모아서 모델의 단점을 보완하는데 사용할 수도 있습니다.

예측 모델의 경우는 다릅니다. 예측 모델이 사망 위험도를 높게 예측한다면, 의료진과 환자 모두 경각심을 갖고 실제 위험도를 낮추기 위해 노력할 것입니다. 의료진이 약을 더 처방하거나 검사를 더 할 수도 있고 혹은 환자가 퇴원 후 아주 관리를 열심히할 수도 있습니다. 이런 노력으로 인해 만약 환자가 사망하지 않는다면 예측 모델은 진료에 아주 도움이 되었고, 본래 사용 목적에 맞는 일을 했다고 할 수 있습니다.

하지만, 모델의 관점에서 보면 어떨까요? 모델은 이 환자를 사망할 것이라고 예측했으나 사망하지 않았습니다. 예측이 틀린 것입니다. 이런 사례가 많아질 수록, 모델은 틀리는 경우가 많아지게 되고, 이를 보완하며 위험한 환자도 위험하지 않다고 예측하게 될 확률이 높아집니다. 이것은 우리가 원하는 바가 아니고, 성능 수치는 올라갈 수 있으나 위험한 환자를 놓치게 될 경우가 많아지게 됩니다. 결국 모델이 낸 예측값이 데이터 외적인 영향을 주게 되는 것입니다.

해결 가능할까

위에서 이야기한 문제점들을 정리하면 다음과 같습니다.

  • 데이터에 반영되지 않은 외적인 요소 존재
  • 사전 지식의 부재
  • 모델의 예측이 데이터에 영향

해결이 가능할까요?

데이터에 반영되지 않은 외적인 요소는 전부 해결은 불가능하겠지만, 최대한 데이터를 많이 수집하는 방법으로 어느 정도 해결이 가능할 것입니다. 병원에서 환자의 생활 패턴에 대한 조사를 하여 음주, 흡연, 질병 이력 등 의료적으로 영향을 줄 수 있는 정보를 수집하여 데이터화하고 직업, 가족 관계 등 의료 외적으로 아주 개인적인 정보까지도 추가로 수집할 수 있다면 환자의 성향을 판단해 예측 모델에 도움을 줄 수 있을 것입니다.

사전 지식의 부재는 머신 러닝 모델 연구가 더 필요합니다. 현재 자연어 처리 모델에서는 위키피디아 등의 방대한 텍스트 데이터를 이용하여 단어들의 의미를 파악한 모델을 만들고 이를 이용하여 각종 문제들에 대해 Transfer Learning을 시도하여 여러가지 문제에서 좋은 성능을 보여주고 있습니다. 의료 관련 텍스트를 학습한 모델(BioBERT, https://arxiv.org/abs/1901.08746)도 나왔습니다. 하지만 대부분 NLP 문제에 적용한 경우가 많고 텍스트로 학습된 모델을 EHR 데이터에 적용시키기는 어려운 상태입니다. Knowledge Graph를 이용해 의료 지식을 데이터화하는 것도 한 가지 방법이겠으나, 의료 데이터에서의 연구는 아직 부족합니다.

모델의 예측이 데이터에 영향을 주는 문제는 단순한 지도 학습(Supervised Learning)을 벗어나 다른식으로 고민을 해보아야할 것입니다. 모델을 다시 학습할 때 모델이 실제 사용된 데이터는 모델이 예측한 값을 입력 값으로 넣어 준다던가, 강화 학습(Reinforcement Learning)을 사용해 위험도가 높게 예측된 환자가 사망하지 않았을 경우 보상을 주어 학습하는 등 최초 학습과 실제 사용 후 재학습의 방법을 달리 하여 성능을 높이는 방향으로 가야할 것입니다.

마치며

현재 예측 모델의 한계와 실 사용시 예상되는 문제점에 대해 이야기해보았습니다.

예측 모델의 한계를 해결하고 성능을 개선하기 위해 라인웍스는 국내 주요 병원들과 여러 제약회사 등과 협업하고 있습니다. 라인웍스가 연구한 예측 모델이 포함된 제품이 실제 진료 현장에서 사용될 수 있도록 노력중입니다. 때문에 예측 모델의 성능 수치에만 매달리지 않고, 예측 모델을 실제 사용할 때 필요한 것이 무엇인지 고민하고 이를 제품에 녹여내고 있습니다.

머지 않은 미래에 이 글에서 제시한 문제점들을 해결한 예측 모델이 실제로 사용될 수 있을 거라고 생각합니다.

라인웍스에서는 EHR 데이터를 포함한 의료 분야에서 사용되는 다양한 데이터를 이용한 머신러닝 연구를 계속 진행하고 있습니다. 저희와 함께 연구를 진행할 머신러닝 엔지니어를 모시고 있습니다. 자세한 내용은 채용 공고를 확인해주세요.

Jungwoo Chae

machine learning engineer

Jungwoo Chae