Mengapa tanh hampir selalu lebih baik daripada sigmoid sebagai fungsi aktivasi?

33

Dalam kursus Neural Networks dan Deep Learning Andrew Ng di Coursera ia mengatakan bahwa menggunakan tanh hampir selalu lebih disukai daripada menggunakan sigmoid .

Alasan yang dia berikan adalah bahwa output menggunakan tanh pusat sekitar 0 daripada sigmoid 's 0,5, dan ini "membuat belajar untuk lapisan berikutnya sedikit lebih mudah".

  1. Mengapa memusatkan pembelajaran kecepatan keluaran aktivasi? Saya berasumsi dia merujuk ke lapisan sebelumnya sebagai pembelajaran terjadi selama backprop?

  2. Apakah ada fitur lain yang membuat tanh lebih disukai? Akankah gradien yang lebih curam menunda gradien yang hilang?

  3. Apakah ada situasi di mana sigmoid akan lebih?

Matematika-ringan, jawaban intuitif lebih disukai.

Tom Hale
sumber
13
Fungsi sigmoid berbentuk S (karena itu namanya). Agaknya Anda berbicara tentang fungsi logistik . Terlepas dari skala dan lokasi, keduanya pada dasarnya sama: . Jadi pilihan sebenarnya adalah apakah Anda ingin output dalam interval atau interval logistik(x)=1ex1+ex(-1,1)logistic(x)=12+12tanh(x2)(1,1)(0,1)
Henry

Jawaban:

21

Yan LeCun dan yang lainnya berdebat dalam BackProp Efisien itu

Konvergensi biasanya lebih cepat jika rata-rata setiap variabel input selama set pelatihan mendekati nol. Untuk melihat ini, pertimbangkan kasus ekstrim di mana semua input positif. Bobot ke simpul tertentu dalam lapisan berat pertama diperbarui dengan jumlah yang sebanding dengan mana adalah kesalahan (skalar) pada simpul itu dan adalah vektor input (lihat persamaan (5) dan (10)). Ketika semua komponen vektor input positif, semua pembaruan bobot yang dimasukkan ke dalam simpul akan memiliki tanda yang sama (yaitu tanda ( )). Akibatnya, bobot ini hanya bisa berkurang atau bertambah bersamaδxδxδuntuk pola input yang diberikan. Jadi, jika vektor bobot harus berubah arah, ia hanya dapat melakukannya dengan zig-zag yang tidak efisien dan karenanya sangat lambat.

Inilah sebabnya mengapa Anda harus menormalkan input Anda sehingga rata-rata adalah nol.

Logika yang sama berlaku untuk lapisan tengah:

Heuristik ini harus diterapkan pada semua layer yang berarti bahwa kita ingin rata-rata output dari sebuah node mendekati nol karena output ini adalah input ke layer berikutnya.

Postscript @craq menegaskan bahwa kutipan ini tidak masuk akal untuk ReLU (x) = maks (0, x) yang telah menjadi fungsi aktivasi yang sangat populer. Sementara ReLU menghindari masalah zigzag pertama yang disebutkan oleh LeCun, itu tidak menyelesaikan poin kedua ini oleh LeCun yang mengatakan penting untuk mendorong rata-rata ke nol. Saya ingin tahu apa yang dikatakan LeCun tentang ini. Bagaimanapun, ada makalah yang disebut Batch Normalisasi , yang dibangun di atas karya LeCun dan menawarkan cara untuk mengatasi masalah ini:

Sudah lama diketahui (LeCun et al., 1998b; Wiesler & Ney, 2011) bahwa pelatihan jaringan menyatu lebih cepat jika inputnya diputihkan - yaitu, secara linear ditransformasikan menjadi nol rata-rata dan varian unit, dan terkait dengan dekorasi. Karena setiap lapisan mengamati input yang dihasilkan oleh lapisan di bawah ini, akan menguntungkan untuk mencapai pemutihan yang sama dari input setiap lapisan.


Omong-omong, video ini oleh Siraj menjelaskan banyak tentang fungsi aktivasi dalam 10 menit yang menyenangkan.


@elkout mengatakan, "Alasan sebenarnya mengapa tanh lebih disukai dibandingkan dengan sigmoid (...) adalah bahwa turunan dari tanh lebih besar daripada turunan dari sigmoid."

Saya pikir ini bukan masalah. Saya tidak pernah melihat ini menjadi masalah dalam literatur. Jika itu mengganggu Anda bahwa satu turunan lebih kecil dari yang lain, Anda bisa mengukurnya.

Fungsi logistik memiliki bentuk σ(x)=11+ekx . Biasanya, kami menggunakank=1, tetapi tidak ada yang melarang Anda menggunakan nilai lain untukkuntuk membuat turunan Anda lebih luas, jika itu masalah Anda.


Nitpick: tanh juga merupakan fungsi sigmoid . Setiap fungsi dengan bentuk S adalah sigmoid. Apa yang kalian sebut sigmoid adalah fungsi logistik. Alasan mengapa fungsi logistik lebih populer adalah alasan historis. Ini telah digunakan untuk waktu yang lebih lama oleh ahli statistik. Selain itu, beberapa merasa lebih masuk akal secara biologis.

Ricardo Cruz
sumber
1
σ ( x ) = σ ( x ) ( 1 - σ ( x ) ) 0,25 0 < σ ( x ) < 1maxxσ(x)<maxxtanh(x)
σ(x)=σ(x)(1σ(x))0.25
0<σ(x)<1
tanh(x)=sech2(x)=2exp(x)+exp(x))1.0
Terlepas dari itu saya katakan bahwa dalam kebanyakan kasus turunan dari tanh lebih besar daripada turunan dari sigmoid. Ini sebagian besar terjadi ketika kita berada di sekitar 0. Anda dipersilakan untuk melihat tautan ini dan pada jawaban yang jelas yang diberikan di sini pertanyaan yang juga menyatakan bahwa derivasi biasanya lebih besar daripada derivasi . tanhsigmoid
ekoulier
tunggu ... kedengarannya masuk akal, tetapi jika lapisan tengah harus memiliki output rata-rata nol, kenapa ReLU bekerja dengan sangat baik? Bukankah itu kontradiksi?
craq
@ekoulier, turunan dari yang lebih besar dari sigmoid adalah bukan masalah. Anda bisa mengaturnya jika itu mengganggu Anda. tanhsigmoid
Ricardo Cruz
@craq, poin bagus, saya pikir itu memang cacat dalam argumen LeCun. Saya telah menambahkan tautan ke kertas normalisasi batch yang membahas lebih banyak tentang masalah itu dan bagaimana cara memperbaikinya. Sayangnya, makalah itu tidak membandingkan relu dengan tanh, hanya membandingkan relu dengan logistik (sigmoid).
Ricardo Cruz
14

Bukan berarti itu lebih baik daripada . Dengan kata lain, bukan pusat fungsinya aktivasi yang membuatnya lebih baik. Dan ide di balik kedua fungsi itu sama, dan mereka juga berbagi "tren" yang sama. Tidak perlu dikatakan bahwa fungsi tanh disebut versi bergeser dari fungsi sigmoid .sigmoidtanhsigmoid

Alasan sebenarnya mengapa lebih disukai dibandingkan dengan sigmoid , terutama ketika datang ke data besar ketika Anda biasanya berjuang untuk menemukan dengan cepat minimum lokal (atau global), adalah bahwa turunan dari tanh lebih besar daripada turunan dari sigmoid . Dengan kata lain, Anda meminimalkan fungsi biaya Anda lebih cepat jika Anda menggunakan tanh sebagai fungsi aktivasi.tanhsigmoidtanhsigmoidtanh

Tetapi mengapa tangen hiperbolik memiliki turunan yang lebih besar? Hanya untuk memberi Anda intuisi yang sangat sederhana, Anda dapat mengamati grafik berikut:

Sigmoid vs Hiperbolik Tangent

Fakta bahwa jangkauannya antara -1 dan 1 dibandingkan dengan 0 dan 1, membuat fungsinya menjadi lebih nyaman untuk jaringan saraf. Terlepas dari itu, jika saya menggunakan beberapa matematika, saya dapat membuktikan bahwa:

tanhx=2σ(2x)1

|tanh(x)x|>|σ(x)x|

ekoulier
sumber
0
2
tanhsigmoidtanh
2xsigmoid(x) - 0.52xtanh
2x
3

Menjawab bagian dari pertanyaan sejauh ini belum terselesaikan:

Andrew Ng mengatakan bahwa menggunakan fungsi logistik (umumnya dikenal sebagai sigmoid) benar-benar hanya masuk akal di lapisan akhir dari jaringan klasifikasi biner.

01(0,1)tanh

Tom Hale
sumber
Untuk hasilnya, fungsi logistik masuk akal jika Anda ingin menghasilkan probabilitas, kita semua bisa menyetujuinya. Apa yang sedang dibahas adalah mengapa tanh lebih disukai daripada fungsi logistik sebagai aktivasi untuk lapisan tengah.
Ricardo Cruz
Bagaimana Anda tahu itulah yang dimaksudkan OP? Sepertinya dia mengajukan pertanyaan umum.
Tom Hale
2

Itu semua pada dasarnya tergantung pada turunan dari fungsi aktivasi, masalah utama dengan fungsi sigmoid adalah bahwa nilai maksimum turunannya adalah 0,25, ini berarti bahwa pembaruan nilai W dan b akan menjadi kecil.

Fungsi tanh di sisi lain, memiliki turunan hingga 1,0, membuat pembaruan W dan b jauh lebih besar.

Ini membuat fungsi tanh hampir selalu lebih baik sebagai fungsi aktivasi (untuk lapisan tersembunyi) daripada fungsi sigmoid.

Untuk membuktikannya sendiri (setidaknya dalam kasus sederhana), saya membuat kode jaringan saraf sederhana dan menggunakan sigmoid, tanh dan relu sebagai fungsi aktivasi, kemudian saya memplot bagaimana nilai kesalahan berkembang dan inilah yang saya dapatkan.

masukkan deskripsi gambar di sini

Notebook lengkap yang saya tulis ada di sini https://www.kaggle.com/moriano/a-showcase-of-how-relus-can-speed-up-the-learning

Jika ini membantu, berikut adalah grafik turunan dari fungsi tanh dan yang sigmoid (perhatikan sumbu vertikal!)

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Juan Antonio Gomez Moriano
sumber
α
Tidakkah Anda berisiko tidak memiliki kurva belajar yang stabil dengan tingkat pembelajaran yang lebih tinggi?
Juan Antonio Gomez Moriano
Nah, jika turunannya lebih stabil, maka meningkatkan tingkat pembelajaran cenderung tidak mengganggu estimasi.
Cliff AB
Itu poin yang adil, apakah Anda memiliki tautan di mana saya dapat mempelajari lebih lanjut tentang ini?
Juan Antonio Gomez Moriano