Saya agak bingung tentang pembelajaran ensemble. Singkatnya, ini menjalankan model k dan mendapatkan rata-rata model k ini. Bagaimana bisa dijamin bahwa rata-rata model k akan lebih baik daripada model mana pun sendiri? Saya mengerti bahwa bias "menyebar" atau "rata-rata". Namun, bagaimana jika ada dua model dalam ansambel (yaitu k = 2) dan salah satunya lebih buruk daripada yang lain - bukankah ansambel lebih buruk daripada model yang lebih baik?
machine-learning
ensemble
pengguna1691278
sumber
sumber
Jawaban:
Itu tidak dijamin. Seperti yang Anda katakan, ansambel bisa lebih buruk daripada masing-masing model. Misalnya, mengambil rata-rata model yang benar dan model yang buruk akan memberikan model yang cukup buruk.
Juga, rata-rata model hanya berfungsi dengan baik ketika masing-masing model memiliki varian tinggi. Itu sebabnya hutan acak dibangun menggunakan pohon yang sangat besar. Di sisi lain, rata-rata banyak model regresi linier masih memberi Anda model linier, yang tidak mungkin lebih baik daripada model yang Anda mulai (coba saja!)
Metode ansambel lainnya, seperti meningkatkan dan memadukan, bekerja dengan mengambil output dari masing-masing model, bersama dengan data pelatihan, sebagai input ke model yang lebih besar. Dalam hal ini, tidak mengherankan bahwa mereka sering bekerja lebih baik daripada model individual, karena mereka sebenarnya lebih rumit, dan mereka masih menggunakan data pelatihan.
sumber
Dalam contoh Anda, ansambel Anda dari dua model bisa lebih buruk daripada satu model itu sendiri. Tetapi contoh Anda adalah buatan, kami biasanya membangun lebih dari dua di ansambel kami.
Tidak ada jaminan mutlak bahwa model ensemble berkinerja lebih baik daripada model individual, tetapi jika Anda membuat banyak dari itu, dan pengelompokkan individu Anda lemah . Kinerja keseluruhan Anda harus lebih baik daripada model individual.
Dalam pembelajaran mesin, pelatihan beberapa model umumnya mengungguli pelatihan model tunggal. Itu karena Anda memiliki lebih banyak parameter untuk disetel.
sumber
Saya hanya ingin melempar sesuatu yang jarang dibahas dalam konteks ini, dan itu harus memberi Anda makanan untuk dipikirkan.
Ensemble juga bekerja dengan manusia!
Telah diamati bahwa rata-rata prediksi manusia memberikan prediksi yang lebih baik daripada prediksi individu. Ini dikenal sebagai hikmat orang banyak.
Sekarang, Anda dapat berpendapat bahwa itu karena beberapa orang memiliki informasi yang berbeda, sehingga Anda secara efektif meratakan informasi. Tapi tidak, ini benar bahkan untuk tugas-tugas seperti menebak jumlah kacang dalam botol.
Ada banyak buku dan eksperimen yang ditulis tentang ini, dan fenomena ini masih membingungkan para peneliti.
Ini dikatakan, seperti yang ditunjukkan oleh @Flounderer, keuntungan nyata berasal dari apa yang disebut model tidak stabil seperti pohon keputusan, di mana setiap pengamatan biasanya memiliki dampak pada batas keputusan. Yang lebih stabil seperti SVM tidak mendapatkan banyak karena resampling biasanya tidak banyak mempengaruhi vektor dukungan.
sumber
Sebenarnya sangat mungkin bagi model tunggal untuk menjadi lebih baik daripada ansambel.
Bahkan jika tidak ada poin dalam data Anda di mana beberapa model Anda melebih-lebihkan dan ada yang meremehkan (dalam hal ini Anda mungkin berharap kesalahan rata-rata akan dinegasikan), beberapa fungsi kerugian yang paling populer (seperti kerugian kuadrat rata-rata) dihukum penyimpangan besar tunggal lebih dari beberapa penyimpangan moderat. Jika model yang Anda rata-rata agak berbeda, Anda mungkin berharap varians menjadi "kurang" karena rata-rata membunuh penyimpangan yang luar biasa. Mungkin bisa dijelaskan dengan itu .
sumber
Ya, itu mungkin terjadi tetapi ide untuk ensembling adalah untuk melatih model yang lebih sederhana untuk menghindari pemasangan yang berlebihan sambil menangkap karakteristik data yang berbeda dari ansambel yang berbeda. Tentu saja tidak ada jaminan model ensemble untuk mengungguli model tunggal saat dilatih dengan data pelatihan yang sama. Kinerja yang luar biasa dapat diperoleh dengan menggabungkan model ansambel dan meningkatkan (misalnya AdaBoost). Dengan meningkatkan Anda melatih setiap model ensemle berikutnya dengan menetapkan bobot pada setiap titik data dan memperbaruinya sesuai dengan kesalahan. Jadi pikirkan itu sebagai algoritma penurunan koordinat, ini memungkinkan kesalahan pelatihan untuk turun dengan setiap iterasi sambil mempertahankan kompleksitas model rata-rata yang konstan. Secara keseluruhan ini berdampak pada kinerja. Ada banyak
sumber