Distilasi dan pemangkasan merupakan dua teknik penting untuk mengompresi model jaringan saraf. Keduanya dapat mengurangi jumlah parameter dan kompleksitas komputasi secara efektif, sehingga meningkatkan efisiensi eksekusi dan kinerja model. Berikut penjelasan terperinci mengenai keduanya.
Distilasi model
Distilasi model adalah teknik melatih model yang lebih kecil untuk mereproduksi prediksi model besar. Dalam proses ini, model besar disebut “model guru” dan model kecil disebut “model siswa”. Model guru biasanya memiliki lebih banyak parameter dan kompleksitas lebih tinggi, sehingga dapat mencocokkan data pelatihan dan pengujian dengan lebih baik. Dalam distilasi, siswa dilatih meniru perilaku prediksi guru agar mencapai kinerja serupa dengan ukuran model yang lebih kecil.
Secara khusus, distilasi dilakukan melalui langkah-langkah berikut:
1. Melatih model guru: gunakan metode pelatihan umum, seperti propagasi balik dan penurunan gradien stokastik, untuk melatih jaringan saraf dalam berukuran besar agar bekerja baik pada data pelatihan.
2. Menghasilkan label lunak: gunakan model guru untuk memprediksi data pelatihan dan jadikan keluarannya sebagai label lunak. Konsep ini dikembangkan dari label keras tradisional berupa pengodean one-hot. Label lunak menyediakan informasi yang lebih kontinu dan dapat menggambarkan hubungan antarkelas dengan lebih baik.
3. Melatih model siswa: gunakan label lunak sebagai fungsi sasaran untuk melatih jaringan saraf dalam yang kecil agar bekerja baik pada data pelatihan. Masukan dan keluaran siswa sama dengan guru, tetapi parameter dan strukturnya lebih sederhana dan ringkas.
Keunggulan distilasi adalah memungkinkan model kecil mempertahankan kinerja sambil menurunkan kompleksitas komputasi serta kebutuhan ruang penyimpanan.Selain itu, informasi yang lebih kontinu dari label lunak membantu siswa mempelajari hubungan antarkelas dengan lebih baik. Distilasi model telah banyak diterapkan dalam pemrosesan bahasa alami, visi komputer, pengenalan suara, dan berbagai bidang lain.
Pemangkasan model
Pemangkasan model mengompresi jaringan saraf dengan menghapus neuron dan koneksi yang tidak diperlukan. Jaringan saraf biasanya memiliki banyak parameter dan koneksi redundan. Parameter dan koneksi ini mungkin tidak banyak memengaruhi kinerja, tetapi dapat sangat menambah kompleksitas komputasi dan kebutuhan penyimpanan. Menghapusnya dapat memperkecil model dan mengurangi kompleksitas komputasi sambil mempertahankan kinerja.
Langkah-langkah pemangkasan model adalah sebagai berikut:
1. Melatih model awal: gunakan metode umum, seperti propagasi balik dan penurunan gradien stokastik, untuk melatih jaringan saraf dalam berukuran besar agar berkinerja baik pada data pelatihan.
2. Menilai pentingnya neuron: gunakan metode seperti regularisasi L1, matriks Hessian, atau ekspansi Taylor untuk menilai pentingnya setiap neuron, yakni kontribusinya pada keluaran akhir. Neuron dengan kepentingan rendah dapat dianggap tidak berguna.
3. Menghapus neuron dan koneksi yang tidak berguna: lakukan penghapusan berdasarkan tingkat kepentingan neuron. Ini dapat dilakukan dengan menetapkan bobotnya menjadi nol atau menghapus neuron dan koneksi yang bersangkutan.
Keunggulan pemangkasan adalah dapat mengurangi ukuran model dan kompleksitas komputasi secara efektif, sehingga meningkatkan kinerja model.Pemangkasan juga dapat membantu mengurangi overfitting dan meningkatkan kemampuan generalisasi model. Teknik ini telah banyak digunakan dalam pemrosesan bahasa alami, visi komputer, pengenalan suara, dan bidang lain.
Terakhir, meskipun distilasi dan pemangkasan sama-sama mengompresi jaringan saraf, penerapan dan tujuannya sedikit berbeda. Distilasi lebih berfokus pada pelatihan siswa berdasarkan perilaku prediksi guru, sedangkan pemangkasan berfokus pada kompresi dengan membuang parameter dan koneksi yang tidak berguna.