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.
Jawaban:
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 .
sumber
Perkirakan pentingnya fitur dengan menabrak secara acak setiap nilai dari satu fitur, dan merekam bagaimana fungsi kebugaran Anda secara keseluruhan menurun.
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.
sumber
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:
sumber
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. :)
sumber
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. "
sumber