Kenapa saat pakai augmentasi data, loss-nya malah naik?

By | April 4, 2025
196 Views

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?

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.

See also  #Video Tutorial - Belajar Python Bagian 2

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.

See also  Apa itu format TFRecordDataset

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.