Masalah terbesar dalam menggunakan Deep Learning adalah jumlah data yang kecil. Ada banyak solusi yang sebenarnya ditawarkan untuk mengatasi masalah ini salah satunya adalah Tranfer Learning dan Fine Tuning. Artikel ini berfokus pada teori Tranfer Learning dan Fine Tuning.
Tranfer Learning
Transfer learning adalah teknik atau metode yang memecahkan masalah serupa, dengan menggunakan model yang dilatih pada dataset yang besar, dengan cara mengubah dan memperbarui parameter agar sesuai dengan dataset baru.
Sebagai contoh, kita mau membuat sistem untuk mendeteksi gambar penyakit daun padi. Jika daun padi sehat cukup umum, kita cukup browsing-browsing, dan kita akan menemukan orang yang sudah membuat model deep learningnya. Kita tinggal mendownload, memakainya, dan selesai! Kita telah memiliki model cerdas deep learning yang mampu mendeteksi daun padi yang sehat. Tanpa perlu mencari data, tanpa perlu melatih model.
Tapi seringnya permasalahan yang kita miliki sedikit berbeda. Sedikit saja perbedaan, maka kita sudah tidak bisa lagi pakai model orang lain ini. Contohnya, kita tidak hanya ingin mendeteksi “daun padi sehat” tapi juga penyakit daun padi Bacterial Leaf Blight, Brown Spot, Leaf Smut, dll. Permasalahannya,penyakit daun padi itu bukan gambar yang ada dimana mana. Sangat mungkin model yang kita download tadi belum bisa mendeteksi tersebut.
Di sinilah, kita butuh transfer learning. Kembali ke ide utama di atas, dengan transfer learning, kita bisa memanfaatkan model orang lain yang sudah dilatih, untuk permasalahan kita yang berbeda.
Secara umum ada dua cara menggunakan model pre-trained untuk transfer learning.
1. Model Pra-Terlatih sebagai Pengekstrak Fitur dalam Model
Dalam pendekatan ini data domain sumber dengan domain target serupa. Model yang menggunakan kumpulan data besar ImageNet kemudian ditimbang dan arsitekturnya dilatih ulang dengan cara ini bekukan bagian ekstraksi fitur, hapus bagian lapisan klasifikasi dan menambahkan lapisan klasifikasi baru untuk gambar target.
Sebagai contoh, kita download pre-trained model VGG-16 yang sudah dilatih ke data ImageNet. Arsitektur VGG-16 sama seperti arsitektur CNN pada umumnya memiliki bagian “konvolusi” dan memiliki bagian “klasifikasi”. Karena arsitektur VGG16 ini sudah dilatih maka semua bobot-bobotnya sudah memiliki nilai yang bagus untuk klasifikasi citra di dataset ImageNet. Data imagenet terdiri dari sekitar 1000 kelas.
Jadi kita buang layer klasifikasi dengan mengganti layer terakhir pre-trained model dengan jumlah class klasifikasi dari data set kita
2. Fine Tuning
Pada pendekatan data domain sumber dan domain target sangat berbeda. Diperlukan ekstraksi peta fitur yang tepat dari domain sumber sebelumnya sempurnakan agar sesuai dengan domain target. Pada metode ini kita menggunakan pre-trained model yang telah dilatih namun tidak kita freeze. Jadi meskipun model sudah dilatih, nantinya pre-trained model ini akan dilatih lagi pada lapisan konvolusi terakhir atau melatih ulang dari awal untuk kebutuhan yang baru.
Biasanya layer yang di-freeze adalah beberapa layer yang di awal(yang dekat dengan input layer dan menyimpan informasi yang low-level) sedangkan layer yang di belakang, yang menyimpan informasi yang lebih high-level, tidak di-freeze untuk di-fine tune. Ini biasanya digunakan ketika data yang digunakan untuk melatih pre-trained model dirasa sedikit berbeda dengan data yang baru. Apabila melakukan fine tuning secara tidak hati-hati kita dapat “membodohkan” model yang sudah cerdas.