Saya telah melihat plot kesalahan tes / pelatihan tiba-tiba jatuh pada zaman tertentu beberapa kali selama pelatihan jaringan saraf, dan saya bertanya-tanya apa yang menyebabkan kinerja ini melonjak:
Gambar ini diambil dari Kaiming He Github, tetapi plot serupa muncul di banyak surat kabar.
conv-neural-network
libphy
sumber
sumber
Jawaban:
Mereka mengubah tingkat belajar. Perhatikan bahwa drop tepat pada 30 dan 60 zaman, jelas diatur secara manual oleh seseorang.
sumber
Pikirkan "lanskap pengoptimalan". Misalnya, jika Anda memiliki jaringan dengan hanya dua bobot, Anda dapat merencanakan semua kombinasi dari dua bobot ini di permukaan, di mana ketinggian di setiap titik mewakili jumlah kesalahan yang dihasilkan fungsi biaya Anda jika Anda menggunakannya (x, y ) berkoordinasi sebagai dua bobot Anda. Anda mencoba untuk pindah ke titik terendah di permukaan ini untuk mendapatkan tingkat kesalahan terendah.
Masalahnya kadang-kadang adalah bahwa permukaan bisa menjadi sangat gila, terutama di jaringan dengan jutaan parameter, bukan hanya dua. Anda bisa terjebak dalam poin sadel di mana kemajuan diperlambat, dan kemudian tiba-tiba sling ditembakkan kembali ke bukit ke bawah.
Berikut ini adalah animasi untuk membantu memvisualisasikan ini. Karena Anda dapat melihat algoritma gradient descent yang lebih mendasar, terjebak di posisi ini lebih mudah.
Mungkin ada penyebab lain untuk ini, tetapi ini adalah yang paling sering Anda dengar. Mungkin saja suatu jaringan dapat memiliki banyak unit yang mendapatkan aktivasi jenuh (atau dalam kasus relu, unit yang hanya diaktifkan oleh sejumlah kecil input pelatihan), dan ketika satu unit keluar dari saturasi maka memicu reaksi berantai yang menggerakkan sisanya keluar dari saturasi dan bobot tiba-tiba mendapatkan dorongan aliran gradien? Saya belum melihat hal seperti itu tetapi saya akan tertarik jika ada yang punya alasan lain untuk menambahkan.
sumber