
Kenapa saat pakai augmentasi data, loss-nya malah naik? Apakah kalian pernah mengalami hal tersebut ketika melakukan sesi pelatihan deep learning. Walaupun augmentasi data biasanya membantu model generalisasi, kadang di awal training (atau bahkan sampai akhir), loss bisa naik karena beberapa alasan: Ini pertanyaan keren dan sering bikin bingung saat training model deep learning, terutama di computer vision. Yuk kita bahas pelan-pelan
Kenapa saat pakai augmentasi data, loss-nya malah naik?
Contents
- 1 Kenapa saat pakai augmentasi data, loss-nya malah naik?
- 1.1 Penyebab Umum Loss Naik Saat Augmentasi
- 1.2 1. Augmentasi Terlalu Agresif / Over-Augmentation
- 1.3 2. Augmentasi Tidak Konsisten dengan Label
- 1.4 3. Model Belum Adaptasi (Phase Awal)
- 1.5 4. Augmentasi Dilakukan di Validation/Test
- 1.6 5. Learning Rate Tidak Sesuai
- 1.7 6. Augmentasi Tidak Relevan dengan Dataset
- 2 Lebih lanjut mengenai OneOf
Walaupun augmentasi data biasanya membantu model generalisasi, kadang di awal training (atau bahkan sampai akhir), loss bisa naik karena beberapa alasan:
Penyebab Umum Loss Naik Saat Augmentasi
1. Augmentasi Terlalu Agresif / Over-Augmentation
Misalnya:
- Rotasi 90°, flipping acak, crop terlalu besar, brightness kontras terlalu ekstrem.
- Ini bisa mengubah makna gambar, bikin model malah bingung.
Solusi:
Coba kurangi intensitas augmentasi, atau disable satu per satu (ablation) buat cari mana yang bikin kacau.
2. Augmentasi Tidak Konsisten dengan Label
Khusus untuk segmentation atau detection, misalnya:
- Gambar di- flip, tapi mask-nya tidak ikut flip
- Bounding box tidak ikut rotasi / crop
Ini bikin input dan label jadi tidak match, model “belajar hal yang salah”.
3. Model Belum Adaptasi (Phase Awal)
Augmentasi memang menambah variasi → awalnya model bisa bingung → loss naik dulu, tapi seiring waktu harusnya turun lagi.
Solusi:
- Coba plot grafik lebih lama, jangan langsung panik di 1–2 epoch awal.
4. Augmentasi Dilakukan di Validation/Test
Ini kesalahan umum: augmentasi diterapkan ke validation/test set (harusnya hanya di training set!).
Validation harus clean, supaya bisa ukur performa murni model.
5. Learning Rate Tidak Sesuai
Augmentasi bikin data lebih kompleks → kadang butuh learning rate lebih kecil supaya model tidak langsung “kaget”.
6. Augmentasi Tidak Relevan dengan Dataset
Contoh:
- Mau klasifikasi daun kering vs segar, tapi augmentasi dengan blur dan distort.
- Atau deteksi cell darah merah, tapi augmentasi pakai zoom in/out ekstrem.
Tambahan variasi ini bisa memperparah noise, bukan menambah informasi berguna.
Tips Mengatasi
1. Mulai dari augmentasi ringan dulu, misalnya:
- HorizontalFlip
- Small Rotate (±10°)
- Brightness ±10%
- Normalize dan resize
2. Coba plot augmented sample– lihat secara visual apakah masih masuk akal.
3. Pakai `OneOf()` atau `probability-based` augmentation (misal dengan Albumentations):
A.OneOf([ A.RandomBrightnessContrast(), A.HueSaturationValue() ], p=0.5)
4. Monitor loss di training dan validation – kalau dua-duanya naik terus, fix ada yang salah.
Jadi kalian cek lagi saja dataset nya
Lebih lanjut mengenai OneOf
Great! Kamu nanya tentang `A.OneOf` — ini biasanya dipakai dalam Albumentations, sebuah pustaka Python populer untuk augmentasi gambar (terutama buat deep learning). Variasi Dataset menggunakan Teknik Augmentasi
Apa itu `A.OneOf`?
`A.OneOf([…], p=…)` artinya:
Dari daftar augmentasi yang kamu kasih, pilih satu saja secara acak untuk diterapkan ke gambar, dengan probabilitas `p`.
Contoh:
import albumentations as A transform = A.Compose([ A.OneOf([ A.GaussianBlur(p=1), A.MotionBlur(p=1), A.MedianBlur(blur_limit=5, p=1) ], p=0.5) ])
Artinya:
Dengan probabilitas 50%, sistem akan memilih salah satu augmentasi dari daftar:
- GaussianBlur,
- MotionBlur,
- atau MedianBlur.
Kalau terpilih, hanya satu dari tiga yang akan diaplikasikan.
Kalau tidak terpilih (50% lainnya), maka tidak ada augmentasi dari kelompok itu yang dilakukan.
Kenapa Gunakan `OneOf`?
- Supaya augmentasi tidak terlalu berat (bayangin kalau semua augmentasi dijalankan sekaligus).
- Untuk menambahkan variasi acak, sehingga model tidak hafal noise tertentu.
Perbedaan `A.OneOf` vs `A.SomeOf`
- `A.OneOf`: pilih satu augmentasi dari daftar
- `A.SomeOf`: pilih beberapa (misalnya 2 dari 5), lebih fleksibel, tapi lebih berat juga
Kalau kamu pakai `Compose`, `OneOf`, `SomeOf`, dll — itu semua bagian dari cara menyusun pipeline augmentasi yang modular dan powerful di Albumentations.