Augmentation 은 공짜 regularization
vision model 을 일반화시키는 제일 싼 방법은 더 많은 다양성을 보여주는 거 — 더 많은 *이미지* 가 아니라, 가진 이미지의 더 많은 *버전*. flip, rotate, crop, recolor: transform 하나하나가 model 한테 '고양이는 거꾸로여도, 그늘 속이어도 고양이' 라고 가르쳐. KerasCV layer 는 이걸 input pipeline 의 일부로 GPU 에서 on-the-fly 처리 — 비용 거의 0, 원본 dataset 은 disk 에서 안 커져.
KerasCV 가 기본 flip/rotation 을 앞서는 지점은 두 sample 을 섞는 *batch-level* augmentation 이야:
| Augmentation | 설명 |
|---|---|
CutMix | 한 이미지에서 random patch 잘라 다른 이미지에 붙이고, label 을 비율대로 섞음 |
MixUp | 두 이미지 + label 사이 linear interpolation |
RandAugment | 미리 정의된 집합에서 N 개 transform 의 random policy 적용 — 수동 튜닝 불필요 |
MosaicAugmentation | 이미지 4 장을 mosaic 로 결합 (YOLO 학습에 사용) |
label 섞기가 왜 먹히냐
MixUp / CutMix 는 처음엔 틀려 보이는 짓을 해 — *반쯤* 고양이고 *반쯤* 개인 이미지를, 거기 맞는 label (0.7 고양이, 0.3 개) 이랑 같이 만들어. 이게 model 의 overconfidence 를 깨버려 — 날카로운 경계를 외우는 대신 부드러운 decision boundary 를 배우고, 그게 정확히 overfitting 을 줄이는 거야. SOTA classification 레시피의 표준인 이유. 단서: *학습* 때만 적용되고, vanilla augmentation 보다 hyperparameter 에 민감해.