Memahami kurva kerugian dan akurasi

Aug 20 2020

Ini adalah masalah yang saya temui berulang kali. Loss (cross-entropy dalam hal ini) dan plot akurasi yang tidak masuk akal. Berikut ini contohnya:

Di sini, saya melatih ReNet18 di CIFAR10. Pengoptimal adalah SGD dengan kecepatan pembelajaran 0,1, momentum 0,9 Nesterov, penurunan bobot 1e-4. Kecepatan pembelajaran diturunkan menjadi ⅕ di epoch 60, 120, 160.

  • Awalnya lekuk tubuh semuanya bagus dan keren; Artinya kerugian pelatihan dan validasi menurun dan akurasi meningkat.
  • Sekitar epoch 65 ~ 70 Anda melihat tanda-tanda overfitting; sebagai val. kerugian mulai meningkat dan val. akurasi mulai menurun ( kotak merah ). Masih tidak ada yang aneh di sini.

Sekarang ada dua hal yang tidak masuk akal bagi saya:

  1. Setelah epoch 120 (di mana LR dikurangi) val. kerugian dan akurasi mulai meningkat selama beberapa periode ( kotak hijau ). Mengapa menurunkan kecepatan pembelajaran tiba-tiba meningkatkan performa validasi model yang sudah overfitting ?! Saya berharap penurunan LR benar-benar mempercepat overfitting.

  2. Setelah epoch ~ 125 ( kotak biru ) kerugian mulai meningkat tetapi akurasi terus meningkat. Saya memahami bahwa kerugian dapat meningkat sementara keakuratan tetap konstan (dengan model yang semakin yakin dengan prediksi yang salah atau kurang yakin dengan prediksi yang benar). Tapi saya tidak mengerti bagaimana akurasi dapat meningkat sementara kerugian meningkat.

Jawaban

hH1sG0n3 Aug 20 2020 at 18:52

Hanya beberapa poin di bawah ini

  • Kotak merah: Dalam istilah yang ketat, overfitting terjadi saat model melakukan lebih baik dalam pelatihan daripada set validasi. Jadi, saya akan mengatakan di sini ini dimulai lebih awal dari apa yang dilambangkan dengan warna merah dan mungkin berhubungan dengan model yang menemukan parameter yang lebih baik yang hanya berlaku untuk set pelatihan. Dari catatan, tidak ada penurunan kerugian kereta yang signifikan.
  • Kotak hijau: Dalam pelatihan, penurunan kerugian yang signifikan. Penemuan nilai minimum yang jauh lebih baik berarti ini juga dapat diterapkan dalam set validasi dan sebenarnya tercermin dalam kurva kerugian val. Meski begitu, kerugiannya tidak lebih baik dari checkpoint di awal kotak merah.
  • Kotak biru: Kerugian dan akurasi bukanlah metrik yang bergantung bersama. Sedangkan akurasi adalah ukuran dari jumlah tebakan yang benar (berapa banyak), loss adalah ukuran jarak dari benar yang diberikan titik data (seberapa jauh).

Secara umum, lr yang lebih kecil berarti model memiliki lebih sedikit "kebebasan" untuk melompat-lompat jauh di dalam ruang fitur. Jadi, ada lebih sedikit peluang untuk melihat penurunan kerugian yang signifikan dan cepat. Seperti yang Anda sarankan, ada sedikit tren overfitting ke atas dalam kerugian val Anda, tetapi signifikan atau secepat lr yang lebih kecil memungkinkan dalam pelatihan.

Juga, perhatikan bahwa kerugian kereta Anda lebih tinggi daripada kerugian val untuk jumlah yang baik dari pelatihan Anda (~ epoch ke-55). Anda mungkin ingin menyelidiki bagaimana model Anda diatur karena hal ini dapat memengaruhi kurva pembelajaran Anda dengan cara yang dapat membantu Anda menyimpulkan diagnostik dengan lebih baik. Misalnya di pytorch, train loss antara status model (model.train () dan model.eval ()) berbeda secara signifikan.