Overfitting

Overfitting berarti membuat model yang cocok dengan (menghafal) set pelatihan agar bahwa model gagal membuat prediksi yang benar pada data baru. Model {i>overfit<i} mirip dengan penemuan yang bekerja dengan baik di laboratorium, tetapi tidak ada gunanya di dunia nyata.

Pada Gambar 11, bayangkan bahwa setiap bentuk geometris mewakili posisi pohon di hutan persegi. Berlian biru menandai lokasi pohon yang sehat, sedangkan lingkaran oranye menandai lokasi pohon yang sakit.

Gambar 11. Gambar ini berisi sekitar 60 titik, yang setengahnya adalah
            pohon yang sehat dan 
pohon lain yang sakit.
            Pohon yang sehat terutama berada di kuadran timur laut, meskipun beberapa
            pohon-pohon yang sehat menyelinap 
ke kuadran barat laut. Pohon-pohon yang sakit
            terutama berada di kuadran tenggara, tetapi beberapa pohon yang sakit
            menyebar ke kuadran lain.
Gambar 11. Set pelatihan: lokasi pohon yang sehat dan sakit di hutan persegi.

 

Gambarlah bentuk apa pun—garis, kurva, oval...apa pun—untuk memisahkan pohon-pohon yang sehat dari pohon yang sakit. Kemudian, perluas baris berikutnya untuk memeriksa satu kemungkinan pemisahan.

Bentuk kompleks yang ditunjukkan pada Gambar 12 berhasil mengategorikan semua kecuali dua dari pepohonan. Jika kita memikirkan bentuk sebagai model, maka ini adalah pencapaian yang model transformer.

Tapi, apa benar begitu? Model yang benar-benar bagus berhasil mengategorikan contoh baru. Gambar 13 menunjukkan apa yang terjadi ketika model yang sama membuat prediksi pada contoh dari set pengujian:

Gambar 13. Kumpulan baru pohon sehat dan sakit yang dihamparkan di
            yang ditunjukkan pada Gambar 12. Model ini salah mengkategorikan banyak
            pohon.
Gambar 13.Set pengujian: model kompleks untuk membedakan pohon yang sakit dari pohon yang sehat.

 

Jadi, model kompleks yang ditunjukkan pada Gambar 12 bekerja dengan baik pada set pelatihan tetapi pekerjaan yang cukup buruk di set pengujian. Ini adalah kasus klasik dari overfitting ke data set pelatihan.

Pengepasan, overfitting, dan underfitting

Model harus membuat prediksi yang baik pada data baru. Yaitu, Anda ingin membuat model yang "sesuai" data baru.

Seperti yang Anda lihat, model {i>overfit<i} membuat prediksi yang sangat baik pada latihan set, tetapi menghasilkan prediksi buruk pada data baru. Channel Model underfit bahkan tidak membuat prediksi yang baik pada data pelatihan. Jika model {i>overfit<i} seperti produk yang bekerja dengan baik di lab tetapi buruk di dunia nyata, maka model {i>underfit<i} seperti produk yang bahkan tidak bekerja dengan baik laboratorium.

Gambar 14. Plot Kartesius. Sumbu X diberi label &#39;kualitas prediksi
            set pelatihan.&#39; Sumbu Y diberi label &#39;kualitas prediksi pada
            data di dunia nyata.&#39; Kurva dimulai dari tempat asal dan 
meningkat secara bertahap,
            tapi kemudian jatuh dengan cepat. Bagian kiri bawah kurva
            (kualitas prediksi yang rendah pada data di dunia nyata dan
            prediksi di set pelatihan) berlabel &#39;model underfit&#39;. Tujuan
            bagian kanan bawah dari kurva (kualitas prediksi yang rendah pada
            data di dunia nyata tetapi prediksi berkualitas tinggi di set pelatihan)
            diberi label &#39;model overfit&#39;. Puncak kurva (kualitas tinggi
            prediksi pada data di dunia nyata dan kualitas prediksi sedang
            di set pelatihan) diberi label &#39;model yang sesuai&#39;.
Gambar 14. Model underfit, fit, dan overfit.

 

Generalisasi adalah kebalikan dari {i>overfitting<i}. Artinya, model yang menggeneralisasi dengan baik akan cocok terhadap data baru. Tujuan Anda adalah membuat model yang menggeneralisasi terhadap data baru.

Mendeteksi overfitting

Kurva berikut membantu Anda mendeteksi overfitting:

  • kurva kerugian
  • kurva generalisasi

Kurva kerugian memetakan kerugian model terhadap jumlah iterasi pelatihan. Grafik yang menunjukkan dua atau lebih kurva kerugian disebut generalisasi kurva. Hal berikut kurva generalisasi menunjukkan dua kurva kerugian:

Gambar 15. Fungsi kerugian untuk set pelatihan secara bertahap
            menurun. Fungsi kerugian untuk set validasi juga menurun,
            tapi kemudian mulai meningkat 
setelah beberapa iterasi.
Gambar 15. Kurva generalisasi yang sangat menyiratkan overfitting.

 

Perhatikan bahwa kedua kurva kerugian berperilaku serupa pada awalnya, lalu kemudian berbeda. Artinya, setelah beberapa iterasi, kerugian menurun atau stabil (konvergensi) untuk set pelatihan, tetapi meningkatkan untuk set validasi. Hal ini menunjukkan overfitting.

Sebaliknya, kurva generalisasi untuk model yang cocok menunjukkan dua kurva kerugian yang memiliki bentuk serupa.

Apa yang menyebabkan overfitting?

Secara umum, overfitting disebabkan oleh salah satu atau kedua hal berikut masalah:

  • Set pelatihan tidak secara memadai merepresentasikan data kehidupan nyata (atau set validasi atau set pengujian).
  • Model terlalu kompleks.

Kondisi generalisasi

Model berlatih pada set pelatihan, tetapi pengujian nilai model yang sebenarnya adalah seberapa AI generatif akan membuat prediksi pada contoh-contoh baru, terutama pada data di dunia nyata. Saat mengembangkan model, set pengujian Anda berfungsi sebagai proxy untuk data di dunia nyata. Melatih model yang melakukan generalisasi dengan baik menyiratkan kondisi set data berikut:

  • Contoh harus terdistribusi secara independen dan identik, yang merupakan cara yang elegan untuk mengatakan bahwa contoh tidak dapat saling mempengaruhi satu sama lain.
  • {i>Dataset <i}tersebut merupakan tetap, artinya tidak berubah secara signifikan dari waktu ke waktu.
  • Partisi set data memiliki distribusi yang sama. Artinya, contoh dalam set pelatihan secara statistik mirip dengan di set validasi, set pengujian, dan data di dunia nyata.

Pelajari kondisi sebelumnya melalui latihan berikut.

Latihan: Menguji pemahaman Anda

Pertimbangkan partisi set data berikut.
Bilah horizontal yang dibagi menjadi tiga bagian: 70% dari batang
                     adalah set pelatihan, 15% set validasi, dan 15%
                     set pengujian
Apa yang harus Anda lakukan untuk memastikan bahwa contoh dalam set pelatihan memiliki distribusi statistik yang serupa dengan contoh di set validasi dan set pengujian?
Mengacak contoh dalam {i>dataset<i} secara ekstensif sebelum mempartisinya.
Ya. Pengacakan contoh yang baik membuat partisi jauh lebih cenderung serupa secara statistik.
Urutkan contoh dari yang paling awal ke yang paling baru.
Jika contoh dalam {i>dataset<i} tidak stasioner, maka pengurutan akan membuat partisi lebih sedikit yang serupa.
Tidak melakukan apa pun. Dengan contoh yang memadai, hukum rata-rata secara alami memastikan bahwa distribusi akan serupa secara statistik.
Sayangnya, tidak demikian. Contoh di bagian-bagian tertentu dari {i>dataset<i} itu mungkin berbeda dari yang ada di bagian.
Layanan streaming sedang mengembangkan model untuk memprediksi popularitas acara televisi baru yang potensial untuk tiga tahun ke depan. Tujuan rencana layanan streaming untuk melatih model pada set data yang berisi ratusan juta contoh, yang mencakup sepuluh tahun lalu. Apakah model ini akan mengalami masalah?
Mungkin. Pelihat selera berubah dengan cara yang tidak bisa dilakukan oleh perilaku masa lalu diprediksi.
Ya. Selera penonton tidak berubah. Mereka terus berubah.
Tentu saja tidak. {i>Dataset<i} cukup besar untuk mengambil terhadap prediksi yang di-output oleh model.
Sayangnya, selera bersifat nonstasioner.
Mungkin tidak. Pelihat selera berubah dengan cara siklus yang dapat diprediksi. Dengan data selama sepuluh tahun, model ini dapat membuat prediksi yang baik tren masa depan.
Meskipun aspek hiburan tertentu agak siklus, yang dilatih dari sejarah hiburan masa lalu hampir pasti akan mengalami kesulitan membuat prediksi tentang beberapa tahun ke depan.
Sebuah model bertujuan memprediksi waktu yang dibutuhkan orang untuk berjalan sejauh satu mil berdasarkan data cuaca (suhu, titik embun, dan presipitasi) yang dikumpulkan selama satu tahun di kota yang cuacanya bervariasi secara signifikan berdasarkan musim. Dapatkah Anda membangun dan menguji model dari {i>dataset<i}, meskipun pembacaan cuaca berubah secara dramatis karena musim ini?
Ya
Ya, Anda dapat membangun dan menguji model dari set data ini. Anda hanya perlu memastikan bahwa data dipartisi secara merata, jadi bahwa data dari keempat musim tersebut didistribusikan secara merata ke partisi yang berbeda.
Tidak
Dengan asumsi {i>dataset<i} ini berisi cukup contoh suhu, embun dan curah hujan, maka Anda dapat membangun dan menguji model dari {i>dataset<i} ini. Anda hanya perlu memastikan bahwa data telah dipartisi sehingga data dari keempat musim didistribusikan secara merata ke dalam partisi yang berbeda.

Latihan tantangan

Anda membuat model yang memprediksi tanggal ideal bagi pengendara untuk membeli tiket kereta api untuk rute tertentu. Misalnya, model mungkin merekomendasikan pengguna membeli tiket pada 8 Juli untuk kereta yang berangkat pada 23 Juli. Perusahaan kereta memperbarui harga setiap jam, berdasarkan variasi banyak faktor, tetapi terutama pada jumlah kursi yang tersedia saat ini. Definisinya yaitu:

  • Jika banyak kursi yang tersedia, harga tiket biasanya rendah.
  • Jika hanya ada sedikit kursi yang tersedia, harga tiket biasanya akan tinggi.
Model Anda menunjukkan rendahnya kerugian pada set validasi dan set pengujian, tetapi terkadang membuat prediksi yang buruk dari data di dunia nyata. Mengapa?
Klik di sini untuk melihat jawabannya