본문 바로가기

AutoML 논문

Efficient Neural Architecture Search on Low-Dimensional Data for OCT Image Segmentation 논문 리뷰

이 논문은 거의 ENAS의 아이디어를 따와서 활용했다고 할 수 있겠다. 하지만 중요한 한 가지의 아이디어를 습득할 수 있었다.

 

[ 요약 ]

딥러닝의 구조를 짜는 어려움으로 자동적으로 딥러닝의 구조를 만들어주는 NAS.

의료분야에서는 데이터 종류(Modality)가 엄청 많은 데, 각 데이터마다 그에 맞는 네트워크를 설계 해야 하는 특성상, AutoML이 정말 필요함.

근데 NAS는 시간이 오래 걸리고, 의료영상들은 고해상도와 고차원 데이터가 많음. 3D나 4D 등등.. 그래서 일반 네트워크를 돌리는 데도 시간이 엄청 오래걸리는 데, NAS를 적용하면 시간이 엄청나게 오래 걸릴 것임.

 

그렇기 때문에, 우리는 낮은 차원에의 데이터에서 네트워크를 찾고, 고차원으로 이식을 하려고 함.

1D에서 찾은 네트워크가 2D에서 찾은 네트워크와 정확도가 비슷하면서, 시간은 85%나 줄여주었음.

 

[ 소개 ]

의료 영상 처리는 hand-craft에서 CNN으로 많이 넘어옴.

CNN 설계의 어려움으로 인해 NAS/AutoML이 나옴.

초반 AutoML은 grid_search, 유전 알고리즘, 베이지안 최적화나 random search로 해왔었지만, 최근에 강화학습을 사용한 방법이 성공적인 결과를 보여줌.

 

NAS의 개념은 이미지의 모달리티가 다양한 의료분야에 적합함.

모달리티가 다르다보니, 그에 걸맞는 딥러닝 네트워크 디자인을 해야됬었는 데,

가뜩이나 설계도 시간이 걸리는 데, 의료 영상은 3D, 4D 로 되있어서 학습 시간조차 엄청 오래걸림.

그래서 보통 3D 데이터를 2D로 낮춰서 학습시키는 방법으로 접근을 하였었지만, 사실 3D만의 정보를 무시하기에는 3D의 정보를 고려한 네트워크들의 성능이 좀 더 좋아져서 무시할 순 없음.

 

우리는 다차원 의료영상 데이터 분할을 위한 NAS를 보여줌

탐색시간을 줄이기 위해 낮은 차원에서 탐색을 하고, 고차원으로 이식을 할 것임.

이를 위해 1D와 2D로 구분이 가능한 OCT 데이터로 실험을 하였음.

ENAS의 구조를 사용하였으며, 생성되는 구조는 U-Net에 비슷한 네트워크임

 

그 결과, 1D에서 찾은 네트워크가 2D에서도 잘 된 것을 확인할 수 있었음.

 

[ 방법 ]

(데이터셋)

공공 데이터셋에서 OCT 데이터셋 사용.

우리는 data annotation을 하였는 데,

1. ILM to RPEDC 는 1

2. RPEDC to BM은 2

3. BM to end 는 3

으로 함.

ILM위 공간은 배경으로 취급

 

(Baseline model)

Baseline으로 U-Net 비슷한 모델을 사용.

1D-AScan 과 2D-BScan은 입력으로 사용되고,

출력은 입력과 같은 사이즈임.

Skip connection으로는 일반 Sum을 사용

Resnet block을 사용하였으며,

Convolution 연산은 3 x 3 사이즈이고, 차원만 증가할뿐 같음.

 

(ENAS U-Net)

ENAS Framwork를 사용하였고,

탐색공간의 단순화를 위해 U-Net 구조는 고정시키고, Cell 찾기와 비슷하게 새로운 module block을 찾게끔 함.

입력/출력 과 down sample/ upsample layer는 고정.

controller는 2개의 subcell이 포함된 2개 cell 학습

cell의 출력은 2개의 subcell의 sum(합)

subcell에서는 controller가 입력과 연산을 정해줌.

Enas와 비슷하게 5개의 연산집합을 구성

( conv3, conv5, avg-pool 3, max-pool 3, identity )

 

(Training and Evaluation )

model을 학습시키는 데는 150 볼륨 ( loss는 dice loss)

controller 학습에는 60 volume ( update하는 것은 dice score로 )

validation으로는 2 volume

test로는 60 volume

 

200 epoch 후에 20개의 구조를 선정하고, validation으로 평가

그 중 최고 정확도를 골라서 밑바닥부터 다시 학습시킴 ( training 150 volume)

그리고나서 60 volume으로 test

 

baseline 모델에는 train을 150 volume으로 200 epoch하고 test set 적용.

 

[ 결과 ]

1D에서 찾은 구조가 Baseline모델보다 좋음.

향후에는 지금은 U-Net 기반으로 했지만 Deep-lab 기반으로 할 것임.

1D가 2D보다 시간은 87.5% 나 감소하면서도 비슷한 성능을 냄.

 

[느낀점]

여기서는 ENAS framwork를 사용하였다.

Nas-UNet과 비슷하게 찾는다. 하지만 뭐 중요한 것은 이게 아니고,

그렇게 대단한 아이디어가 들어가있진 않지만, 여기에서 중요한 것은

ENAS에서의 아이디어를 잘 응용을 한 버젼인 듯 하다.

ENAS에서는 이미지의 모달리티가 비슷할 때, 작은 이미지인 CIFAR에서 찾은 것을 IMAGENET으로 이식할 수 있다는 것이였는 데, ( 물론 더 핵심은 DAG로 가중치 공유였지만 )

여기서도 그 방법을 응용하여, 의료영상에서의 고차원 데이터를 차원을 낮춰서 찾았다는 것은 괜찮은 아이디어인 것 같다.

의료영상적인 아이디여서 이 아이디어는 얼핏 보기에는 별거 아니게 볼 수 있겠지만 상당히 좋다고 생각했다.

1D 에서 찾은 구조는 2D보다는 몇 퍼센트 떨어지지만 그래도 비슷한 성능을 낸 다는 것은 결국 실제 석사를 하는 우리가, 

물론 AutoML을 하는 석사는 나 포함해서 그렇게 많지는 않을 것이라고 생각하지만,

그것도 특히나 의료영상쪽으로 AutoML을 적용하고 싶은 사람들이라면 시간적으로 너무 활용하기 좋을 것 같다는 생각이 든다.

1D로 계속 실험하면서 높이다가 나중에 2D나 3D로 이식을 하면 되는 것 아닌가!

물론 이게 범용적인지는 확인을 더 해봐야겠지만, 이 방법을 적용하려고 하는 사람이 있다면 본인이 연구하는 데이터셋에 직접 해봐서 실제로 되면 더 없이 좋을 것 같다는 생각이 든다.  2D 이미지를 1D로 변환하는 것도 매우 애먹겠지만 말이다.

 

여기서의 아이디어 섭취 끝