Hierarchical multi-scale attention for semantic segmentation
Problem
- Semantic segmentation 문제에서 inference 해상도에 따라 성능에 서로 trade-off가 있다. 이러한 문제를 해결하기 위하여 multi-scale inference 방법을 주로 사용한다.
- 하지만 average-pooling을 사용할 경우 안 좋은 결과에 영향을 받는다는 단점이 있고, max-pooling을 사용할 경우, 여러 스케일을 조합하는 것이 최적일지 모르는 경우에도 하나만 선택된다는 단점이 있다.
Essence
- 이런 문제를 해결하기 위해 attention mechanism을 적용하여 multi-scale prediction을 어떻게 통합할지를 결정하고자 하였다.
- 기존의 Chen [1]의 연구도 비슷한 시도를 하였지만, 여기에서는 hierarchical attention mechanism을 사용하여 인접한 스케일 간의 상대적인 가중치를 학습할 수 있도록 하였다.
- 이렇게 할 수 있는 이유는, 학습 과정에서 오직 1개의 추가 스케일만을 학습시키기 때문이다.
- 다시 말하면 다른 방법들은 target inference scale이 0.5, 1.0, 2.0 세개라고 했을 때, 명시적으로 해당 스케일에 대해서 모두 학습을 시켜야하므로 0.5^2 + 2.0^2 의 추가 비용이 발생하지만, 이 방법은 0.5 스케일만을 학습시키기만 하면 되므로 0.5^2의 추가 비용만이 필요하다.
- 나아가 다른 방법들이 학습 시 사용한 스케일에서만 적용할 수 있었던 반면, 이 방법은 다른 스케일에서도 적용할 수 있다는 장점이 있다.
Detail
- Chen [1]의 방법과는 달리 논문에서는 인접한 스케일간의 attention mask를 학습하는 것이 가장 큰 차이점이다.
- 학습 과정에서 이미지가 주어지면 한 단계 낮은 스케일(실험에서는 0.5x)에서 feature를 추가로 계산한 뒤, 이 둘간의 relative attention을 prediction 할 수 있도록 학습시킨다.
- 단, 학습 시 사용되는 이미지 또한 원래 이미지를 여러 스케일로 augmentation한 이미지를 사용하여야 한다. 그래야 다양한 스케일 범위에 대해서 relative attention을 계산할 수 있게 된다.
- 사용할 때에는 학습된 attention을 이용하여 N개 스케일에서의 나온 feature를 hierarchical 하게 순차적으로 통합한다.
- 스케일은 낮은 스케일에 우선권을 주고, 그보다 높은 스케일들을 통합하도록 하였는데, 이유는 높은 스케일이 더 많은 global context를 가지고 있을 것이고, 그것을 refine하도록 의도하였기 떄문이다.
- 통합하는 방법을 수식으로 표현하면 아래와 같다.
\mathcal{L}_{(r=1)} = \mathcal{U}(\mathcal{L}_{(r=0.5)} \ast \alpha_{(r=0.5)}) + ((1 - \mathcal{U}(\alpha_{(r=0.5)})) \ast \mathcal{L}_{(r=1)})
- 여기서
\mathcal{U}
는 bilinear upsample,\mathcal{L}
은 prediction된 semantic logit,\alpha
는 attention mask이다.