📙 Fundamentals/ML&DL

데이터 증강 (Data Augmentation)

Lento_ 2025. 5. 7. 00:04

데이터 증강_Data Augmentation

: 원본 데이터로부터 새로운 데이터를 만들어내는 것을 말한다.

: 데이터 증강은 사용하는 데이터의 종류에 따라 특성이 달라진다.

: CNN 모델의 성능을 높이고 오버피팅과 불균형 데이터를 극복할 수 있는 가장 좋은 방법은 다양한 유형의 학습 이미지 데이터의 양을 늘리는 것이다. 하지만 이미지 데이터의 경우 학습 데이터의 양을 늘리기가 쉽지가 않다. 그래서 데이터 증강(Data Augmentation)은 원본 학습 이미지의 개수를 늘리는 것이 아니고 학습 시 마다 개별 원본 이미지를 변형하여 학습을 수행하는 것이다.

 

Data Augmentation 종류

1. 텍스트 데이터 증강

: 텍스트 데이터는 한 단어만 바꿔도 문장의 의미가 달라질 수 있기에 데이터 증강이 어렵다고 알려져 있다. 그런데도 불구하고 아래의 방법으로 데이터를 증강 시킬 수 있다.

- Back‑Translation : text를 다른 언어로 번역 후 다시 원래 언어로 재번역
- Synonym Replacement : 특정 단어를 유의어로 대체 
- Random Insertion / Deletion / Swap : 임의의 단어를 삽입하거나 삭제 / 문장 내 두 단어의 위치를 임의로 바꾸기

2. 시계열 데이터 증강

시계열 데이터 증강 분류

: 일정 시간 간격으로 배치된 데이터들을 시계열 데이터라고 한다.

: 시계열 데이터를 통해 '시계열 분류'와 '이상치 탐지' 작업을 할 수 있다.

: 시계열 데이터를 분석할 때는 일정 기간 동안의 데이터를 분석하는 시간 영역과 주파수에 대한 수학적 함수 또는 신호를 주파수와 관련하여 분석하는 주파수 영역으로 나뉜다.

- Window cropping : 불필요한 부분 다듬기
Window warping : 뒤틀기

Flipping : 뒤집기 (특정 지점이나 기준선을 기준으로 데이터를 뒤집는 기법)
Noise injection : 노이즈 주입 (데이터에 약간의 노이즈나 이상치를 추가하는 기법)
Label expansion : 레이블 확장 (시계열 데이터에서 이상치 주변의 연관 데이터 포인트들에도 레이블을 확장하는 기법)
Perturbation & Ensemble : 교란 & 앙상블

3. 오디오 데이터 증강

: 오디오 데이터는 아래의 방법으로 데이터를 증강 시킬 수 있다.

- 시간 이동
- 속도 조절
- 볼륨 조절
- 노이즈 추가 (배경 잡음 추가)
- Time / Frequency Masking (SpecAugment)

4. 이미지 데이터 증강

: 이미지에 약간의 변형을 주는 방법으로 데이터를 증강한다.

: 지원되는 Augmentation 기능이 제한적이고 기본적인 기능만으로도 학습 데이터 세트에 충분히 효율적인 Augmentation 적용 가능하다.

: 개별적으로 이미지 변환 적용을 하기가 어렵고 변환 시간이 상대적으로 오래 걸린다.

- Rotation : 회전
- Flip : 수평 / 수직 뒤집기
- Crop : 크롭
- Color Jitter : 컬러 조정 : 밝기(brightness), 대비(contrast), 채도(saturation) 변화
- Noise Injection : 노이즈 추가 : 가우시안 노이즈 등
- Zoom(Scale) : 확대 / 축소 / 비어 있는 공간 채우기
- Shift : 이미지 상/하/좌/우 로 이동
- MixUp : 두 개의 샘플을 선형 결합하는 기법 (라벨도 함께 혼합한다.)
- CutMix : 이미지 일부분을 잘라 다른 이미지로 교체하고 라벨을 비율에 맞춰 혼합한다.

 

 

 

 

 

출처

https://lcyking.tistory.com/m/77

https://www.tensorflow.org/tutorials/images/data_augmentation?hl=ko

https://yonsodev.tistory.com/34

https://ai-forecasting.tistory.com/19