Bagaimana memahami intuisi geometri dari cara kerja jaringan saraf?

8

Saya telah mempelajari teori di balik JST akhir-akhir ini dan saya ingin memahami 'keajaiban' di balik kemampuan klasifikasi multi-kelas non-linear. Ini membawa saya ke situs web ini yang melakukan pekerjaan dengan baik untuk menjelaskan secara geometris bagaimana perkiraan ini dicapai.

Inilah cara saya memahaminya (dalam 3D): Lapisan tersembunyi dapat dianggap sebagai keluaran fungsi langkah 3D (atau fungsi menara) yang terlihat seperti ini:

Fungsi menara

Penulis menyatakan bahwa beberapa menara seperti itu dapat digunakan untuk memperkirakan fungsi sewenang-wenang, misalnya:

masukkan deskripsi gambar di sini

Ini tampaknya masuk akal, namun konstruksi penulis agak dibuat-buat untuk memberikan beberapa intuisi di balik konsep tersebut.

Namun, bagaimana tepatnya hal ini dapat divalidasi mengingat JST yang sewenang-wenang? Inilah yang ingin saya ketahui / pahami:

  1. AFAIK aproksimasi adalah aproksimasi yang halus tetapi 'intuisi' ini tampaknya memberikan aproksimasi terpisah, apakah itu benar?
  2. Jumlah menara tampaknya didasarkan pada jumlah lapisan tersembunyi - menara di atas dibuat sebagai hasil dari dua lapisan tersembunyi. Bagaimana saya bisa memverifikasi ini (dengan contoh dalam 3d) dengan hanya satu lapisan tersembunyi?
  3. Menara dibuat dengan beberapa bobot dipaksa untuk nol tetapi saya belum melihat ini menjadi kasus dengan beberapa JST yang saya mainkan. Apakah ini benar-benar fungsi menara? Bisakah itu sesuatu dengan sisi 4 hingga dan hampir mendekati lingkaran? (Penulis mengatakan itu masalahnya tetapi membiarkannya sebagai studi mandiri).n

Saya benar-benar ingin memahami kemampuan aproksimasi ini dalam 3D untuk setiap fungsi 3D sewenang-wenang bahwa JST dapat didekati dengan satu lapisan tersembunyi - Saya ingin melihat bagaimana perkiraan ini terlihat untuk merumuskan intuisi untuk beberapa dimensi?

Inilah yang ada dalam pikiran saya yang saya pikir dapat membantu:

  1. Ambil fungsi 3D sewenang-wenang seperti .f(x1,x2)=x12+x22+3
  2. Hasilkan satu set pelatihan dari katakanlah 1.000 titik data di mana banyak titik ada di kurva beberapa di atas dan beberapa di bawah. Yang di kurva ditandai sebagai "kelas positif" (1) dan yang bukan sebagai "kelas negatif" (0)(x1,x2)
  3. Mengumpankan data ini ke JST dan memvisualisasikan perkiraan dengan satu lapisan tersembunyi (dengan sekitar 2-6 neuron).

Apakah konstruksi ini benar? Apakah ini akan berhasil? Bagaimana cara saya melakukan ini? Saya belum mahir dengan back-propagation untuk mengimplementasikan ini sendiri dan saya sedang mencari kejelasan dan arah dalam hal ini - contoh yang ada menunjukkan ini akan ideal.

PhD
sumber
1
Ada posting blog yang sangat bagus tentang topik ini di sini: colah.github.io/posts/2014-03-NN-Manifolds-Topology
Sycorax mengatakan Reinstate Monica
@ user777 - Ya, itu adalah tautan "lain" saya bersama dengan yang ada di pos dan karena alasan tertentu saya lupa mencantumkannya :)
PhD

Jawaban:

8

Ada dua artikel besar baru-baru ini tentang beberapa sifat geometris dari jaringan saraf yang dalam dengan linearitas piecewise linear (yang akan mencakup aktivasi ReLU):

  1. Tentang Jumlah Wilayah Linear dari Jaringan Saraf Tiruan oleh Montufar, Pascanu, Cho dan Bengio.
  2. Tentang sejumlah wilayah respons dari jaringan umpan maju dalam dengan aktivasi linear sepotong demi sepotong oleh Pascanu, Montufar dan Bengio.

Mereka memberikan beberapa teori dan ketelitian yang sangat dibutuhkan dalam hal jaringan saraf.

Analisis mereka berpusat pada gagasan bahwa:

jaringan yang dalam mampu memisahkan ruang input mereka menjadi daerah respons yang lebih linier secara eksponensial daripada rekan-rekan dangkal mereka, meskipun menggunakan jumlah unit komputasi yang sama.

Dengan demikian kita dapat menginterpretasikan jaringan saraf yang dalam dengan aktivasi linier piecewise sebagai mempartisi ruang input menjadi sekelompok wilayah, dan pada masing-masing wilayah terdapat beberapa permukaan linear.

Dalam grafik yang telah Anda referensikan, perhatikan bahwa berbagai (x, y) -region memiliki hypersurfaces linier atas mereka (tampaknya bidang miring atau bidang datar). Jadi kami melihat hipotesis dari dua artikel di atas beraksi dalam grafik referensi Anda.

Selanjutnya mereka menyatakan (penekanan dari rekan penulis):

jaringan yang dalam mampu mengidentifikasi sejumlah lingkungan input eksponensial dengan memetakannya ke output umum dari beberapa lapisan tersembunyi perantara. Perhitungan yang dilakukan pada aktivasi lapisan perantara ini direplikasi berkali-kali, sekali di setiap lingkungan yang diidentifikasi. Ini memungkinkan jaringan untuk menghitung fungsi yang terlihat sangat kompleks bahkan ketika mereka didefinisikan dengan parameter yang relatif sedikit.

Pada dasarnya ini adalah mekanisme yang memungkinkan jaringan yang dalam untuk memiliki representasi fitur yang sangat kuat dan beragam meskipun memiliki jumlah parameter yang lebih sedikit daripada rekan-rekan mereka yang dangkal. Secara khusus, jaringan saraf yang dalam dapat mempelajari jumlah eksponensial dari daerah linier ini. Ambil contoh, Teorema 8 dari makalah referensi pertama, yang menyatakan:

Teorema 8: Jaringan maksimum dengan lapisan lebar dan peringkat dapat menghitung fungsi dengan setidaknya daerah linier.Ln0kkL1kn0

Ini lagi untuk jaringan saraf yang dalam dengan aktivasi linier piecewise, seperti ReLU misalnya. Jika Anda menggunakan aktivasi mirip sigmoid, Anda akan memiliki hypersurfaces yang tampak lebih sinusoidal. Banyak peneliti sekarang menggunakan ReLUs atau beberapa variasi ReLUs (ReLUs bocor, PReLUs, ELUs, RReLUs, daftar berjalan terus) karena struktur linier piecewise mereka memungkinkan untuk backpropagation gradien yang lebih baik vs unit sigmoidal yang dapat jenuh (memiliki sangat datar / daerah asimptotik) dan secara efektif membunuh gradien.

Hasil eksponensial ini sangat penting, jika tidak linearitas sambungan mungkin tidak dapat secara efisien mewakili jenis fungsi nonlinier yang harus kita pelajari ketika datang ke visi komputer atau tugas pembelajaran mesin keras lainnya. Namun, kami memiliki hasil eksponensial ini dan oleh karena itu jaringan yang dalam ini (secara teori) dapat mempelajari segala macam nonlinier dengan memperkirakannya dengan sejumlah besar wilayah linier.

Adapun pertanyaan Anda tentang hypersurface: Anda benar-benar dapat mengatur masalah regresi di mana jaring yang dalam Anda mencoba mempelajari . Ini sama saja dengan hanya menggunakan jaring dalam untuk menyiapkan masalah regresi, banyak paket pembelajaran mendalam dapat melakukan ini, tidak ada masalah.y=f(x1,x2)

Jika Anda hanya ingin menguji intuisi Anda, ada banyak paket pembelajaran mendalam yang tersedia hari ini: Theano (Lasagna, No Learn dan Keras dibangun di atasnya), TensorFlow, sekelompok orang lain saya yakin saya akan pergi di luar. Paket pembelajaran mendalam ini akan menghitung backpropagation untuk Anda. Namun, untuk masalah skala yang lebih kecil seperti yang Anda sebutkan itu adalah ide yang baik untuk mengkodekan backpropagation sendiri, cukup lakukan sekali, dan pelajari cara gradien memeriksanya. Tetapi seperti yang saya katakan, jika Anda hanya ingin mencobanya dan memvisualisasikannya, Anda dapat memulai dengan cukup cepat dengan paket pembelajaran yang mendalam ini.

Jika seseorang dapat melatih jaringan dengan benar (kami menggunakan cukup titik data, menginisialisasi dengan benar, pelatihan berjalan dengan baik, ini adalah seluruh masalah lain yang jujur), maka satu cara untuk memvisualisasikan apa yang telah dipelajari jaringan kami, dalam hal ini , sebuah hypersurface, adalah hanya membuat grafik hypersurface kami di atas xy-mesh atau grid dan memvisualisasikannya.

Jika intuisi di atas benar, maka menggunakan jaring dalam dengan ReLU, jaring dalam kita akan mempelajari sejumlah daerah eksponensial, masing-masing daerah memiliki permukaan linearnya sendiri. Tentu saja, intinya adalah bahwa karena kita memiliki banyak secara eksponensial, pendekatan linier dapat menjadi sangat baik dan kita tidak merasakan ketimpangan dari semuanya, mengingat bahwa kita menggunakan jaringan yang dalam / cukup besar.

AI indie
sumber