Saya telah mereplikasi hasil Anda menggunakan Keras, dan mendapat nomor yang sangat mirip sehingga saya tidak berpikir Anda melakukan kesalahan.
Karena ketertarikan, saya berlari untuk banyak zaman untuk melihat apa yang akan terjadi. Keakuratan hasil tes dan kereta api tetap cukup stabil. Namun, nilai kerugiannya semakin terpisah jauh dari waktu ke waktu. Setelah sekitar 10 zaman, saya mendapatkan akurasi kereta 100%, akurasi uji 94,3% - dengan nilai kerugian masing-masing sekitar 0,01 dan 0,22. Setelah 20.000 zaman, keakuratannya hampir tidak berubah, tetapi saya mengalami kehilangan pelatihan 0,000005 dan pengujian kehilangan 0,36. Kerugian juga masih menyimpang, meskipun sangat lambat. Menurut saya, jaringannya jelas terlalu pas.
Jadi pertanyaannya dapat diutarakan kembali: Mengapa, meskipun terlalu pas, apakah jaringan saraf dilatih untuk set data MNIST masih menggeneralisasi tampaknya cukup baik dalam hal akurasi?
Perlu membandingkan akurasi 94,3% ini dengan apa yang mungkin dilakukan dengan menggunakan pendekatan yang lebih naif.
Sebagai contoh, regresi softmax linier sederhana (pada dasarnya jaringan saraf yang sama tanpa lapisan tersembunyi), memberikan akurasi stabil cepat kereta 95,1%, dan tes 90,7%. Ini menunjukkan bahwa banyak data terpisah secara linier - Anda dapat menggambar hyperplanes dalam dimensi 784 dan 90% gambar digit akan berada di dalam "kotak" yang benar tanpa memerlukan penyempurnaan lebih lanjut. Dari ini, Anda mungkin mengharapkan solusi non-linear berlebih untuk mendapatkan hasil yang lebih buruk dari 90%, tetapi mungkin tidak lebih buruk dari 80% karena secara intuitif membentuk batas yang terlalu kompleks di sekitar misalnya "5" ditemukan di dalam kotak untuk "3" hanya akan salah menetapkan sejumlah kecil manifold naif 3 ini. Tapi kami lebih baik daripada perkiraan 80% batas bawah ini dari model linear.
Model naif lain yang mungkin adalah pencocokan templat, atau tetangga terdekat. Ini adalah analogi yang masuk akal untuk apa yang dilakukan pemasangan berlebihan - ini menciptakan area lokal yang dekat dengan setiap contoh pelatihan di mana ia akan memprediksi kelas yang sama. Masalah dengan over-fitting terjadi di ruang di antara di mana nilai-nilai aktivasi akan mengikuti apa pun yang dilakukan jaringan "secara alami". Catat kasus terburuk, dan apa yang sering Anda lihat dalam diagram penjelas, adalah permukaan yang nyaris kacau dan melengkung yang bergerak melalui klasifikasi lain. Tapi sebenarnya itu mungkin lebih alami untuk jaringan saraf untuk lebih lancar interpolasi antara titik - apa yang sebenarnya dilakukannya tergantung pada sifat kurva urutan yang lebih tinggi bahwa jaringan menggabungkan ke dalam perkiraan, dan seberapa baik mereka sudah sesuai dengan data.
Saya meminjam kode untuk solusi KNN dari blog ini di MNIST dengan K Nearest Neighbors . Menggunakan k = 1 - yaitu memilih label yang terdekat dari 6000 contoh pelatihan hanya dengan mencocokkan nilai piksel, memberikan akurasi 91%. Tambahan 3% yang dicapai oleh jaringan saraf berlebih tampaknya tidak begitu mengesankan mengingat kesederhanaan penghitungan pixel-match yang dilakukan KNN dengan k = 1.
Saya mencoba beberapa variasi arsitektur jaringan, fungsi aktivasi yang berbeda, jumlah dan ukuran lapisan yang berbeda - tidak ada yang menggunakan regularisasi. Namun, dengan 6.000 contoh pelatihan, saya tidak bisa mendapatkan salah satu dari mereka untuk berpakaian dengan cara di mana akurasi tes turun secara dramatis. Bahkan mengurangi menjadi hanya 600 contoh pelatihan hanya membuat dataran tinggi lebih rendah, dengan akurasi ~ 86%.
Kesimpulan dasar saya adalah bahwa contoh-contoh MNIST memiliki transisi yang relatif mulus antara kelas-kelas dalam ruang fitur, dan bahwa jaringan saraf dapat cocok dengan ini dan interpolasi antara kelas-kelas dengan cara "alami" yang diberikan blok bangunan NN untuk perkiraan fungsi - tanpa menambahkan komponen frekuensi tinggi ke perkiraan yang dapat menyebabkan masalah dalam skenario pakaian berlebih.
Ini mungkin eksperimen yang menarik untuk dicoba dengan set "MNIST berisik" di mana sejumlah noise atau distorsi acak ditambahkan pada contoh pelatihan dan contoh uji. Model yang diregulasi akan diharapkan bekerja dengan baik pada dataset ini, tetapi mungkin dalam skenario itu over-fitting akan menyebabkan masalah yang lebih jelas dengan akurasi.
Ini dari sebelum pembaruan dengan tes lebih lanjut oleh OP.
Dari komentar Anda, Anda mengatakan bahwa hasil pengujian Anda diambil setelah menjalankan satu zaman. Anda pada dasarnya telah menggunakan penghentian dini, meskipun Anda belum menulis, karena Anda telah menghentikan pelatihan sedini mungkin dengan data pelatihan Anda.
Saya akan menyarankan menjalankan lebih banyak zaman jika Anda ingin melihat bagaimana jaringan benar-benar konvergen. Mulailah dengan 10 zaman, pertimbangkan untuk mencapai 100. Satu zaman tidak banyak untuk masalah ini, terutama pada 6000 sampel.
Meskipun peningkatan jumlah iterasi tidak dijamin membuat pakaian jaringan Anda lebih buruk daripada yang sudah ada, Anda belum benar-benar memberinya banyak kesempatan, dan hasil percobaan Anda sejauh ini tidak konklusif.
Sebenarnya saya setengah berharap hasil data pengujian Anda akan meningkat mengikuti zaman ke-2, ke-3, sebelum mulai menjauh dari metrik pelatihan saat jumlah zaman meningkat. Saya juga berharap kesalahan pelatihan Anda mendekati 0% ketika jaringan mendekati konvergensi.