Versi tiga kalimat:
Setiap lapisan dapat menerapkan fungsi apa pun yang Anda inginkan ke lapisan sebelumnya (biasanya transformasi linear diikuti oleh squashing nonlinearity).
Tugas lapisan tersembunyi adalah mengubah input menjadi sesuatu yang dapat digunakan lapisan keluaran.
Lapisan output mengubah aktivasi lapisan tersembunyi ke skala apa pun yang Anda inginkan.
Seperti Anda 5:
Jika Anda ingin komputer memberi tahu Anda jika ada bus dalam gambar, komputer mungkin akan lebih mudah jika memiliki alat yang tepat.
Jadi pendeteksi bus Anda mungkin terbuat dari pendeteksi roda (untuk membantu memberi tahu Anda bahwa itu kendaraan) dan pendeteksi kotak (karena bus berbentuk seperti kotak besar) dan pendeteksi ukuran (untuk memberitahu Anda bahwa terlalu besar untuk menjadi mobil) ). Ini adalah tiga elemen dari lapisan tersembunyi Anda: mereka bukan bagian dari gambar mentah, mereka adalah alat yang Anda dirancang untuk membantu Anda mengidentifikasi bus.
Jika ketiga detektor itu hidup (atau mungkin jika mereka sangat aktif), maka ada kemungkinan Anda memiliki bus di depan Anda.
Jaring saraf bermanfaat karena ada alat yang bagus (seperti backpropagation) untuk membangun banyak detektor dan menyatukannya.
Seperti kamu sudah dewasa
Jaringan saraf umpan maju menerapkan serangkaian fungsi pada data. Fungsi yang tepat akan tergantung pada jaringan saraf yang Anda gunakan: paling sering, fungsi-fungsi ini masing-masing menghitung transformasi linear dari lapisan sebelumnya, diikuti oleh non-linear squashing. Kadang-kadang fungsi akan melakukan sesuatu yang lain (seperti menghitung fungsi logis dalam contoh Anda, atau rata-rata lebih dari piksel yang berdekatan dalam suatu gambar). Jadi peran dari berbagai lapisan dapat bergantung pada fungsi apa yang sedang dihitung, tetapi saya akan mencoba untuk menjadi sangat umum.
Mari kita sebut vektor input , aktivasi lapisan tersembunyi , dan aktivasi keluaran . Anda memiliki beberapa fungsi yang memetakan dari ke dan fungsi lain yang memetakan dari ke . xhyfxhghy
Jadi aktivasi lapisan tersembunyi adalah dan output dari jaringan adalah .f(x)g(f(x))
Mengapa memiliki dua fungsi ( dan ) alih-alih hanya satu?fg
Jika tingkat kompleksitas per fungsi terbatas, maka dapat menghitung hal-hal yang tidak dapat dilakukan secara terpisah oleh dan . g(f(x))fg
Contoh dengan fungsi logis:
Misalnya, jika kami hanya mengizinkan dan menjadi operator logis sederhana seperti "AND", "OR", dan "NAND", maka Anda tidak dapat menghitung fungsi lain seperti "XOR" hanya dengan salah satunya. Di sisi lain, kita dapat menghitung "XOR" jika kita ingin melapisi fungsi-fungsi ini di atas satu sama lain:fg
Fungsi lapisan pertama:
- Pastikan bahwa setidaknya satu elemen adalah "BENAR" (menggunakan OR)
- Pastikan mereka tidak semuanya "BENAR" (menggunakan NAND)
Fungsi lapisan kedua:
- Pastikan kedua kriteria lapisan pertama terpenuhi (menggunakan DAN)
Output jaringan hanyalah hasil dari fungsi kedua ini. Lapisan pertama mengubah input menjadi sesuatu yang dapat digunakan lapisan kedua sehingga seluruh jaringan dapat melakukan XOR.
Contoh dengan gambar:
Geser 61 dari pembicaraan ini - juga tersedia di sini sebagai gambar tunggal - menunjukkan (satu cara untuk memvisualisasikan) apa yang dicari oleh lapisan tersembunyi dalam jaringan saraf tertentu.
Lapisan pertama mencari potongan tepi pendek pada gambar: ini sangat mudah ditemukan dari data piksel mentah, tetapi mereka tidak terlalu berguna dengan sendirinya untuk memberi tahu Anda jika Anda melihat wajah atau bus atau gajah. .
Lapisan berikutnya menyusun tepi: jika tepi-tepi dari lapisan tersembunyi disatukan dengan cara tertentu, maka salah satu pelindung mata di tengah kolom paling kiri mungkin menyala. Akan sulit untuk membuat satu lapisan yang sangat bagus dalam menemukan sesuatu yang begitu spesifik dari piksel mentah: detektor mata jauh lebih mudah untuk dibangun dari detektor tepi daripada dari piksel mentah.
Lapisan berikutnya menyusun detektor mata dan detektor hidung menjadi wajah. Dengan kata lain, ini akan menyala ketika detektor mata dan detektor hidung dari lapisan sebelumnya menyala dengan pola yang tepat. Ini sangat bagus dalam mencari jenis wajah tertentu: jika satu atau lebih dari mereka menyala, maka layer output Anda harus melaporkan bahwa wajah hadir.
Ini berguna karena detektor wajah mudah dibangun dari detektor mata dan detektor hidung, tetapi sangat sulit dibangun dari intensitas piksel.
Jadi setiap layer membuat Anda semakin jauh dari piksel mentah dan lebih dekat ke tujuan akhir Anda (misalnya deteksi wajah atau deteksi bus).
Jawaban untuk berbagai macam pertanyaan lainnya
"Mengapa beberapa lapisan di lapisan input terhubung ke lapisan tersembunyi dan ada yang tidak?"
Node yang terputus dalam jaringan disebut node "bias". Ada penjelasan yang sangat bagus di sini . Jawaban singkatnya adalah mereka seperti mencegat istilah dalam regresi.
"Dari mana gambar" eye detector "dalam contoh gambar berasal?"
Saya belum memeriksa ulang gambar-gambar spesifik yang saya tautkan, tetapi secara umum, visualisasi ini menunjukkan sekumpulan piksel pada lapisan input yang memaksimalkan aktivitas neuron yang sesuai. Jadi jika kita menganggap neuron sebagai detektor mata, ini adalah gambar yang dianggap paling mirip mata oleh neuron. Orang biasanya menemukan kumpulan piksel ini dengan prosedur pengoptimalan (mendaki bukit).
Dalam makalah ini oleh beberapa orang Google dengan salah satu jaring saraf terbesar di dunia, mereka menunjukkan neuron "detektor wajah" dan neuron "detektor kucing" dengan cara ini, serta cara kedua: Mereka juga menunjukkan gambar aktual yang mengaktifkan neuron paling kuat (gambar 3, gambar 16). Pendekatan kedua bagus karena menunjukkan betapa fleksibel dan nonlinier jaringannya - "detektor" tingkat tinggi ini peka terhadap semua gambar ini, meskipun mereka tidak terlalu mirip pada tingkat piksel.
Beri tahu saya jika ada yang tidak jelas di sini atau ada pertanyaan lain.