Logika sering menyatakan bahwa dengan overfitting suatu model, kapasitasnya untuk menggeneralisasi terbatas, meskipun ini hanya berarti bahwa overfitting menghentikan suatu model dari peningkatan setelah kompleksitas tertentu. Apakah overfitting menyebabkan model menjadi lebih buruk terlepas dari kerumitan data, dan jika demikian, mengapa demikian?
Terkait: Tindak lanjuti pertanyaan di atas, " Kapankah Model Dibawah Ketinggalan? "
machine-learning
predictive-modeling
kesalahan besar
sumber
sumber
Jawaban:
Overfitting secara empiris buruk. Misalkan Anda memiliki kumpulan data yang Anda bagi menjadi dua, tes dan pelatihan. Model overfitted adalah salah satu yang melakukan jauh lebih buruk pada dataset uji daripada pada dataset pelatihan. Sering diamati bahwa model seperti itu juga secara umum berkinerja lebih buruk pada set data tes tambahan (baru) daripada model yang tidak dilengkapi terlalu banyak.
Salah satu cara untuk memahami itu secara intuitif adalah bahwa model dapat menggunakan beberapa bagian data (sinyal) yang relevan dan beberapa bagian yang tidak relevan (kebisingan). Model overfitted menggunakan lebih banyak noise, yang meningkatkan kinerjanya dalam hal noise diketahui (data pelatihan) dan menurunkan kinerjanya dalam kasus noise novel (data uji). Perbedaan kinerja antara data pelatihan dan tes menunjukkan seberapa banyak noise yang ditangkap oleh model; dan mengambil noise secara langsung diterjemahkan menjadi kinerja yang lebih buruk pada data uji (termasuk data masa depan).
Ringkasan: overfitting buruk menurut definisi, ini tidak banyak berkaitan dengan kompleksitas atau kemampuan untuk menggeneralisasi, tetapi lebih berkaitan dengan kesalahan mengira sinyal.
PS Pada bagian "kemampuan untuk menggeneralisasi" dari pertanyaan, sangat mungkin untuk memiliki model yang memiliki kemampuan terbatas untuk menggeneralisasi karena struktur model (misalnya SVM linier, ...) tetapi masih cenderung overfitting. Dalam arti tertentu, overfitting hanyalah salah satu cara generalisasi mungkin gagal.
sumber
Singkatnya, singkatnya, berarti memperhitungkan terlalu banyak informasi dari data Anda dan / atau pengetahuan sebelumnya, dan menggunakannya dalam model. Untuk membuatnya lebih mudah, pertimbangkan contoh berikut: Anda disewa oleh beberapa ilmuwan untuk memberi mereka model untuk memprediksi pertumbuhan beberapa jenis tanaman. Para ilmuwan telah memberi Anda informasi yang dikumpulkan dari pekerjaan mereka dengan tanaman semacam itu sepanjang tahun, dan mereka akan terus memberi Anda informasi tentang pengembangan perkebunan mereka di masa depan.
Jadi, Anda menjalankan melalui data yang diterima, dan membangun model dari itu. Sekarang anggaplah bahwa, dalam model Anda, Anda mempertimbangkan sebanyak mungkin karakteristik untuk selalu mengetahui perilaku yang tepat dari tanaman yang Anda lihat dalam dataset awal. Sekarang, ketika produksi berlanjut, Anda akan selalu mempertimbangkan karakteristik itu, dan akan menghasilkan hasil yang sangat halus . Namun, jika perkebunan akhirnya mengalami beberapa perubahan musiman, hasil yang Anda terima mungkin sesuai dengan model Anda sedemikian rupa sehingga prediksi Anda akan mulai gagal (baik mengatakan bahwa pertumbuhan akan melambat, sementara itu sebenarnya akan mempercepat, atau sebaliknya).
Selain tidak dapat mendeteksi variasi kecil seperti itu, dan biasanya mengklasifikasikan entri Anda secara tidak benar, fine-grain pada model, yaitu jumlah variabel yang besar, dapat menyebabkan pemrosesan menjadi terlalu mahal. Sekarang, bayangkan data Anda sudah kompleks. Melengkapi model Anda dengan data tidak hanya akan membuat klasifikasi / evaluasi menjadi sangat kompleks, tetapi kemungkinan besar akan membuat Anda keliru dalam memprediksi variasi terkecil yang Anda miliki pada input.
Sunting : Ini mungkin juga bermanfaat, mungkin menambahkan dinamika pada penjelasan di atas: D
sumber
Secara kasar, over-fitting biasanya terjadi ketika rasio
terlalu tinggi.
Pikirkan over-fitting sebagai situasi di mana model Anda mempelajari data pelatihan dengan hati alih-alih mempelajari gambar-gambar besar yang mencegahnya untuk dapat digeneralisasikan ke data uji: ini terjadi ketika model terlalu kompleks sehubungan dengan ukuran data pelatihan, yaitu ketika ukuran data pelatihan menjadi kecil dibandingkan dengan kompleksitas model.
Contoh:
Dari sudut pandang teoretis, jumlah data yang Anda butuhkan untuk melatih model Anda dengan benar adalah pertanyaan yang krusial namun jauh dari jawab dalam pembelajaran mesin. Salah satu pendekatan untuk menjawab pertanyaan ini adalah dimensi VC . Yang lain adalah tradeoff bias-varians .
Dari sudut pandang empiris, orang biasanya memplot kesalahan pelatihan dan kesalahan tes pada plot yang sama dan memastikan bahwa mereka tidak mengurangi kesalahan pelatihan dengan mengorbankan kesalahan pengujian:
Saya menyarankan untuk menonton kursus Pembelajaran Mesin Coursera , bagian "10: Saran untuk menerapkan Pembelajaran Mesin".
(PS: silakan buka di sini untuk meminta dukungan TeX pada SE ini.)
sumber
Sepertinya belum ada yang mengirim komik overfitting XKCD.
sumber
Itu karena sesuatu yang disebut dilema bias-varians . Model overfitted berarti bahwa kita akan memiliki batas keputusan yang lebih kompleks jika kita memberikan lebih banyak varian pada model. Masalahnya adalah, tidak hanya model yang terlalu sederhana tetapi juga model yang kompleks cenderung memiliki hasil yang tidak diklasifikasikan pada data yang tidak terlihat. Akibatnya, model over-fitting tidak sebagus model under-fitting. Itu sebabnya overfitting buruk dan kita harus menyesuaikan model di suatu tempat di tengah.
sumber
Apa yang membuat saya memahami masalah tentang overfitting adalah dengan membayangkan seperti apa model pakaian yang paling mungkin. Pada dasarnya, ini akan menjadi tabel pencarian sederhana.
Anda memberi tahu model apa atribut yang dimiliki setiap keping data dan ia hanya mengingatnya dan tidak melakukan apa-apa lagi dengannya. Jika Anda memberikannya sepotong data yang sudah dilihat sebelumnya, itu akan mencarinya dan hanya memuntahkan apa yang Anda katakan sebelumnya. Jika Anda memberikan data yang belum pernah dilihat sebelumnya, hasilnya tidak dapat diprediksi atau acak. Tetapi inti dari pembelajaran mesin bukan untuk memberi tahu Anda apa yang terjadi, itu untuk memahami pola dan menggunakan pola itu untuk memprediksi apa yang terjadi.
Jadi pikirkan sebuah pohon keputusan. Jika Anda terus menumbuhkan pohon keputusan Anda lebih besar dan lebih besar, pada akhirnya Anda akan berakhir dengan pohon di mana setiap simpul daun didasarkan pada tepat satu titik data. Anda baru saja menemukan cara backdoor untuk membuat tabel pencarian.
Untuk menggeneralisasi hasil Anda untuk mencari tahu apa yang mungkin terjadi di masa depan, Anda harus membuat model yang menggeneralisasi apa yang terjadi di set pelatihan Anda. Model overfit melakukan pekerjaan yang baik untuk menggambarkan data yang sudah Anda miliki, tetapi model deskriptif tidak selalu merupakan model prediksi.
Teorema Tanpa Makan Siang Gratis mengatakan bahwa tidak ada model yang dapat mengungguli model lain di set semua contoh yang mungkin . Jika Anda ingin memprediksi apa yang akan terjadi selanjutnya dalam urutan angka "2, 4, 16, 32" Anda tidak dapat membangun model yang lebih akurat daripada yang lain jika Anda tidak membuat asumsi bahwa ada pola yang mendasarinya. Model yang mengenakan pakaian tidak benar-benar mengevaluasi pola - itu hanya memodelkan apa yang diketahui mungkin dan memberi Anda pengamatan. Anda mendapatkan kekuatan prediksi dengan mengasumsikan bahwa ada beberapa fungsi yang mendasari dan bahwa jika Anda dapat menentukan apa fungsi itu, Anda dapat memprediksi hasil dari suatu peristiwa. Tetapi jika benar-benar tidak ada polanya, maka Anda kurang beruntung dan yang bisa Anda harapkan hanyalah tabel pencarian untuk memberi tahu Anda apa yang Anda tahu mungkin.
sumber
Anda keliru menggabungkan dua entitas yang berbeda: (1) bias-varians dan (2) kompleksitas model.
(1) Over-fitting buruk dalam pembelajaran mesin karena tidak mungkin untuk mengumpulkan sampel populasi data yang benar-benar tidak bias . Model over-fitting menghasilkan parameter yang bias pada sampel alih-alih memperkirakan dengan benar parameter untuk seluruh populasi. Ini berarti akan ada perbedaan antara estimasi parameter dan parameter optimal , terlepas dari jumlah zaman pelatihan .ϕ^ ϕ∗ n
(2) Kompleksitas model secara sederhana jumlah parameter dalam . Jika kompleksitas model rendah, maka akan tetap ada kesalahan regresi terlepas dari jumlah zaman pelatihan, bahkan ketika kira-kira sama dengan . Contoh paling sederhana adalah belajar agar sesuai dengan garis (y = mx + c), di mana untuk data pada kurva (polinomial kuadratik).ϕ ϕ^ ϕ∗ ϕ={m,c}
Ringkasan: Ya, baik bias sampel maupun kompleksitas model berkontribusi pada 'kualitas' model yang dipelajari, tetapi keduanya tidak secara langsung saling memengaruhi. Jika Anda memiliki data yang bias, maka terlepas dari memiliki jumlah parameter yang benar dan pelatihan tak terbatas, model yang dipelajari akhir akan memiliki kesalahan. Demikian pula, jika Anda memiliki lebih sedikit dari jumlah parameter yang diperlukan, maka terlepas dari pengambilan sampel sempurna dan pelatihan tak terbatas, model yang dipelajari akhir akan memiliki kesalahan.
sumber
Ada banyak penjelasan bagus tentang overfitting. Inilah pikiran saya. Overfitting terjadi ketika varians Anda terlalu tinggi dan bias terlalu rendah.
Katakanlah Anda memiliki data pelatihan, yang Anda bagi menjadi beberapa bagian. Sekarang, jika Anda melatih model pada masing-masing set data, Anda akan memiliki N model. Sekarang temukan model rata-rata dan kemudian gunakan rumus varians untuk menghitung berapa setiap model berbeda dari rata-rata. Untuk model overfitted, varian ini akan sangat tinggi. Ini karena, masing-masing model akan memiliki estimasi parameter yang sangat spesifik untuk dataset kecil yang kami masukkan. Demikian pula, jika Anda mengambil model rata-rata dan kemudian menemukan berapa banyak berbeda dari model asli yang akan memberikan akurasi terbaik, itu tidak akan sangat berbeda sama sekali. Ini menandakan bias yang rendah.
Untuk mengetahui apakah model Anda terlalu pas atau tidak, Anda dapat membuat plot yang disebutkan dalam posting sebelumnya.
Akhirnya, untuk menghindari overfitting Anda dapat mengatur model atau menggunakan validasi silang.
sumber