1. Subin An (sban@hcil.snu.ac.kr)
Image Data Augmentation
A survey on Image Data Augmentation for Deep Learning (Journal of Big Data, 2019)
Connor Shorten* and Taghi M. Khoshgoftaar
2. Deep Learning과 Data
• 딥러닝은 Hidden Layer를 쌓아 Parameter를 늘리는 방식으로 표현력을 높임
• 하지만 500M 이상 Parameter를 훈련하기 위해서는 수 많은 데이터 필요
• 데이터가 많을수록 성능 증가를 기대해볼 수 있음
• 하지만 데이터가 없다면? 과적합(Over
fi
tting)!
• 현대판 인형 눈 붙이기 Data Annotation이 날이 갈수록 수요 상승
• 그런데 기존 데이터는 충분히 사용하고 있는가…?
• 모델이 최대한 다방면으로 볼 수 있게 해주자!!!
3. Data Augmentation
• 적은 양의 훈련 데이터에 인위적인 변화를 사용하여 새로운 훈련 데이터를 확보
• 인위적인 변화의 예시에는 뒤집기(
fl
ip), 자르기(crop) 등이 있음
• Data Augmentation은 이미 많은 논문에서 성능으로 증명했다.
• 하지만 필요 이상으로 하면 훈련 시간만 많아질 수 있음
• 딥러닝 Over
fi
tting 방지 및 Accuracy 향상을 위해 가능한 시도들
5. Geometric Transformations
• Flipping : 뒤집기
• Color Space : 색상 채널 변경. RGB 조정 / HSL 조정 등 색 조정
• Cropping : 자르기, 중앙부만 자르는 것도 실용적
• Rotation : 회전, MNIST 등에서는 +-20도 정도만 하여 유용할 수 있음
• Translation : Shifting, 위치에 대한 편향을 방지 (상수 또는 Gaussian 로 패딩)
• Noise Injection : Gaussian Noise 주입 (Robustness)
6. Geometric Transformations
• 논문에서는 언급하지 않았지만…기하학적 변환은 많음
• Rescaling : 사진의 크기를 키우거나 줄임 (~x 1.6)
• Shearing(A
ffi
ne Transform) : 사진을 찌그러트림
• Stretching : 사진을 늘림 (~x 1.3)
7. Geometric Transformations
• Positional Bias를 해결하기에 적합
• 구현하거나 사용하기 쉽고 편함
• 하지만 오용/남용 주의!
• 고양이나 개 이미지는 뒤집기 가능, 하지만 6, 9는 뒤집었을 때 문제가 생길 수 있음
• Random Crop시에 Label에 해당하지 않는 부분을 Crop할 수도 있음
• 의료 데이터 등 Positional Bias 보다 복잡한 경우는 적합하지 않음
19. Feature Space Augmentation
• 딥러닝은 high-dimension feature를 low-dimension feature로 mapping
• 저차원 공간의 Augmentation을 통해 Interpolation / Extrapolation
• Ex) Autoencoder
19
20. Adversarial Training
• Adversarial Attack과 마찬가지로 Adversarial example을 만들어 훈련
• 하지만 이 방법은 real world dataset에 대해서는 성능 향상 X
• 다만 Adversarial Attack에 대해 Robust함
21. GAN-based Data Augmentation
• GAN은 Generative Model에서 속도와 성능적 측면에서 유용
• Model에 Condition을 넣어 다양한 데이터 생성 가능
• Bio/Medical 도메인에 적용중
• Class Imbalance를 해결하기 위한 Oversampling으로 사용가능
• DCGAN, CycleGAN, ProgressiveGAN, StyleGAN 등을 사용할 수 있음
• 하지만 좋은 출력을 얻기 어렵고, GAN 자체도 많은 데이터를 필요로 함
22. • CycleGAN으로 표정 data augmentation
• T-SNE 결과 잘 분리되는 것을 확인할 수 있음
GAN-based Data Augmentation
23. • 방글라데시어 인식 대회에서 실제 Font에 CycleGAN으로 하여 압도적 1위 사례
• T-SNE 결과 잘 분리되는 것을 확인할
GAN-based Data Augmentation
24. • ResNet을 베이스의 네트워크의 중간의 특징 맵에 대해 data augmentation
• https://arxiv.org/abs/1705.07485
(ETC) Shake-Shake Regularization
26. Meta Learning
• 자전거를 타는 사람은 오토바이를 타는 방법을 쉽게 학습 하고는 함
• 적은 데이터만으로 Unseen task에 대해 잘하기 위한 방법론
• 딥러닝으로 딥러닝 최적화 구조를 찾는 Neural Architecture Search (NAS)
27. AutoAugmentation
• Google (CVPR 2019)
• RNN (Recurrent Neural Network) + RL (Reinforcement Learning)
• Augmentation 기법을 출력하는 RNN controller 생성
• 여기서 얻은 augmentation 기법을 학습 데이터에 적용
• 모델을 학습 및 성능을 평가하여 reward(R)를 얻음
• 계산된 reward를 통해 RNN controller 학습
• https://arxiv.org/abs/1805.09501
29. • Data Augmentation과 관련하여 다양한 Python 라이브러리 존재
• Imgaug : https://github.com/aleju/imgaug
• Albumentations : https://github.com/albumentations-team/albumentations
(ETC) Libraries