Definisi Semi-Supervised Learning
Semi-supervised learning (SSL) adalah cabang pembelajaran mesin yang memanfaatkan kombinasi data berlabel (labeled) dan tidak berlabel (unlabeled) untuk melatih model. Pada banyak situasi dunia nyata, mengumpulkan label yang akurat membutuhkan biaya, waktu, atau tenaga ahli yang tinggi, sedangkan data tidak berlabel biasanya mudah didapatkan dalam jumlah besar. SSL mencoba memanfaatkan informasi tersembunyi pada data tidak berlabel untuk meningkatkan akurasi model tanpa harus melabeli semua sampel.
Mengapa Semi-Supervised Learning Penting?
Berikut beberapa alasan mengapa SSL semakin populer:
- Efisiensi biaya: Mengurangi kebutuhan anotasi manual yang mahal.
- Skalabilitas: Memungkinkan penggunaan dataset berukuran ratusan ribu atau jutaan sampel.
- Kualitas model: Dalam banyak kasus, model SSL dapat melampaui kinerja supervised learning ketika data berlabel terbatas.
- Adaptasi domain: Membantu model menyesuaikan diri dengan distribusi data baru yang belum berlabel.
Teknik Utama dalam Semi-Supervised Learning
Berbagai pendekatan telah dikembangkan untuk memanfaatkan data tidak berlabel. Berikut beberapa yang paling umum:
1. Self Training (Pseudo Labeling)
Model pertama dilatih pada data berlabel, kemudian digunakan untuk memberi label sementara (pseudo label) pada data tidak berlabel yang diprediksi dengan kepercayaan tinggi. Sampel sampel ini kemudian ditambahkan ke set pelatihan untuk iterasi selanjutnya.
2. Co Training
Metode ini memerlukan dua atau lebih view (representasi) berbeda dari data yang saling melengkapi. Setiap view melatih classifier nya sendiri, kemudian memberi label pada data tidak berlabel yang diprediksi dengan kepercayaan tinggi untuk view lain.
3. Graph Based Methods
Data direpresentasikan sebagai graf dimana node adalah sampel dan edge menggambarkan kesamaan antar sampel. Label disebarkan melalui graf dengan asumsi bahwa node yang berdekatan cenderung memiliki label yang sama.
4. Generative Models
Model generatif seperti Variational Autoencoder (VAE) atau Generative Adversarial Network (GAN) dapat mempelajari distribusi data tidak berlabel, kemudian menggabungkan informasi ini dengan data berlabel untuk meningkatkan klasifikasi.
5. Consistency Regularization
Ide utama ialah model harus menghasilkan prediksi yang konsisten meskipun inputnya sedikit dimodifikasi (misalnya augmentasi gambar). Teknik ini memaksa model belajar representasi yang stabil.
# Contoh pseudo labeling dengan scikit learn from sklearn.svm import SVC from sklearn.datasets import load_iris import numpy as np X, y = load_iris(return_X_y=True) # Misalkan hanya 20 label yang diketahui rng = np.random.RandomState(42) idx = rng.choice(len(y), size=20, replace=False) X_labeled, y_labeled = X[idx], y[idx] X_unlabeled = np.delete(X, idx, axis=0) model = SVC(probability=True) model.fit(X_labeled, y_labeled) # Pseudo label dengan confidence > 0.9 proba = model.predict_proba(X_unlabeled) conf_mask = np.max(proba, axis=1) > 0.9 pseudo_labels = model.predict(X_unlabeled[conf_mask]) # Gabungkan kembali untuk training berikutnya X_combined = np.vstack([X_labeled, X_unlabeled[conf_mask]]) y_combined = np.hstack([y_labeled, pseudo_labels]) model.fit(X_combined, y_combined) Contoh Aplikasi Semi-Supervised Learning
Berbagai domain telah memanfaatkan SSL, antara lain:
- Pengenalan gambar: Menggunakan ribuan gambar tidak berlabel di internet untuk meningkatkan klasifikasi objek.
- Pemrosesan bahasa alami: Membantu model sentiment analysis ketika hanya sebagian data ulasan memiliki label.
- Biomedis: Mengidentifikasi sel kanker pada citra mikroskopik dengan sedikit anotasi ahli.
- Deteksi anomali: Memanfaatkan data normal yang melimpah untuk mengenali pola yang tidak biasa.
- Rekomendasi sistem: Memanfaatkan interaksi pengguna yang tidak berlabel (klik, tampilan) untuk memperbaiki prediksi rating.
Kelebihan & Kekurangan Semi-Supervised Learning
Kelebihan
- Mengurangi kebutuhan data berlabel secara signifikan.
- Dapat memperbaiki generalisasi pada dataset kecil.
- Fleksibel, dapat digabungkan dengan teknik supervised maupun unsupervised.
Kekurangan
- Risiko error propagation bila pseudo label tidak akurat.
- Beberapa metode membutuhkan asumsi kuat (mis. kesamaan distribusi antara data berlabel dan tidak berlabel).
- Implementasi lebih kompleks dibandingkan supervised learning murni.