이번에 다룰 모델은 U-Net++에 이어서 U-Net을 기반으로 하는 의료 영상 세그멘테이션 모델인 Attention U-Net이다. 데이터셋은 췌장(Pancreas)을 세그멘테이션하기 위한 복부 CT 영상이다.
1. Attention이란
이미지 세그멘테이션에서 Attention은 학습할 때 관심있는 영역 혹은 관련된 영역을 강조하는 방법이다. 예측이나 분류할 정답과 관련없는 영역들을 무시하거나 관심을 덜 갖기 때문에 계산 비용이 줄어든다는 특징이 있는데, 즉, 이미지의 특정 영역에만 집중(Attention)한다는 것이다.
1.1. Hard Attention
Attention은 Hard Attention과 Soft Attention으로 나뉜다. Hard Attention은 이미지를 자르거나(Cropping) 영역을 추천하는 방법(Region Proposal)으로 관련 영역을 강조한다. Hard Attention은 한번에 하나의 영역만을 선택할 수 있는데 이는 "미분 불가능", "강화 학습"을 내포하고 있다.
미분이 불가능하기 때문에 Hard Attention 네트워크는 이미지에 대해 집중할 영역과 그렇지 않은 영역으로 밖에 나눌 수 없다. 함수로 표현하면 0과 1의 값만 가지고 중간값이 없다는 것인데, 함수값이 연속되지 않기 때문에 미분할 수가 없다. 따라서 일반적인 오차역전파를 이용할 수 없고, 몬테 카를로(Monte Carlo) 샘플링을 이용해야 단계별 오차역전파 정확도를 구할 수 있다. 따라서 정확도는 샘플링이 얼마나 잘되었는지에 따라 달라지고, 이러한 모델을 더 효과적으로 만들기 위해 강화학습과 같은 방법을 이용해야 한다.
Q. 몬테 카를로 샘플링? 픽셀을 샘플링, 샘플링 횟수는 많이, 빈도 수를 늘림으로써 0과 1 사이 값이 만들어지게끔
1.2. Soft Attention
Soft Attention은 이미지의 모든 영역에 얼마나 집중할지 가중치를 구한다. 객체와 관련있는 부분은 큰 가중치를, 관련이 적은 부분은 작은 가중치를 붙인다. 모델이 학습하면서 가중치가 높은 영역에 더 집중(Attention)하게 된다. 이미지 하나에 하나의 영역을 선택하는 Hard Attention과는 달리 가중치는 이미지의 여러 영역에 걸쳐 붙여진다.

Soft Attention의 가중치는 연속적인 값을 갖기 때문에 미분할 수 있다. 따라서 일반적인 오차역전파로 학습이 가능하고 학습하면서 모델은 어디에 집중해야할지 결정하는 능력이 좋아진다.
요약하자면 Hard Attention은 한번에 하나의 영역만 선택할 수 있고, 미분이 불가능하기 때문에 강화학습을 이용해야 한다. Soft Attention은 관련설에 따라 가중치를 부여해 여러 영역을 한번에 선택할 수 있다. 따라서 손실함수에 대해 미분할 수 있고, 일반적인 오차역전파로 학습한다.
2. U-Net에 Attention이 필요한 이유
본 논문에서는 U-Net++와 마찬가지로 U-Net의 개선점으로 Skip Connection을 들었다. 먼저 Skip Connection을 사용하는 이유를 생각해보자.

업샘플링이 진행되는 expanding path에서 소실되었던 공간 정보를 다시 만드는데, 문제는 이 정보가 부정확하다는 것이다. U-Net에서는 Skip Connection을 이용해서 다운 샘플링하는 contracting path의 공간 정보를 upsampling path에 더해 이 문제를 어느정도 해결했다. 하지만 Skip Connection을 사용함으로써 추출된 특징들이 중복된다는 부가적인 문제가 발생했다. 신경망의 초기 레이어들의 특징 표현이 조잡(poor)하기 때문이다. Soft Attention은 Skip Connection에 적용되어서 필요한 영역의 activation만 강조하는데, 이는 곧 중복되는 특징들의 수를 줄여주는 효과를 갖는다.

3. Attention 적용
본 논문에서는 Additive soft attention을 이용하는 Attention Gate(AG) 개념이 도입된다.
3.1 Attention Gate

1. Attention Gates는 x와 g, 두 벡터를 입력으로 받는다.
2. 벡터 g는 expanding path에서 Skip Connection의 대상층 바로 전 층의 결과 특징맵이다. 벡터 g는 벡터 x에 비해 차원은 상대적으로 작고 특징 표현력(feature representation)은 더 좋다.
3. 그림 4의 아래 그림을 보면 벡터 x의 차원은 64x64x64(필터x높이x넓이)이고 벡터 g의 차원은 32x32x32다.
4. 벡터 x는 스트라이드를 2로하는 합성곱층을 통과해 64x32x32가 되고, 벡터g는 1x1 합성곱층을 통과해 64x32x32가 된다.
5. 두 벡터를 원소별로 합한다. 이 과정에서 align된 가중치는 더 커지고 그렇지 않은 가중치는 상대적으로 작아진다.
6. 결과 벡터를 ReLU층과 1x1합성곱에 통과시켜 1x32x32 차원으로 만든다.
7. 시그모이드 층에 통과시켜 벡터의 크기를 0과 1사이로 스케일링하면 attention 계수(가중치)가 만들어진다. 가중치가 1에 가까울 수록 집중해야할 대상이라는 의미다. 여기서 소프트맥스가 아닌 시그모이드를 사용한 이유는 소프트맥스의 결과값이 상대적으로 0에 가까운 값이 더 많아 희소(sparse)하기 때문이다.
8. attention 계수를 업샘플링해 x벡터의 본래 사이즈인 64x64로 만들어준다. 업샘플링할 때는 3d이미지는 trilinear interpolation, 2d 이미지는 bilinear interpolation을 이용한다. 을 이용한다. 본래 x 벡터를 attention 계수와 원소별로 곱해 객체 관련성에 따라 스케일링해준다. 이 과정까지 마친 벡터를 기존 Skip Connection과 동일하게 expanding path에 넘겨준다.
본 논문에서는 grid-based gating 메커니즘을 제안하는데, 이는 벡터 g를 다운 샘플링 구간이 아닌 업샘플링 구간에서 구하는 방법이다. 벡터 g는 결국 이전 attention gate의 공간 정보를 누적하는 식이어서 multi scale의 공간정보를 받을 수 있을 것으로 보인다.

위 그림 5에서 볼 수 있듯 Attention Gate는 학습을 통해서 목적에 맞는 영역에 더 집중하게 된다.
4. Experimental Details
4.1 Implementation Details
- 배치 사이즈 : 2~4
- 옵티마이저 : Adam
- 배치 정규화 이용 : True
- deep supervision 이용 : True
- 학습 시 성능 평가 : Dice. 클래스 불균형에 민감하지 않다.

4.2. Conditional Random Field 적용

논문에는 언급되진 않지만, 후처리에 crf를 적용한다. crf는 디테일한 세그멘테이션에 도움이 된다. 아래 DeepLab v1 모델에 crf를 적용한 사례를 참고하자.
x가 아닌 y값들 간에 관계도 추가로 고려한다. conditional >> 계산량이 많이 줄어든다.

4.3. Attention Gate 벡터



그림 3에서 본 아키텍처와는 다르게 실제 구현 코드에서는 gating 벡터로 업샘플링 직전의 레이어의 결과값만을 이용한다. 또한 gating 벡터는 center벡터를 그대로 이용하지 않고 합성곱층, 배치정규화, ReLU활성화층으로 구성된 합성곱층을 한번 더 거친다.
4.4. Performance



5. 결론
본 논문은 Attention Gate가 조직/장기를 식별하고 위치를 특정하는데 충분한 이점이 있다는 것을 말한다. 특히 췌장과 같이
Reference
[1] Attention U -Net
[2] 블로그
[3] https://github.com/ozan-oktay/Attention-Gated-Networks/blob/master/utils/post_process_crf.py
'AI > 비전' 카테고리의 다른 글
| [SEGMENTATION] DeepLab v3 | 2017 (0) | 2021.08.17 |
|---|---|
| [SEGMENTATION] DeepLab v2 | 2016 (0) | 2021.08.03 |
| [SEGMENTATION] U-Net++ : Redesigning Skip Connections to Exploit Multiscale Features in Image Segmentation | 2018 (0) | 2021.06.28 |
| [SEGMENTATION] DeepLab v1 | 2015 (0) | 2021.06.21 |
| [SEGMENTATION] U-Net: Convolutional Networks for Biomedical Image Segmentation | 2015 (0) | 2021.06.05 |