2017년 1월 23일 월요일

머신 러닝을 통한 헬스케어 서비스의 진화

머신 러닝과 빅데이터는 뗄 수 없는 관계가 형성되어 있다. 의료 서비스도 일종의 통계라는 것은 잘 알려진 사실이다. 질병의 증상을 판정할 때 통계에 의해 정리된 질병 리스트를 참고하게 되고 처방을 할 때도 마찬가지 기법을 사용하고, 이러한 경험이 쌓일수록 우수한 의료진이 될 수 있다.
만약 머신 러닝이 적용된다면 빅데이터 분석을 통해 다양한 통계를 반영한 경험치가 헬스케어 시스템에 반영이 되고, 망각이 없는 시스템은 거의 모든 경우의 수를 반영한 경험치가 쌓여 고품질의 서비스를 제공할 수 있게 된다.
표2는 UNC(University of North Carolina) 헬스케어 기관에서 IBM의 빅데이터 분석 방법을 도입하여 매년 37,000명 이상의 환자를 대상으로 한 시스템의 평가 결과의 예다.

<표2> UNC 헬스케어의 빅데이터를 활용한 여성암 진단 시스템의 평가 결과
출처: 보건복지부

헬스케어 서비스에서 연결 가능한 비즈니스 모델을 그림5를 보면서 살펴보면 [1]생체신호 센싱은 다양한 웨어러블 디바이스로 건강 데이터를 생성하고, [2]저전력 통신은 IoT 서비스에서 제공하는 데이터 수집과 전송을 이용하여 건강 데이터를 수집하여 전송한다. [3]데이터 분석에서는 빅데이터와 머신 러닝을 통해 수집된 빅데이터를 분석하여 의미 있는 데이터로 저장, 관리한 후 [4]질병 분석과 예측을 수행한다. 이 곳에서 중요한 의료 지식이 발견([5])되면 의료 서비스를 제공하게 되고 필요한 경우 서비스 결과를 경험치로 축적하게 된다.
헬스케어 서비스는 일반적인 의료IT 서비스는 물론이고, 웨어러블과 IoT 등에서도 주요 비즈니스 모델을 찾아낼 수 있다. 가장 중요한 부분은 광범위한 빅데이터가 수집된다는 점이다. 헬스케어 서비스의 빅데이터는 서비스에 참여하는 사용자의 거의 모든 데이터를 센서를 통해 수집하기 때문에 헬스케어 외의 서비스와 연계점을 찾기 용이하다.

<그림5> 헬스케어 서비스의 주요 처리 단계
출처: Kaist


빅데이터 중심의 헬스케어 서비스

얼마 전까지만 해도 헬스케어에서 사용하는 빅데이터는 유전체, 진료 데이터 등 필요에 의해 수집한 데이터 밖에 없었다. 웰니스 서비스를 포함한 헬스케어 서비스를 위해서는 신체, 식음, 운동, 취침 데이터 등 사람이 평소에 자연스럽게 만들어내는 데이터들을 수집해야 한다. 이를 위해서는 사람들에게 다양한 데이터 수집 장치가 필요한데 웨어러블 디바이스나 IoT를 활용한 디바이스들이 필요하다.
디바이스를 통해 수집된 건강 데이터는 폭발적으로 증가한다. “공학트렌드 206호 헬스케어 사례 연구 - 빅데이터와 연계” 편을 참조하면 수집된 데이터의 약 80~85%가 텍스트나 이미지 같은 비정형화된 데이터이고, 년 평균 18% 정도 증가율을 보이고 있다.
빅데이터를 이용한 헬스케어 서비스는 이미 다양하게 적용되는 중이다. 미국 국립보건원과 함께 의약품 정보를 제공하는 필박스(Pill Box), 구글 트렌드의 독감 예보, IBM의 왓슨(Watson) 등은 빅데이터의 활용도를 극대화해 헬스케어 서비스를 제공하는 좋은 예로 알려져 있다. 그림4는 빅데이터를 중심으로 빅데이터 서비스를 구성하는 예를 나타내고 있다.

<그림4> 빅데이터 중심의 헬스케어 서비스의 예
출처: 한국디지털병원수출사업협동조합

주로 건강 데이터로 수집되는 빅데이터는 하루에도 어마어마한 양이 수집되기 때문에 효율적인 분석이 추가되지 않으면 불필요한 데이터만 쌓여 리소스를 낭비하는 경우가 발생한다. 빅데이터 분석은 의사나 헬스케어 전문가가 일정한 패턴이나 규칙으로 분석하기는 매우 어렵다. 또한, 빅데이터 속에 숨어있는 다양한 건강 정보를 찾기 위해서는 상황이나 데이터 속성에 따라 분석을 하고 분석된 경험을 바탕으로 분석 역량을 지속적으로 업그레이드 할 수 있는 서비스 모델이 필요하다. 이런 측면에서 머신 러닝은 빅데이터를 분석하는 가장 좋은 모델이 될 수 있고, 이는 헬스케어 서비스의 혁신적 결과를 가져오고 있다.


모듈(객체)를 오퍼레이션과 로직으로 구분

Q: 모듈(객체)를 오퍼레이션과 로직으로 구분하는 이유가 있을 것 같은데요?

네, 맞습니다. 모듈은 근본적으로 재사용을 위한 것이라고 얘기했습니다. 모듈도 세부적으로 재사용을 할 수 있는 단위가 필요한데 그것이 로직과 오퍼레이션이라는 겁니다.

Q: 예를 들면, 기능은 똑같은데 절차가 다른 곳에는, 오퍼레이션은 그대로 두고 로직만 바꿔서 재사용하고, 절차는 똑같은데 기능이 다른 곳에서는, 로직은 그대로 두고 오퍼레이션만 바꾸는 것으로 보면 되겠네요?

그렇습니다. 이제부터는 재사용의 단위를 모듈에서 로직과 오퍼레이션까지 한단계 더 내려간 것으로 보시면 됩니다.
이번에는 모듈 밖으로 살펴 보겠습니다. 두개 이상의 모듈이 있을 때 재사용하는 방법에 대해 살펴보죠. 그림2는 로직을 재사용하는 경우입니다. 로직을 재사용하면 오퍼레이션 부분은 비어있게 되는데 이 부분에 원하는 오퍼레이션을 새로 끼워 넣으면서 재사용을 하게 되는 겁니다. 이렇게 로직을 재사용하는 것을 프레임워크(Framework)라고 부릅니다.

<그림2> 로직의 재사용(프레임워크)