Bagaimana memvisualisasikan / memahami apa yang dilakukan jaringan saraf?

37

Jaringan saraf sering diperlakukan sebagai "kotak hitam" karena strukturnya yang kompleks. Ini tidak ideal, karena sering bermanfaat untuk memiliki pemahaman intuitif tentang bagaimana model bekerja secara internal. Apa metode memvisualisasikan bagaimana jaringan saraf yang terlatih bekerja? Atau, bagaimana kita dapat mengekstrak deskripsi jaringan yang mudah dicerna (mis. Simpul tersembunyi ini terutama bekerja dengan input ini)?

Saya terutama tertarik pada dua jaringan feed-forward, tetapi juga ingin mendengar solusi untuk jaringan yang lebih dalam. Data input dapat berupa visual atau non-visual.

rm999
sumber
1
Berikut contoh yang bagus: playground.tensorflow.org
nobar

Jawaban:

12

Jaringan saraf kadang-kadang disebut "aproksimasi fungsi terdiferensiasi". Jadi yang dapat Anda lakukan adalah membedakan unit mana saja dengan unit lainnya untuk melihat apa hubungan mereka.

Anda dapat memeriksa seberapa sensitif kesalahan jaringan terhadap input tertentu juga dengan ini.

Lalu, ada sesuatu yang disebut "bidang reseptif", yang hanya merupakan visualisasi dari koneksi yang masuk ke unit tersembunyi. Ini membuatnya mudah untuk memahami apa yang dilakukan unit tertentu untuk data gambar, misalnya. Ini dapat dilakukan untuk level yang lebih tinggi juga. Lihat Memvisualisasikan Fitur Tingkat Tinggi dari Jaringan Jauh .

bayerj
sumber
13

Perkirakan pentingnya fitur dengan menabrak secara acak setiap nilai dari satu fitur, dan merekam bagaimana fungsi kebugaran Anda secara keseluruhan menurun.

x1,saya[0,1]rSebuahnd(0,1)-0,5R2

Kemudian rangking fitur Anda berdasarkan penurunan fungsi kebugaran, dan buat grafik batang yang cantik. Setidaknya beberapa fitur terpenting harus lulus pemeriksaan usus, mengingat pengetahuan Anda tentang domain masalah. Dan ini juga membuat Anda terkejut dengan fitur informatif yang mungkin tidak Anda duga.

Tes kepentingan fitur semacam ini berfungsi untuk semua model kotak-hitam, termasuk jaringan saraf dan ansambel CART besar. Dalam pengalaman saya, fitur penting adalah langkah pertama dalam memahami apa yang sebenarnya dilakukan model.

Someben
sumber
1
Terima kasih atas jawabannya; ini sebenarnya adalah sesuatu yang telah saya lakukan dan saya merasa sangat berguna. Namun dalam pertanyaan ini saya lebih mencari sesuatu yang terlihat di dalam jaringan daripada memperlakukannya sebagai kotak hitam.
rm999
2

Berikut ini adalah intuisi grafis untuk jenis jaringan saraf tertentu. Di akhir posting itu, ada tautan ke kode R yang menunjukkan visualisasi untuk masalah tertentu. Begini tampilannya:

masukkan deskripsi gambar di sini

Dimitriy V. Masterov
sumber
1

Musim gugur 2011 saya mengambil kursus Pembelajaran Mesin online gratis dari Standford yang diajarkan oleh Andrew Ng, dan kami memvisualisasikan jaringan saraf yang merupakan pendeteksi wajah. Outputnya adalah wajah generik. Saya ingin menyebutkan ini untuk kelengkapan, tetapi Anda tidak menyebutkan aplikasi semacam ini, jadi saya tidak akan menggali detailnya. :)

Andrew
sumber
Universitas adalah Stanford. Saya dapat menemukan Andrew Ng di web. Saya mendengar Dick DeVeaux memberikan ceramah tentang jaringan saraf mengklaim bahwa neuron bagian dari itu semacam menyembunyikan apa yang sebenarnya terjadi. itu hanyalah tipe lain dari nonliner classifier dan jika alih-alih melihatnya dari perspektif diagram, mereka lebih baik dipahami dengan menuliskan apa yang mereka lakukan secara aljabar. Saya harap saya mengingat ini dengan benar.
Michael R. Chernick
De Veaux dan Ungar, Pengantar singkat untuk jaring saraf 1997: "jaring saraf tampaknya ada di mana-mana akhir-akhir ini, dan setidaknya dalam periklanan mereka mampu melakukan segala sesuatu yang dapat dilakukan statistik tanpa semua kerepotan dan repot harus melakukan apa pun kecuali beli perangkat lunak. "
denis
0

Metode yang disebutkan di bawah ini diambil dari tautan ini , kunjungi situs untuk lebih jelasnya.

Mulai dengan gambar acak, yaitu, secara sewenang-wenang memberikan nilai ke piksel. "Selanjutnya, kita melakukan forward pass menggunakan gambar x ini sebagai input ke jaringan untuk menghitung aktivasi a_i (x) yang disebabkan oleh x pada beberapa neuron i di suatu tempat di tengah jaringan. Kemudian kita melakukan backward pass (melakukan backprop) untuk menghitung gradien a_i (x) sehubungan dengan aktivasi sebelumnya dalam jaringan. Pada akhir pass mundur kita dibiarkan dengan gradien ∂a_i (x) / ∂x , atau bagaimana mengubah warna setiap piksel ke meningkatkan aktivasi neuron i Kami melakukan hal itu dengan menambahkan αα fraksi kecil dari yang gradien untuk gambar.:

x ← x + α⋅∂a_i (x) / ∂x

Kami terus melakukan itu berulang kali hingga kami memiliki gambar x 'yang menyebabkan aktivasi tinggi neuron yang bersangkutan. "

LKB
sumber