Saya ingin melatih jaringan dengan non-linearitas yang menderita menghilangnya (atau meledak masalah gradien meskipun sebagian besar menghilang). Saya tahu bahwa cara standar (saat ini) adalah dengan menggunakan normalisasi batch 1 [BN] 1 atau hanya meninggalkan non-linearitas dan menggunakan unit ReLu Rectifier / ReLu .
Saya menginginkan dua hal:
- Tetap dengan non-linearitas saya, jadi saya tidak ingin meninggalkannya dan menggunakan ReLu (yaitu tidak ada ReLu diizinkan!). Re-parametris non-linearitas ok, katakanlah menempatkan multiplikatif di depannya seperti dalam misalnya.
- Idealnya, saya tidak ingin terlalu banyak mengandalkan normalisasi batch (atau setidaknya jika digunakan, itu harus digunakan dengan cara baru selain bagaimana itu digunakan dalam kertas asli atau menggeneralisasi ke banyak non-linearitas). Salah satu alasan saya ingin menghindari Batch Normalisasi adalah karena tampaknya hanya berfungsi untuk non-linearitas tertentu. Sebagai contoh, untuk sigmoids, tanh tetapi tidak jelas bagaimana mereka bekerja untuk non-linearitas lainnya, katakanlah gaussians.
Alasan saya memiliki kendala ini adalah karena saya ingin menangani masalah menghilangnya gradien atau meledak gradien dengan mengetatkan masalah secara langsung daripada meretas solusi yang hanya berfungsi untuk non-linearitas tertentu atau hanya menghindari masalah dengan mendorong dalam ReLu.
Saya bertanya-tanya, dengan dua kendala itu, apa cara alternatif untuk mengatasi masalah gradien yang hilang? (non-linearitas lain yang dipertimbangkan adalah RBF gaussian kernel dengan euclidean norm pra-aktivasi, sigmoid, tanh, dll)
Gagasan (samar) yang mungkin ada dalam pikiran saya adalah:
- Memiliki inisialisasi yang baik sehingga non-linearitas jenuh tidak mulai sudah jenuh (non-linearitas jenuh menghasilkan gradien mendekati nol).
- Untuk RBF, sama halnya, init baik mungkin penting karena gaussians sebagian besar memiliki nilai besar mendekati 0 (yaitu ketika filter mirip dengan aktivasi atau datanya). Dengan demikian, memiliki mereka terlalu besar atau terlalu kecil memiliki masalah gradien hilang yang sama.
- Saya tidak benar-benar tahu apakah ini terlalu membatasi tetapi akan lebih baik jika ada cara yang berbeda untuk menggunakan normalisasi batch selain dari saran tradisional di kertas asli (atau mungkin beberapa ide BN yang menggeneralisasikan ke set non-besar yang lebih besar). linearitas, saat ini tampaknya sebagian besar penelitian menunjukkan bahwa itu bekerja untuk sigmoids sejauh yang saya tahu).
- Gagasan lain adalah alih-alih memiliki non-linearitas kita memiliki mana . Jika , maka itu berarti bahwa non-linearitas tidak dikalikan mundur beberapa kali untuk setiap lapisan, sehingga untuk menghindari "menghilang" untuk lapisan sebelumnya. Mungkin membuat aturan belajar tidak stabil, jadi mungkin beberapa regulator mungkin ide yang bagus.
- Pengoptimal yang secara intrinsik menangani gradien menghilang (atau setidaknya memperbarui setiap parameter secara berbeda). Sebagai contoh, jika lapisannya mendekati input, maka langkah pembelajaran harus lebih besar. Alangkah baiknya bagi algoritma pembelajaran untuk memperhitungkan ini dengan sendirinya sehingga untuk berurusan dengan gradien menghilang.
Jika ada saran tentang cara menangani lenyapnya gradien selain batch-norm atau ReLu, saya akan senang mendengarnya!
Tampaknya menghilang gradien terjadi terutama karena non-linearitas memiliki properti yang dan juga karena dan setelah mengalikannya berkali-kali, itu meledak atau menghilang. Secara eksplisit mengatakan masalah mungkin membantu menyelesaikannya. Masalahnya adalah hal itu menyebabkan lapisan bawah tidak memperbarui atau menghalangi sinyal melalui jaringan. Alangkah baiknya untuk menjaga sinyal ini mengalir melalui jaringan, selama lulus maju dan mundur (dan juga selama pelatihan, tidak hanya pada inisialisasi).
1 : Ioffe S. dan Szegedy C. (2015),
"Normalisasi Batch: Mempercepat Pelatihan Jaringan Dalam dengan Mengurangi Pergeseran Kovarian Internal",
Prosiding Konferensi Internasional ke-32 tentang Pembelajaran Mesin , Lille, Prancis, 2015.
Jurnal Penelitian Pembelajaran Mesin: Volume W&CP 37
Jawaban:
Sudahkah Anda melihat ke RMSProp? Lihatlah kumpulan slide ini dari Geoff Hinton:
Gambaran umum tentang penurunan gradien mini-batch
Khususnya halaman 29, berjudul 'rmsprop: Versi mini-batch rprop', meskipun mungkin perlu membaca set lengkap untuk mendapatkan ide yang lebih lengkap dari beberapa ide terkait.
Juga terkait adalah No More Pesky Learning Rates Yan Le Cun
dan Brandyn Webb SMORMS3 .
Gagasan utamanya adalah melihat tanda gradien dan apakah itu flip-flopping atau tidak; jika konsisten maka Anda ingin bergerak ke arah itu, dan jika tanda tidak membalik maka langkah apa pun yang Anda ambil harus OK, asalkan tidak semakin kecil, jadi ada cara mengendalikan ukuran langkah untuk menjaganya masuk akal dan yang agak independen dari gradien yang sebenarnya.
Jadi jawaban singkat untuk bagaimana menangani gradien menghilang atau meledak adalah sederhana - jangan gunakan besarnya gradien!
sumber
Beberapa pemahaman saya, mungkin tidak benar.
Penyebab hilangnya gradien masalah adalah bahwa
sigmoid
tanh
(dan RBF) jenuh di kedua sisi (-inf
daninf
), sehingga sangat mungkin untuk input non-linearitas jatuh pada daerah jenuh.Efek BN adalah bahwa ia "menarik" input non-linearitas ke kisaran kecil sekitar 0N( 0 , 1 ) sebagai titik awal, di mana non-linearitas seperti itu tidak jenuh. Jadi saya kira ini akan bekerja dengan RBF juga.
Untuk menghapus non-linearitas ReLU, kita dapat menggunakan funtion softpluscatatan( 1 +ex) , Yang sangat dekat dengan ReLU, dan digunakan dalam Geoffrey Hinton`s papper untuk menjelaskan mengapa ReLU akan bekerja.
Juga jaringan residual atau jaringan jalan raya menyediakan cara lain untuk mengatasi gradien yang hilang (melalui jalan pintas). Dari pengalaman saya, arsitektur seperti itu dilatih jauh lebih cepat daripada hanya menghubungkan kerugian ke lapisan terakhir.
Terlebih lagi , kesulitan melatih jaringan yang dalam bukan semata-mata karena lenyapnya gradien , tetapi juga faktor-faktor lain (misalnya pergeseran kovariat internal). Ada normalisasi lapisan kertas baru-baru ini tentang cara lain untuk melakukan normalisasi, itu tidak mengatakan tentang lenyapnya gradien, tapi mungkin Anda akan tertarik.
sumber