Kita tidak perlu lagi khawatir tentang Overfitting – Menuju AI – Teknologi, Sains, dan Teknik Terbaik

Penulis: Sean Benhur J

Pembelajaran mesin

Kami Tidak Perlu Khawatir Tentang Overfitting Lagi

Foto oleh Mohamed Nohassi di Unsplash

Dimotivasi oleh pekerjaan sebelumnya yang menghubungkan geometri lanskap yang hilang
dan generalisasi, kami memperkenalkan prosedur baru yang efektif untuk meminimalkan nilai kerugian dan ketajaman kerugian secara bersamaan. Secara khusus, prosedur kami,
Sharpness-Aware Minimization (SAM), mencari parameter yang terletak di tetangga-
tudung yang memiliki kerugian rendah seragam; formulasi ini menghasilkan masalah optimisasi min-max di mana penurunan gradien dapat dilakukan secara efisien. Kami menyajikan hasil empiris yang menunjukkan bahwa SAM meningkatkan generalisasi version di berbagai put data tolok ukur[1]

Sumber: Makalah Minimisasi Kesadaran Ketajaman [1]

Dalam Pembelajaran Mendalam, kami menggunakan algoritme pengoptimalan seperti SGD / Adam untuk mencapai konvergensi dalam version kami, yang mengarah pada penemuan minimum international, yaitu titik di mana hilangnya put information pelatihan rendah. Tetapi beberapa jenis penelitian seperti Zhang dkk telah menunjukkan, banyak jaringan dapat dengan mudah menghafal information pelatihan dan memiliki kapasitas untuk menyesuaikan secara berlebihan. Untuk mencegah masalah ini dan menambahkan lebih banyak generalisasi, Peneliti di Google telah menerbitkan makalah baru yang disebut Minimisasi Kesadaran Ketajaman. Yang memberikan hasil State of the Art pada CIFAR10 dan kumpulan information lainnya.

Pada artikel ini, kita akan melihat mengapa SAM dapat mencapai generalisasi yang lebih baik dan bagaimana kita dapat mengimplementasikan SAM di Pytorch.

Mengapa SAM bekerja!?

Dalam penurunan Gradien atau algoritme pengoptimalan lainnya, tujuan kami adalah menemukan parameter yang memiliki nilai kerugian rendah

Tetapi SAM mencapai generalisasi yang lebih baik daripada metode pengoptimalan ordinary lainnya dengan berfokus pada pencarian parameter yang terletak di lingkungan yang memiliki nilai kerugian rendah secara seragam (bukan parameter yang hanya memiliki nilai kerugian rendah)

Karena menghitung parameter lingkungan selain menghitung parameter tunggal, lanskap kerugian lebih datar dibandingkan dengan metode pengoptimalan lainnya, yang pada gilirannya meningkatkan generalisasi version.

(Kiri)) Nilai minimal yang tajam di mana ResNet yang dilatih dengan SGD berkumpul. (Kanan) Minimum lebar tempat ResNet yang sama dilatih dengan SAM terkonvergensi. Sumber Gambar: SAM Paper[1]

Catatan: SAM bukanlah pengoptimal baru, Ini digunakan dengan pengoptimal umum lainnya seperti SGD / Adam

Menerapkan SAM di Pytorch:

Menerapkan SAM di Pytorch sangat sederhana dan mudah

https://medium.com/media/f2c17176a173b329daa4f399c8241911/href

Penjelasan kode,

Pada awalnya, kita mewarisi dari kelas pengoptimal dari Pytorch untuk membuat pengoptimal, meskipun SAM bukan pengoptimal baru tetapi untuk memperbarui gradien (dengan bantuan pengoptimal dasar) di setiap langkah kita perlu mewarisi kelas itu Kelas menerima parameter version, pengoptimal dasar dan rho, yang merupakan ukuran lingkungan untuk menghitung kerugian maksimum Sebelum melanjutkan ke langkah berikutnya, mari kita lihat pseudocode yang disebutkan di makalah yang akan membantu kita memahami kode di atas tanpa matematika.
Sumber Gambar: SAM Paper[1]Seperti yang kita lihat di pseudocode setelah menghitung backward pass pertama, kita menghitung epsilon dan menambahkannya ke parameter, langkah-langkah tersebut diimplementasikan dalam metode first_step pada kode python di atas.Sekarang setelah menghitung langkah pertama kita harus kembali ke bobot sebelumnya untuk menghitung langkah sebenarnya dari pengoptimal dasar, langkah-langkah ini diimplementasikan dalam fungsi second_step Fungsi _grad_norm digunakan untuk mengembalikan norma vektor matriks, yang dikatakan di baris ke-10 pseudocode Setelah membuat kelas ini, Anda dapat cukup gunakan ini untuk proyek pembelajaran mendalam Anda dengan mengikuti cuplikan di bawah ini dalam fungsi pelatihan.

https://medium.com/media/1032b14b95d6ac38cbe14a59d0c8fc1b/href

Pikiran Akhir:

Meskipun SAM mencapai generalisasi yang lebih baik, kelemahan utama dari metode ini adalah, dibutuhkan waktu dua kali lebih banyak untuk pelatihan karena SAM menghitung gerakan maju dan mundur dua kali untuk menghitung gradien kesadaran ketajaman. Selain itu SAM juga telah membuktikan pengaruhnya pada NFNETS yang baru-baru ini diterbitkan, yang merupakan State of the Art untuk ImageNet saat ini, Di masa depan, kita dapat mengharapkan semakin banyak makalah yang menggunakan teknik ini untuk mencapai generalisasi yang lebih baik.

Jika Anda menikmati artikel ini atau memiliki pertanyaan, silakan hubungkan saya di LinkedIn

Referensi:

[1] Minimisasi Sadar Ketajaman untuk Meningkatkan Generalisasi secara Efisien

[2] Implementasi Tidak Resmi SAM oleh Ryuichiro Hataya

Kami tidak perlu khawatir tentang Overfitting lagi yang awalnya dipublikasikan di Limit AI on Moderate, di mana orang-orang melanjutkan percakapan dengan menyorot dan menanggapi cerita ini.

Diterbitkan melalui Towards AI