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.

2 menit baca · Lensa ML
ResNet-50 dari ImageNet, head baru 10 kelasstem9.5Kstage 1216Kstage 21.22Mstage 37.10Mstage 415.0Mhead20.490beku: 23.508.032dilatihSemua 23.528.522 weight, sesuai skala99.91% beku0.09% dilatihirisan tipis di ujung kanan
layer pretrained yang dibekukanhead baru, dilatih (diberi garis tepi agar terlihat)

Tinggi blok hanya skematis. Head lama 1.000 kelas (2.049.000 weight) dibuang.

  1. 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.
  2. 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.
  3. 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%.

Pelajari lebih dalam · interaktif

Transfer Learning

Di langkah 4, geser jumlah layer yang dibekukan dan lihat ikon gembok bergerak naik di sepanjang network.

Buka penjelasan interaktif

Bites lainnya

Referensi