컴퓨터비전

[논문 정리]Data Augmentation using Random Image Cropping and Patching for Deep CNNs

juice_moon 2022. 1. 17. 17:48

21-1학기 기계학습 프로젝트의 주제가 "data augmentation"였다. 프로젝트를 진행하기 위해 data augmentation에 대한 여러 논-문들을 읽다가 찾은 "RICAP". 처음 이 논문을 읽을때 기존에 생각하지 못했던 '중요하지 않은 정보에 대한 필요성' 에 대해 알게 되었다.

RICAP Method

랜덤한 사진 4개를 각각 랜덤하게 잘라서 하나의 사진으로 만드는 것. 그리고 soft labeling을 통해서 학습을 진행하게 된다.

이때 soft labeling은 모델이 overconfidence하게 되는걸 막아주는데, 이는 모델의 overfitting을 규제할 수 있다. 기존의 hard Labeling은 0 또는 1로 labeling을 한다면, soft labeling은 0.1이나 0.9 등으로 라벨링을 한다. soft label은 각 Class의 유사성에 많은 정보를 담고 있고, 가중치 매개 변수가 정확한 분류를 방해하지 않고 특정 값으로 수렴하도록 한다.

그렇다면 중요하지 않은 정보가 많이 담길 가능성이 있는데, 과연 이러한 방식이 좋다고 할 수 있을까?
우선 이에 대한 대답으로 CutMix의 예를 들 수 있다. CutMix는 지금 가장 많이 사용되고 있는 data augmentation 방법으로, 방법은 regional dropout된 부분에 다른 이미지의 부분을 crop하여 붙이는 방법이다. 간단해보이는 이러한 방법이 좋은 성능 또한 내는 것을 보며, 우리는 꼭 중요하지 않은 부분이 crop되더라도, 이는 data의 variance를 주어 모델의 학습에 더욱 도움이 되는 것을 알 수 있다.

RICAP도 마찬가지로, 모델이 학습을 할 때, 보통 무시하던 다른 부분을 통해서 학습을 해야하기 때문에, overfitting을 막을 수 있고, 두개의 class가 비슷한 배경을 공유할 때, 배경은 두 클래스를 연관짓고, 다른 class들과 분리한다.

또한 학습할 때 합쳐진 4개의 class label을 각 crop한 사진의 비율로 섞어서 분류를 하게 되어, CNN은 각 픽셀을 약하게 감독하는 방식으로 분류하도록 하고, 이는 CNN이 사소한 특징, 부분적인 특징, 배경 및 보통은 무시되는 사소한 정보까지 사용할 수 있도록 한다.

labeling은 하나의 이미지에서 각 이미지가 차지하는 비율대로 labeling을 하여 하나의 input data를 만들어 낸다.

이 방법이 meaningful하다고는 생각하지 않지만, 좀 더 단순하면서 의미있는 방법들을 고안할 수 있도록 유도할 수 있다고 생각했다. 4개의 이미지를 더하는데에 과연 cifar와 같은 작은 데이터셋에 큰 의미가 있을지에 대한 의문이 있지만 이미지의 크기가 큰 경우에는 나름대로 좋은 성능을 낼 수 있지 않을까 하는 생각이 든다. 또한 중요하지 않은 background가 학습에 어느정도 도움이 될 수 있다는 것에는 동의하지만, 랜덤한 것 보다 어느정도의 비율을 두고 background와 saliency한 부분을 crop하는 방식은 어떨지 궁금하다.