본문 바로가기
AI/AI_HUB

Data Augmentation

by jennyf 2022. 7. 13.

[ Data Augmentation ]

 

Data Augmentation은 데이터 증강이라고 부릅니다.

이를 알기 위해 딥러닝 모델이 가지는 일반적인 특징을 살펴보겠습니다.

딥러닝 모델은 그 성능을 증명하기 위해 압도적인 양의 데이터를 사용합니다.

이는 반대로 적은 수의 데이터로는 딥러닝 모델을 충분히 학습시키기 힘들다는 의미가 됩니다. 

 

적은 수의 데이터로 딥러닝 모델을 학습시키고자 하면 데이터에 비해 모델의 표현력이 너무 좋기 때문에 overfitting 문제에 취약해지기도 합니다. 

이때 적은 수의 데이터를 강제로 늘려주는 기법을 Data Augmentation 이라고 합니다. 

 

그 방법은 여러가지 입니다. 현재 이미지 처리 알고리즘에 대해 공부하고 있으니, 이미지 데이터를 어떻게 증강하는지 공부해보도록 하겠습니다.

 

1. 기본적인 이미지 데이터 증강 

이미지의 경우 이미지의 회전(Rotation), 크기 변환(Scaling), 밀림(Shearing), 상하좌우 대칭(Flip), 이동(Trnaslation), 잘라내기(Crop) 이 중 하나의 과정만으로도 이미지의 픽셀 값 분포가 극적으로 변하게 됩니다. 

사람 눈으로는 원본 이미지가 변형되었다는 것을 쉽게 알아챌 수 있지만, 컴퓨터의 경우 원본과 변형된 데이터가 원래 같은 거였는지를 판단할 방법이 없다는 의미입니다. 

 

즉, 컴퓨터가 보기에 서로 다른 두 데이터가 새로 생긴 거나 마찬가지이므로 데이터 증강이 이루어졌다고 할 수 있습니다. 

 

아래에서는 대부분의 딥러닝 모델에서 활용하는 기본적인 augmentation 방법인 회전(rotate), 좌우반전(flip), 잘라내기(crop) 예를 살펴보겠습니다. 

01) 회전

 

같은 사물이라도 다양한 형태와 구도로 사진이 찍히기 때문에 회전을 통해 모델을 학습한다면 일반화 성능에 더 도움이 될 것입니다. 

 

 

02) 좌우반전

 

사람의 눈에는 좌우반전만 한 똑같은 이미지로 보이지만 픽셀 단위로 모델이 데이터로 받아들이는 입장에서는 매우 큰 차이를 가집니다. 

 

 

03) 잘라내기

 

한 이미지에서 일부 영역만 잘라낸 부분을 patch 라고 합니다.

아래와 같이 일부 영역을 잘라내어 데이터를 확보할 수도 있습니다. 

적은 양의 데이터가 있을 때 많이 사용되는 방법이며, 이미지의 부분만 보고도 분류할 수 있도록 풍부하게 데이터를 늘리는 방법입니다. 

 

 

 

 

2. 고급 이미지 데이터 증강 기법

좀 더 복잡한 기법을 통해 이미지 증강을 수행하는 방법에 대해 알아보겠습니다. 

 

 

01) Cutout

 

주어진 이미지에서 임의의 영역을 아예 제거하는 방법입니다. 

아래 그림을 보면 일부 영역이 아예 회색 상자로 사라진것을 볼 수 있습니다. 

 

💡 강제로 이미지 데이터의 일부를 손실시킨 것을 사용하여 이미지를 증강하는 것에 과연 의미가 있을까요?

임의의 영역에 해당하는 픽셀값을 0으로 바꾼 것입니다.

일종의 정규화 효과가 더해져 성능이 향상될 것이라 가정했고 그게 그대로 들어맞게 되는 것입니다. 

 

 

02) Mixup

 

임의의 두 데이터를 적절한 비율로 Mix 하는 것입니다. 

이때 그에 대응하는 label 데이터도 섞는 것을 확인할 수 있습니다. 

 

 

 

03) Cutmix

 

Cutout과 Mixup을 혼합한 기법입니다. 

라벨은 Mixup과 같은 방식으로 합성됩니다. 이렇게 했을 때의 장점은 Cutout으로 사라진 영역에도 정보를 담고 있는 픽셀을 추가할 수 있게 되므로 정보 손실이 최소화된다는 것을 꼽습니다. 

 

3. 실습

 

아래 코드를 확인해주세요

 

4. 추가

이미지 데이터의 augmentation 방법으로는 아래와 같은 방법들이 있습니다.

  1. Flip
  2. Rotation
  3. Scale
  4. Crop
  5. Translation
  6. Gaussian Noise

 

이미지 생성을 augmentation 이라고 착각할 수 있는데,

그것은 GAN 같은 생성 모델을 통해 이루어집니다. 

 

'AI > AI_HUB' 카테고리의 다른 글

Transfer Learning  (0) 2022.07.13
Batch Normalization and Dropout  (0) 2022.07.13
0713(수)  (0) 2022.07.13
CNN 없이 이미지 분류하기 _Fashion MNIST  (0) 2022.07.10
Image Data Preprocessing  (0) 2022.07.10