이번 포스트에서 살펴볼 내용은 네이버 Clova 에서 발표한 CutMix 입니다. 그동안 이미지 기반 태스크의 성능을 끌어올리기 위해 Mixup, Cutout 등과 같은 다양한 data augmentation 기법이 제안되었는데요, 이 방법들은 이미지에서 일부분을 잘라내서 0으로 채우거나 (Cutout) 다른 이미지와 겹침으로서 CNN 으로 하여금 이미지의 덜 중요한 부분까지 (사람으로 치면 머리가 아닌 다리) 포커싱하게 만드는 regional dropout 전략이라고 볼 수 있습니다. 하지만 Table 1에서 보다시피 Cutout 은 이미지의 일부분을 아예 삭제하여 정보 손실을 유발하고 Mixup 은 다른 이미지와 interpolate 함으로서 이미지 정보가 왜곡되어 버리는 현상이 발생합니다. CutMix 는 Mixup / Cutout 에서 더 나아가 cut-and-paste 방법을 취해 이미지 일부분을 다른 이미지의 패치로 채우는 기법으로 image classification, weakly-supervised localization 태스크 등에서 일관된 높은 성능을 거두었다고 합니다.
CutMix
Related works
CNN 정규화를 위한 여러 방법 중에는 이미지의 일부분을 제거하는 Cutout, DropBlock 등이 있습니다. DropBlock 은 CNN 에서의 dropout 이 각 픽셀에 대해 독립적으로 수행되어 제거하고자 하는 정보가 이웃점으로부터 전달되는 현상을 방지하고자 Figure 1(c)와 같이 일정 범위를 제거해주는 기법을 말합니다. 또한, Mixup 기법은 두 개의 다른 이미지를 합친다는 점에서 CutMix 와 유사한 기법인데 Table 1에서 볼 수 있듯이 두 개의 이미지가 선형 보간되므로 합친 결과 이미지가 애매모호하고 부자연스럽습니다. 이에반해 CutMix 는 지역적으로 이미지를 잘라내고 잘라낸 부분에 다른 이미지의 패치를 덧붙임으로서 이러한 현상이 없고 더 자연스럽습니다.
Algorithm
이미지 $x\in R^{W\times H\times C}$, 라벨 $y$에 대하여 CutMix 는 두 개의 데이터 $(x_A, y_A), (x_B, y_B)$ 로부터 새로운 데이터를 $(\tilde{x}, \tilde{y})$ Equation 1과 같이 만들어냅니다. Equation 1의 $M\in \{0,1\}^{W\times H}$은 마스크로 $x_A$의 어느 부분을 지우고 $x_B$로부터 그 부분을 채울 것인지 정하며, $\lambda$는 두 데이터의 결합 비율로 0과 1사이에서 정의되므로 베타 분포로부터 ($Beta(\alpha, \alpha)$) 추출됩니다. (베타 분포는 $\alpha=1$이면 uniform 분포가 됩니다.)
이진 마스크를 구성하기 위해서 잘라낼 부분의 bounding box $B=(r_x, r_y, r_w, r_h)$ 를 샘플링합니다. 즉, $x_A$의 $B$부분이 제거되고 $x_B$의 $B$부분으로 채워지는 것이죠. Equation 1과 같이 샘플링한 $\lambda$ 비율에 따라 Equation 2와 같이 $B$를 샘플링하여 마스크와 원본 이미지의 높이/너비 비율을 (aspect ratio) 일정하게 유지하고 $\frac{r_w r_h}{WH}=1-\lambda$ 가 되도록 합니다. 합칠 두 개의 이미지를 미니 배치 안에서 랜덤하게 선택하며 계산상의 overhead 가 매우 적습니다. 전체 알고리즘은 다음과 같습니다.
Discussion
CutMix 는 두 이미지를 섞는 것이므로 한 이미지에서 여러 개의 물체를 감지할 수 있습니다. Figure 2는 각 기법으로 훈련시킨 모델에 대해 CAM (Class Activation Map) 시각화를 한 것인데 패치를 아예 지워버린 Cutout 과 달리 CutMix 는 섞인 이미지에서 두 개의 물체를 모두 인식할 수 있습니다. 또한, Figure 2에서 Cutout, CutMix 부분을 보면 세인트버나드를 인식하기 위해 상대적으로 덜 중요한 부분에 neural networks 가 집중한 것을 볼 수 잇으나 Mixup 같은 경우 전체 이미지를 선형 보간으로 섞었기 때문에 부자연스러워 CAM 부분이 상대적으로 넓게 나타난 것으로 볼 수 있습니다. 즉, Mixup 같은 경우는 두 이미지를 섞은 것은 좋으나 그 결과과 매우 부자연스러워 모델에 혼란을 야기한다는 것이죠. Mixup / Cutout / CutMix 특징은 Table 2와 같습니다.
Experiments
Image classification
먼저 ImageNet-1K 데이터셋에 대한 성능은 Table 3과 같습니다. Manifold Mixup / Feature CutMix 는 Mixup / CutMix 를 입력 이미지 단이 아닌 feature 레벨에서 수행한 것을 말합니다. CutMix 를 사용한 것이 top-1 에러가 제일 낮습니다. 또한, Table 4는 모델의 크기에 따른 성능 추이인데 모델이 커져도 CutMix 방법이 제일 낮은 top-1 에러를 보입니다.
CIFAR-100 데이터셋에 대한 성능은 Table 5와 같습니다. 특히, 다양한 정규화 방법을 조합해서 실험했는데, Cutout 과 Label smoothing 은 독립적으로 실행했을 때는 성능이 오히려 감소하지만 조합해서 사용했을 때 성능이 더 좋았으며 DropBlock 경우에도 Label Smoothing 와 같이 조합해서 사용했을 때 성능이 더 좋습니다. CutMix 경우는 Cutout / Mixup 을 동시에 사용한 경우보다 성능이 더 좋았으며 중간 feature 에 노이즈를 삽입하는 ShakeDrop 기법과 같이 사용했을 때 성능이 제일 좋은 것을 확인할 수 있습니다.
Weakly supervised object localization
Weakly supervised 학습은 이미지 단위의 라벨로 더 고차원적인 detection / segmentation 태스크를 수행하는 것으로 weakly supervised object localization (WSOL) 태스크는 이미지 분류로부터 이미지의 객체 위치를 간접적으로 추정하는 태스크입니다. 따라서 이미지 상에서 특정 객체가 위치한 지역을 CNN이 최대한 넓게 잡도록 하는 것이 중요한데요, CUB200-2011, ImageNet 데이터셋에 대한 결과는 Table 9와 같습니다. Cutout / CutMix 방법이 성능이 제일 좋고 Mixup 같은 경우는 이미지가 전체적으로 섞이기 때문에 오히려 진짜 특징적인 부분만 잡도록 동작하여 Figure 4처럼 히트맵이 오히려 줄고 베이스라인에 비해서도 성능이 더 안좋아집니다.
Transfer learning of pretrained model
이번 실험은 Mixup / Cutout / CutMix 로 ResNet-50 을 사전훈련한 뒤에 전이 학습을 수행한 것으로 결과는 Table 10과 같습니다. Object detection 에 대해서 Mixup 의 경우 성능이 더 안좋아지지만 CutMix 기법은 안정적으로 성능이 더 좋아지는 것을 확인할 수 있습니다.
Robustness
일반적으로 deep neural networks 는 입력의 작은 perturbation 으로도 성능이 급격히 안좋아진다고 알려져 있습니다. 이 실험에서는 Mixup / Cutout / CutMix 기법으로 훈련시킨 모델에 대해 모델이 얼마나 강건한지 실험합니다. 먼저 FGSM (Fast Gradient Sign Method) 로 입력에 반대되는 샘플을 (adversarial sample) Equation 3을 통해서 생성합 이후의 결과는 Table 11과 같습니다. CutMix 기법으로 adversarial attack 에 대해 모델이 매우 강건한 것을 확인할 수 있습니다.
다음으로는 이미지를 일부러 가린 이후에 성능을 측정하는 occlusion test 입니다. 1) 이미지 가운데를 구멍으로 하여 0으로 채우는 center occlusion, 2) 구멍 바깥을 0으로 채우는 boundary cocclusion 에 대해 실험합니다. 결과는 Figure 5(a)와 같고 Cutout / CutMix 의 에러가 제일 낮습니다. 특히, occlusion 실험은 실질적으로 Cutout 을 수행한 데이터에 대한 실험인데 CutMix 는 이러한 데이터를 본 적이 없음에도 Cutout 과 비견될만한 성능을 거두었습니다. Figure 5(b)는 Mixup 을 수행한 데이터에 대한 실험입니다. 마찬가지로 CutMix 는 Mixup 된 데이터를 본 적이 없음에도 성능이 괜찮습니다.
Uncertainty
Deep neural networks 는 분류 예측시 Softmax 함수를 사용하므로 예측에 대해 overconfidence 경향이 있습니다. 이를 테스트하기 위한 실험으로 OOD (Out Of Distribution) detection 이 있습니다. 이는 먼저 in-distribution 데이터셋으로 모델을 훈련시킨 후 테스트에 in-distribution / out-distribution 데이터셋을 사용하여 Softmax 함수 결과 가장 높은 값을 임계치에 따라 in-distribution / out-distribution 으로 구분합니다. Out-distribution 데이터셋의 경우 모델이 예측 자체를 하지 않아야 되니 각 클래스 별로 동일한 (uniform) 확률이 도출되어야겠죠.
CIFAR-100 데이터셋을 PyramidNet-200 모델에 대해 훈련시키고 다양한 out-of-distribution 데이터셋에 대해 실험합니다. 결과는 Table 12와 같으며 TNR (True Negative Ratio) 는 TN / (TN+FP) 로 정의되고 TPR (True Positive Ratio) 는 TP / (TP + FN) 으로 정의됩니다. 보다시피 Mixup / Cutout 기법은 overconfident 를 오히려 강화시켜 성능이 매우 안좋아지는데 비해 CutMix 기법은 다양한 out-of-distribution 데이터셋에 대해 성능이 제일 좋습니다.
참조
'Machine Learning Models > Techniques' 카테고리의 다른 글
GELU (Gaussian Error Linear Unit) (0) | 2021.06.18 |
---|---|
Label Smoothing (0) | 2021.06.15 |
Mish (0) | 2021.06.06 |
Learning Deep Features for Discriminative Localization (CAM) (0) | 2021.05.08 |
Interpretable Explanations of Black Boxes by Meaningful Perturbation (0) | 2021.03.16 |