Computer Vision(앞으로 CV로 통칭)에서는 데이터의 부족이 많이 발생한다. 머신러닝의 모든 분야에서 그런 것은 아니지만 CV에선 빈번하다. 그래서 Data augmentation은 큰 도움이 됩니다.
데이터가 많아진다는 것은 overfitting을 줄일 수 있다는 것을 의미합니다. 또한 우리가 가지고 있는 데이터셋이 실제 상황에서의 입력값과 다를 경우, augmentation을 통해서 실제 입력값과 비슷한 데이터 분포를 만들어 낼 수 있습니다. 예를 들어, 우리가 학습한 데이터는 노이즈가 많이 없는 사진이지만 테스트 이미지는 다양한 노이즈가 있는 경우 테스트에서 좋은 성능을 내기 위해서는 이러한 노이즈의 분포를 예측하고 학습 데이터에 노이즈를 삽입해 모델이 이런 노이즈에 잘 대응할 수 있도록 해야 합니다. 이렇게 data augmentation은 데이터를 늘릴 뿐만 아니라 모델이 실제 테스트 환경에서 잘 동작할 수 있도록 도와주기도 합니다.
Albumentations is a Python library for image augmentation. Image augmentation is used in deep learning and computer vision tasks to increase the quality of trained models. The purpose of image augmentation is to create new training samples from the existing data.
Here is an example of how you can apply some augmentations from Albumentations to create new images from the original one:
2-1. Advanced
이렇게 data augmentation을 하는 프로세스에도 몇개의 하이퍼파라미터를 갖게됨. 얼마만큼 색변환이나 랜덤 크로핑을 할건지에 따라. 오픈소스를 사용해서 시작하는것이 좋음. 오픈 소스에 없는 것을 원한다면 이런 하이퍼파라미터를 tune하면서 조정할 수 있음
이론 정리 잘 됨 https://hoya012.github.io/blog/Image-Data-Augmentation-Overview/
데이터 증식은 flip, shear, translation, rotation 등의 방법을 제공하여 train set을 부풀리게 해주고, 우리가 구성한 모델을 더욱 견고하게 만들어주는 역할을 합니다. (모델이 한번도 보지 않은 이미지를 계속해서 보게함으로써 최종적으로 general한 모델로 만들어지니까요)
https://inhovation97.tistory.com/32