Lensa ML

Learning Curve

Langkah 1 dari 6: Apa Itu Learning Curve?

Akurasi vs. ukuran training set

0%20%40%60%80%100%1058105153200Ukuran training setAkurasiTrainValidationN=80
N
80
Akurasi train
92.8%
Akurasi val
79.5%
Selisih
13.3%

Learning curve memetakan performa model terhadap ukuran training set. Selisih antara kurva training dan validation menunjukkan apakah model mengalami underfitting atau overfitting.

Geser ukuran training set N dari 10 sampai 200 dan lihat kedua titik bergerak di kurvanya. Untuk membuat learning curve di proyek sungguhan, latih model yang sama pada subset data training yang makin besar, misalnya 10%, 20%, dan seterusnya sampai 100%, lalu nilai masing-masing pada satu validation set yang tetap. Pada data sungguhan, training error biasanya mulai mendekati nol, karena titik yang sedikit mudah dicocokkan, lalu naik seiring N, sementara validation error turun. Demo ini mengikuti pola itu: pada N = 10 akurasi training 98,8% dan akurasi validation 56,7%, dan pada N = 200 keduanya menjadi 88,7% dan 86,2%. Posisi akhir kedua kurva memberi tahu masalah yang kamu hadapi.

Langkah 2 dari 6: Pola Bias Tinggi

Kedua kurva mendatar di nilai rendah

Data mengikuti kurva: bisakah polinomial derajat 1 menangkapnya?
x (feature)y (target)pola aslifit derajat 1
0%20%40%60%80%100%1058105153200Ukuran training setAkurasiTrainValidationplateau
Derajat
1
Fit error
0.025
Akurasi train
55.0%
Plateau
55.0%

Garis lurus tidak bisa mengikuti pola melengkung ini, jadi fit error-nya tetap tinggi. Berapa pun data tambahannya, kelas model yang terlalu kaku tidak akan membaik.

Atur derajat model ke 1, 2, dan 3, lalu bandingkan kartu Fit error. Garis lurus menyisakan error sekitar 0,025, sedangkan kuadratik dan kubik sama-sama mencapai sekitar 0,002, mendekati noise yang ditambahkan ke 20 titik ini. Pola aslinya adalah 0.3 + 0.5·sin(πx) pada [0, 1], satu puncak yang bisa didekati parabola dengan baik. Ciri bias tinggi pada learning curve adalah dua kurva yang cepat bertemu di skor buruk dan tetap datar, seperti keduanya di 55% untuk garis lurus. Menggandakan data tidak menggeser keduanya.

Langkah 3 dari 6: Pola Variance Tinggi

Selisih yang terus ada

Polinomial derajat 4 melewati 5 titik training: menghafal train, meleset di validation
x (feature)y (target)Train (5)Val (10)model overfit
0%20%40%60%80%100%1058105153200Ukuran training setAkurasiTrainValidation28% selisih
Train err
0.0000
Val err
141.524
Rasio err
1.4M×
Selisih
28.2%

Training error tetap nol karena derajatnya naik mengikuti jumlah sampel, sementara kurvanya berayun jauh dari titik validation di sela-selanya.

Geser slider sampel training dari 3 sampai 10. Demo ini mencocokkan polinomial derajat n − 1 melalui n titik training, jadi training error selalu nol: kalau jumlah koefisien sama dengan jumlah titik, selalu ada kurva yang pas persis. Validation error pada 5 sampai 8 sampel mencapai ratusan, karena kurvanya berayun jauh ke luar rentang [0, 1] di antara titik training. Pada 10 sampel yang tersebar merata, nilainya turun ke sekitar 0,02. Model berderajat tetap berperilaku sama ketika N melewati jumlah parameter.

Langkah 4 dari 6: Menambah Data

Apakah membantu?

0%20%40%60%80%100%10133255378500Ukuran training setAkurasiTrainValidationN=80
N
80
Selisih
2.8%
Tren
menyempit
Diagnosis
Bias Tinggi

Akurasi validation model sederhana cepat mendatar. Setelah kurvanya datar, data tambahan tidak membantu, tetapi model yang lebih fleksibel bisa.

Geser N sampai 500 dan ganti kompleksitas model antara pengaturan sederhana dan kompleks. Learning curve menjawab pertanyaan anggaran sebelum ada yang mengumpulkan data. Kalau akurasi validation masih naik pada N terbesar, data tambahan mungkin sepadan. Kalau sudah mendatar, tidak. Studi besar tentang deep network menemukan bahwa test error turun mengikuti power law terhadap ukuran dataset pada rentang yang lebar, yang tampak sebagai garis lurus pada grafik log-log. Tim-tim mengekstrapolasi garis itu untuk memperkirakan jumlah data yang dibutuhkan demi akurasi tertentu.

Langkah 5 dari 6: Mengubah Kompleksitas Model

Tuas yang satu lagi

0%20%40%60%80%100%1058105153200Ukuran training setAkurasiTrainValidationN=100Pas
Kompleksitas
5
Akurasi train
91.7%
Akurasi val
81.9%
Selisih
9.8%

Rentang yang pas: akurasi validation mendekati puncaknya di sini. Setelah titik ini, kompleksitas tambahan mulai menurunkan akurasi validation.

Geser kompleksitas model dari 1 sampai 10 dengan N tetap di 100. Langkah ini membaca kurva dari arah sebaliknya: satu learning curve per kompleksitas, dibandingkan pada satu N. Memetakan skor validation terhadap kompleksitas, bukan terhadap N, menghasilkan validation curve, nama yang dipakai scikit-learn untuk grafik pendamping ini. Kedua grafik memisahkan dua tuas. Validation curve memilih kapasitas, lalu learning curve menunjukkan apakah kapasitas itu kekurangan data.

Langkah 6 dari 6: Diagnosis Modelmu

Jelajahi skenario secara interaktif

0%20%40%60%80%100%1058105153200Ukuran training setAkurasiTrainValidationBaik
Diagnosis
Baik
Tindakan
Model sudah seimbang
Akurasi train
92.8%
Akurasi val
79.5%

Seimbang: selisihnya kecil dan akurasi validation tidak tertahan oleh underfitting. Bias dan variance sama-sama terkendali.

Geser kedua slider dan perhatikan kartu Diagnosis dan Tindakan. Aturan di sini memakai dua threshold: akurasi validation di bawah 70% dengan selisih di bawah 12 poin dibaca sebagai underfitting, dan selisih di atas 15 poin dibaca sebagai overfitting. Proyek sungguhan menambahkan acuan ketiga, yaitu skor terbaik yang bisa dicapai, misalnya akurasi setingkat manusia. Jarak dari skor itu ke performa training adalah avoidable bias, dan jarak dari performa training ke validation adalah variance. Kerjakan dulu yang lebih besar.

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

Referensi

  1. Perlich, Provost & Simonoff (2003), "Tree Induction vs. Logistic Regression: A Learning-Curve Analysis", JMLR
  2. Hestness et al. (2017), "Deep Learning Scaling is Predictable, Empirically"
  3. Kaplan et al. (2020), "Scaling Laws for Neural Language Models"

Terakhir diperbarui