Transfer learning: bekukan 99,9% model, latih layer terakhir yang baru
Transfer learning memakai ulang model yang dilatih untuk satu tugas sebagai titik awal tugas lain. ResNet-50 belajar dari 1,2 juta foto ImageNet berlabel. Tugas gambar baru sering hanya punya beberapa ratus foto per kelas, terlalu sedikit untuk melatih network sebesar itu dari nol, tetapi sering cukup untuk melatih satu layer baru di atasnya.
- ResNet-50 adalah convolutional network 50 layer, rancangan gambar standar yang menggeser filter kecil yang dipelajari di atas foto, dilatih untuk memilah foto ImageNet ke dalam 1.000 kelas. Di sini weight berarti angka apa pun yang dipelajari, termasuk bias. Body-nya, yaitu stem dan empat stage blok konvolusi, mengubah foto menjadi 2.048 angka yang menggambarkannya: tepi dan tekstur di layer awal, bagian objek di layer akhir. Head, layer terakhirnya, memetakan 2.048 angka itu ke 1.000 skor kelas dengan 2.049.000 weight.
- Untuk tugas dengan 10 kelas, seperti 10 penyakit tanaman, head 1.000 kelas dibuang. Layer baru dari 2.048 ke 10 menggantikannya: 2.048 × 10 weight ditambah 10 bias, total 20.490. Body dibekukan, artinya 23.508.032 weight-nya tetap memakai nilai dari ImageNet dan tidak pernah diperbarui saat training. Kalau dihitung dari bentuk layer, body dan head lama berjumlah 25.557.032, angka yang tercantum di torchvision.
- Model baru berisi 23.528.522 weight. Training mengubah 20.490 di antaranya, atau 0,09%, sedangkan 99,91% dipakai ulang apa adanya. Pada batang yang digambar sesuai skala, head berupa irisan tipis di ujung kanan. Gradient, sinyal error yang dikirim training mundur melalui network, berhenti di head, jadi layer yang dibekukan tidak memerlukannya. Tiap langkah jadi lebih murah, walaupun setiap foto tetap berjalan maju melewati body yang beku.
Intinya
Melatih head saja, yang sering disebut feature extraction, cocok untuk dataset kecil. Dengan data lebih banyak, terutama gambar yang berbeda dari ImageNet seperti hasil pindai medis, lakukan fine-tuning: cairkan juga stage akhir dan latih dengan learning rate, ukuran tiap langkah pembaruan, yang lebih kecil, sering sepuluh kali lebih kecil. Mencairkan stage 4, kelompok blok terdalam, menaikkan porsi yang dilatih dari 0,09% menjadi 64%.
Transfer Learning
Di langkah 4, geser jumlah layer yang dibekukan dan lihat ikon gembok bergerak naik di sepanjang network.
Buka penjelasan interaktif