Konsep dan Strategi Pembelajaran Transfer
Ekstraksi fitur vs penyetelan halus, lapisan yang dibekukan, kapan pembelajaran transfer membantu.
Konsep dan Strategi Pembelajaran Transfer adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.
Apa Itu Pembelajaran Transfer
Pembelajaran transfer menggunakan kembali model yang dilatih pada kumpulan data besar sebagai titik awal untuk tugas baru yang berkaitan. Alih-alih mempelajari fitur visual dari awal, Anda menggunakan fitur yang telah dipelajari jaringan tersebut.
Hal ini secara drastis mengurangi jumlah data dan komputasi yang diperlukan untuk mencapai akurasi tinggi.
Dasar ImageNet
Sebagian besar model visi yang telah dilatih sebelumnya dilatih menggunakan ImageNet: sekitar 1,4 juta gambar yang terbagi dalam 1000 kelas.
Selama pelatihan ini, jaringan mempelajari hierarki fitur: tepi dan warna pada lapisan awal, tekstur di bagian tengah, serta bagian-bagian objek di lapisan atas. Fitur tingkat rendah ini dapat digunakan dengan baik untuk hampir semua tugas gambar.
Mengapa Fitur Awal Dapat Digunakan Kembali
Lapisan konvolusional pertama mendeteksi pola umum (tepi, gumpalan, gradien) yang muncul pada setiap gambar alami, baik gambar kucing, sinar-X, maupun foto satelit.
Lapisan yang lebih dalam menjadi lebih spesifik terhadap tugas karena merangkai tepi-tepi tersebut menjadi bagian objek ImageNet. Itulah sebabnya kita biasanya mempertahankan lapisan awal dan mengganti atau melatih ulang lapisan berikutnya.
Strategi 1: Ekstraksi Fitur
Ekstraksi fitur membekukan setiap lapisan pada basis yang telah dilatih sebelumnya sehingga bobotnya tidak pernah berubah. Basis tersebut berfungsi sebagai pengekstrak fitur tetap; Anda hanya melatih kepala klasifikasi baru yang kecil di atasnya.
Gunakan strategi ini ketika kumpulan data Anda kecil dan serupa dengan ImageNet. Prosesnya cepat dan mengurangi risiko penyesuaian berlebihan karena hanya sedikit parameter yang dapat dilatih.
base.trainable = False
model = Sequential([
base, # frozen ImageNet features
GlobalAveragePooling2D(),
Dense(num_classes, activation="softmax") # only this trains
])Strategi 2: Penyetelan Halus
Penyetelan halus mencabut pembekuan lapisan teratas pada basis dan melatihnya kembali bersama kepala, sehingga jaringan dapat menyesuaikan fitur tingkat tingginya dengan data khusus Anda.
Gunakan strategi ini ketika Anda memiliki lebih banyak data atau domain Anda berbeda dari ImageNet (misalnya, pemindaian medis). Selalu lakukan penyetelan halus dengan laju pembelajaran yang sangat rendah agar bobot yang telah dilatih sebelumnya tidak rusak.
Ekstraksi Fitur vs Penyetelan Halus
- Ekstraksi fitur: basis dibekukan, hanya kepala yang dilatih, sangat cepat, terbaik untuk data kecil dan serupa.
- Penyetelan halus: lapisan teratas basis tidak dibekukan + kepala, lebih lambat, terbaik untuk data yang lebih besar atau berbeda.
Pola yang umum adalah melakukan ekstraksi fitur terlebih dahulu, lalu melakukan penyetelan halus pada fase kedua setelah kepala stabil.
Persyaratan Volume Data
Jumlah data yang Anda miliki menentukan strategi Anda:
- Beberapa ratus gambar: lakukan ekstraksi fitur saja (bekukan semuanya).
- Beberapa ribu gambar: lakukan ekstraksi fitur, lalu setel halus beberapa lapisan teratas.
- Puluhan ribu atau lebih: setel halus bagian basis yang lebih besar, mungkin seluruh jaringan.
Semakin sedikit data, semakin banyak lapisan yang perlu dibekukan karena lebih sedikit parameter yang dapat dilatih akan mengurangi risiko penyesuaian berlebihan.
Mengganti Kepala Klasifikasi
Model ImageNet menghasilkan 1000 kelas. Tugas Anda mungkin memiliki jumlah yang berbeda, jadi hapus bagian atas asli (include_top=False) dan pasang kepala Anda sendiri dengan ukuran yang sesuai dengan kelas Anda.
from tensorflow.keras import layers, Model
x = base.output
x = layers.GlobalAveragePooling2D()(x)
x = layers.Dropout(0.2)(x)
outputs = layers.Dense(5, activation="softmax")(x) # 5 custom classes
model = Model(base.input, outputs)Prapemrosesan Harus Sesuai
Setiap keluarga model mengharapkan input diskalakan dengan cara yang sama seperti saat pelatihan ImageNet. Menggunakan preprocess_input yang sesuai sangat penting; jika tidak, akurasi dapat merosot drastis.
from tensorflow.keras.applications.resnet50 import preprocess_input
# Scale pixels exactly as ResNet50 expects
x = preprocess_input(raw_image_batch)Kedisiplinan Laju Pembelajaran
Selama ekstraksi fitur, laju pembelajaran biasa (misalnya 1e-3) sudah memadai karena hanya kepala baru yang dilatih.
Selama penyetelan halus, Anda harus menurunkannya ke nilai yang sangat kecil seperti 1e-5. Pembaruan besar dapat menghapus bobot ImageNet yang telah dipelajari dengan cermat, suatu efek yang disebut pelupaan katastrofik.
Alur Kerja Umum
- Muat basis yang telah dilatih sebelumnya dengan
include_top=False. - Bekukan basis tersebut dan latih kepala baru (ekstraksi fitur).
- Cabut pembekuan lapisan teratas dan latih kembali dengan laju pembelajaran yang sangat kecil (penyetelan halus).
- Evaluasi dan konversikan untuk penerapan.
Pendekatan bertahap ini memberikan akurasi yang kuat bahkan dengan kumpulan data berukuran sedang.
Uji Singkat
Uji pemahaman Anda tentang strategi pembelajaran transfer.
Ringkasan
Anda telah mempelajari bahwa pembelajaran transfer menggunakan kembali fitur yang telah dilatih pada ImageNet (1,4 juta gambar, 1000 kelas). Ekstraksi fitur membekukan basis untuk kumpulan data kecil atau serupa; penyetelan halus mencabut pembekuan lapisan teratas dengan laju pembelajaran yang sangat kecil untuk data yang lebih besar atau berbeda.
Sesuaikan prapemrosesan dengan basis, ganti kepala sesuai kelas Anda, dan gunakan alur kerja bertahap. Berikutnya, kita menerapkannya dalam kode dengan VGG16 dan ResNet50.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Konsep dan Strategi Pembelajaran Transfer” gratis?
Ya — teks lengkap “Konsep dan Strategi Pembelajaran Transfer” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Konsep dan Strategi Pembelajaran Transfer”?
Ekstraksi fitur vs penyetelan halus, lapisan yang dibekukan, kapan pembelajaran transfer membantu. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Learn AI with Python?
Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Konsep dan Strategi Pembelajaran Transfer” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?
Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Konsep dan Strategi Pembelajaran Transfer
- Menggunakan VGG16 dan ResNet50 sebagai Model Dasar
- Penyetelan Halus: Membuka Pembekuan dan Melatih Ulang
- MobileNet dan EfficientNet untuk Penerapan di Perangkat Tepi