Pertama-tama:
Tidak ada cara untuk menentukan topologi jaringan yang baik hanya dari jumlah input dan output. Tergantung pada jumlah contoh pelatihan dan kompleksitas klasifikasi yang Anda coba pelajari. [1]
dan Yoshua Bengio telah mengusulkan aturan yang sangat sederhana:
Terus tambahkan layer sampai kesalahan tes tidak membaik lagi. [2]
Bahkan:
Fitur-fitur sebelumnya dari ConvNet mengandung lebih banyak fitur-fitur umum (misalnya pendeteksi tepi atau pendeteksi gumpalan warna) yang seharusnya berguna untuk banyak tugas, tetapi lapisan-lapisan selanjutnya dari ConvNet menjadi semakin spesifik untuk rincian kelas-kelas yang terkandung dalam dataset asli. [ 3]
Misalnya, dalam metode untuk mempelajari fitur detektor:
lapisan pertama mempelajari pendeteksi tepi dan lapisan berikutnya mempelajari fitur yang lebih kompleks, dan lapisan yang lebih tinggi menyandi fitur yang lebih abstrak. [4]
Jadi, menggunakan dua lapisan padat lebih disarankan daripada satu lapisan.
Akhirnya:
Makalah asli tentang Dropout memberikan sejumlah heuristik yang berguna untuk dipertimbangkan ketika menggunakan dropout dalam praktik. Salah satunya adalah:
Gunakan dropout pada unit yang masuk (terlihat) serta tersembunyi. Aplikasi dropout di setiap lapisan jaringan telah menunjukkan hasil yang baik. [5]
di CNN, biasanya, lapisan Dropout diterapkan setelah setiap lapisan penyatuan, dan juga setelah lapisan Padat Anda. Tutorial yang bagus ada di sini [6]
Referensi:
[1] https://www.cs.cmu.edu/Groups/AI/util/html/faqs/ai/neural/faq.html
[2] Bengio, Yoshua. "Rekomendasi praktis untuk pelatihan arsitektur mendalam berbasis gradien." Jaringan saraf: Trik perdagangan. Springer Berlin Heidelberg, 2012. 437-478.
[3] http://cs231n.github.io/transfer-learning/
[4] http://learning.eng.cam.ac.uk/pub/Public/Turner/Teaching/ml-lecture-3-slides.pdf
[5] https://machinelearningmastery.com/dropout-regularization-deep-learning-models-keras/
[6] https://cambridgespark.com/content/tutorials/convolutional-neural-networks-with-keras/index.html