5 poin oleh GN⁺ 2025-11-03 | Belum ada komentar. | Bagikan ke WhatsApp
  • Backpropagation adalah inti dari pelatihan jaringan saraf, tetapi jika cara kerja internalnya tidak dipahami, dapat muncul kesalahan tak terduga karena ia merupakan struktur "abstraksi yang bocor (leaky abstraction)"
  • Fungsi aktivasi sigmoid atau tanh dapat menyebabkan vanishing gradient sehingga pelatihan berhenti jika inisialisasi bobot salah
  • ReLU dapat memicu fenomena dead ReLU, yaitu neuron menjadi nonaktif secara permanen saat input bernilai 0 atau kurang
  • Pada RNN, perkalian matriks yang berulang dapat menyebabkan exploding gradient, sehingga perlu menggunakan gradient clipping atau LSTM untuk mencegahnya
  • Jika tidak memahami cara kerja backpropagation, meskipun framework menanganinya secara otomatis, kemampuan debugging dan perbaikan model akan sangat menurun

Mengapa backpropagation perlu dipahami

  • Dalam kuliah CS231n di Stanford, tugas dirancang agar mahasiswa mengimplementasikan forward pass dan backpropagation secara langsung
    • Sebagian mahasiswa mengeluh karena menganggap itu tidak perlu, sebab framework seperti TensorFlow menghitung backpropagation secara otomatis
  • Namun, backpropagation adalah abstraksi yang bocor, bukan abstraksi yang sepenuhnya tertutup, sehingga tanpa memahami cara kerjanya, sulit mengetahui penyebab kegagalan pelatihan
  • Sikap seperti “framework akan mengurusnya sendiri” pada akhirnya menurunkan kemampuan desain model dan debugging

Vanishing gradient pada sigmoid

  • Fungsi nonlinier sigmoid atau tanh akan memasuki kondisi saturasi (saturation) ketika nilai input besar, sehingga output mendekati 0 atau 1
    • Pada saat itu, gradien lokal z(1-z)* menjadi 0, sehingga propagasi gradien terhenti saat backpropagation
  • Gradien maksimum sigmoid adalah 0,25, sehingga setiap kali melewati lapisan, sinyal menyusut menjadi 1/4 atau kurang
  • Akibatnya, kecepatan belajar lapisan bawah menjadi jauh lebih lambat dibanding lapisan atas
  • Karena itu, saat menggunakan lapisan sigmoid, perlu perhatian khusus pada inisialisasi bobot dan preprocessing data

Masalah dead ReLU

  • ReLU adalah fungsi yang membuat output menjadi 0 saat input 0 atau kurang
    • Jika output neuron bernilai 0 pada forward pass, maka saat backpropagation gradiennya juga menjadi 0, sehingga neuron tersebut dapat menjadi nonaktif permanen
  • Selama pelatihan, update bobot yang besar atau learning rate yang tinggi dapat membuat neuron terkunci dalam "keadaan mati"
  • Setelah pelatihan, ada juga kasus ketika sebagian besar neuron dalam jaringan menghasilkan 0
  • Karena itu, saat menggunakan ReLU, penyesuaian learning rate dan strategi inisialisasi sangat penting

Exploding gradient pada RNN

  • Dalam RNN sederhana, matriks hidden state (Whh) yang sama dikalikan berulang pada setiap time step
    • Saat backpropagation, gradien akan menuju 0 atau membesar tanpa batas tergantung pada besar eigenvalue matriks tersebut
  • Jika |b| < 1, terjadi vanishing gradient; jika |b| > 1, terjadi exploding gradient
  • Untuk mencegahnya, praktik umum adalah menerapkan gradient clipping atau menggunakan arsitektur LSTM

Contoh clipping yang salah dalam kode DQN

  • Dalam implementasi DQN berbasis TensorFlow, ditemukan kode yang langsung melakukan clipping pada delta (error Q) dengan tf.clip_by_value
    • Pendekatan ini membuat gradien menjadi 0 ketika delta berada di luar rentang, sehingga pelatihan berhenti
  • Karena yang dimaksud sebenarnya adalah gradient clipping, seharusnya digunakan Huber loss sebagai gantinya
    • Dalam contoh kode, Huber loss diimplementasikan secara kondisional dengan menggabungkan tf.square dan tf.abs
  • Masalah ini dilaporkan sebagai isu di GitHub dan langsung diperbaiki

Kesimpulan

  • Backpropagation bukan sekadar alat otomatisasi, melainkan sistem credit assignment yang dapat menimbulkan konsekuensi kompleks
  • Tanpa memahami cara kerjanya, kita akan menghadapi ketidakstabilan model, kegagalan pelatihan, dan keterbatasan debugging
  • Backpropagation tidak sulit secara matematis, dan dapat dipelajari secara intuitif melalui kuliah dan tugas CS231n
  • Dengan memahami backpropagation, kemampuan merancang jaringan saraf dan memecahkan masalah akan meningkat pesat
  • Daripada hanya mengandalkan fitur autodiff dari framework, yang penting adalah memahami aliran backpropagation yang sebenarnya

Belum ada komentar.

Belum ada komentar.