Bagaimana menemukan jumlah neuron yang optimal per lapisan?

28

Ketika Anda menulis algoritma Anda, bagaimana Anda tahu berapa banyak neuron yang Anda butuhkan per satu layer? Apakah ada metode untuk menemukan jumlah optimal dari mereka, atau apakah itu aturan praktis?

kenorb
sumber

Jawaban:

7

Untuk pendekatan yang lebih cerdas daripada pencarian acak atau lengkap, Anda bisa mencoba algoritma genetika seperti NEAT http://nn.cs.utexas.edu/?neat . Namun, ini tidak memiliki jaminan untuk menemukan optima global, itu hanya sebuah algoritma optimasi berdasarkan kinerja dan karena itu rentan terhadap terjebak dalam optima lokal.

Tim Atkinson
sumber
1
Akan mendapatkan cukup dekat dengan optimal global.
jjmerelo
4

Makalah Szegedy C, Vanhoucke V, Ioffe S, et al. Memikirkan kembali arsitektur awal untuk visi komputer [J]. arXiv preprint arXiv: 1512.00567, 2015. memberikan beberapa prinsip desain umum:

  1. Hindari hambatan representasional, terutama di awal jaringan;

  2. Seimbangkan lebar dan kedalaman jaringan. Kinerja optimal dari jaringan dapat dicapai dengan menyeimbangkan jumlah filter per tahap dan kedalaman jaringan. Meningkatkan lebar dan kedalaman jaringan dapat berkontribusi pada jaringan berkualitas lebih tinggi. Namun, peningkatan optimal untuk jumlah komputasi yang konstan dapat dicapai jika keduanya meningkat secara paralel. Anggaran komputasi karenanya harus didistribusikan secara seimbang antara kedalaman dan lebar jaringan.

Saran ini tidak dapat memberi Anda jumlah neuron optimal dalam jaringan.

Namun, masih ada beberapa model penelitian kompresi misalnya Structured Sparsity Learning (SSL) dari Deep Neural Networks , SqueezeNet , jaringan Pruning yang mungkin memberi sedikit cahaya tentang bagaimana mengoptimalkan neuron per lapisan tunggal.

Khususnya dalam Pembelajaran Terstruktur Terstruktur dari Deep Neural Networks , ia menambahkan Group Lassoistilah regularisasi dalam fungsi kehilangan untuk mengatur struktur (yaitu, filter, saluran, bentuk filter, dan kedalaman lapisan) dari DNNs, yang berarti nol beberapa komponen ( yaitu, filter, saluran, bentuk filter, dan kedalaman lapisan) dari struktur jaring dan mencapai kompak dan akselerasi jaringan yang luar biasa, sembari tetap mempertahankan sedikit kehilangan akurasi klasifikasi.

Lembah
sumber
3

Anda tahu ketika Anda memiliki terlalu banyak neuron adalah ketika Anda merasa terlalu pas. Berarti itu tidak berfungsi dengan baik karena NN sedang mencoba untuk mengaktifkan pada pertandingan paling sempurna yang tidak mungkin. Seperti dua kucing berbeda dengan jumlah atom yang sama, atau untuk mengatakan, itu adalah detektor NN yang hanya aktif pada gambar kucing peliharaan Anda dan tidak ada yang lain. Anda ingin rentang yang lebih luas untuk nn diaktifkan. Seperti pada gambar kucing.

Overfitting adalah masalah yang tidak memiliki perbaikan cepat nyata. Anda bisa mulai dengan terlalu sedikit dan terus menambahkan lebih banyak. Atau mulai dengan banyak dan kemudian menghapusnya sampai berfungsi dengan baik.


sumber