[오늘의 일지]
트랙학습 녹화 강의 - Data augmentation
[상세 내용]
Data augmentation
- Data augmentation는 이미지, 텍스트, 음성 등 다양한 데이터 유형에서 적용될 수 있습니다. 이미지의 경우, 회전, 반전, 크기 조절, 확대/축소, 색상 조절 등의 변형을 통해 새로운 학습 샘플을 생성합니다. 텍스트의 경우, 문장 구조 변경, 동의어 대체, 문법 수정 등이 사용될 수 있습니다. 이러한 다양한 변형을 통해 모델은 더 많은 패턴과 다양성을 학습하게 되며, 실제 상황에서의 성능을 향상시킬 수 있습니다. 데이터 증강은 특히 작은 규모의 데이터셋에서 유용하며, 과적합(overfitting)을 방지하고 모델의 일반화 성능을 개선하는 데 도움이 됩니다.
방법
이미지 데이터 증강
- 회전(Rotation): 이미지를 특정 각도로 회전시킴
- 반전(Flip): 이미지를 수평 또는 수직으로 뒤집음
- 크기 조절(Scaling): 이미지 크기를 조절함
- 이동(Translation): 이미지를 수평 또는 수직으로 이동시킴
- 클리핑(Clipping): 이미지에서 일부 영역을 잘라내거나 확대함
- 색상 조절(Color Adjustments): 밝기, 대비, 채도 등을 변경함
텍스트 데이터 증강
- 동의어 대체(Synonym Replacement): 단어를 동의어로 대체함
- 문장 구조 변경(Sentence Restructuring): 문장의 구조를 변경함
- 의미적 오류 삽입(Semantic Error Injection): 문장에 의미적 오류를 삽입함
음성 데이터 증강
- 속도 조절(Speed Variation): 음성의 재생 속도를 변경함
- 노이즈 추가(Noise Injection): 음성에 노이즈를 추가함
- 시간 뒤집기(Time Reversal): 음성을 시간적으로 뒤집음
시계열 데이터 증강
- 이동 및 스케일 조절(Movement and Scaling): 데이터의 시간 축을 따라 이동하거나 스케일을 변경함
- 노이즈 추가(Noise Injection): 시계열 데이터에 노이즈를 추가함
예시 코드
- 크기 조절과 색변환이 포함되어 있습니다.
IMAGE_SIZE = 448
transformer = A.Compose([
A.ShiftScaleRotate(rotate_limit=15, border_mode=cv2.BORDER_CONSTANT, value=(127,127,127), p=0.5),
A.RandomSizedBBoxSafeCrop(height=IMAGE_SIZE, width=IMAGE_SIZE),
A.HorizontalFlip(p=0.5),
A.RGBShift(r_shift_limit=20, g_shift_limit=20, b_shift_limit=20, p=1),
A.RandomBrightnessContrast(p=0.3),
A.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)),
ToTensorV2(),
],
bbox_params=A.BboxParams(format='yolo', label_fields=['class_ids']),
)
[마무리]
오늘은 object detection이나 다른 텍스트 분류 등에서 데이터가 부족할 때 사용하는 기법인 augmentation에 대해서 공부했습니다. 이미지 데이터의 경우에는 데이터의 양이 부족한 경우가 많은데 이 기법을 사용하여 여러 가지 형태로 데이터를 늘려서 오버피팅을 방지할 수 있다는 점에서 매우 유용할 거 같습니다.
반응형
'AI > 딥러닝' 카테고리의 다른 글
[AI 부트캠프] DAY 99 - 트랙학습 CV 13 (1) | 2023.12.09 |
---|---|
[AI 부트캠프] DAY 98 - 트랙학습 CV 12 (0) | 2023.12.08 |
[AI 부트캠프] DAY 96 - 트랙학습 CV 10 (2) | 2023.12.06 |
[AI 부트캠프] DAY 95 - 트랙학습 CV 9 (1) | 2023.12.05 |
[AI 부트캠프] DAY 94 - 트랙학습 CV 8 (0) | 2023.12.02 |
댓글