안녕하세요, @doctorbme 입니다. 오늘은 의학 분야에서 나름 뜨겁다는 영상 진단에 관한 한 논문을 들고 찾아뵐까 합니다. 그런데 사실 영상 진단의 이미지도 다양하고 적용 분야 또한 다양해서, 리뷰가 한번에 끝날 것 같지는 않습니다. 기회가 되는 대로 틈틈히 올려보도록 하겠습니다.
오늘 리뷰할 논문은 Accuracy of deep learning, a machine-learning technology, using ultra–wide-field fundus ophthalmoscopy for detecting rhegmatogenous retinal detachment 입니다. 초광각 안저촬영을 통해 열공 망막박리를 진단하자는 연구입니다. 열공 망막박리는 망막이 찢어지거나 구멍이 생기게 되어, 결국 망막이 떨어지게 되는 질환인데, 빠른 처치가 필요합니다. Scientific Reports 논문이고 Creative Commons 4.0이 걸려있으므로 편하게 사용 가능합니다. 이 글의 그림은 논문에 포함된 그림입니다.
주의사항 1 : 이 논문은 제가 보기에 그다지 잘쓴 논문이 아닙니다. 그럼에도 리뷰하는 이유는 의학 영상의 진단에 대해 딥러닝을 적용함에 있어서, 가장 기초적인 흐름을 보이기 때문입니다.
주의사항 2: 본 논문에 대한 의견은 제 개인적인 의견일 뿐이며, 참고만 하시길 바랍니다.
1) 데이터
지도학습을 위해 환자와 환자가 아닌 사람들의 데이터를 구성합니다. 임상적 진단을 위한 가장 간단한 구성으로, 질환이 있거나 없거나 (1 or 0)를 판단하는 binary classification을 구성하는 경우가 많습니다. 물론 3개 이상의 진단 혹은 분류를 원하는 경우가 있습니다. 이 경우에는 확률을 반영할 수 있는 Soft-max 를 씁니다. (보통 맨 마지막 노드에 넣습니다.)
하지만 Soft-max를 쓰는 경우 ROC(Receiver operating characteristic)를 구성하기 난감해지기도 합니다. 민감도와 특이도, 이를 바탕으로 하는 ROC curve와 이에 따른 AUC(Area Under Curve)를 적용할 때, 여러 분류가 존재한다면 어디까지 맞춘 걸로 보고 (true) 틀린 걸로 볼 것이냐 (false)에 대한 문제가 남기 때문입니다.
논문의 figure 1. 대표적인 초광각 안저촬영 사진 입니다.
왼쪽의 경우 정상 사진을, 오른쪽의 경우 열공망박박리 (흰색 화살표)가 발생한 사진을 나타냅니다.
2) 방법
논문의 figure 3. 논문에서 사용한 Convolutional neural network(CNN) 구조에 대한 모식도 입니다.
모델 구성
데이터셋에서 얻은 이미지를 우선 96 x 96 픽셀의 작은 크기로 전환하고, (원래 이미지는 3900 x 3072 크기 입니다. 매우 큽니다.) 이를 바탕으로 CNN에 넣습니다. Convolutaional Layer와 Max Pooling Layer 가 번갈아가며 배치됩니다. 뒷 부분에는 Fully-Connected Layer (FC layer)를
배치합니다. 여기서 공간 데이터 정보가 소실됩니다. Activation 함수는 ReLU를 사용합니다.
학습
100개의 이미지 단위로 미니배치(mini batch)를 통해 학습시킵니다. 초기 weight는 0.05의 표준편차와 0의 평균을 가지는 가우시안 분포로 랜덤하게 둡니다. FC layer에 Drop out을 적용하고, Adaptive Subgradient Methods, AdaGrad를 통해 weight를 찾아나갑니다.
다른 알고리즘과의 비교
RBF 커널을 사용한 Support Vector Machine, SVM을 사용합니다. Grid Search 등을 통해 Hyper parameter 를 튜닝합니다. SVM에서는 5-fold Cross Validation을 썼습니다.
기타
각 알고리즘을 100번씩 돌려서, 결과를 측정해서 평균과 95% 신뢰구간을 얻습니다.
3)결과
논문의 figure 2. 두 알고리즘 (CNN, SVM)의 ROC curve를 나타냅니다. 딥러닝(CNN)의 경우 AUC는 0.988 (95% CI, 0.981 - 0.995)를, SVM의 경우 0.976 (95% CI 0.957-0.996)을 나타냅니다.
논문에서는 CNN이 SVM보다 좋다고 결론내리고 있습니다.
제한점
논문에서는 좋은 데이터 얻기 어려웠다, 양이 적었다, 열공망막박리 이외에 다른 질병을 못해봐서 아쉽다.. 이런 이야기를 하고 있으나,
제가 보기엔
나름대로의 결론
딥러닝을 의학 영상 혹은 다른 데이터에 적용하기 위해서, 가장 기초적인 방법은
데이터 -> 알고리즘 -> 결과이고, 알고리즘은 CNN 등을 쓰며, 결과는 binary classification을 바탕으로한 ROC curve를 살펴본다. 다른 알고리즘과 비교하면 좋다.
입니다.
그런데, 이 논문은 위의 결론 이외에 다른 내용이 없습니다. (...)
이 논문 이외에 다른 좋은 논문들이 많은데, 우선 이 논문이 왜 좋지 않은지를 봐야 다른 논문을 볼 때, 왜 이런 이야기를 하는지 알게됩니다.
원래는 안저의 영상진단과 관련하여 아주 유명한 논문인, JAMA의 Development and Validation of a Deep Learning Algorithm for Detection of Diabetic Retinopathy in Retinal Fundus Photographs 논문을 리뷰하려 했으나,
그림 하나 사용하는데 가장 저렴해 보이는 구성을 만들어도, 위와 같이 840 불...(...)을 써야 하므로, 이건 제가 나중에 돈 많이 벌면 하는 걸로... (아무리 논문이 무료로 배포되더라라도, 논문의 그림을 사용하려면 돈을 내야하는 경우가 있으니 꼭 주의하시기 바랍니다.)
읽어주셔서 감사합니다.