fungsi aktivasi tanh vs fungsi aktivasi sigmoid

82

Fungsi aktivasi tanh adalah:

tanh(x)=2σ(2x)1

Di mana , fungsi sigmoid, didefinisikan sebagai: .σ(x)

σ(x)=ex1+ex

Pertanyaan:

  • Apakah benar-benar penting antara menggunakan kedua fungsi aktivasi (tanh vs sigma)?
  • Fungsi mana yang lebih baik dalam hal ini?
satya
sumber
12
tanh(x)=2σ(2x)1
Roman Shapovalov
Deep Neural Networks telah pindah. Preferensi saat ini adalah fungsi RELU.
Paul Nord
7
@ PaulNord Baik tanh dan sigmoids masih digunakan bersama dengan aktivasi lain seperti RELU, tergantung apa yang Anda coba lakukan.
Tahlor

Jawaban:

80

Ya itu penting karena alasan teknis. Pada dasarnya untuk optimasi. Perlu dibaca Backprop Efisien oleh LeCun et al.

Ada dua alasan untuk pilihan itu (dengan asumsi Anda telah menormalkan data Anda, dan ini sangat penting):

  1. Memiliki gradien yang lebih kuat: karena data dipusatkan di sekitar 0, turunannya lebih tinggi. Untuk melihat ini, hitung turunan dari fungsi tanh dan perhatikan bahwa kisarannya (nilai output) adalah [0,1].

Kisaran fungsi tanh adalah [-1,1] dan bahwa fungsi sigmoid adalah [0,1]

  1. Menghindari bias dalam gradien. Ini dijelaskan dengan sangat baik di koran, dan perlu dibaca untuk memahami masalah ini.
jpmuc
sumber
Saya memiliki sedikit keraguan di koran yang Anda sarankan. Di halaman 14, "Ketika MLP berbagi bobot (mis: jaring konvolusional), tingkat pembelajaran harus dipilih sedemikian rupa sehingga proporsional dengan akar kuadrat dari koneksi yang berbagi bobot." Bisakah Anda jelaskan mengapa?
satya
pertanyaan ini sudah dijawab di sini stats.stackexchange.com/questions/47590/...
jpmuc
1
Itu pertanyaan yang sangat umum. Singkatnya: fungsi biaya menentukan apa yang harus dilakukan oleh jaringan saraf: klasifikasi atau regresi dan bagaimana. Jika Anda bisa mendapatkan salinan "Jaringan Saraf untuk Pengenalan Pola" oleh Christopher Bishop, itu akan bagus. Juga "Pembelajaran Mesin" oleh Mitchell memberi Anda penjelasan yang baik di tingkat yang lebih mendasar.
jpmuc
1
Maaf, Satya, saya biasanya cukup sibuk selama seminggu. Bagaimana Anda menormalkan data dengan tepat? en.wikipedia.org/wiki/Whitening_transformation Saya tidak begitu yakin apa masalah Anda. Cara termudah adalah dengan mengurangi mean dan kemudian menyamakannya dengan matriks kovarians. Evtl. Anda perlu menambahkan beberapa komponen untuk frekuensi tinggi (lihat transformasi ZCA dalam referensi di atas)
jpmuc
1
Terima kasih banyak juampa. Anda benar-benar banyak membantu saya. Bacaan yang disarankan sangat bagus. Saya sebenarnya sedang melakukan proyek penambangan data iklim. 50% dari fitur input saya adalah suhu (kisaran 200K-310K) dan 50% dari fitur input saya adalah nilai tekanan (kisaran 50000pa hingga 100000pa). Saya sedang melakukan pemutihan. Sebelum pca, apakah perlu menormalkan kembali ... Jika ya, bagaimana saya harus menormalkannya? Haruskah saya menormalkan sebelum mengurangi dengan cara berarti atau setelah mengurangi dengan cara? Saya mendapatkan hasil yang berbeda jika saya normalisasi dengan metode yang berbeda ...
satya
32

Terima kasih banyak @jpmuc! Terinspirasi oleh jawaban Anda, saya menghitung dan merencanakan turunan dari fungsi tanh dan fungsi sigmoid standar secara terpisah. Saya ingin berbagi dengan Anda semua. Inilah yang saya dapat. Ini adalah turunan dari fungsi tanh. Untuk input antara [-1,1], kami memiliki turunan antara [0,42, 1]. masukkan deskripsi gambar di sini

Ini adalah turunan dari fungsi sigmoid standar f (x) = 1 / (1 + exp (-x)). Untuk input antara [0,1], kami memiliki turunan antara [0,20, 0,25]. masukkan deskripsi gambar di sini

Rupanya fungsi tanh memberikan gradien yang lebih kuat.

Mina HE
sumber
6
Cara lain untuk melihat ini adalah bahwa σ (2x) sama dengan σ (x), tetapi dengan peregangan horizontal, faktor skala 1/2 (yaitu grafik yang sama tetapi dengan segala sesuatu tergencet ke arah sumbu y). Ketika Anda
menekannya
2
Saya tidak mengerti mengapa ini akan membuat perbedaan. Skala dan squashing akan acak untuk setiap node, dan (dengan offset dan bobot pada input dan output) keduanya akan menjadi pendekatan universal, konvergen ke hasil yang sama.
endolith