Bagaimana cara mengetahui model sudah mulai overfitting?

12

Saya harap kutipan berikut ini akan memberikan wawasan tentang apa yang akan menjadi pertanyaan saya. Ini dari http://neuralnetworksanddeeplearning.com/chap3.html

Pembelajaran kemudian secara bertahap melambat. Akhirnya, pada sekitar zaman 280 akurasi klasifikasi cukup banyak berhenti meningkat. Zaman kemudian hanya melihat fluktuasi stokastik kecil di dekat nilai akurasi pada zaman 280. Bandingkan ini dengan grafik sebelumnya, di mana biaya yang terkait dengan data pelatihan terus turun dengan lancar. Jika kita melihat biaya itu saja, tampaknya model kita masih "lebih baik". Tetapi hasil akurasi tes menunjukkan peningkatan itu ilusi. Sama seperti model yang tidak disukai Fermi, apa yang dipelajari jaringan kami setelah zaman 280 tidak lagi digeneralisasikan ke data uji. Dan itu bukan pembelajaran yang berguna. Kami mengatakan jaringan overfitting atau overtraining di luar zaman 280.

Kami sedang melatih jaringan saraf dan biaya (untuk data pelatihan) turun hingga zaman 400 tetapi keakuratan klasifikasi menjadi statis (kecuali beberapa fluktuasi stokastik) setelah zaman 280 sehingga kami menyimpulkan bahwa model terlalu cocok untuk data pelatihan setelah posting 280.

Kita dapat melihat bahwa biaya pada data uji meningkat sampai sekitar zaman 15, tetapi setelah itu sebenarnya mulai menjadi lebih buruk, meskipun biaya pada data pelatihan terus menjadi lebih baik. Ini adalah tanda lain bahwa model kami terlalu cocok. Namun, hal itu menimbulkan teka-teki, yaitu apakah kita harus menganggap zaman 15 atau zaman 280 sebagai titik di mana overfitting akan mendominasi pembelajaran? Dari sudut pandang praktis, yang benar-benar kita pedulikan adalah meningkatkan akurasi klasifikasi pada data uji, sedangkan biaya pada data uji tidak lebih dari proksi untuk akurasi klasifikasi. Maka, masuk akal untuk menganggap zaman 280 sebagai titik di mana overfitting mendominasi pembelajaran dalam jaringan saraf kita.

Berbeda dengan akurasi klasifikasi pada data uji dibandingkan dengan biaya pelatihan sebelumnya kami sekarang menempatkan biaya pada data uji terhadap biaya pelatihan.

Kemudian buku itu menjelaskan mengapa 280 adalah zaman yang tepat di mana overfitting telah dimulai. Itulah yang saya punya masalah. Saya tidak bisa membungkus kepala saya dengan ini.

Kami meminta model untuk meminimalkan biaya dan dengan demikian biaya adalah metrik yang digunakannya sebagai ukuran kekuatannya sendiri untuk mengklasifikasikan dengan benar. Jika kita menganggap 280 sebagai zaman yang tepat di mana overfitting telah dimulai, seandainya kita tidak dengan cara menciptakan model bias yang meskipun merupakan pengklasifikasi yang lebih baik pada data uji tertentu tetapi tetap membuat keputusan dengan kepercayaan rendah dan karenanya lebih cenderung menyimpang. dari hasil yang ditunjukkan pada data uji?

Nitin Siwach
sumber
Model tidak mengetahui set tes . Itu berdiri sebagai proxy untuk data yang tak terlihat. Oleh karena itu, jika itu berasal dari distribusi yang representatif, Anda dapat menggunakannya untuk menentukan kapan overfitting terjadi. Jika mau, Anda dapat membuat set penahan yang lain dan melihat apakah asumsi ini berlaku.
Emre
Apa yang Anda maksud dengan 'membuat keputusan dengan kepercayaan diri rendah'?
Belalang
@Grasshopper, izinkan kami mengatakan bahwa model sedang mencoba memprediksi satu dari 4 kelas {A, B, C, D}. Label data uji (dalam urutan) adalah (A, B, C, D). Sekarang dalam satu contoh model melempar probabilitas sebagai (Saya akan melabeli prediksi sepanjang) ((0,28, 0,24, 0,24, 0,24) (A), (0,24,0.28,0.24,0.24) (B), (0,24,0.24, 0.28.0.24) (C), (0.24.0.24.0.24.0.28) (D)) dan pada model yang lain melempar ((1.0.0.0) (A), (0.1.0.0) (B), (0,24,0.26,0.25,0.25) (B), (0,0,0,1) (D)). Yang saya maksud dengan kepercayaan rendah adalah contoh pertama. harap dicatat akurasi klasifikasi adalah 100% pada contoh pertama namun biayanya lebih tinggi
Nitin Siwach
@Grasshopper Singkatnya. Contoh pertama model dibuat setelah 280 zaman (lihat pertanyaan yang diajukan) dan contoh kedua model dibuat setelah 15 zaman. Sekarang buku ini terus menyarankan zaman 280 sebagai tempat di mana pemasangan yang berlebihan telah dimulai. Saya merasa sulit untuk menelan itu. bantuan atau pemikiran apa pun yang dapat Anda berikan sangat kami hargai.
Nitin Siwach

Jawaban:

6

Katakanlah kita ingin memprediksi apakah seorang siswa akan melakukan wawancara kerja berdasarkan resumenya.

Sekarang, anggap kita melatih model dari set data 10.000 resume dan hasilnya.

Selanjutnya, kami mencoba model keluar pada dataset asli, dan memprediksi hasil dengan akurasi 99% ... wow!

Tapi sekarang datang kabar buruknya.

Ketika kami menjalankan model pada dataset resume ("tak terlihat") yang baru, kami hanya mendapatkan akurasi 50% ... uh-oh!

Model kami tidak menggeneralisasi dengan baik dari data pelatihan kami untuk data yang tidak terlihat.

Ini dikenal sebagai overfitting, dan ini merupakan masalah umum dalam pembelajaran mesin dan ilmu data.

Overfitting V / s Underfitting

Kita bisa memahami overfitting lebih baik dengan melihat masalah yang berlawanan, underfitting.

Underfitting terjadi ketika model terlalu sederhana - diinformasikan oleh fitur yang terlalu sedikit atau terlalu banyak diatur - yang membuatnya tidak fleksibel dalam belajar dari dataset.

Pembelajar sederhana cenderung memiliki sedikit variasi dalam prediksi mereka tetapi lebih bias terhadap hasil yang salah (lihat: The Bias-Variance Tradeoff).

Di sisi lain, pelajar yang kompleks cenderung memiliki lebih banyak variasi dalam prediksi mereka.

Baik bias dan varians adalah bentuk kesalahan prediksi dalam pembelajaran mesin.

Biasanya, kita dapat mengurangi kesalahan dari bias tetapi mungkin meningkatkan kesalahan dari varians sebagai hasilnya, atau sebaliknya.

Pertukaran antara terlalu sederhana (bias tinggi) vs terlalu rumit (varians tinggi) adalah konsep utama dalam statistik dan pembelajaran mesin, dan yang mempengaruhi semua algoritma pembelajaran yang diawasi.

dileep balineni
sumber
2

Sesuatu yang saya pelajari dengan cara yang sulit adalah dengan memplot kurva belajar, saya tahu, itu tidak menyenangkan seperti menulis kode pembelajaran mesin sendiri, tetapi penting untuk secara visual memahami apa yang terjadi.

Definisi praktis adalah bahwa over fitting terjadi ketika akurasi kereta Anda terus meningkat sementara akurasi validasi Anda berhenti meningkat (atau bahkan mulai semakin buruk).

Solusi paling sederhana untuk menghindari kecocokan adalah penghentian dini (hentikan pelatihan segera setelah segala sesuatunya terlihat buruk), tentu saja solusi paling sederhana datang dengan biaya: itu bukan solusi terbaik. Regularisasi dan putus sekolah adalah alat yang bagus untuk memperjuangkan pas, tapi itu masalah yang berbeda :)

Semoga ini bisa membantu

Juan Antonio Gomez Moriano
sumber
2

Sebagai sumber yang Anda kutip mengatakan "biaya pada data uji tidak lebih dari proxy untuk akurasi klasifikasi." Anda mungkin bertanya, mengapa kami harus menggunakan proxy, mengapa tidak menggunakan akurasi secara langsung? Jawabannya adalah Anda perlu meminimalkan fungsi biaya sehubungan dengan bobot dan bias. Oleh karena itu harus menjadi fungsi yang dapat dibedakan dari bobot dan bias. Akurasi bukan fungsi yang dapat dibedakan dan karena itu tidak dapat digunakan secara langsung. Tetapi karena pada akhirnya Anda peduli dengan keakuratan, seperti yang Anda sendiri gambarkan di atas (... harap dicatat, akurasi klasifikasi 100% pada contoh pertama dan namun biayanya lebih tinggi ...), Anda menentukan overfitting berdasarkan keakuratan pada pengujian. set.

David Makovoz
sumber
0

Untuk memahami apa arti overfitting dan bagaimana hal itu memengaruhi keakuratan model, Anda harus memahami pengorbanan bias - varians.

Under-fitting dan overfitting adalah dua masalah berbeda yang berhubungan langsung dengan masalah bias-varians. Itu selalu penting untuk memahami hubungan antara tiga faktor yang berbeda dan bagaimana faktor-faktor ini terhubung ke masalah bias-varians (overfitting-under-fitting):

1 - ukuran model. Jumlah parameter

2- jumlah data yang tersedia untuk pelatihan. Jumlah sampel pelatihan.

3- jumlah iterasi. iterasi pelatihan.

Membuat hubungan langsung antara salah satu faktor ini dengan masalah overfitting-under-fitting tanpa melihat yang lain akan selalu mengarah pada kesimpulan yang salah.

Karena memahami faktor-faktor ini dan menghubungkan tema dengan menggunakan persamaan matematika untuk menghindari masalah overfitting dan masalah under-fitting adalah tugas yang sulit, lebih dari itu tergantung tugas, orang menggunakan metode sederhana untuk menemukan dan menghindari overfitting. Cara mudah adalah dengan membagi data menjadi tiga bagian berbeda, pelatihan, validasi, dan pengujian. Pengujian tidak boleh disentuh. Gunakan set pelatihan untuk melatih jaringan dan set validasi untuk menguji jaringan setelah setiap iterasi atau sejumlah iterasi. Secara teoritis, Anda akan melihat bahwa kesalahan pada set validasi berkurang secara bertahap untuk iterasi N pertama dan kemudian akan menjadi stabil untuk iterasi yang sangat sedikit dan kemudian mulai meningkat. Ketika kesalahan mulai meningkat, jaringan Anda mulai kelebihan data pelatihan dan proses pelatihan harus dihentikan.

Catatan: nilai N sangat terkait dengan tiga faktor yang saya sebutkan di atas. Itu selalu merupakan praktik yang baik untuk memiliki set pelatihan demo dan tes dengan model yang berbeda, data pelatihan. Anda akan melihat bahwa semakin besar model - semakin sedikit data pelatihan semakin kecil N. semakin kecil model - semakin banyak data pelatihan semakin besar N. Catatan: berhati-hatilah saat menggunakan model kecil yang memiliki masalah kurang pas.

Bashar Haddad
sumber
Anda telah mengatakan "Secara teoritis, Anda akan melihat bahwa kesalahan pada set validasi berkurang secara bertahap untuk iterasi N pertama dan kemudian akan menjadi stabil untuk iterasi yang sangat sedikit dan kemudian mulai meningkat." Apa yang Anda maksud dengan kesalahan di sini. Persis itulah masalah yang saya angkat dalam pertanyaan. Jawabannya adalah 15 jika saya mengambil biaya sebagai ukuran kesalahan dan 280 jika saya mengambil akurasi klasifikasi sebagai ukuran kesalahan
Nitin Siwach
harap perhatikan koreksi dalam komentar di atas: Jawaban untuk kapan overfitting telah dimulai adalah zaman 15 jika saya mengambil biaya sebagai ukuran kesalahan dan zaman 280 jika saya mengambil akurasi klasifikasi sebagai ukuran kesalahan
Nitin Siwach
Kesalahan pada set validasi
Bashar Haddad
dan ukuran kesalahan itu? (100 - Akurasi klasifikasi) atau biaya. Saya mengerti kesalahan pada set validasi yang terkait dengan akurasi klasifikasi. Tapi itulah tepatnya yang saya tanyakan. Kenapa tidak biaya? Silakan merujuk ke komentar yang saya buat dalam menanggapi Grasshopper pada pertanyaan awal
Nitin Siwach