Sangdoo Yun, Dongyoon Han, Seong Joon Oh, Sanghyuk Chun, Junsuk Choe, Youngjoon Yoo
Naver Clova AI Research
https://arxiv.org/abs/1905.04899
CutMix는 Naver Clova AI Research에서 2019년도에 제안한 Data Augmentation 방법 중 하나입니다.
기존의 Regional dropout strategy들의 정보손실이라는 한계점을 극복하며 generalize나 localization의 성능을 향상시킬 수 있는 방법을 제안합니다.
CutMix는 2개의 이미지 중 하나의 이미지의 패치를 다른 하나의 이미지에 붙여 이미지를 섞는 방법입니다.
기존 다른 SOTA augmentation 방법보다 더 낫다는 것을 실험을 통해 보입니다.
CNN은 전도유망한 방법이고 data augmentation과 regularization 기법과 같은 다양한 전략들을 통해 더 높은 성능 향상이 가능합니다.
대표적인 예로 dropout, regional dropout과 같은 전략들은 classification과 localization의 성능을 향상시켰지만 노이즈를 채우거나 0(black)값으로 채우는 방법 자체가 훈련 이미지의 정보 픽셀을 줄어드는 한계점이 존재했습니다.
이는 비효율적인 방법입니다.
이에 label의 비율에 맞게 패치로 잘라 붙여넣는 CutMix 방법을 제안합니다.
이 방법은 위에서 언급한 정보 손실이 전무하고, 효과적이고, localization에서 성능을 향상시킵니다.
Table 1에서 확인할 수 있듯 CutMix는 base model인 ResNet-50, Mixup, Cutout과 달리 Classification, Localization, Detection에서의 pretrained model의 성능 모두 향상됨을 확인할 수 있습니다.
반면 다른 방법들(base model인 ResNet-50, Mixup, Cutout)의 경우 localization 성능이 부족해지거나 Detection을 위한 pretrained model로의 적용에서 성능이 하락하는 것을 확인할 수 있습니다.
특히, linear interpolation을 통해 두 이미지를 합성하는 Mixup의 경우 localization과 Detection 성능이 모두 하락합니다.
그럼 CutMix를 어떻게 구성할 것인가에 대해 알아보겠습니다.
우선 각 기호의 notation에 대해 알아보겠습니다.
$x, y$ : 각각 훈련 이미지와 label을 의미
$\tilde{x}, \tilde{y}$ : CutMix의 합성 이미지, CutMix의 결과 label
$x_A, x_B, y_A, y_B$ : 활용하고자 하는 두 이미지와 라벨
$M$ : 0 또는 1을 기입하는 binary mask (patch 선정을 위한 Masking이라고 생각하시면 됩니다.)
$\lambda$ : uniform distribution (0, 1)에서 뽑는 combination rate
Bounding box coordinate $B$ : $r_x, r_y, r_w, r_h$ (patch 위치를 위한 notation입니다.)
(만약 구성한 patch가 기존 이미지의 범주를 넘어설 경우를 대비한 $\lambda$ 재정의 수식입니다.)
이를 알고리즘으로 풀면 다음과 같습니다.
다만 본 알고리즘에서 $r_w, r_h$에 각각 $W, H$가 곱해지지 않았다는 점이 약간 의문이긴합니다.
CutMix는 다른 Augmentation 방법인 Mixup, Cutout과 달리 각 Class별 domain localization 성능이 높아짐을 확인할 수 있고 이는 class activation map(CAM)을 통해서 각 클래스별 잘 나타내는 활성화 부분을 육안으로 확인할 수 있습니다.
CutMix successfully lets a model focus on less discriminative parts of the object
CutMix은 집중하고자하는 class 객체에서 덜 중요한 부분에 대해서도 모델이 주의를 가질 수 있게 합니다.
Figure 1에서 확인할 수 있듯 Mixup의 경우 CAM에서 모델이 클래스를 판별하는데 혼란해하고 있음을 보여줍니다.
이런 혼란이 초래됨에 따라 classification과 localization에서 최적이 아닌 성과가 나타났다고 가정하게 합니다.
다른 Augmentation 방법들보다 CutMix를 사용할 때 각각 가장 낮은 Error를 가짐을 확인할 수 있습니다.
Localization에 대해서도 마찬가지의 성능을 보입니다.
Localization에서도 CutMix의 성능이 좋기 때문에 Ground Truth Bounding Box에 가장 근접한 Bounding Box를 만들어냅니다.
https://github.com/clovaai/CutMix-PyTorch