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)?
machine-learning
neural-networks
deep-learning
RockTheStar
sumber
sumber
Jawaban:
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.a≤0
sumber
Keuntungan:
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 ) = 0a a S′(a)=S(a)(1−S(a)) a S′(a)=S(a)(1−S(a))=1×(1−1)=0
Relu: cenderung meledakkan aktivasi (tidak ada mekanisme untuk membatasi output neuron, karena " " itu sendiri adalah output)a
sumber
$x$
menghasilkan .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 > 00 a<0 1 a>0
sumber
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.
sumber
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 ...
sumber
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:
sumber