목차
Improved Regularization of Convolutional Neural Networks with Cutout
arXiv 2017
https://arxiv.org/abs/1708.04552
Improved Regularization of Convolutional Neural Networks with Cutout
Convolutional neural networks are capable of learning powerful representational spaces, which are necessary for tackling complex learning tasks. However, due to the model capacity required to capture such representations, they are often susceptible to over
arxiv.org
딥러닝에서 데이터가 부족한 문제를 해결하기 위한 data augmentation에는 여러가지 방법들이 있습니다.
그중에서도 CutOut은 훈련 중 입력의 사각 영역을 무작위로 마스킹하는 간단한 정규화 기법을 사용하여 컨볼루션 신경망의 견고성과 전반적인 성능을 향상시켰습니다.
매우 간단하지만 강력한 정규화 효과로 data augmentation 방법으로 많이 사용됩니다.
1. Introduction
딥러닝이 등장한 이후 딥러닝 아키텍처는 많은 발전이 있었습니다.
더 좋은 성능을 위해 딥러닝 아키텍처도 점점 복잡해지면서 overfitting의 위험성 또한 높아졌습니다.
overfitting의 가능성을 방지하기 위해 데이터 augmentation 또는 노이즈의 추가와 같은 몇 가지 다른 정규화 기술을 적용할 수 있습니다.
이 연구에서는 dropout과 유사한 방식으로 노이즈를 적용하지만 두 가지 중요한 차이점이 있습니다.
첫 번째 차이점은 유닛이 중간 피쳐 계층이 아닌 CNN의 입력 계층에서만 dropout된다는 것입니다.
두 번째 차이점은 개별 픽셀이 아닌 입력의 연속적인 영역을 dropout시킨다는 것입니다.
이러한 방식으로 dropout된 영역은 모든 후속 피쳐 맵을 통해 전파되어 컨텍스트에 의해 복구될 수 있는 것 외에 제거된 입력의 흔적이 없는 이미지의 최종 표현을 생성합니다.
이 기술은 네트워크가 특정 시각적 특징의 작은 세트의 존재에 의존하는 것보다 이미지의 전체 컨텍스트를 더 잘 활용하도록 권장합니다.
이 방법은 입력 공간에서 dropout하기 전에 spatial을 적용하는 것으로 해석될 수 있는데, 이는 CNN이 feed-forward 네트워크의 성능을 향상시키기 위해 spatial structure에 대한 정보를 활용하는 것과 거의 동일합니다.
CutOut은 아키텍처와 상관 없이 적용될 수 있으며 입력 데이터에 dropout을 적용하기 때문에 상당히 자유롭습니다.
2. Related Work
CutOut은 data augmentation과 dropout에 밀접한 연관을 가지고 있습니다.
2.1. Data Augmentation for Images
모델의 정확성과 견고성을 향상시키기 위해 수평 및 수직 translation, scaling, squeezing, horizontal shearing 등 다양한 affine 변환을 적용해왔습니다.
또 local elastic deformation, motion blur, Gaussian smoothing, Gaussian noise, salt and pepper noise, pixel permutation 등의 다양한 이미지 처리를 이용한 augmentation 방법들이 있습니다.
Deep learners benefit more from out-of-distribution examples (Bengio et al. 2011)에서 깊이 있는 아키텍처가 얕은 아키텍처보다 데이터 확대를 통해 훨씬 더 많은 이점을 얻을 수 있음을 보여주었습니다.
이후로는 ent-to-end 방식의 Smart Augmentation 방법이나 GAN을 활용한 방법들이 사용되었습니다.
2.2. Dropout in Convolutional Neural Networks
dropout은 hidden unit activation을 훈련 중에 일부 고정된 확률로 0으로 설정함으로써 구현됩니다.
모든 활성화는 네트워크를 평가할 때 유지되지만 결과적인 출력은 dropout 확률에 따라 스케일링됩니다.
이 기술은 지수적으로 더 작은 서브 네트워크에 걸쳐 평균을 내는 효과가 있으며, 네트워크 내에서 특징 검출기의 공동 적응을 억제하는 강력한 유형의 bagging으로 잘 작동합니다.
드롭아웃은 fully-connected layers를 정규화하는 데 매우 효과적인 것으로 나타났지만, 컨볼루션 레이어와 함께 사용하면 덜 강력하였습니다.
이러한 잠재력 감소는 크게 두 가지 요인에 기인할 수 있습니다.
첫 번째는 컨볼루션 레이어는 이미 fully-connected layers보다 훨씬 적은 매개 변수를 가지고 있으므로 정규화가 덜 필요하다는 것입니다.
두 번째 요인은 이미지의 이웃한 픽셀들이 동일한 정보를 많이 공유한다는 것입니다.
그 중 하나의 픽셀이 드롭아웃되면 그들이 포함한 정보는 여전히 활성 상태인 이웃 픽셀로부터 여전히 전달될 가능성이 높습니다.
이러한 이유로 컨볼루션 레이어에서 드롭아웃은 fully-connected layers에서 관찰되는 동일한 모델 평균 효과를 갖기보다는 단순히 노이즈가 많은 입력에 대한 견고성을 높이는 역할을 합니다.
2.3. Denoising Auto-encoders & Context Encoders
Denosing auto-encoders와 context encoders는 모두 이미지의 유용한 특징 표현을 이끌어내기 위해 self-supervised learning에 의존합니다.
이 모델은 입력 이미지를 손상시키고 빈칸을 가장 잘 채우는 방법을 결정하기 위해 네트워크가 나머지 픽셀을 context 로 사용하여 재구성하도록 요구함으로써 작동합니다.
특히 베르누이 노이즈를 적용하는 노이즈 제거 auto-encoders는 입력 이미지의 개별 픽셀을 무작위로 지우는 반면 context encoders는 더 큰 공간 영역을 지웁니다.
누락된 정보를 적절하게 채우기 위해 auto-encoders는 단순히 identity 함수를 학습하는 것보다 이미지에서 유용한 특징을 추출하는 방법을 학습해야 합니다.
context 인코더가 이미지의 더 큰 영역을 입력해야 함에 따라 이미지의 global content를 더 잘 이해해야 하므로 denosing auto-encoders에 비해 더 높은 수준의 특징을 학습합니다.
이러한 특징 표현은 pretraining classification, detection, semantic segmentation에 유용한 것으로 입증되었습니다.
입력에서 연속적인 영역을 제거하는 것은 이전에는 context 인코더에서와 같이 이미지 손상 기술로 사용되었지만, 이전에는 supervised 모델의 교육에 직접 적용되지 않았습니다.
3. Cutout
CutOut은 입력 이미지의 연속적인 부분을 제거하는 정규화 기법으로 기존의 dropout과 context 인코더들과 비슷한 특징을 가지고 있습니다.
이런 정규화 기법으로 data augmentation을 하여 모델을 더 일반적이고 강건하게 만듭니다.
3.1. Motivation
위의 그림은 초기 버전의 CutOut을 보여줍니다.
이 CutOut 방법은 잘 수행되었지만, 고정 크기의 영역을 무작위로 제거하는 것이 똑같이 수행된다는 것을 발견했습니다.
이 대안의 본질적인 단순성으로 인해, CutOut은 고정 크기 영역을 제거하도록 하였습니다.
3.2. Implementation Details
CutOut을 구현하기 위해, 각 훈련 기간 동안 각 입력 영상의 임의 위치에 고정 크기의 제로 마스크를 간단히 적용합니다.
Dropout 및 그 변형과는 달리, 우리는 테스트에서 가중치의 재스케일링을 적용하지 않습니다.
최상의 성능을 위해, 수정된 영상이 expected batch 통계에 큰 영향을 미치지 않도록 데이터 세트는 0에 대해 정규화되어야 합니다.
일반적으로 모양보다 CutOut 영역의 크기가 더 중요한 하이퍼 파라미터라는 것을 발견했기 때문에 단순화를 위해 사각형 패치를 잘라내기 영역으로 사용하여 모든 실험을 수행합니다.
이미지 내의 픽셀 좌표를 중심점으로 무작위로 선택한 다음 CutOut 마스크를 해당 위치에 배치합니다.
이 방법을 사용하면 CutOut 마스크의 모든 부분이 이미지 내에 포함되지 않을 가능성이 있습니다.
그런데 흥미롭게도 패치의 일부를 이미지의 테두리 밖에 배치하는 것이 우수한 성능을 달성하는 데 매우 중요하다는 것을 발견했습니다.
이 현상은 모델이 훈련 중에 이미지의 많은 부분이 보이는 일부를 받는 것도 중요하다는 것을 말합니다.
유사한 성능을 달성하는 대안적 접근법은 이미지 영역 내에서 제한된 CutOut을 무작위로 적용하되 네트워크가 때때로 수정되지 않은 이미지를 받도록 50% 확률로 적용하는 것입니다.
Method는 되게 간단합니다.
"입력 이미지의 일부를 랜덤으로 사각형 모양으로 잘라서 지운다."
라는 한 줄로도 설명할 수 있을 만큼 간단하지만, 훌륭한 효과를 보여주었습니다.
4. Experiments
다양한 아키텍쳐에 CutOut을 적용하였을 때 성능이 향상(error가 줄어듦)되었습니다.
패치 크기에 따른 성능을 비교해보면, 모델 정확도가 포물선 추세를 따라 최적 지점까지 CutOut 패치 크기에 비례하여 증가하다가 다시 감소하여 결국 기준 모델 아래로 떨어짐을 알 수 있습니다.
CutOut은 개념도 정말 단순하고 구현도 단순하여 누구나 금방 이해할 수 있습니다.논문에서도 글을 마무리 하면서 왜 지금까지 보고되거나 분석되지 않은 것에 대한 의문과 추측을 제시합니다.
So why hasn’t it been reported or analyzed to date?
One reason could be the fact that using a combination of corrupted and clean images appears to be important for its success.
되게 단순한 방법이지만, 효과적이기 때문에 지금도 많이 사용되고 있는 augmentation 방법입니다.
CutOut 논문은 현재 2023년 9월 14일 기준, 3150회 인용되었습니다.
단순하지만 강력한 방법이 꽤 임팩트 있게 다가옵니다.
이후 ICCV 2019에서는 CutOut과 비슷한 CutMix가 발표되었습니다.
조만간 CutMix도 읽어보도록 하겠습니다.
https://arxiv.org/abs/1905.04899
CutMix: Regularization Strategy to Train Strong Classifiers with Localizable Features
Regional dropout strategies have been proposed to enhance the performance of convolutional neural network classifiers. They have proved to be effective for guiding the model to attend on less discriminative parts of objects (e.g. leg as opposed to head of
arxiv.org
Code
https://github.com/uoguelph-mlrg/Cutout
GitHub - uoguelph-mlrg/Cutout: 2.56%, 15.20%, 1.30% on CIFAR10, CIFAR100, and SVHN https://arxiv.org/abs/1708.04552
2.56%, 15.20%, 1.30% on CIFAR10, CIFAR100, and SVHN https://arxiv.org/abs/1708.04552 - GitHub - uoguelph-mlrg/Cutout: 2.56%, 15.20%, 1.30% on CIFAR10, CIFAR100, and SVHN https://arxiv.org/abs/170...
github.com