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.
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:
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.
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.](https://developers.google.cn/static/machine-learning/crash-course/images/RegularizationTwoLossFunctions.png?authuser=6&hl=id)
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
![Bilah horizontal yang dibagi menjadi tiga bagian: 70% dari batang
adalah set pelatihan, 15% set validasi, dan 15%
set pengujian](https://developers.google.cn/static/machine-learning/crash-course/images/PartitionThreeSets.png?authuser=6&hl=id)
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.
Jawaban: Model di dunia nyata mengalami kesulitan dengan feedback loop.
Sebagai contoh, model merekomendasikan agar pengguna membeli tiket pada tanggal 8 Juli. Beberapa pengendara yang menggunakan rekomendasi model membeli tiket mereka pada pukul 08.30 pada pagi hari tanggal 8 Juli. Pada pukul 09.00, perusahaan kereta menaikkan harga karena lebih sedikit kursi yang tersedia sekarang. Pengendara yang menggunakan rekomendasi model ini perubahan harga. Pada malam hari, harga tiket mungkin jauh lebih tinggi daripada pagi.