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?
sumber
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?
Tidak ada cara langsung untuk menemukan jumlah yang optimal: orang-orang mencoba dan melihat secara empiris (misalnya, menggunakan validasi silang). Teknik pencarian yang paling umum adalah pencarian acak, manual, dan kisi.
Ada lebih banyak teknik canggih seperti proses Gaussian, misalnya Mengoptimalkan Hyperparameters Neural Network dengan Proses Gaussian untuk Klasifikasi Act Dialog , IEEE SLT 2016 .
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.
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:
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 Lasso
istilah 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.sumber
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