Bagaimana cara memilih fungsi aktivasi?


13

Saya memilih fungsi aktivasi untuk lapisan output tergantung pada output yang saya butuhkan dan sifat-sifat fungsi aktivasi yang saya tahu. Sebagai contoh, saya memilih fungsi sigmoid ketika saya berhadapan dengan probabilitas, sebuah ReLU ketika saya berurusan dengan nilai-nilai positif, dan fungsi linier ketika saya berurusan dengan nilai-nilai umum.

Dalam lapisan tersembunyi, saya menggunakan ReLU yang bocor untuk menghindari neuron mati, bukan ReLU dan tanh, bukan sigmoid. Tentu saja, saya tidak menggunakan fungsi linear di unit tersembunyi.

Namun, pilihan untuk mereka di lapisan tersembunyi sebagian besar karena coba-coba.

Apakah ada aturan praktis yang fungsi aktivasi cenderung berfungsi baik dalam beberapa situasi? Ambil istilah situasi seumum mungkin: bisa merujuk pada kedalaman lapisan, ke kedalaman NN, ke jumlah neuron untuk lapisan itu, ke pengoptimal yang kita pilih, ke sejumlah fitur input dari lapisan itu, ke aplikasi NN ini, dll.

Dalam jawabannya , cantordust merujuk ke fungsi aktivasi lain yang tidak saya sebutkan, seperti ELU dan SELU. Info ini lebih dari disambut. Namun, semakin banyak fungsi aktivasi yang saya temukan semakin saya bingung dalam memilih fungsi untuk digunakan di lapisan tersembunyi. Dan saya tidak berpikir bahwa membalik koin adalah cara yang baik untuk memilih fungsi aktivasi.

Jawaban:


10

Sepertinya saya sudah memahami kekurangan ReLU dan sigmoids (seperti neuron mati dalam kasus ReLU biasa). Saya akan menyarankan melihat ELU (unit linear eksponensial) dan SELU (versi normalisasi ELU). Di bawah beberapa asumsi ringan, yang terakhir memiliki sifat bagus normalisasi diri, yang mengurangi masalah menghilang dan meledak gradien. Selain itu, mereka menyebarkan normalisasi - yaitu, mereka menjamin bahwa input ke lapisan berikutnya akan memiliki nol rata-rata dan varian unit.

Edit:


Akan sangat sulit untuk merekomendasikan fungsi aktivasi yang berfungsi untuk semua kasus penggunaan (walaupun saya percaya bahwa SELU dirancang sehingga akan melakukan hal yang benar dengan hampir semua input). Ada banyak pertimbangan - betapa sulitnya menghitung turunannya (jika dapat dibedakan sama sekali!), Seberapa cepat jaringan dengan AF yang Anda pilih menyatu, seberapa halus itu, apakah memenuhi kondisi teorema aproksimasi universal , apakah mempertahankan normalisasi, dan sebagainya. Anda mungkin atau mungkin tidak peduli tentang beberapa atau beberapa dari mereka.

Intinya adalah bahwa tidak ada aturan universal untuk memilih fungsi aktivasi untuk lapisan tersembunyi. Secara pribadi, saya suka menggunakan sigmoids (terutama tanh) karena mereka terikat dengan baik dan sangat cepat untuk dihitung, tetapi yang paling penting karena mereka bekerja untuk kasus penggunaan saya . Yang lain merekomendasikan ReLU yang bocor untuk input dan lapisan tersembunyi sebagai fungsi buka jika jaringan Anda gagal belajar. Anda bahkan dapat mencampur dan mencocokkan fungsi aktivasi untuk mengembangkan jaring saraf untuk aplikasi mewah .

Pada akhirnya, Anda mungkin akan mendapatkan opini sebanyak mungkin karena ada orang tentang pilihan yang tepat untuk fungsi aktivasi, jadi jawaban singkatnya mungkin: mulai dengan AF hari itu (ReLU / SELU yang bocor?) dan kerjakan cara Anda melalui AF lain untuk mengurangi popularitas jika jaringan Anda kesulitan mempelajari apa pun.


1
Benar, saya lupa tentang penyebaran normalisasi. Terima kasih sudah mengingatkan saya. Namun, pertanyaannya masih belum terjawab. Ada aturan atau sesuatu untuk memilih fungsi aktivasi mana yang harus saya masukkan ke lapisan tersembunyi? Untuk kesederhanaan, saya hanya berbicara tentang lapisan yang sepenuhnya terhubung. Saya tidak ingin menyulitkan topik dengan konvolusi, penyatuan, dll.
gvgramazio

@ gvgramazio Saya mengedit jawabannya, semoga sedikit lebih berguna sekarang.
cantordust

Dengan hasil edit, saya pikir Anda telah menjawab pertanyaan saya dan juga menyediakan tautan tertarik (khususnya yang tentang pencocokan dan pencocokan ). Sayangnya bukan jawaban yang ingin saya dengar. Saya akan membuka pertanyaan saya untuk beberapa hari lagi. Jika tidak ada yang memberikan jawaban yang lebih baik, saya akan menandai jawaban Anda sebagai diterima.
gvgramazio

-1

Saya tidak tahu apa jenis jaringan saraf yang sedang Anda kerjakan. Tetapi orang juga harus mempertimbangkan fungsi aktivasi tanh ketika berhadapan dengan jaringan saraf berulang. Alasannya adalah untuk menghindari meledaknya masalah gradien karena fungsi tanh dibatasi pada perbedaan fungsi RELU misalnya.


Dalam pertanyaan saya menyatakan bahwa saya menggunakan tanh dan sigmoid, tidak hanya ReLU. Juga, untuk membuatnya lebih sederhana, saya merujuk secara umum untuk lapisan tersembunyi sepenuhnya terhubung klasik. Jika Anda berpikir bahwa fakta bahwa kita berhadapan dengan jaringan saraf berulang sangat penting untuk pemilihan fungsi aktivasi, harap sebutkan alasannya. Fenomena meledak / lenyapnya bisa terjadi di jaringan saraf yang tidak berulang juga.
gvgramazio
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.