Intuisi matematika untuk penggunaan Re-Lu di Machine Learning


10

Jadi, saat ini fungsi aktivasi yang paling umum digunakan adalah Re-Lu. Jadi saya menjawab pertanyaan ini. Apa tujuan dari fungsi aktivasi di Neural Networks? dan ketika menulis jawaban itu menurut saya, bagaimana tepatnya Re-Lu dapat memperkirakan fungsi non-linear?

Dengan definisi matematika murni, tentu saja, ini merupakan fungsi non-linear karena tikungan tajam, tetapi jika kita membatasi diri hanya pada bagian positif atau negatif dari sumbu x saja, maka liniernya di wilayah tersebut. Katakanlah kita mengambil seluruh sumbu x juga, kemudian juga agak linier (tidak dalam arti matematis yang ketat) dalam arti bahwa ia tidak dapat secara memuaskan mendekati fungsi lengkung seperti gelombang sinus ( 0 --> 90) dengan satu simpul lapisan tersembunyi yang dimungkinkan oleh sigmoid fungsi aktivasi.

Jadi apa intuisi di balik fakta bahwa Re-Lu digunakan dalam NN, memberikan kinerja yang memuaskan (saya tidak menanyakan tujuan Re-lu) meskipun mereka agak linier? Atau apakah fungsi-fungsi non linier seperti sigmoid dan tanh kadang-kadang dilempar ke tengah jaringan?

EDIT: Sesuai komentar @ Eka, Re-Lu memperoleh kemampuannya dari diskontinuitas yang bertindak di lapisan dalam Neural Net. Apakah ini berarti bahwa Re-Lu bagus selama kita menggunakannya di Deep NN's dan bukan NN yang dangkal?


2
Saya bukan ahli tetapi menemukan tautan ini quora.com/...
Eka

1
@ Eka tautan bagus .... tetapi mereka menyatakan fakta keras tanpa memberikan intuisi yang bagus
DuttaA

3
Ini dugaan; Kemampuan relu untuk memperkirakan fungsi-fungsi non-linear dapat merupakan hasil dari sifat diskontinuitasnya yaitu max(0,x)bertindak dalam lapisan dalam jaringan saraf. Ada penelitian terbuka di mana mereka menghitung fungsi-fungsi non-linear menggunakan jaringan linear yang dalam di sini adalah tautan blog.openai.com/nonlinear-computation-in-linear-networks
Eka

Jawaban:


2

Output dari jaringan ReLU selalu "linier" dan terputus-putus. Mereka dapat memperkirakan kurva, tetapi bisa membutuhkan banyak unit ReLU. Namun, pada saat yang sama output mereka akan sering diartikan sebagai output yang berkelanjutan dan melengkung.

Bayangkan Anda melatih jaringan saraf yang mengambil x 3 dan output | x 3 | (yang mirip dengan parabola). Ini mudah bagi fungsi ReLU untuk melakukannya dengan sempurna. Dalam hal ini hasilnya melengkung.

Tapi itu sebenarnya tidak melengkung. Input di sini 'linear' terkait dengan output. Semua yang dilakukan jaringan saraf adalah mengambil input dan mengembalikan nilai absolut dari input. Ini melakukan fungsi 'linear', non-melengkung. Anda hanya dapat melihat bahwa outputnya non-linear ketika Anda membuat grafik terhadap nilai-x asli (x dalam x 3 ).

Jadi ketika kita memplot output pada grafik dan terlihat melengkung, biasanya karena kita mengaitkan nilai x yang berbeda dengan input, dan kemudian memplot output sebagai koordinat y dalam kaitannya dengan nilai x tersebut.

Oke, jadi Anda ingin tahu bagaimana Anda akan memodelkan sin (x) dengan lancar menggunakan ReLU. Caranya adalah Anda tidak ingin memasukkan x sebagai input. Alih-alih meletakkan sesuatu yang melengkung dalam kaitannya dengan x sebagai input, seperti x 3 . Jadi inputnya adalah x 3 dan outputnya adalah sin (x). Alasan mengapa ini akan berhasil adalah karena ia tidak menghitung sinus input - itu menghitung sinus akar kubus input. Itu tidak akan pernah bisa dengan lancar menghitung sinus dari input itu sendiri. Untuk membuat grafik sin keluaran (x), masukkan x asli sebagai koordinat x (jangan masukkan input) dan masukkan output sebagai koordinat y.


Pendekatan yang Anda berikan akan membutuhkan banyak relus adalah tebakan saya ... Anda mendiskreditkan kurva ... Jadi untuk kurva yang lebih halus kita memerlukan lebih banyak relus ... Benar?
DuttaA

Tidak juga, IMO. Jika Anda mengambil sekelompok kombinasi linier berbeda dari input di lapisan pertama maka Anda akan memiliki banyak jenis kurva yang tersedia untuk digabungkan di lapisan berikutnya, sekali lagi dengan kombinasi yang lebih linier. Ini bisa menghasilkan output yang sempurna. Bayangkan misalnya jika Anda memotong dan menempel kurva hanya pada ekstrema lokal mereka. Maka kurva yang dihasilkan akan hampir sempurna kontinu. Ini juga tergantung seberapa baik Anda ingin output menjadi. Memang benar bahwa ada fungsi aktivasi yang lebih baik daripada ReLU karena linearitasnya yang berlebihan (mis. ELU)
Gambar default

Saya tidak dapat memahami bagaimana kita akan memiliki banyak kurva berbeda yang tersedia oleh Re-lu sederhana. Itu hanya akan menjadi kombinasi dari 2 garis lurus
DuttaA

@Dtata Garis lurus hanyalah fungsi pemetaan. Anda dapat memetakan kurva ke kurva menggunakan pemetaan Relu. Yang Anda butuhkan adalah memiliki kurva sebagai data input Anda.
Gambar default

@Dtata Garis nomor input adalah garis lurus dan garis nomor output adalah garis lurus, tetapi itu tidak mengatakan apa-apa tentang bentuk data pada garis angka. Bidang xy adalah ruang euclidean persegi panjang, tetapi Anda dapat memiliki kurva di dalam ruang persegi panjang.
Gambar default
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.