Bagaimana cara memutuskan arsitektur jaringan saraf?


19

Saya bertanya-tanya bagaimana kita harus memutuskan berapa banyak node di lapisan tersembunyi, dan berapa banyak lapisan tersembunyi untuk diletakkan ketika kita membangun arsitektur jaringan saraf.

Saya mengerti layer input dan output tergantung pada set pelatihan yang kita miliki tetapi bagaimana kita memutuskan layer tersembunyi dan keseluruhan arsitektur secara umum?


Biasanya kami bereksperimen, menggunakan intusi kami; menganggapnya sebagai hiperparameter . Ada beberapa cara untuk mempelajari arsitekturnya tetapi saya tidak tahu seberapa praktisnya: blog.acolyer.org/2017/05/10/…
Emre

2
Saya mencari duplikat untuk ini, karena saya yakin itu telah terpotong berkali-kali sebelumnya di situs ini. Namun, tidak dapat menemukan versi murni yang tidak dilampirkan ke beberapa dataset atau masalah. Mungkin ini bisa menjadi pertanyaan umum yang kami tunjukkan kepada orang lain? Sayangnya tidak ada jawaban "bagaimana" yang bagus untuk dimiliki secara umum, tetapi itu adalah pertanyaan umum ketika dihadapkan dengan begitu banyak pilihan.
Neil Slater


Ini adalah pertanyaan yang sangat menarik untuk dijawab (Peneliti mulai mengerjakan pertanyaan Anda). Apa yang akan menjadi arsitektur optimal untuk dataset A dan dataset B. Silakan baca makalah di bawah ini yang mencoba menjawab pertanyaan Anda. Selamat datang di dunia Neural Architecture Search (NAS). arxiv.org/abs/1611.01578
iDeepVision

Jawaban:


17

Sayangnya tidak ada cara umum untuk menentukan apriori jumlah neuron terbaik dan jumlah lapisan untuk jaringan saraf, hanya diberikan deskripsi masalah. Bahkan tidak banyak panduan yang bisa didapat untuk menentukan nilai yang baik untuk dicoba sebagai titik awal.

Pendekatan yang paling umum tampaknya dimulai dengan perkiraan kasar berdasarkan pengalaman sebelumnya tentang jaringan yang digunakan pada masalah yang sama. Ini bisa menjadi pengalaman Anda sendiri, atau pengalaman tangan kedua / ketiga yang Anda ambil dari kursus pelatihan, blog, atau makalah penelitian. Kemudian cobalah beberapa variasi, dan periksa kinerja dengan cermat sebelum memilih yang terbaik.

Ukuran dan kedalaman jaringan saraf berinteraksi dengan hyper-paramaters lain juga, sehingga mengubah satu hal di tempat lain dapat mempengaruhi di mana nilai-nilai terbaik berada. Jadi tidak mungkin untuk mengisolasi ukuran dan kedalaman "terbaik" untuk jaringan kemudian terus mencari parameter lain secara terpisah. Misalnya, jika Anda memiliki jaringan yang sangat dalam, itu mungkin bekerja secara efisien dengan fungsi aktivasi ReLU, tetapi tidak begitu baik dengan sigmoid - jika Anda menemukan ukuran / bentuk jaringan terbaik dan kemudian mencoba percobaan dengan berbagai fungsi aktivasi Anda mungkin datang untuk kesimpulan yang salah tentang apa yang terbaik.

Anda kadang-kadang dapat membaca tentang "aturan praktis" yang digunakan peneliti ketika memulai desain jaringan saraf dari awal. Hal-hal ini mungkin bekerja untuk masalah Anda atau tidak, tetapi mereka setidaknya memiliki keuntungan untuk memulai masalah. Variasi yang saya lihat adalah:

  • Buat jaringan dengan lapisan tersembunyi agar ukuran yang sama dengan input, dan semua ukuran yang sama, dengan alasan bahwa tidak ada alasan khusus untuk memvariasikan ukuran (kecuali Anda mungkin membuat autoencoder).

  • Mulai yang sederhana dan bangun kompleksitas untuk melihat apa yang meningkatkan jaringan sederhana.

  • Coba berbagai kedalaman jaringan jika Anda mengharapkan output dijelaskan dengan baik oleh data input, tetapi dengan hubungan yang kompleks (bukan hanya berisik secara inheren).

  • Coba tambahkan beberapa dropout, itu hal terdekat yang harus dimiliki jaringan saraf terhadap debu peri ajaib yang membuat segalanya lebih baik (peringatan: menambahkan dropout dapat meningkatkan generalisasi, tetapi juga dapat meningkatkan ukuran lapisan yang diperlukan dan waktu pelatihan).

Jika Anda membaca ini atau semacamnya dalam teks apa pun, maka bawalah mereka sedikit garam. Namun, paling buruk mereka membantu Anda melewati efek halaman kosong, dan menulis semacam jaringan, dan membuat Anda memulai proses pengujian dan penyempurnaan.


Selain itu, cobalah untuk tidak tersesat dalam penyetelan jaringan saraf ketika beberapa pendekatan lain mungkin lebih baik dan menghemat banyak waktu. Pertimbangkan dan gunakan pembelajaran mesin lainnya dan pendekatan sains data. Jelajahi data, mungkin buat beberapa plot. Cobalah beberapa pendekatan linier sederhana terlebih dahulu untuk mendapatkan tolok ukur untuk dikalahkan, regresi linier, regresi logistik atau regresi softmax tergantung pada masalah Anda. Pertimbangkan untuk menggunakan algoritma ML yang berbeda untuk NNs - pendekatan berbasis pohon keputusan seperti XGBoost bisa lebih cepat dan lebih efektif daripada pembelajaran mendalam tentang banyak masalah.


Itu penjelasan yang bagus. Terima kasih. Saya juga bertanya-tanya apakah ada cara yang baik untuk memutuskan pendekatan ML mana yang akan digunakan? Anda menyebutkan bahwa mungkin ada cara yang lebih baik daripada jaringan saraf, tetapi bagaimana kita menentukannya dengan mudah?
user7677413

@ user7677413: Hal yang sama berlaku. Anda harus mencoba dan melihat, meskipun pengalaman mungkin memberi Anda panduan tentang masalah yang sudah dikenal.
Neil Slater

1
Kapan jaringan saraf diperlukan?
user7677413

1
Jaringan saraf jarang diperlukan . Namun, mereka lebih baik dalam beberapa masalah. Mereka unggul dalam tugas pemrosesan sinyal seperti pengenalan audio dan gambar, dan juga memiliki kapasitas untuk mempelajari perbedaan halus dari sejumlah besar data di mana algoritma yang lebih sederhana dapat mencapai batas. Namun, apakah NN adalah alat yang tepat untuk Anda dan masalah apa pun yang Anda hadapi pada hari tertentu, tidak ada yang bisa memprediksi.
Neil Slater

1
@ user7677413 Saya pikir Anda membuat asumsi bahwa tidak ada 40 tahun penelitian pembelajaran mesin yang mendalam dan berwawasan. Sepertinya Anda hanya menggaruk permukaan. Saya sarankan mencari buku teks dan melihat bagaimana semuanya terkait, yang akan membantu membangun intuisi Anda untuk banyak algoritma pembelajaran mesin.
Alex L
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.