Lensa ML

Data Augmentation

Langkah 1 dari 6: Kenapa Perlu Augmentation?

Dataset kecil mudah overfit, dan augmentation melipatgandakan datamu

Ukuran training set50
EpochLoss0369TrainValVal (aug)
Ukuran dataset
50
Overfit gap
6.49
Ukuran efektif
250
Aug gap
1.79

Dengan sampel sesedikit ini, model menghafal data training, dan validation loss makin menjauh dari training loss. Augmentation (garis oranye) mempersempit jaraknya dengan menambah salinan yang bervariasi.

Geser Ukuran training set dari 10 sampai 1.000. Kurvanya berasal dari model skematis, dan demo ini mengasumsikan augmentation membuat dataset 5 kali lebih besar. Namun, salinan hasil augmentation bukan sampel independen: kucing yang dibalik tetap kucing yang sama, jadi manfaat sebenarnya lebih kecil daripada yang ditunjukkan pengali itu. Augmentation bekerja dengan memasukkan pengetahuan tentang perubahan apa yang seharusnya tidak mengubah label. AlexNet (2012) dilatih dengan random crop dan horizontal flip, dan penulisnya melaporkan overfitting yang cukup besar tanpa keduanya.

Langkah 2 dari 6: Transformasi Geometris

Putar, balik, potong: invariance spasial

Sudut Rotasi (derajat)0
AsliHasil transformasi0°Transformasi geometris yang umum:Rotate Flip Crop Shear Scale TranslateMasing-masing menghasilkan sampel training baru yang valid dari data yang ada
Sudut
0°
Dibalik
Tidak
|Rotasi|
0°

Rotasi kecil (< 30°) adalah augmentation geometris yang paling aman. Objek tetap pada orientasi alaminya, dan model masih melihat variasi baru.

Geser Sudut Rotasi dari −180° sampai 180°. Sebuah transformasi aman hanya kalau labelnya tetap benar: horizontal flip cocok untuk kucing dan mobil, tetapi tidak untuk teks atau rambu jalan bertanda panah. Untuk object detection dan segmentation, transformasi geometris yang sama juga harus diterapkan pada kotak atau mask, kalau tidak, labelnya tidak lagi cocok dengan gambar. Random resized crop, yang mengambil satu area gambar lalu mengubah skalanya, adalah augmentation standar untuk ImageNet. Rotasi dengan sudut selain kelipatan 90° juga menyisakan sudut kosong yang perlu diberi padding atau dipotong.

Langkah 3 dari 6: Warna & Intensitas

Kecerahan, kontras, dan color jitter

Pergeseran Kecerahan0.00
Pixel gambar simulasiDistribusi intensitas pixel0265177102128154179205230Tanpa perubahanJuga: kontras, saturasi, hue jitter, color dropout
Kecerahan
0.00
Rata-rata asli
127
Rata-rata hasil
127

Pergeseran kecil meniru variasi pencahayaan alami. Histogram nyaris tidak bergerak, jadi statistik pixel tetap dekat dengan aslinya.

Atur Pergeseran Kecerahan dari −1 sampai 1, lalu bandingkan kartu Rata-rata asli dan Rata-rata hasil. Kecerahan adalah salah satu bagian color jitter, yang juga mengacak kontras, saturasi, dan hue. Transformasi fotometrik ini mengubah nilai pixel tetapi tidak mengubah geometri, jadi kotak dan mask tidak perlu diperbarui. Self-supervised learning sangat mengandalkannya: paper SimCLR (Chen et al., 2020) menemukan bahwa random crop yang digabung dengan distorsi warna adalah pasangan augmentation yang paling berpengaruh. Gambar medis sering membutuhkan perubahan intensitas yang meniru variasi pemindai sungguhan.

Langkah 4 dari 6: Cutout & Mixup

Strategi oklusi dan interpolasi

Ukuran Cutout / Rasio Mixup20
CutoutMenutup area 20%Mixup (alpha=0.40)Mencampur dua gambar & labelCutout: memaksa model memakai feature non-lokalMixup: menghaluskan decision boundary antarkelasCutMix menggabungkan keduanya: tempel patch dari gambar lain
Cutout %
20%
Mixup alpha
0.40
Terlihat %
80%

Cutout sedang (10-30%) membuat model memakai lebih banyak bagian gambar, bukan hanya satu area yang menjadi petunjuk. Campuran mixup menghasilkan target soft label, yang cenderung memperbaiki calibration.

Geser slider Ukuran Cutout / Rasio Mixup dari 0 sampai 50. Satu slider menggerakkan kedua panel, dan kartu Mixup alpha menunjukkan weight campurannya. Cutout (DeVries & Taylor, 2017) mengosongkan satu persegi acak. Mixup (Zhang et al., 2017) mencampur dua gambar beserta labelnya dengan weight λ yang sama: x = λx₁ + (1 − λ)x₂ dan y = λy₁ + (1 − λ)y₂, dengan λ diambil dari distribusi Beta(α, α). CutMix (Yun et al., 2019) menempelkan patch dari satu gambar ke gambar lain dan mencampur labelnya menurut luas patch.

Langkah 5 dari 6: Probabilitas Augmentation

Seberapa sering tiap transformasi diterapkan

Probabilitas Augmentation0.50
Training batch: sampel hasil augmentation ditandaiaugasliasliaugasliaugasliaugasliaugaugasli
Probabilitas
0.50
Augmented
6/12
Pengali
1.50x
Keragaman
1.00

Probabilitas sedang (0,2-0,7) mencampur sampel asli dan sampel hasil augmentation. Setiap epoch melihat variasi yang berbeda, sehingga keragaman efektif training set naik.

Geser Probabilitas Augmentation dari 0 sampai 1 dan lihat mana dari 12 salinan yang ditandai AUG. Tiap transformasi dalam pipeline biasanya punya probabilitas sendiri, dan augmentation berjalan langsung saat training, jadi setiap epoch melihat versi acak baru dari tiap gambar, bukan dataset tetap yang sudah diperbesar. Kartu Keragaman bernilai 4p(1 − p), dengan puncak di p = 0.5. Menyetel pengaturan ini dengan tangan memakan waktu. AutoAugment mempelajari policy dengan reinforcement learning, dan RandAugment memangkas pencarian menjadi dua angka: berapa transformasi yang diterapkan dan seberapa kuat.

Langkah 6 dari 6: Saat Augmentation Merugikan

Augmentation yang berlebihan menurunkan performa

Kekuatan Augmentation0.30
Kekuatan AugmentationAkurasi val0.950.50sweet spottanpa augunderover-aug
Kekuatan
0.30
Akurasi val
0.920
vs baseline
+10.0%
Kondisi
Sweet spot

Augmentation sudah cukup untuk mengajarkan invariance yang berguna tanpa merusak distribusi data. Akurasi validasi mencapai puncaknya di sini, jauh di atas baseline tanpa augmentation.

Geser Kekuatan Augmentation dari 0 sampai 1. Kurva akurasinya skematis: mulai dari baseline tanpa augmentation 0,82, mencapai puncak 0,92 pada kekuatan 0,3, dan jatuh di bawah baseline setelah 0,7. Kekuatan terbaik bergantung pada model dan datanya. Model besar yang dilatih selama banyak epoch biasanya tahan terhadap augmentation yang lebih kuat, bahkan membutuhkannya, sedangkan model kecil bisa underfit kalau terlalu banyak. Augmentation juga merugikan kalau merusak label, misalnya membalik angka atau huruf yang berpasangan cermin. Test-time augmentation memakai ulang transformasi saat inference dan merata-ratakan prediksi dari beberapa salinan hasil augmentation untuk tiap input.

Apa itu data augmentation?

Data augmentation adalah teknik training yang membuat contoh baru dengan mengubah contoh yang sudah ada tanpa mengubah labelnya, misalnya membalik, memotong, atau mencerahkan gambar. Model melihat banyak variasi dari tiap contoh, sehingga lebih kecil kemungkinannya menghafal training set dan lebih siap menghadapi variasi pada data sungguhan.

Augmentation sudah menjadi standar di computer vision: hampir semua classifier gambar, detector, dan model segmentation dilatih dengan random crop, flip, dan color jitter. Teknik ini juga dipakai untuk audio, dengan pergeseran waktu, tambahan noise, dan penutupan pita spektrogram ala SpecAugment, serta untuk teks, dengan back-translation dan penggantian sinonim. Metode self-supervised seperti SimCLR belajar dengan membandingkan dua versi augmentation dari gambar yang sama.

Ide utama

  • Augmentation membuat contoh training baru dengan mentransformasi contoh yang ada tanpa mengubah labelnya.
  • Teknik ini berfungsi sebagai regularizer dan mengurangi overfitting, terutama pada dataset kecil.
  • Transformasi geometris memindahkan pixel, dan transformasi fotometrik mengubah nilainya.
  • Untuk object detection dan segmentation, transformasi geometris juga harus diterapkan pada kotak atau mask.
  • Mixup dan CutMix mencampur gambar sekaligus labelnya.
  • Augmentation yang berlebihan, atau transformasi yang mengubah label, menurunkan akurasi.

Pertanyaan umum

Apakah validation set dan test set perlu di-augment?

Tidak. Augmentation acak hanya untuk training. Gambar validasi dan uji sebaiknya tetap sedekat mungkin dengan input sungguhan supaya skornya bermakna. Satu-satunya pengecualian adalah preprocessing deterministik, seperti resize dan center crop, yang diterapkan dengan cara yang sama di setiap split.

Augmentation gambar apa yang sebaiknya dipakai lebih dulu?

Random resized crop dan horizontal flip biasanya menjadi pilihan pertama, lalu color jitter ringan. Untuk model yang lebih besar dan training yang lebih lama, tambahkan RandAugment, mixup, atau CutMix. Periksa setiap transformasi terhadap tugasnya, karena flip dan rotasi besar bisa mengubah makna teks, angka, atau gambar medis.

Apakah data augmentation bisa dipakai untuk data tabular?

Lebih jarang, karena tidak ada transformasi yang jelas-jelas menjaga label untuk satu baris berisi feature campuran. Menambahkan noise kecil ke feature numerik adalah salah satu pilihan. Untuk class imbalance, SMOTE membuat baris sintetis dari kelas minoritas dengan interpolasi antarcontoh yang berdekatan.

Apa bedanya data augmentation dan synthetic data?

Augmentation mentransformasi contoh sungguhan, jadi setiap sampel baru tetap dekat dengan sampel yang ada. Synthetic data dibuat dari nol oleh simulator, renderer 3D, atau generative model seperti diffusion model. Synthetic data bisa mencakup kasus yang tidak ada di dataset sungguhan, tetapi berisiko menimbulkan jarak antara distribusi data buatan dan data sungguhan.

Penjelasan terkait

Referensi

  1. Shorten & Khoshgoftaar (2019), "A survey on Image Data Augmentation for Deep Learning", Journal of Big Data
  2. Zhang et al. (2017), "mixup: Beyond Empirical Risk Minimization"
  3. DeVries & Taylor (2017), "Improved Regularization of Convolutional Neural Networks with Cutout"
  4. Yun et al. (2019), "CutMix: Regularization Strategy to Train Strong Classifiers with Localizable Features"
  5. Cubuk et al. (2019), "RandAugment: Practical automated data augmentation with a reduced search space"

Terakhir diperbarui