Kliping gradien saat melatih jaringan saraf yang dalam

10

Kapan seseorang ingin melakukan kliping gradien saat melatih RNN atau CNN? Saya terutama tertarik pada yang terakhir. Apa nilai awal yang baik untuk kliping? (Tentu saja bisa disetel)

pir
sumber

Jawaban:

4

Anda ingin melakukan pemotongan gradien ketika Anda mendapatkan masalah menghilang gradien atau meledak gradien. Namun, untuk kedua skenario, ada solusi yang lebih baik:

  • Meledak gradien terjadi ketika gradien menjadi terlalu besar dan Anda mendapatkan angka meluap. Ini dapat dengan mudah diperbaiki dengan menginisialisasi bobot jaringan ke nilai yang lebih kecil. Jika ini tidak berhasil, kemungkinan ada bug dalam kode.

  • Lenyapnya gradien terjadi ketika optimasi macet di titik sadel, gradien menjadi terlalu kecil untuk optimasi untuk maju. Ini dapat diperbaiki dengan menggunakan gradient descent dengan momentum atau RMS prop atau keduanya (juga dikenal sebagai pengoptimal Adam).

Nilai awal untuk batas atas kliping gradien akan menjadi sesuatu yang lebih kecil daripada jumlah terbesar yang bisa diambil oleh variabel. Untuk batas bawah, saya akan mengatakan itu adalah masalah khusus tetapi mungkin mulai dengan sesuatu seperti 1e-10.

Miguel
sumber
1
Saya tidak yakin apakah konteks jawaban ini seharusnya mengecualikan RNNs, tetapi jika tidak, maka kedua solusi yang diusulkan tidak lebih baik daripada gradien kliping terutama dalam kasus RNNs.
Alex R.
Maaf saya berpikir lebih dalam konteks CNN, jangan ragu untuk mengedit
Miguel