Berapa Banyak Lapisan Tersembunyi dan Node Tersembunyi yang Dibutuhkan Jaringan Neural?
Artikel ini memberikan panduan untuk mengonfigurasi bagian tersembunyi dari Perceptron multilayer.
Sejauh ini dalam seri jaringan saraf ini, kita telah membahas NN Perceptron, NN multilayer, dan cara mengembangkan NN semacam itu menggunakan Python. Sebelum kita melanjutkan membahas berapa banyak lapisan dan simpul tersembunyi yang dapat Anda pilih untuk digunakan, pertimbangkan untuk mengikuti seri di bawah ini.
- Bagaimana Melakukan Klasifikasi Menggunakan Jaringan Syaraf Tiruan:Apa Itu Perceptron?
- Cara Menggunakan Contoh Jaringan Neural Perceptron Sederhana untuk Mengklasifikasikan Data
- Cara Melatih Jaringan Neural Perceptron Dasar
- Memahami Pelatihan Jaringan Syaraf Sederhana
- Pengantar Teori Pelatihan untuk Jaringan Neural
- Memahami Kecepatan Pembelajaran di Jaringan Neural
- Pembelajaran Mesin Tingkat Lanjut dengan Perceptron Multilayer
- Fungsi Aktivasi Sigmoid:Aktivasi di Jaringan Neural Perceptron Multilayer
- Cara Melatih Jaringan Neural Perceptron Multilayer
- Memahami Rumus Pelatihan dan Backpropagation untuk Perceptron Multilayer
- Arsitektur Jaringan Saraf untuk Implementasi Python
- Cara Membuat Jaringan Neural Perceptron Multilayer dengan Python
- Pemrosesan Sinyal Menggunakan Jaringan Saraf Tiruan:Validasi dalam Desain Jaringan Saraf Tiruan
- Pelatihan Kumpulan Data untuk Jaringan Neural:Cara Melatih dan Memvalidasi Jaringan Neural Python
- Berapa Banyak Lapisan Tersembunyi dan Node Tersembunyi yang Dibutuhkan Jaringan Neural?
Ringkasan Lapisan Tersembunyi
Pertama, mari kita tinjau beberapa poin penting tentang node tersembunyi di jaringan saraf.
- Perceptrons yang hanya terdiri dari input node dan output node (disebut single-layer Perceptrons) tidak terlalu berguna karena mereka tidak dapat mendekati hubungan input-output kompleks yang mencirikan banyak jenis fenomena kehidupan nyata. Lebih khusus lagi, Perceptron lapisan tunggal dibatasi untuk dapat dipisahkan secara linier masalah; seperti yang kita lihat di Bagian 7, bahkan sesuatu yang mendasar seperti fungsi XOR Boolean tidak dapat dipisahkan secara linier.
- Menambahkan lapisan tersembunyi antara lapisan input dan output mengubah Perceptron menjadi pendekatan universal , yang pada dasarnya berarti mampu menangkap dan mereproduksi hubungan input-output yang sangat kompleks.
- Kehadiran lapisan tersembunyi membuat pelatihan sedikit lebih rumit karena input-to-hidden bobot memiliki efek tidak langsung pada kesalahan akhir (ini adalah istilah yang saya gunakan untuk menunjukkan perbedaan antara nilai keluaran jaringan dan nilai target disediakan oleh data pelatihan).
- Teknik yang kami gunakan untuk melatih Perceptron multilayer disebut propagasi balik :kita menyebarkan kesalahan terakhir kembali ke sisi input jaringan dengan cara yang memungkinkan kita untuk secara efektif memodifikasi bobot yang tidak terhubung langsung ke node output. Prosedur backpropagation dapat diperluas—yaitu, prosedur yang sama memungkinkan kita untuk melatih bobot yang terkait dengan sejumlah lapisan tersembunyi yang berubah-ubah.
Diagram berikut merangkum struktur Perceptron multilayer dasar.
Berapa Banyak Lapisan Tersembunyi?
Seperti yang Anda duga, tidak ada jawaban sederhana untuk pertanyaan ini. Namun, hal yang paling penting untuk dipahami adalah bahwa Perceptron dengan satu lapisan tersembunyi adalah sistem komputasi yang sangat kuat. Jika Anda tidak mendapatkan hasil yang memadai dengan satu lapisan tersembunyi, coba peningkatan lainnya terlebih dahulu—mungkin Anda perlu mengoptimalkan tingkat pembelajaran Anda, atau menambah jumlah periode pelatihan, atau menyempurnakan kumpulan data pelatihan Anda. Menambahkan lapisan tersembunyi kedua meningkatkan kompleksitas kode dan waktu pemrosesan.
Hal lain yang perlu diingat adalah bahwa jaringan saraf yang terlalu kuat tidak hanya membuang-buang upaya pengkodean dan sumber daya prosesor—ini sebenarnya dapat merugikan positif dengan membuat jaringan lebih rentan terhadap pelatihan berlebihan.
Kami berbicara tentang overtraining kembali di Bagian 4, yang menyertakan diagram berikut sebagai cara memvisualisasikan operasi jaringan saraf yang solusinya tidak cukup digeneralisasi.
Perceptron yang memiliki kekuatan super dapat memproses data pelatihan dengan cara yang samar-samar mirip dengan cara orang terkadang “melebih-lebihkan” suatu situasi.
Ketika kita terlalu fokus pada detail dan menerapkan upaya intelektual yang berlebihan untuk masalah yang pada kenyataannya cukup sederhana, kita kehilangan "gambaran besar" dan berakhir dengan solusi yang terbukti kurang optimal. Demikian pula, Perceptron dengan daya komputasi yang berlebihan dan data pelatihan yang tidak mencukupi mungkin akan memilih solusi yang terlalu spesifik daripada menemukan solusi umum (seperti yang ditunjukkan pada gambar berikutnya) yang akan lebih efektif mengklasifikasikan sampel input baru.
Jadi kapan kita benar-benar membutuhkan banyak lapisan tersembunyi? Saya tidak bisa memberi Anda pedoman apa pun dari pengalaman pribadi. Yang terbaik yang dapat saya lakukan adalah menyampaikan keahlian Dr. Jeff Heaton (lihat halaman 158 dari teks tertaut), yang menyatakan bahwa satu lapisan tersembunyi memungkinkan jaringan saraf untuk mendekati fungsi apa pun yang melibatkan "pemetaan berkelanjutan dari satu ruang terbatas ke ruang lain. .”
Dengan dua lapisan tersembunyi, jaringan dapat "mewakili batas keputusan yang sewenang-wenang hingga akurasi yang sewenang-wenang".
Berapa Banyak Node Tersembunyi?
Menemukan dimensi optimal untuk lapisan tersembunyi akan membutuhkan trial and error. Seperti dibahas di atas, memiliki terlalu banyak node tidak diinginkan, tetapi Anda harus memiliki node yang cukup untuk membuat jaringan mampu menangkap kompleksitas hubungan input-output.
Trial and error semuanya baik-baik saja, tetapi Anda akan membutuhkan semacam titik awal yang masuk akal. Dalam buku yang sama yang ditautkan di atas (di halaman 159), Dr. Heaton menyebutkan tiga aturan praktis untuk memilih dimensi lapisan tersembunyi. Saya akan mengembangkannya dengan menawarkan rekomendasi berdasarkan intuisi pemrosesan sinyal saya yang tidak jelas.
- Jika jaringan hanya memiliki satu simpul keluaran dan Anda yakin bahwa hubungan masukan-keluaran yang diperlukan cukup mudah, mulailah dengan dimensi lapisan tersembunyi yang sama dengan dua pertiga dimensi masukan.
- Jika Anda memiliki beberapa simpul keluaran atau Anda yakin bahwa hubungan masukan-keluaran yang diperlukan rumit, buatlah dimensi lapisan tersembunyi sama dengan dimensi masukan ditambah dimensi keluaran (tetapi pertahankan agar kurang dari dua kali dimensi masukan).
- Jika Anda yakin bahwa hubungan input-output yang diperlukan sangat kompleks, setel dimensi tersembunyi ke satu kurang dari dua kali dimensi input.
Kesimpulan
Saya harap artikel ini membantu Anda memahami proses konfigurasi dan penyempurnaan konfigurasi lapisan tersembunyi Perceptron multilayer.
Pada artikel berikutnya, kita akan mengeksplorasi efek dimensi lapisan tersembunyi menggunakan implementasi Python saya dan beberapa contoh masalah.