#AutoAugment
데이터 증강 완벽 가이드! 과적합 방지와 모델 성능 향상의 핵심 기법. 이미지 증강: Mixup vs CutMix vs AugMix 비교, AutoAugment vs RandAugment 성능/비용. NLP 증강: Back Translation, EDA 4가지 연산, LLM 활용 최신 기법. GAN 기반 증강으로 민감도 10% 향상!

#AugMix #AutoAugment #BackTranslation #CutMix #Cutout #DataAugmentation #EDA
doyouknow.kr/631/data-aug...
데이터 증강 완벽 가이드: AI 학습 데이터가 부족할 때의 마법! Mixup, CutMix, AutoAugment 총정리
데이터 증강 완벽 가이드! 과적합 방지와 모델 성능 향상의 핵심 기법. 이미지 증강: Mixup vs CutMix vs AugMix 비교, AutoAugment vs RandAugment 성능/비용. NLP 증강: Back Translation, EDA 4가지 연산, LLM 활용 최신 기법. GAN 기반 증강으로 민감도 10% 향상!
doyouknow.kr
December 5, 2025 at 12:26 PM
Juhwan Choi ,Kyohoon Jin ,Junho Lee ,Sangmin Song ,Youngbin Kim
AutoAugment Is What You Need: Enhancing Rule-based Augmentation Methods in Low-resource Regimes
https://arxiv.org/abs/2402.05584
February 9, 2024 at 10:48 AM
DaeEun Yoon, Semin Kim, SangWook Yoo, Jongha Lee
Data Augmentation For Small Object using Fast AutoAugment
https://arxiv.org/abs/2506.08956
June 11, 2025 at 6:03 AM
Haobo Lu, Xin Liu, Kun He
AutoAugment Input Transformation for Highly Transferable Targeted Attacks. (arXiv:2312.14218v1 [cs.CV])
http://arxiv.org/abs/2312.14218
December 25, 2023 at 3:01 AM
A new AI review! DeepVoltaire/AutoAugment ⭐3.3/5.0
This repository provides a compact, unofficial implementation of the AutoAugment augmentation policies (ImageNet/CIFAR10/SVHN) as callable Python/PIL transforms that can be dropped into a PyTorch torc...
https://gitrated.com/DeepVoltaire/AutoAugment
June 18, 2026 at 3:40 PM
AugMix in PyTorch (1)
Buy Me a Coffee☕ *Memos: * My post explains AugMix() about `severity` argument (1). * My post explains AugMix() about `severity` argument (2). * My post explains AutoAugment(). * My post explains RandAugment() about `num_ops` and `fill` argument. * My post explains TrivialAugmentWide(). * My post explains OxfordIIITPet(). AugMix() can randomly do AugMix to an image as shown below. *It's about no arguments and `full` argument: *Memos: * The 1st argument for initialization is `severity`(Optional-Default:`3`-Type:`int`). *It must be `1 <= x <= 10`. * The 2nd argument for initialization is `mixture_width`(Optional-Default:`3`-Type:`int`). * The 3rd argument for initialization is `chain_depth`(Optional-Default:`-1`-Type:`int`). *If it's `x <= 0`, it's randomly taken from the interval `[1, 3]`. * The 4th argument for initialization is `alpha`(Optional-Default:`1.0`-Type:`float`). *It must be `1 <= x`. * The 5th argument for initialization is `all_ops`(Optional-Default:`True`-Type:`bool`). *It must be `1 <= x`. * The 6th argument for initialization is `interpolation`(Optional-Default:`InterpolationMode.NEAREST`-Type:InterpolationMode). *If the input is a tensor, only `InterpolationMode.NEAREST` and `InterpolationMode.BILINEAR` can be set to it. * The 7th argument for initialization is `fill`(Optional-Default:`0`-Type:`int`, `float` or `tuple`/`list`(`int` or `float`)): *Memos: * It can change the background of an image. *The background can be seen when doing AugMix to an image. * A tuple/list must be the 1D with 1 or 3 elements. * If all values are `x <= 0`, it's black. * If all values are `255 <= x`, it's white. * The 1st argument is `img`(Required-Type:`PIL Image` or `tensor`(`int`)): *Memos: * A tensor must be 2D or 3D. * Don't use `img=`. * `v2` is recommended to use according to V1 or V2? Which one should I use?. from torchvision.datasets import OxfordIIITPet from torchvision.transforms.v2 import AugMix from torchvision.transforms.functional import InterpolationMode am = AugMix() am = AugMix(severity=3, mixture_width=3, chain_depth=-1, alpha=1.0, all_ops=True, interpolation=InterpolationMode.BILINEAR, fill=None) am # AugMix(interpolation=InterpolationMode.BILINEAR, severity=3, # mixture_width=3, chain_depth=-1, alpha=1.0, all_ops=True) am.severity # 3 am.mixture_width # 3 am.chain_depth # -1 am.alpha # 1.0 am.all_ops # True am.interpolation # <InterpolationMode.BILINEAR: 'bilinear'> print(am.fill) # None origin_data = OxfordIIITPet( root="data", transform=None ) noargs_data = OxfordIIITPet( # `noargs` is no arguments. root="data", transform=AugMix() ) aoFalse_data = OxfordIIITPet( # `ao` is all_ops. root="data", transform=AugMix(all_ops=False) # transform=AugMix(severity=3, mixture_width=3, chain_depth=-1, # alpha=1.0, all_ops=True, # interpolation=InterpolationMode.BILINEAR, # fill=None) ) s10cd25fgray_data = OxfordIIITPet( # `s` is severity and `cd` is chain_depth. root="data", # `f` is fill. transform=AugMix(severity=10, chain_depth=25, fill=150) ) s10cd25fpurple_data = OxfordIIITPet( root="data", transform=AugMix(severity=10, chain_depth=25, fill=[160, 32, 240]) ) import matplotlib.pyplot as plt def show_images1(data, main_title=None): plt.figure(figsize=[10, 5]) plt.suptitle(t=main_title, y=0.8, fontsize=14) for i, (im, _) in zip(range(1, 6), data): plt.subplot(1, 5, i) plt.imshow(X=im) plt.xticks(ticks=[]) plt.yticks(ticks=[]) plt.tight_layout() plt.show() show_images1(data=origin_data, main_title="origin_data") print() show_images1(data=noargs_data, main_title="noargs_data") show_images1(data=noargs_data, main_title="noargs_data") show_images1(data=noargs_data, main_title="noargs_data") show_images1(data=noargs_data, main_title="noargs_data") show_images1(data=noargs_data, main_title="noargs_data") show_images1(data=noargs_data, main_title="noargs_data") show_images1(data=noargs_data, main_title="noargs_data") show_images1(data=noargs_data, main_title="noargs_data") show_images1(data=noargs_data, main_title="noargs_data") show_images1(data=noargs_data, main_title="noargs_data") print() show_images1(data=aoFalse_data, main_title="aoFalse_data") show_images1(data=aoFalse_data, main_title="aoFalse_data") show_images1(data=aoFalse_data, main_title="aoFalse_data") show_images1(data=aoFalse_data, main_title="aoFalse_data") show_images1(data=aoFalse_data, main_title="aoFalse_data") show_images1(data=aoFalse_data, main_title="aoFalse_data") show_images1(data=aoFalse_data, main_title="aoFalse_data") show_images1(data=aoFalse_data, main_title="aoFalse_data") show_images1(data=aoFalse_data, main_title="aoFalse_data") show_images1(data=aoFalse_data, main_title="aoFalse_data") print() show_images1(data=s10cd25fgray_data, main_title="s10cd25fgray_data") show_images1(data=s10cd25fpurple_data, main_title="s10cd25fpurple_data") # ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓ def show_images2(data, main_title=None, s=3, mw=3, cd=-1, a=1.0, ao=True, ip=InterpolationMode.BILINEAR, f=None): plt.figure(figsize=[10, 5]) plt.suptitle(t=main_title, y=0.8, fontsize=14) if main_title != "origin_data": for i, (im, _) in zip(range(1, 6), data): plt.subplot(1, 5, i) am = AugMix(severity=s, mixture_width=mw, chain_depth=cd, alpha=a, all_ops=ao, interpolation=ip, fill=f) plt.imshow(X=am(im)) plt.xticks(ticks=[]) plt.yticks(ticks=[]) else: for i, (im, _) in zip(range(1, 6), data): plt.subplot(1, 5, i) plt.imshow(X=im) plt.xticks(ticks=[]) plt.yticks(ticks=[]) plt.tight_layout() plt.show() show_images2(data=origin_data, main_title="origin_data") print() show_images2(data=origin_data, main_title="noargs_data") show_images2(data=origin_data, main_title="noargs_data") show_images2(data=origin_data, main_title="noargs_data") show_images2(data=origin_data, main_title="noargs_data") show_images2(data=origin_data, main_title="noargs_data") show_images2(data=origin_data, main_title="noargs_data") show_images2(data=origin_data, main_title="noargs_data") show_images2(data=origin_data, main_title="noargs_data") show_images2(data=origin_data, main_title="noargs_data") show_images2(data=origin_data, main_title="noargs_data") print() show_images2(data=origin_data, main_title="aoFalse_data", ao=False) show_images2(data=origin_data, main_title="aoFalse_data", ao=False) show_images2(data=origin_data, main_title="aoFalse_data", ao=False) show_images2(data=origin_data, main_title="aoFalse_data", ao=False) show_images2(data=origin_data, main_title="aoFalse_data", ao=False) show_images2(data=origin_data, main_title="aoFalse_data", ao=False) show_images2(data=origin_data, main_title="aoFalse_data", ao=False) show_images2(data=origin_data, main_title="aoFalse_data", ao=False) show_images2(data=origin_data, main_title="aoFalse_data", ao=False) show_images2(data=origin_data, main_title="aoFalse_data", ao=False) print() show_images2(data=origin_data, main_title="s10cd25fgray_data", s=10, cd=25, f=150) show_images2(data=origin_data, main_title="s10cd25fpurple_data", s=10, cd=25, f=[160, 32, 240])
dev.to
March 16, 2025 at 2:07 PM