Mengapa menambahkan dropout layer meningkatkan kinerja pembelajaran mesin / dalam, mengingat bahwa dropout menekan beberapa neuron dari model?

13

Jika menghapus beberapa neuron menghasilkan model yang berkinerja lebih baik, mengapa tidak menggunakan jaringan saraf yang lebih sederhana dengan lebih sedikit lapisan dan lebih sedikit neuron di tempat pertama? Mengapa membangun model yang lebih besar dan lebih rumit pada awalnya dan menekan bagian-bagiannya nanti?

pengguna781486
sumber

Jawaban:

30

Fungsi dropout adalah untuk meningkatkan kekokohan model dan juga untuk menghilangkan ketergantungan sederhana antara neuron.

Neuron hanya dihapus untuk satu lintasan maju dan mundur melalui jaringan - yang berarti bobotnya secara sintetik diatur ke nol untuk lintasan itu, dan demikian juga kesalahan mereka, yang berarti bahwa bobot tersebut tidak diperbarui. Dropout juga berfungsi sebagai bentuk regularisasi , karena menghukum model karena kompleksitasnya.

Saya akan merekomendasikan memiliki membaca bagian Dropout dalam buku Belajar Dalam Michael Nielsen (gratis dan online), yang memberikan intuisi yang bagus dan juga memiliki diagram / penjelasan yang sangat membantu. Dia menjelaskan bahwa:

Putus sekolah adalah teknik yang sangat berbeda untuk regularisasi. Tidak seperti regularisasi L1 dan L2, dropout tidak bergantung pada modifikasi fungsi biaya. Sebaliknya, di dropout kami memodifikasi jaringan itu sendiri.

Ini artikel ringkasan yang bagus . Dari artikel itu:

Beberapa Pengamatan:

  • Dropout memaksa jaringan saraf untuk mempelajari fitur yang lebih kuat yang berguna dalam hubungannya dengan banyak himpunan bagian acak dari neuron lain.
  • Dropout secara kasar menggandakan jumlah iterasi yang diperlukan untuk konvergen. Namun, waktu pelatihan untuk setiap zaman kurang.
  • Dengan unit tersembunyi H, yang masing-masing dapat dijatuhkan, kami memiliki 2 ^ H model yang mungkin. Dalam fase pengujian, seluruh jaringan dipertimbangkan dan setiap aktivasi dikurangi oleh faktor p.

Contoh

Bayangkan saya meminta Anda membuatkan saya secangkir teh - Anda mungkin selalu menggunakan tangan kanan Anda untuk menuangkan air, mata kiri Anda untuk mengukur tingkat air dan kemudian tangan kanan Anda lagi untuk mengaduk teh dengan sendok. Ini berarti tangan kiri dan mata kanan Anda tidak banyak berguna. Menggunakan dropout misalnya akan mengikat tangan kanan Anda di belakang punggung - memaksa Anda untuk menggunakan tangan kiri Anda. Sekarang setelah membuatkan saya 20 cangkir teh, dengan satu mata atau satu tangan diambil dari tindakan, Anda lebih terlatih dalam menggunakan semua yang tersedia. Mungkin nanti Anda akan dipaksa untuk membuat teh di dapur kecil, di mana hanya mungkin menggunakan ketel dengan lengan kiri Anda ... dan setelah menggunakan dropout, Anda memiliki pengalaman melakukan itu! Anda menjadi lebih kuat untuk melihat data.

n1k31t4
sumber
bagaimana cara menentukan nilai putus sekolah terbaik untuk klasifikasi multi kelas? dan bagaimana cara menentukan jumlah dropout layer terbaik?
N.IT
2
@ N.IT - sejauh yang saya sadar, ada tidak didefinisikan dengan baik metode yang akan menemukan terbaik tingkat putus sekolah atau berapa banyak lapisan - terlepas dari jsut mencoba banyak kombinasi. Seperti halnya metode regularisasi dan eksplorasi arsitektur lainnya, Anda kemungkinan akan mendapatkan hasil terbaik dengan melatih model dan membandingkan kurva kehilangan pelatihan / validasi. Lihatlah penjelasan tentang topik ini .
n1k31t4
Jawaban yang bagus Agar lebih konkret sehubungan dengan analogi dapur Anda, Dropout digunakan hanya selama pelatihan, bukan selama inferensi. Oleh karena itu, model yang kompleks tidak digunakan secara parsial.
Vaibhav Garg
saya mengetik balasan ini dengan mata saya dekat. membutuhkan lebih banyak pelatihan. nwws moew seopour.
VHanded
3

Dropout sebenarnya tidak menghilangkan neuron, hanya saja neuron-neuron tersebut tidak memainkan peran apa pun (jangan diaktifkan) untuk kumpulan data yang diberikan.

Contoh - Misalkan ada jalan 8 jalur - Ketika truk datang, mereka melewati jalur 1,2,4,6,7, ketika mobil datang, mereka melewati jalur 2,3,4,7,8 dan ketika sepeda datang , mereka melewati jalur 1,2,5,8. Jadi, terlepas dari kendaraan apa pun, semua jalur ada di sana, tetapi hanya beberapa yang digunakan.

Demikian pula, semua neuron digunakan dalam seluruh model, tetapi hanya sebagian neuron yang diaktifkan untuk kumpulan data tertentu. Dan model tidak ditebang nanti, kompleksitas model tetap seperti apa adanya.

Mengapa menggunakan dropout?

Seperti yang diberikan dalam buku pembelajaran Deep oleh Ian Goodfellow,

dropout lebih efektif daripada regulator standar komputasi murah lainnya, seperti pembusukan berat badan, kendala norma filter dan regularisasi aktivitas yang jarang.

Dia juga mengatakan-

Salah satu keuntungan dari putus sekolah adalah sangat murah secara komputasi.

Keuntungan penting lain dari putus sekolah adalah bahwa ia tidak secara signifikan membatasi jenis model atau prosedur pelatihan yang dapat digunakan. Ini bekerja dengan baik dengan hampir semua model yang menggunakan representasi terdistribusi dan dapat dilatih dengan penurunan gradien stokastik. Ini termasuk jaringan saraf umpan maju, model probabilistik seperti mesin Boltzmann terbatas (Srivastava et al., 2014), dan jaringan saraf berulang (Bayer dan Osendorfer, 2014; Pascanu et al., 2014a).

Buku ini mengatakan-

Gagasan intinya adalah bahwa mengenalkan noise pada nilai output suatu layer dapat memecah pola kejadian yang tidak signifikan, yang jaringan akan mulai menghafal jika tidak ada noise.

Ankit Seth
sumber
Saya telah mengedit pertanyaan untuk menggunakan kata suppress dan tidak menghapus. Masih ada pertanyaan. Mengapa membangun begitu banyak jalur ketika hanya beberapa dari mereka yang digunakan pada akhirnya?
user781486
@ user781486 Dengan beberapa dari mereka, itu berarti beberapa dari mereka untuk setiap kumpulan data, tetapi semuanya akan digunakan jika Anda mempertimbangkan seluruh data. Seperti dalam contoh saya, semua lajur 1-8 digunakan jika Anda mengambil set angka lajur gabungan untuk setiap kendaraan.
Ankit Seth
3

Cara lain untuk melihat apa yang dilakukan dropout adalah bahwa itu seperti slab-and-spike sebelum koefisien untuk kovariat (yaitu beberapa istilah interaksi kompleks kovariat asli dengan beberapa transformasi fungsional yang rumit) dalam model Bayesian. Ini adalah interpretasi yang diajukan oleh Yarin Gal dalam tesisnya (lihat daftar publikasi ).

Berikut ini adalah argumen singkat yang melambaikan tangan untuk alasan ini:

  • Dalam kumpulan itu, di mana neuron dihilangkan, koefisien untuk fitur / kovariat (dibangun oleh koneksi dalam jaringan saraf yang masuk ke neuron) adalah nol (spike at zero).
  • Dalam kelompok-kelompok itu, di mana neuron hadir, koefisiennya tidak dibatasi (flat tidak benar sebelum = lempengan).
  • Rata-rata di semua batch, Anda mendapatkan spike-and-slab sebelumnya.

Mengapa kita menginginkan slab-and-spike sebelumnya? Ini menginduksi model Bayesian rata-rata antara jaringan netral tanpa neuron itu dan satu dengan itu masuk. Dengan kata lain, itu memungkinkan kita mengekspresikan ketidakpastian tentang apakah jaringan netral benar-benar perlu memiliki kompleksitas penuh yang mungkin dan dengan tepat memperhitungkan ketidakpastian ini dalam perhitungan. prediksi. Ini membahas masalah utama dari jaringan netral untuk dapat menyesuaikan dengan data (meskipun tentu saja itu bukan satu-satunya cara yang mungkin untuk mencapai itu).

Björn
sumber
Poin yang bagus. Akan memperbarui jawabannya.
Björn
2

Lapisan putus sekolah secara acak memilih bagian neuron tertentu, mengurangi kapasitas representasional dari model yang bersangkutan. Ini mencegah jaringan dari pemasangan batas keputusan nonlinier kompleks (yaitu "noise" dalam dataset), sehingga mencegah (atau memperbaiki) overfitting.

Pranav Vempati
sumber