올해 CVPR 2017에도 의료영상분석에 관련된 연구들이 발표되었는데, 그 중 의료영상분석에서 특히 중요한 문제를 다룬 논문이 있어 소개드립니다. 잘 알려져있다시피 의료영상은 label, annotation 등의 supervision 데이터를 얻는 것이 상대적으로 어렵습니다. 현실적으로 말해서 비싸지요 🙂 이 논문에서는 이러한 비용을 줄이는 방법, 다시 말해 최대한 적은 수의 supervision을 이용하여 만족할만한 성능을 달성하는 방법에 대한 연구입니다.

Introduction

의료영상에서 annotation 비용을 줄이기 위해 이 논문에서는 AIFT (active, incremental fine-tuning) 라는 방식을 제안합니다. 논문의 제목에서도 알수 있듯이 supervision이 없는 데이터로부터 시작하여 현재 시점의 CNN 모델이 성능을 올리기 위해 필요로 하는 가치있는 데이터를 찾고 이 데이터의 supervision (label 혹은 annotation 등) 을 확보하여 incremental하게 CNN 모델의 성능을 향상시키는 방식입니다. 여기서 가장 중요하게 정의되어야 하는 것이 과연 어떤 데이터가 성능 측면에서 가치있는 데이터인가 하는 부분입니다. 논문의 핵심은 이 부분에 있습니다.

이 논문에서는 특정 ROI에서 추출된 patch들은 모두 유사한 예측값을 보이는 것이 이상적이라는 사실로부터 시작합니다. 이러한 관찰을 통해 논문의 문제를 풀기도 하지만 이것이 하나의 제약이 되기도 하는데요, 이미 데이터가 관심영역이 대부분 포함된 ROI여야 한다는 것입니다. 이러한 제약은 후속 연구들에서 다뤄지지 않을까 기대합니다. 다시 돌아와서, 특정 ROI에서 추출한 patch들의 예측값들로부터 entropydiversity 값을 계산하고 이들의 패턴 분석을 통해 가치있는 데이터를 선정하게 됩니다.

이렇게 supervision이 없는 데이터로부터 시작하여 active하게 가치있는 데이터를 선정하고 이 데이터들을 통해 기존 모델의 성능을 향상시키는 framework는 현실적으로 큰 임팩트를 가질 수 있습니다. 이 부분에 대한 설명은 먼저 논문에 언급된 그대로를 가져와 보겠습니다.

More importantly, our method has the potential to exert important impact on computer-aided diagnosis (CAD) in biomedical imaging, because the current regulations require that CAD systems be deployed in a “closed” environment, in which all CAD results be reviewed and errors if any be corrected by radiologists; as a result, all false positives are supposed to be dismissed and all false negatives supplied, an instant on-line feedback that may make CAD systems self-learning and improving possible after deployment given the continuous fine-tuning capability of our method.

정리하면, CAD 시스템이라는 것이 현재 규제환경 하에서는 병원 내부의 고립된 환경에서 작동하기 때문에 논문에서 제안하는 방식이 CAD 시스템을 지속적으로 발전시킬수 있다는 점에서 큰 의의를 가진다는 것입니다.

AIFT (active, incremental fine-tuning)

앞서 언급한바와 같이 논문에서 제안하는 방식의 핵심은 현재의 모델 성능을 향상시킬 수 있는 데이터를 어떻게 정의할 것인가 입니다. 논문에서는 entropy와 diversity 두가지 값을 이용하게 됩니다. 지금 다루고 있는 문제가 |Y| 개의 class를 분류하는 문제라고 가정하겠습니다. 데이터 후보 C_i 의 특정 patch x^j_i 가 있고 이 patch에 대한 현재 모델의 예측값이 p^j_i 라고 했을때, entropy는 아래와 같습니다.

e^j_i=-\sum_{k=1}^{|Y|} p^{j,k}_i \log p^{j,k}_i

그리고 patch x^j_ix^l_i 간의 diversity는 아래와 같이 정의됩니다.

d_i(j,l)=\sum_{k=1}^{|Y|} (p^{j,k}_i-p^{l,k}_i) \log \frac{p^{j,k}_i}{p^{l,k}_i}

정의에 따라 entropy는 classification certainty를 나타내어 그 값이 높으면 많은 정보량을 가지고 있다고 생각할 수 있습니다. Diversity는 prediction consistency를 나타내어 그 값이 높으면 예측이 inconsistency하다고 판단할 수 있습니다.

이렇게 어떤 데이터 후보 C_i 에 대한 patch들의 entropy와 diversity를 계산하고 이들을 아래와 같은 하나의 행렬 R_i 로 표현합니다.

R_i(j,l)=\begin{cases} \lambda_1 e^j_i & \text{if}~j=l \\ \lambda_2 d_i(j,l) & \text{otherwise} \end{cases}

여기서 \lambda_1\lambda_2는 entropy와 diversity간의 상대적인 중요도를 결정하는 값입니다. 이렇게 계산된 행렬 R_i 의 sum of elements를 기준으로 데이터 후보군에서 annotation 받을 데이터를 선택하게 됩니다.

AIFT_fig1

이렇게 하나의 데이터 후보로부터 여러개의 patch를 생성하여 그 데이터 후보의 중요도를 판단할때 Figure 1과 같이 모든 patch의 예측값이 비슷하다는 가정이 맞지 않는 경우가 생깁니다. Figure 1에서의 patch들을 보면 어떤 patch들은 원래 데이터의 주요 정보를 거의 포함하지 못하는 것을 볼 수 있습니다. 하지만 역시 대다수의 patch들은 원래 데이터의 label을 잘 설명하고 있다고 볼 수 있으므로 majority selection 방식을 통해 선택된 patch들만 이용하여 데이터 후보의 중요도를 결정합니다.

논문에서의 majority selection 방식은 단순합니다. Patch들의 평균 예측값을 기준으로 이것이 0.5 이상이면 예측값이 큰 \alpha-percent만을 선택하고, 0.5 이하면 예측값이 작은 \alpha-percent만을 선택합니다. 이렇게 하면 위의 그림과 같은 noisy patch들을 효과적으로 제거할 수 있습니다.

제안된 방식으로 데이터 후보들에 대한 entropy와 diversity를 계산하여 그 패턴을 분석해보면 크게 아래 표와 같은 7가지 패턴이 나타납니다.

AIFT_table1

하나하나 자세히 살펴보면,

  • Pattern A: 예측값이 0.5에 밀집되어 있고 높은 entropy 값을 가집니다.
  • Pattern B: 높은 inconsistency를 보입니다. 즉, 큰 diversity 값을 가집니다.
  • Pattern C: 예측값이 극단에 모여 있습니다. 큰 diversity 값을 가지지만 majority patch들에 대해서는 그 값이 크게 작아집니다.
  • Pattern D, E: 예측값이 0 또는 1에 밀집되어 있어 높은 certainty 값을 보입니다.
  • Pattern F, G: 대부분의 예측값이 0 또는 1에 밀집되어 있지만 극단에서도 예측값이 관측됩니다.

모델의 성능 향상 관점에서는 Pattern A와 B의 데이터 후보가 가장 좋습니다. 가지고 있는 정보량이 많고 patch간의 예측값 차이가 크기 때문입니다. 그 다음으로는 Pattern F와 G의 데이터 후보가 가치있고, Pattern D와 E의 경우는 이미 모델이 어느 정도 일관성있게 예측하고 있기 때문에 그 예측이 완전히 틀리지 않은 이상 큰 성능 향상을 기대하기는 힘듭니다. Pattern C의 경우는 이미 판단하기 애매한 noisy한 데이터로 볼 수 있으므로 성능 향상에 대한 기대가 가장 낮습니다.

위의 표의 열들이 entropy와 diversity 값을 조합하여 판단하는 6개의 기준을 나타내고 논문에서는 이 기준들에 대해 실험을 진행했습니다.

Experiments

논문에서는 대장내시경 프레임 분류, 폴립(polyp) 검출, 그리고 폐색전증(pulmonary embolism) 검출, 이렇게 3개의 사례에 대해서 검증을 수행했습니다. 대부분 비슷한 결과를 나타내기 때문에 여기서는 앞의 2개 실험 결과를 공유하도록 하겠습니다.

Colonoscopy Frame Classification

내시경 영상을 보면 유용한 정보를 가지는 프레임은 많지 않습니다. 이 실험에서는 대장내시경 동영상의 각 프레임이 유용한 정보를 가지는지 아닌지를 분류해보았습니다. 데이터는 총 6개의 대장내시경 동영상으로부터 추출한 4,000개의 프레임을 활용하는데 각 프레임을 informative or non-informative로 전문가가 분류해놓았습니다. 이 중 절반을 학습에 활용하고 절반은 테스트에 이용했고 각 프레임에서 21개의 patch를 추출했습니다. 초기 모델로 ImageNet으로 학습된 AlexNet을 사용했습니다.

AIFT_fig3

Figure 3는 실험 결과를 나타냅니다. 전반적으로 제안된 방식으로 데이터 후보를 선택한 경우가 랜덤하게 선택하여 incremental하게 학습한 경우 (그림에서 IFT Random) 와 랜덤하게 선택하여 scratch로 학습한 경우 (그림에서 Learning from Scratch) 에 비해 annotation cost를 약 70% 이상 줄여줬습니다.

Polyp Detection

폴립 검출을 위한 데이터 셋은 38명의 서로 다른 환자로부터 획득한 38개의 대장내시경 동영상입니다. 이 중 21개의 동영상을 학습에 활용했고 나머지 17개의 동영상을 테스트에 활용했습니다. 각 프레임은 binary ground truth 맵을 가지고 있는데 이를 통해 학습을 위한 16,300개의 데이터 후보와 테스트를 위한 11,950개의 데이터 후보를 추출했습니다.

AIFT_fig5

위의 결과에서 확인할수 있듯이 제안된 방식이 랜덤하게 후보군을 선택하여 incremental하게 학습한 결과 (IFT Random) 보다 약 90% 가까이 annotation cost를 줄여줌을 확인했습니다.

AIFT_fig6

또한 약 5% 정도의 학습 데이터를 활용하여 학습된 네트워크를 이용하여 나머지 95%의 학습 데이터를 예측해보니 거의 완벽하게 예측을 한 것을 볼 수 있습니다. 이는 주어진 데이터가 그 수는 많지만 모델의 성능 향상에 필요한 데이터의 수는 많지 않고 대부분이 중복된 정보를 담고 있다는 것을 확인할 수 있습니다.

Conclusion

이 논문에서 제안한 방식은 사실 굉장히 단순합니다. 그리고 언급한 바와 같이 ROI가 데이터 후보군이어야 한다는 명확한 한계점을 가지고 있구요. 하지만 풀고자 하는 문제 자체가 현실적으로 굉장히 중요한 문제이고 이에 대한 가능성을 보여줬다는 점에서 의의가 크다고 생각됩니다. 실제 문제에서는 polyp detection 사례에서 본 바와 같이 중복된  정보를 담고 있는 데이터의 수가 굉장히 많을수가 있고 데이터 하나하나 labeling하는 비용이 특히 큰 의료영상 분야에서는 이것들이 모두 불필요한 비용이 되기 때문에 실질적으로 중요한 연구 주제라고 생각됩니다.

 

Posted by:Sangheum Hwang

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s