Apa itu learning curve dalam machine learning?
Learning curve adalah grafik performa training dan validation sebuah model terhadap jumlah data training. Dari posisi kedua kurva dan jarak di antaranya, kamu bisa membaca apakah masalah utama model adalah bias tinggi (underfitting) atau variance tinggi (overfitting), dan apakah data tambahan kemungkinan akan membantu.
Learning curve adalah alat diagnosis standar sebelum mengeluarkan uang untuk pelabelan data atau model yang lebih besar. Tim yang menimbang pelabelan 50.000 gambar lagi, peserta Kaggle yang memilih antara network lebih dalam dan augmentation lebih banyak, dan peneliti yang mencocokkan scaling law untuk model bahasa semuanya memakai grafik yang sama. Istilah ini juga dipakai secara lebih longgar untuk loss terhadap epoch training, yang menjawab pertanyaan berbeda.
Ide utama
- Learning curve memetakan performa training dan validation terhadap ukuran training set.
- Bias tinggi terlihat sebagai dua kurva yang cepat bertemu di skor buruk.
- Variance tinggi terlihat sebagai selisih besar antara performa training dan validation.
- Data tambahan membantu variance tinggi, tetapi hampir tidak membantu bias tinggi.
- Kurva validation yang datar pada N terbesar berarti data tambahan kemungkinan besar tidak sepadan.
- Validation curve mengubah kompleksitas pada N tetap dan melengkapi learning curve.
Pertanyaan umum
Apa bedanya learning curve dan loss curve?
Learning curve dalam arti ketat mengubah jumlah data training. Loss curve, yang di deep learning sering juga disebut learning curve, memetakan loss terhadap epoch atau langkah training untuk satu dataset tetap. Loss curve dipakai untuk early stopping dan menyetel learning rate, sedangkan kurva ukuran data dipakai untuk memutuskan apakah perlu mengumpulkan data lagi.
Bagaimana cara membuat learning curve di scikit-learn?
Pakai sklearn.model_selection.learning_curve, yang menerima estimator, data, dan daftar ukuran training set. Fungsi ini menjalankan cross-validation di tiap ukuran dan mengembalikan skor training dan validation untuk setiap fold. Plot rata-rata masing-masing dengan pita arsir selebar satu simpangan baku.
Kenapa akurasi validation lebih tinggi daripada akurasi training?
Penyebab umumnya adalah regularization yang hanya aktif saat training, seperti dropout, dan data augmentation yang membuat contoh training lebih sulit daripada contoh validation. Akurasi training yang dicatat sebagai rata-rata berjalan selama satu epoch juga tertinggal dari weight model di akhir epoch. Validation set yang kecil atau kebetulan mudah bisa menimbulkan efek yang sama.
Berapa banyak ukuran training set yang perlu dipakai?
Lima sampai sepuluh ukuran biasanya cukup, dengan jarak pada skala log seperti 1%, 3%, 10%, 30%, dan 100% dari data. Jarak log memperlihatkan kenaikan awal dan plateau di akhir sama baiknya. Ulangi tiap ukuran dengan cross-validation atau beberapa seed, karena subset kecil memberi skor yang tidak stabil.
Penjelasan terkait
- Bias-Variance Tradeoff · Kenapa model mengalami underfitting atau overfitting, lewat dekomposisi dasarnya
- Overfitting dan Underfitting · Bias-variance tradeoff dan generalisasi
- Training, Validation, dan Test Set · Membagi data untuk mengukur generalization dan menghindari overfitting
- Cross-Validation · Evaluasi dengan k-fold, stratified, dan leave-one-out
- Regularization · Dropout, L1, dan L2 agar model tetap jujur
- Epoch dan Batching · Cara data masuk ke model lewat epoch, batch, dan shuffle
Referensi
- Perlich, Provost & Simonoff (2003), "Tree Induction vs. Logistic Regression: A Learning-Curve Analysis", JMLR
- Hestness et al. (2017), "Deep Learning Scaling is Predictable, Empirically"
- Kaplan et al. (2020), "Scaling Laws for Neural Language Models"
Terakhir diperbarui