Apa kelebihan ReLU dibanding fungsi sigmoid di jaringan saraf dalam?

141

Keadaan seni non-linearitas adalah dengan menggunakan unit linear yang diperbaiki (ReLU) alih-alih fungsi sigmoid dalam jaringan saraf dalam. Apa kelebihannya?

Saya tahu bahwa melatih jaringan ketika ReLU digunakan akan lebih cepat, dan itu lebih terinspirasi secara biologis, apa kelebihan lainnya? (Yaitu, ada kerugian menggunakan sigmoid)?

RockTheStar
sumber
Saya mendapat kesan bahwa membiarkan non-linearitas ke dalam jaringan Anda adalah keuntungan. Tetapi saya tidak melihat bahwa di salah satu jawaban di bawah ini ...
Monica Heddneck
2
@MonicaHeddneck baik ReLU dan sigmoid adalah nonlinier ...
Antoine

Jawaban:

130

h=max(0,a)a=Wx+b

Salah satu manfaat utama adalah berkurangnya kemungkinan gradien menghilang. Ini muncul ketika . Dalam rezim ini gradien memiliki nilai konstan. Sebaliknya, gradien sigmoids menjadi semakin kecil karena nilai absolut x meningkat. Gradien konstan hasil ReLUs dalam pembelajaran lebih cepat.a>0

Manfaat lain dari ReLU adalah sparsity. Sparsity muncul ketika . Semakin banyak unit yang ada di lapisan semakin sedikit representasi yang dihasilkan. Sigmoids di sisi lain selalu cenderung menghasilkan beberapa nilai tidak nol yang menghasilkan representasi padat. Representasi yang jarang tampaknya lebih bermanfaat daripada representasi yang padat.a0

DaemonMaker
sumber
2
Ketika Anda mengatakan gradien, maksud Anda sehubungan dengan bobot atau input x? @DaemonMaker
MAS
4
Sehubungan dengan bobot. Algoritma pembelajaran berbasis gradien selalu mengambil gradien sehubungan dengan parameter pelajar, yaitu bobot dan bias dalam NN.
DaemonMaker
2
Apa yang Anda maksud dengan representasi "padat" dan "jarang"? Permintaan ke google "jarang representasi jaringan saraf" tampaknya tidak datang dengan sesuatu yang relevan.
Hi-Angel
6
"Representasi yang jarang tampaknya lebih bermanfaat daripada representasi yang padat." Bisakah Anda memberikan sumber atau penjelasan?
Rohan Saxena
1
Saya tidak mengerti bagaimana jawaban ini benar. "Kemungkinan penurunan gradien untuk menghilang" meninggalkan sesuatu yang diinginkan. ReLu adalah NOL untuk cukup kecil . Selama belajar, Anda gradien AKAN menghilang untuk neuron tertentu ketika Anda berada di rezim ini. Bahkan, itu jelas tidak dapat dihindari, karena kalau tidak jaringan Anda akan linear. Normalisasi batch memecahkan ini sebagian besar. Ini bahkan tidak menyebutkan alasan paling penting: ReLu dan gradiennya. sangat cepat untuk dihitung, dibandingkan dengan sigmoid. x
Alex R.
65

Keuntungan:

  • Sigmoid: tidak meledakkan aktivasi
  • Relu: gradien tidak hilang
  • Relu: Lebih komputasi secara komputasi daripada fungsi seperti Sigmoid karena Relu hanya perlu memilih max (0, ) dan tidak melakukan operasi eksponensial yang mahal seperti pada Sigmoidsx
  • Relu: Dalam praktiknya, jaringan dengan Relu cenderung menunjukkan kinerja konvergensi yang lebih baik daripada sigmoid. ( Krizhevsky et al. )

Kerugian:

  • Sigmoid: cenderung lenyap gradien (penyebab ada mekanisme untuk mengurangi gradien sebagai " " peningkatan, di mana " " adalah masukan dari fungsi sigmoid Gradient dari sigmoid:. . Ketika " " tumbuh menjadi besar tanpa batas, ).a S ( a ) = S ( a ) ( 1 - S ( a ) ) a S ( a ) = S ( a ) ( 1 - S ( a ) ) = 1 × ( 1 - 1 ) = 0aaS(a)=S(a)(1S(a))aS(a)=S(a)(1S(a))=1×(11)=0

  • Relu: cenderung meledakkan aktivasi (tidak ada mekanisme untuk membatasi output neuron, karena " " itu sendiri adalah output)a

  • Relu: Masalah Relu yang Sekarat - jika terlalu banyak aktivasi mendapatkan di bawah nol maka sebagian besar unit (neuron) dalam jaringan dengan Relu hanya akan menghasilkan nol, dengan kata lain, mati dan dengan demikian melarang pembelajaran. (Ini dapat ditangani, sampai batas tertentu, dengan menggunakan Leaky-Relu sebagai gantinya.)
Bill Ancalagon si hitam
sumber
7
Anda mungkin merasa terbantu bahwa Anda dapat menggunakan penyusunan matematika dengan Lateks dengan meletakkan tanda dolar di sekitar persamaan Anda, misalnya $x$menghasilkan . x
Silverfish
Relu: gradien tidak hilang. Hah? untuk semua . x < - b / aRelu(ax+b)=0x<b/a
Alex R.
40

Hanya melengkapi jawaban lain:

Gradien yang Hilang

Jawaban lainnya benar untuk menunjukkan bahwa semakin besar input (dalam nilai absolut) semakin kecil gradien fungsi sigmoid. Tapi, mungkin efek yang lebih penting adalah bahwa turunan dari fungsi sigmoid SELALU lebih kecil dari satu . Bahkan paling banyak 0,25!

Sisi buruknya adalah jika Anda memiliki banyak layer, Anda akan mengalikan gradien ini, dan produk dari banyak nilai yang lebih kecil dari 1 bernilai nol dengan sangat cepat.

Karena keadaan seni untuk Pembelajaran Jauh telah menunjukkan bahwa lebih banyak lapisan sangat membantu, maka kelemahan fungsi Sigmoid ini adalah pembunuh game. Anda tidak bisa melakukan Deep Learning dengan Sigmoid.

Di sisi lain gradien fungsi ReLu adalah untuk atau untuk . Itu berarti bahwa Anda dapat meletakkan layer sebanyak yang Anda suka, karena mengalikan gradien tidak akan hilang atau meledak.a < 0 1 a > 00a<01a>0

Guilherme de Lazari
sumber
10
Ini jawaban yang saya cari. Ketika orang berbicara tentang "menghilangnya gradien" orang tidak bisa berhenti bertanya-tanya "Kemiringan ReLu tepat 0 untuk setengah dari jangkauannya. Bukankah itu 'menghilang'?" Cara Anda menggambarkan masalah dengan mengingatkan kami bahwa gradien dikalikan banyak lapisan, membawa banyak kejelasan.
Boris Gorelik
3
@ guilherme-de-lazari menyarankan koreksi di baris terakhir - nilai relu adalah untuk> 0 tetapi Anda berbicara tentang gradien yaitu 1 untuk a> 0
saurabh
4
Jika ini adalah alasan utama, maka tidak bisakah kita mengubah skala sigmoid menjadi 1 / (1 + exp (-4x))? Maka turunannya adalah paling banyak 1 (atau skala lebih banyak lagi, untuk memberi kita opsi di atas dan di bawah 1). Saya menduga ini akan melakukan jauh lebih buruk, karena menyelamatkan juga mengurangi area di mana turunannya dapat dibedakan dari 0. Tapi saya tidak yakin jawaban ini menceritakan kisah lengkapnya.
Peter
5
Jawaban ini tidak masuk akal. Turunan dari sigmoid dengan parameter konstan 1 kurang dari 1. Tapi lebih umum itu , yang dapat memiliki turunan sewenang-wenang besar (hanya mengambil harus benar-benar besar, sehingga sigmoid cepat berubah dari 0 ke 1). a1/(1+exp(ax))a
Alex R.
7
Anda juga BISA melakukan pembelajaran mendalam dengan sigmoids, Anda hanya perlu menormalkan input, misalnya melalui Batch Normalisasi. Ini akan memusatkan input Anda untuk menghindari menjenuhkan sigmoid tersebut. Dalam makalah asli tentang Normalisasi Batch, jaringan saraf aktivasi sigmoid hampir setara dengan ReLus: arxiv.org/pdf/1502.03167.pdf
Alex R.
7

Keuntungan untuk ReLU selain menghindari masalah gradien hilang adalah bahwa waktu menjalankannya jauh lebih rendah. maks (0, a) berjalan jauh lebih cepat daripada fungsi sigmoid apa pun (fungsi logistik misalnya = 1 / (1 + e ^ (- a)) yang menggunakan eksponen yang komputasinya lambat jika sering dilakukan). Ini berlaku untuk propagasi umpan maju dan mundur karena gradien ReLU (jika a <0, = 0 else = 1) juga sangat mudah untuk dihitung dibandingkan dengan sigmoid (untuk kurva logistik = e ^ a / ((1 + e ^ a) ^ 2)).

Meskipun ReLU memang memiliki kelemahan sel sekarat yang membatasi kapasitas jaringan. Untuk mengatasinya cukup gunakan varian ReLU seperti ReLU yang bocor, ELU, dll jika Anda melihat masalah yang dijelaskan di atas.

Korban
sumber
1
+1. Ini adalah satu-satunya jawaban yang benar di sini. Anda juga dapat menggunakan normalisasi batch untuk memusatkan input untuk menangkal neuron mati.
Alex R.
2

Sepotong jawaban ekstra untuk diselesaikan pada perdebatan kinerja Sparse vs Dense .

Jangan memikirkan NN lagi, pikirkan saja operasi aljabar dan matriks linier, karena perbanyakan maju dan mundur adalah serangkaian operasi matriks.

Sekarang ingat bahwa ada banyak operator yang dioptimalkan untuk diterapkan ke matriks jarang dan dengan demikian mengoptimalkan operasi-operasi di jaringan kami dapat secara dramatis meningkatkan kinerja algoritma.

Saya harap itu bisa membantu beberapa dari kalian ...

Michael B
sumber
1

Manfaat utama adalah bahwa turunan dari ReLu adalah 0 atau 1, jadi mengalikannya dengan itu tidak akan menyebabkan bobot yang lebih jauh dari hasil akhir dari fungsi kerugian untuk menderita masalah gradien hilang:

masukkan deskripsi gambar di sini

David Refaeli
sumber