Dasar-dasar AI

Apa itu Transfer Learning?

mm
Tambahkan Unite.AI ke sumber pilihan Anda di Google

Apa itu Transfer Learning?

Ketika mempraktikkan machine learning, pelatihan model dapat memakan waktu lama. Membuat arsitektur model dari awal, melatih model, dan kemudian menyesuaikan model adalah jumlah waktu dan upaya yang besar. Cara yang jauh lebih efisien untuk melatih model machine learning adalah dengan menggunakan arsitektur yang sudah ditentukan, potensial dengan bobot yang sudah dihitung. Ini adalah ide utama di balik transfer learning, mengambil model yang sudah digunakan dan memanfaatkannya untuk tugas baru.

Sebelum memasuki cara-cara yang berbeda bahwa transfer learning dapat digunakan, mari kita ambil kesempatan untuk memahami mengapa transfer learning adalah teknik yang sangat kuat dan berguna.

Mengatasi Masalah Deep Learning

Ketika Anda mencoba mengatasi masalah deep learning, seperti membangun image classifier, Anda harus membuat arsitektur model dan kemudian melatih model pada data Anda. Pelatihan model classifier melibatkan penyesuaian bobot jaringan, proses yang dapat memakan waktu berjam-jam atau bahkan hari tergantung pada kompleksitas model dan dataset. Waktu pelatihan akan meningkat sesuai dengan ukuran dataset dan kompleksitas arsitektur model.

Jika model tidak mencapai akurasi yang dibutuhkan untuk tugas, penyesuaian model kemungkinan perlu dilakukan dan kemudian model perlu dilatih ulang. Ini berarti lebih banyak jam pelatihan sampai arsitektur optimal, panjang pelatihan, dan partisi dataset dapat ditemukan. Ketika Anda mempertimbangkan banyaknya variabel yang harus diselaraskan satu sama lain untuk classifier yang berguna, masuk akal bahwa insinyur machine learning selalu mencari cara yang lebih mudah dan lebih efisien untuk melatih dan menerapkan model. Oleh karena itu, teknik transfer learning diciptakan.

Setelah merancang dan menguji model, jika model terbukti berguna, dapat disimpan dan digunakan kembali nanti untuk masalah yang serupa.

Jenis Transfer Learning

Secara umum, ada dua jenis transfer learning: mengembangkan model dari awal dan menggunakan model yang sudah dilatih.

Ketika Anda mengembangkan model dari awal, Anda perlu membuat arsitektur model yang dapat menafsirkan data pelatihan Anda dan mengekstrak pola dari itu. Setelah model dilatih untuk pertama kalinya, Anda mungkin perlu membuat perubahan pada model untuk mendapatkan kinerja optimal dari model. Anda kemudian dapat menyimpan arsitektur model dan menggunakannya sebagai titik awal untuk model yang akan digunakan pada tugas yang serupa.

Dalam kondisi kedua – penggunaan model yang sudah dilatih – Anda hanya perlu memilih model yang sudah dilatih untuk digunakan. Banyak universitas dan tim penelitian akan membuat spesifikasi model mereka tersedia untuk digunakan umum. Arsitektur model dapat diunduh bersama dengan bobot.

Ketika melakukan transfer learning, arsitektur model dan bobot secara keseluruhan dapat digunakan untuk tugas yang sedang dilakukan, atau hanya beberapa bagian/lapisan model yang dapat digunakan. Menggunakan hanya beberapa bagian model yang sudah dilatih dan melatih sisa model disebut fine-tuning.

Fine-tuning Jaringan

Fine-tuning jaringan menjelaskan proses melatih hanya beberapa lapisan dalam jaringan. Jika dataset pelatihan baru sangat mirip dengan dataset yang digunakan untuk melatih model asli, banyak bobot yang sama dapat digunakan.

Jumlah lapisan dalam jaringan yang harus dibuka dan dilatih ulang harus sesuai dengan ukuran dataset baru. Jika dataset yang sedang dilatih kecil, lebih baik mempertahankan sebagian besar lapisan dan melatih hanya beberapa lapisan terakhir. Ini untuk mencegah jaringan dari overfitting. Alternatifnya, lapisan terakhir jaringan yang sudah dilatih dapat dihapus dan lapisan baru ditambahkan, yang kemudian dilatih. Sebaliknya, jika dataset besar, mungkin lebih besar dari dataset asli, jaringan secara keseluruhan harus dilatih ulang. Untuk menggunakan jaringan sebagai ekstraktor fitur tetap, sebagian besar jaringan dapat digunakan untuk mengekstrak fitur dan hanya lapisan terakhir jaringan yang dapat dibuka dan dilatih.

Ketika Anda melakukan fine-tuning jaringan, ingatlah bahwa lapisan awal ConvNet adalah yang berisi informasi yang mewakili fitur generik dari gambar. Fitur ini seperti tepi dan warna. Sebaliknya, lapisan akhir ConvNet berisi detail yang lebih spesifik untuk kelas individu dalam dataset yang digunakan untuk melatih model awal. Jika Anda melatih model pada dataset yang sangat berbeda dari dataset asli, Anda mungkin ingin menggunakan lapisan awal model untuk mengekstrak fitur dan hanya melatih sisa model.

Contoh Transfer Learning

Aplikasi transfer learning yang paling umum mungkin adalah yang menggunakan data gambar sebagai input. Ini sering kali tugas prediksi/klasifikasi. Cara Convolutional Neural Networks menafsirkan data gambar memungkinkan penggunaan kembali aspek-aspek model, karena lapisan konvolusi sering mengenali fitur yang sangat mirip. Salah satu contoh masalah transfer learning yang umum adalah tugas ImageNet 1000, dataset besar yang berisi 1000 kelas objek yang berbeda. Perusahaan yang mengembangkan model yang mencapai kinerja tinggi pada dataset ini sering merilis model mereka di bawah lisensi yang memungkinkan orang lain menggunakannya. Beberapa model yang dihasilkan dari proses ini termasuk Microsoft ResNet model , Google (GOOGL ) Inception Model, dan Oxford VGG Model grup.

Blogger dan programmer dengan spesialisasi di Machine Learning dan Deep Learning topik. Daniel berharap untuk membantu orang lain menggunakan kekuatan AI untuk kebaikan sosial.