Saya menemukan unit linear diperbaiki (ReLU) dipuji di beberapa tempat sebagai solusi untuk masalah gradien menghilang untuk jaringan saraf. Artinya, seseorang menggunakan maks (0, x) sebagai fungsi aktivasi. Ketika aktivasi positif, jelas bahwa ini lebih baik daripada, katakanlah, fungsi aktivasi sigmoid, karena derivasiasinya selalu 1 bukannya nilai kecil sewenang-wenang untuk x besar. Di sisi lain, derivasi adalah tepat 0 ketika x lebih kecil dari 0. Dalam kasus terburuk, ketika unit tidak pernah diaktifkan, bobot untuk unit ini juga tidak akan pernah berubah lagi, dan unit akan selamanya tidak berguna - yang tampaknya jauh lebih buruk daripada gradien yang semakin kecil. Bagaimana algoritma pembelajaran mengatasi masalah itu ketika mereka menggunakan ReLU?
sumber
Jawaban:
Berikut adalah makalah yang menjelaskan masalah ini. Saya mengutip beberapa bagian untuk memperjelas masalah ini.
Jadi fungsi aktivasi penyearah memperkenalkan efek sparsity pada jaringan. Berikut ini beberapa keunggulan sparsity dari kertas yang sama;
Itu juga menjawab pertanyaan yang Anda ajukan:
Anda dapat membaca makalah untuk lebih detail.
sumber
Inilah sebabnya mengapa mungkin ide yang lebih baik untuk menggunakan PReLU, ELU, atau aktivasi seperti ReLU lainnya yang bocor yang tidak hanya mati menjadi 0, tetapi yang jatuh ke sesuatu seperti 0,1 * x ketika x menjadi negatif untuk terus belajar. Tampaknya bagi saya untuk waktu yang lama bahwa ReLU adalah sejarah seperti sigmoid, meskipun untuk beberapa alasan orang masih menerbitkan makalah dengan ini. Mengapa? Saya tidak tahu
Dmytro Mishkin dan yang lainnya benar-benar menguji jaringan dengan banyak jenis aktivasi yang berbeda, Anda harus melihat temuan mereka tentang kinerja berbagai fungsi aktivasi dan hal-hal lain. Beberapa fungsi, seperti XOR, lebih baik dipelajari dengan ReLU biasa. Jangan berpikir tentang hal-hal saraf dalam istilah dogma, karena jaring saraf sangat banyak pekerjaan yang sedang berjalan. Tidak ada seorang pun di dunia ini yang benar-benar tahu dan memahami mereka dengan cukup baik untuk mengatakan kebenaran ilahi. Tak seorangpun. Cobalah berbagai hal, buat penemuan Anda sendiri. Pikiran bahwa menggunakan ReLU itu sendiri adalah perkembangan yang sangat baru dan selama beberapa dekade semua orang PhD yang berbeda di bidang ini telah menggunakan fungsi aktivasi yang terlalu rumit yang kini hanya bisa ditertawakan. Terlalu sering "mengetahui" terlalu banyak dapat membuat Anda mendapatkan hasil yang buruk. Sangat penting untuk memahami bahwa jaringan saraf bukan ilmu pasti. Tidak ada dalam matematika yang mengatakan bahwa jaringan saraf benar-benar akan bekerja sebaik yang mereka lakukan. Itu heuristik. Dan itu sangat mudah ditempa.
FYI bahkan aktivasi nilai absolut mendapatkan hasil yang baik pada beberapa masalah, misalnya masalah seperti XOR. Fungsi aktivasi yang berbeda lebih cocok untuk tujuan yang berbeda. Saya mencoba Cifar-10 dengan abs () dan tampaknya berkinerja lebih buruk. Padahal, saya tidak bisa mengatakan bahwa "ini adalah fungsi aktivasi yang lebih buruk untuk pengenalan visual", karena saya tidak yakin, misalnya, apakah pra-inisialisasi saya optimal untuk itu, dll. Kenyataannya bahwa itu belajar relatif saya juga kagum.
Saya bahkan mengatakan bahwa kita harus melarang menyebut mereka "turunan" dan mulai memanggil mereka sesuatu yang lain, misalnya,
error activation functions
untuk tidak menutup pikiran kita terhadap kemungkinan bermain-main dengan mereka. Anda sebenarnya dapat, misalnya, menggunakan aktivasi ReLU, tetapi memberikan 0,1, atau sesuatu seperti itu alih-alih 0 sebagai turunan untuk x <0. Di satu sisi, Anda kemudian memiliki ReLU sederhana, tetapi dengan neuron tidak mampu "mati karena kemampuan beradaptasi". Saya menyebutnya NecroRelu, karena ini adalah ReLU yang tidak bisa mati. Dan dalam beberapa kasus (pasti tidak di sebagian besar, meskipun) yang bekerja lebih baik daripada LeakyReLU biasa, yang sebenarnya memiliki 0,1 turunan pada x <0 dan lebih baik daripada ReLU biasa. Saya tidak berpikir terlalu banyak orang lain yang menyelidiki fungsi seperti itu, meskipun, ini, atau sesuatu yang serupa mungkin sebenarnya fungsi aktivasi yang keren yang tidak ada yang menganggap hanya karena mereka terlalu berkonsentrasi pada matematika.Adapun apa yang umumnya digunakan, untuk fungsi aktivasi tanH (x) itu adalah hal yang biasa untuk melewati 1 - x² bukan 1 - tanH (x) ² sebagai turunan untuk menghitung hal-hal lebih cepat.
Juga, ingatlah bahwa ReLU tidak semua yang "jelas lebih baik" daripada, misalnya, TanH. TanH mungkin bisa lebih baik dalam beberapa kasus. Hanya, sepertinya begitu, tidak dalam pengenalan visual. Padahal, ELU, misalnya, memiliki sedikit kelembutan sigmoid padanya dan itu salah satu fungsi aktivasi yang paling dikenal untuk pengenalan visual saat ini. Saya belum benar-benar mencoba, tetapi saya yakin seseorang dapat mengatur beberapa grup dengan fungsi aktivasi berbeda pada level layer yang sama untuk mendapatkan keuntungan. Karena, logika yang berbeda lebih baik dijelaskan dengan fungsi aktivasi yang berbeda. Dan terkadang Anda mungkin perlu beberapa jenis evaluasi.
Perhatikan bahwa penting untuk melakukan awal yang sesuai dengan jenis fungsi aktivasi Anda. ReLU yang bocor memerlukan init lain yang ReLU polos, misalnya.
EDIT: Sebenarnya, standar ReLU tampaknya kurang cenderung overfitting vs yang bocor dengan arsitektur modern. Setidaknya dalam pengenalan gambar. Tampaknya jika Anda menggunakan jaring dengan akurasi sangat tinggi dengan beban parameter yang besar, mungkin lebih baik tetap menggunakan opsi ReLU vs bocor. Tapi, tentu saja, uji sendiri semua ini. Mungkin, beberapa hal bocor akan bekerja lebih baik jika lebih banyak regularisasi diberikan.
sumber
initialization that corresponds to a type of activation function one is using
diNOTE
dalam posting Anda, dapatkah Anda memberikan saran Anda untuk ini pada baris yang sama, saya tidak sepenuhnya yakin bahwa menggunakan aktivasi ReLu di atas sigmoid / tanH adalah solusi untuk masalah gradien menghilang / meledak .Berikut ini penjelasan heuristik:
Anda mungkin berpikir bahwa akan lebih baik untuk memiliki fungsi linier, daripada meratakan ketika x <0. Idenya di sini adalah bahwa RELU menghasilkan jaringan yang jarang dengan jumlah tautan yang relatif kecil, yang memiliki lebih banyak kemungkinan masuk akal secara biologis, sehingga hilangnya sekelompok beban sebenarnya bermanfaat. Selain itu, simulasi fungsi menarik dengan jaring saraf hanya dimungkinkan dengan beberapa nonlinier dalam fungsi aktivasi. Fungsi aktivasi linier menghasilkan output linier, yang tidak terlalu menarik sama sekali.
sumber
Mari kita pertimbangkan relasi pengulangan utama yang mendefinisikan propagasi belakang sinyal kesalahan.
Persamaan ini juga menunjukkan karakteristik masalah lainnya untuk aktivasi relu - neuron mati: jika neuron yang diberikan diinisialisasi dengan cara yang tidak diaktifkan untuk input apa pun (aktivasi adalah nol), gradiennya juga akan menjadi nol, dan karenanya tidak akan pernah diaktifkan.
sumber