Bagging vs Dropout di Deep Neural Networks

17

Bagging adalah generasi dari beberapa prediktor yang berfungsi sebagai peramal sebagai satu prediktor tunggal. Dropout adalah teknik yang mengajarkan ke jaringan saraf untuk rata-rata semua subnetwork yang mungkin. Melihat kompetisi Kaggle yang paling penting, tampaknya kedua teknik ini sering digunakan bersama. Saya tidak bisa melihat perbedaan teoretis selain implementasi yang sebenarnya. Siapa yang bisa menjelaskan kepada saya mengapa kita harus menggunakan keduanya dalam aplikasi nyata? dan mengapa kinerja meningkat ketika kami menggunakan keduanya?

emanuele
sumber

Jawaban:

21

Bagging dan dropout tidak mencapai hal yang sama, meskipun keduanya adalah jenis rata-rata model.

Bagging adalah operasi di seluruh dataset Anda yang melatih model pada subset dari data pelatihan. Jadi beberapa contoh pelatihan tidak ditunjukkan pada model yang diberikan.

Dropout , sebaliknya, diterapkan untuk fitur dalam setiap contoh pelatihan. Memang benar bahwa hasilnya secara fungsional setara dengan pelatihan banyak jaringan secara eksponensial (dengan bobot bersama!) Dan kemudian sama-sama membobot hasilnya. Tetapi dropout berfungsi pada ruang fitur, menyebabkan fitur tertentu tidak tersedia untuk jaringan, bukan contoh lengkap. Karena masing-masing neuron tidak dapat sepenuhnya bergantung pada satu input, representasi dalam jaringan ini cenderung lebih terdistribusi dan jaringan cenderung tidak sesuai.

jamesmf
sumber
+1 untuk penjelasan yang bagus. Apakah Anda tahu ada tautan di mana implementasi Python dilakukan? Adakah blog atau mungkin Github?
Dawny33
Ada yang layak di sini: deeplearning.net/tutorial/lenet.html , meskipun saya lebih suka gaya yang ini: neuralnetworksanddeeplearning.com/chap6.html . Untuk implementasi dan demo hebat, saya suka keras (cukup mudah untuk menginstal pip) keras.io
jamesmf
2

Saya menemukan perbandingan dua jenis jaring di Max Out Networks yang mengatakan:

Pelatihan putus sekolah mirip dengan mengantongi (Breiman, 1994), di mana banyak model berbeda dilatih pada subset data yang berbeda. Pelatihan putus sekolah berbeda dari mengantongi dalam bahwa setiap model dilatih hanya untuk satu langkah dan semua model berbagi parameter. Agar prosedur pelatihan ini (dropout) berperilaku seolah-olah ia melatih ansambel daripada model tunggal, setiap pembaruan harus memiliki efek besar, sehingga hal itu membuat sub-model yang diinduksi oleh μ yang sesuai dengan input saat ini dengan baik.

Semoga bermanfaat.

emanuele
sumber
0

Dropout adalah teknik regularisasi yang digunakan untuk menghindari overfitting dalam jaringan saraf besar khususnya dengan meninggalkan beberapa neuron dalam lapisan tersembunyi (maka nama dropout untuk neuron yang ditinggalkan) setelah pelatihan. Pada dasarnya jika jaringan benar-benar mempelajari sesuatu selama pelatihan maka mengeluarkan beberapa neuron seharusnya tidak mempengaruhi ketepatan prediksi secara negatif.

Bagging juga merupakan teknik regularisasi yang efektif, yang digunakan untuk mengurangi varians dari data pelatihan dan meningkatkan akurasi model Anda dengan menggunakan banyak salinan yang dilatih pada subset data yang berbeda dari dataset pelatihan awal / yang lebih besar.

lihat pertanyaan ini

LiNKeR
sumber