일반적으로 학습 데이터가 많으면 연산시간이 오래걸리더라도 모델의 성능 또한 좋아지지 않을까 하고 기대해봅니다. 또한 모델의 파라미터를 늘릴바에는 학습 데이터의 양을 늘리는 방법이 더 나을지도 모릅니다.
그런데 사실 그 많은 양의 데이터를 모으는게 결코 쉽지만은 않을겁니다.

Data Augmentation은 딥러닝에서 사용되는 기법으로 기존의 이미지 데이터의 양을 늘리는 방법인데, 솔직히 처음 봤을때는 진짜 어거지로 늘린다는 느낌이 들기도 합니다. 원본 이미지가 있다면 이 이미지를 가지고 아래와 같은 방법들을 수행해볼 수 있습니다.
확대/축소(scaling) : 원본 이미지를 확대하거나 축소함으로써 모델이 다양한 해상도에서 객체를 인식하도록 합니다.
반전(flipping) : 이미지를 수평 또는 수직으로 뒤집어 모델이 대칭 및 비대칭 특징을 학습하게 합니다.
픽셀 단위의 이동(translation) 및 자르기(cropping) : 이미지를 픽셀 단위로 이동하거나 자르는 것으로 모델이 다양한 위치에서 객체를 인식하도록 합니다.
vertical/horizontal/inplane 방향의 회전(roatation) : 이 미지를 특정 각도로 회전하여 모델이 다양한 방향에서 객체를 인식하게 합니다.
채도 및 명도 조절 (color and brightness adjustment) : 이미지의 채도를 조절하거나 명도를 변경하여 모델이 다양한 조명 조건에서 객체를 인식하게 합니다.
노이즈 추가 (noise injection) : 화질이 낮은 이미지나 흐린 이미지에 노이즈를 추가하여 모델이 노이즈가 있는 환경에서도 잘 작동할 수 있게 합니다.
내용들이 다소 어이가 없을 수도 있겟지만 할 수 있는 변화는 있는대로 다 줘봅시다. 여기에 최근에는 두 데이터를 합쳐버리는 Mixup, 잘라버리는 cutout, 합성을 시켜버리는 cutmix도 사용합니다.
조금만 더 자세히 설명해보자면,
Mixup은 두 이미지의 픽셀 값을 선형 결합하여 새로운 이미지를 생성하는 기법입니다. 두 이미지의 픽셀 값을 섞음으로써 데이터의 다양성을 증가시키고, 모델이 두 클래스 사이의 경계를 더욱 부드럽게 학습할 수 있도록 돕습니다.
Cutout은 이미지의 일부를 제거하여 모델이 누락된 부분에 대해 강인하게 학습하도록 하는 방법입니다. 랜덤하게 선택된 영역을 제거함으로써 모델이 부분적으로 누락된 입력에 대해 일반화되도록 도움을 줍니다.
Cutmix는 두 이미지를 섞는 동시에 이미지의 일부를 다른 이미지의 일부로 대체하는 방법입니다. 이것은 Mixup과 비슷하지만, 이미지를 섞을 뿐만 아니라 이미지 일부를 다른 이미지의 일부로 대체하여 모델이 조각난 부분에 대해 학습하도록 돕습니다.
근데 정작 이렇게하고보니 한장의 이미지가 여러가지의 조작으로 인해 늘어나게 됩니다. 당장 노이즈, vertical/horizontal 회전, 반전 이렇게 4가지만만해도 1장의 이미지가 5장으로 늘어나버렸죠.
별거 아닌 것 처럼 보여도 이러한 방식의 데이터 증강은 결국 모델이 다양한 형태와 조건에서 학습하므로 모델의 일반화 능력이 향상됩니다. 또한 학습 데이터가 증가하고 다양해지면 overfitting을 방지하는 데도 도움이 되고 이는 모델을 좀 더 로버스트하게 해줄겁니다.
'Study Archives > Deep Learning' 카테고리의 다른 글
| Deep Learning Fundamentals (0) | 2026.03.09 |
|---|---|
| RGB-D 데이터에서 Depth Estimation과 Semantic Segmentation 이해하기 (0) | 2026.03.09 |
| Optimizer, Gradient descent (0) | 2023.11.17 |
| Activation Function (0) | 2023.11.16 |
| Convolution (0) | 2023.11.16 |