부스트캠프 AI Tech 2기 CutMix

CutMix


image

  • 우리는 물체를 분류할때 특정 부분만 보고 분류하는 경향이 있다. 예를 들면 개의 얼굴만 보고도 개라고 분류를 할 수 있다. 이와 마찬가지로 neural network 또한 특정 부분만 보고 이미지를 분류 할 수 있다. CutOut과 같은 Regional dropout 방식들은 neural network가 특징적인 부분만 보고 분류를 진행하지 않고 조금 덜 특징적인 부분도 확인하고 분류할 수 있도록 하여 일반화 성능을 높여준다.

  • 그러나 이러한 방식들은 학습 이미지의 유용한 특성들을 손실시킨다는 문제점이 있다. CNN이 일반적으로 Data를 많이 필요로 한다는 점에서 이러한 것들은 심각한 개념적인 한계가 될 수 있다.

  • 이러한 Regional dropout의 한계를 극복하고자 CutMix가 제안되었다. CutMix는 이미지의 픽셀을 단순히 지우는게 아니라 제거된 영역을 다른 이미지로부터 가져온 patch로 대체한다. 이를 통해 Regional Dropout의 장점인 Neural Network로 하여금 조금 덜 특징적인 부분을 보게 한다는 장점을 보유함과 동시에 학습시에 Regional Dropout에 의해 제거된 유익하지 않은 Pixel이 없다는 장점이 존재한다. 또한 추가된 patch들은 모델이 부분적인 view만 보고 물체를 식별할 수 있게 함으로써 localization ability를 증대시키게 된다.


관련 연구


Random Erasing

image

  • 이 방법은 CutOut과 유사하게 이미에서 사각형 영역을 잘라내어 random value 또는 ImageNet mean 으로 대체한다.

Cutout

image

  • input image에 대해서 특정적으로 연속적인 부분에 대해서 DropOut을 실시한다.

DropBlock

image

  • DropBlock은 기존 Rando Erasing 이나 Cutout 이 input image 에서 행해진 것과 달리 feature map 에서 연속적인 영역을 drop 시키는 방법이다. 이때 CutOut에서 마찬가지로 랜덤하게 Pixel을 골라서 Drop 시키는게 아니라 연속적인 영역을 Drop 하게 된다.

Mixup

image

  • Mixup은 두 개의 샘플을 뽑아 Linear interpolation을 통해 학습 내 이미지와 라벨을 만드는 방법이다. 하지만 Mixup으로 만들어진 샘플들은 지역적으로 모호하거나 자연스럽지 않은 부분이 있기 때문에 localization 에 있어서 모델을 혼란스럽게 하는 문제점이 있다.

CutMix 추가 설명

  • 두 개의 training sample을 조합하여 새로운 training sample을 만든 후 원래의 loss function 으로 모델을 훈련시키는 방식으로 이루어진다. x_a 라는 이미지가 있고 x_b 라는 이미지가 있을 때 x_a에서의 특정 사각형 영역을 x_b의 이미지로 부터 값을 가져와서 채워넣는 방식으로 이루어진다. 이 때 라벨은 이미지에서 각각의 training sample이 차지하는 비중으로 linear interpolation을 수행해 값이 정해진다.

image

  • CutMix 는 하나의 이미지에서 두 개의 부분적인 view만 가지고도 인식될 수 있도록 하면서 물체의 전체가 Classification 단서로 활용될 수 있게 한다. CutMix가 각각의 부분적인 view 만으로도 두 개의 물체를 인식하는지 확인하기 위해 Class Activation과 CutOut 과 Mixup 이랑 비교한 그림이 아래 그림이다.

image

  • CutOut 의 경우 덜 특징적인 부분에 집중된 것을 볼 수 있다. 하지만 CutOut된 이전의 Pixel을 사용하지 않음으로써 비효율적이라는 단점이 있다.

  • Mixup 의 경우 모든 Pixel을 사용함으로써 부자연스러운 이미지가 형성되게 되고, 그 결과 CAM을 보면 모델이 물체를 인식할 때 어떤 부분을 단서로 삼아야 하는지 혼란스러워 하는 것을 확인할 수 있다. 이러한 혼란스러움이 Classification 과 localization 에서 차선의 결과를 가져오게 된다.

  • 위의 CutMix 의 CAM을 보면 두개의 물체를 정확하게 Localize 한 것을 확인할 수 있다.


CAM(Class Activation Map)

  • CAM 은 우리가 어떤 사진을 보고 특정물체라고 판단할 때 어느 부분을 보고 Neural Network 가 판단을 했는지를 히트맵으로 볼 수 있게 해준다.

image


참고자료

http://dmqm.korea.ac.kr/uploads/seminar/20210402_DMQA%E1%84%89%E1%85%A6%E1%84%86%E1%85%B5%E1%84%82%E1%85%A1_Mixup_%E1%84%89%E1%85%B5%E1%86%AB%E1%84%8B%E1%85%AE%E1%86%A8%E1%84%89%E1%85%AE.pdf

https://arxiv.org/abs/1710.09412

https://arxiv.org/abs/1708.04552

https://arxiv.org/abs/1810.12890

https://youtu.be/INEaSakYb-U