Ringkasan pertanyaan wawancara model/NLP/algoritma besar 6 - Mengapa hilangnya gradien dan ledakan gradien terjadi?
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Hilangnya gradien dan ledakan gradien adalah masalah umum dalam pembelajaran mendalam. Masalah ini terutama terjadi selama proses pelatihan jaringan saraf, terutama saat menggunakanSaat algoritma backpropagation melakukan pembaruan bobot . Berikut analisa detail penyebab kedua masalah tersebut:
1. Alasan hilangnya gradien
- struktur jaringan yang dalam:
- KapanTerlalu banyak lapisan jaringan saraf, gradien akan melewatinyaBanyak wahana beroperasi.jikaGradien setiap lapisan kurang dari 1(Misalnya, turunan fungsi sigmoid dalam banyak kasus kurang dari 0,25), makaKetika jumlah lapisan bertambah, nilai gradien akan dengan cepat berkurang secara eksponensial hingga mendekati 0, menyebabkan gradien menghilang.
- Fungsi aktivasi tidak tepat:
- beberapafungsi aktivasiTurunannya (seperti sigmoid dan tanh) akan menjadi sangat kecil jika nilai inputnya jauh dari titik asal, yang akan menyebabkan nilai gradien menurun dengan cepat selama propagasi mundur sehingga menyebabkan gradien menghilang.
- Inisialisasi bobot yang tidak tepat:
- jikaNilai inisialisasi bobot jaringan terlalu kecil, juga dapat menyebabkan nilai gradien menjadi terlalu kecil selama proses propagasi balik, yang dapat menyebabkan hilangnya gradien.
2. Penyebab ledakan gradien
- struktur jaringan yang dalam:
- Mirip dengan gradien hilang,struktur jaringan yang dalam Hal ini juga dapat menyebabkan ledakan gradien.Namun, dalam kasus ini, gradien selama propagasi mundur akan melewatinyaBanyak wahanaoperasi, danGradien setiap lapisan lebih besar dari 1, kemudian seiring bertambahnya jumlah lapisan, nilai gradien akan meningkat secara eksponensial hingga nilai yang sangat besar sehingga menyebabkan ledakan gradien.
- Fungsi aktivasi tidak tepat:
- Meskipun fungsi aktivasi itu sendiri tidak serta merta menyebabkan ledakan gradien, dalam beberapa kasus (seperti penggunaanFungsi aktivasi ReLUdan nilai input tetap positif), gradien mungkin tetap sama atau terus meningkat, sehingga meningkatkan risiko ledakan gradien.
- Inisialisasi bobot yang tidak tepat:
- jikaNilai inisialisasi bobot jaringan terlalu besar, kemudian selama proses propagasi mundur, nilai gradien dapat dengan cepat meningkat menjadi sangat besar, menyebabkan gradien meledak.
3. Akar permasalahan
Gradien yang menghilang dan meledakAlasan mendasarnya terletak pada kekurangan algoritma backpropagation . Dalam jaringan yang dalam, berbagai lapisan belajar dengan kecepatan yang sangat berbeda.Hal ini menunjukkan bahwa lapisan di dekat keluaran dalam jaringan belajar dengan sangat baik, sedangkan lapisan di dekat masukan belajar dengan sangat lambat.,Kadang-kadang bahkan setelah pelatihan dalam waktu yang lama, bobot beberapa lapisan pertama hampir sama dengan bobot yang diinisialisasi secara acak di awal. .Hal ini terutama karenaEfek perkalian kumulatif gradien selama propagasi mundurdisebabkan.
4. Solusi
Untuk mengatasi masalah gradien hilang dan meledak, beberapa strategi berikut dapat diterapkan:
- Pilih fungsi aktivasi yang sesuai:
- menggunakanFungsi aktivasi seperti ReLU dan Leaky ReLU, turunan dari fungsi-fungsi ini dalam banyak kasus lebih besar dari 0, yang secara efektif dapat mengatasi masalah gradien hilang.
- Inisialisasi bobot yang wajar:
- menggunakanXavier, Diadan metode inisialisasi lainnyaSecara otomatis menyesuaikan rentang inisialisasi bobot sesuai dengan jumlah lapisan jaringan, sehingga mengurangi risiko hilangnya gradien dan ledakan gradien.
- Gunakan Normalisasi Batch:
- Lapisan BN bisaMasukan setiap lapisan dinormalisasi, sehingga distribusi masukan setiap lapisan tetap konsisten, sehingga mengurangi risiko hilangnya gradien dan ledakan gradien.
- Jaringan Residu (ResNet):
- lulusPerkenalkan struktur koneksi lintas lapisan, jaringan sisa bisaMemperdalam jumlah lapisan jaringan sekaligus mengurangi masalah gradien hilang。
- tanaman gradien:
- Selama proses pembaruan gradien, jikaNilai gradien terlalu besar dan dapat terpotong, untuk mencegah terjadinya ledakan gradien.
- menggunakanPengoptimal yang lebih cocok:
- menyukaiPengoptimal seperti Adam dapat secara otomatis menyesuaikan kecepatan pembelajaran, dan melakukan pembaruan parameter berdasarkan momen gradien pertama dan kedua, sehingga mengurangi risiko hilangnya gradien dan ledakan gradien.