Kursus
Memberi label data itu mahal, lambat, spesifik domain, dan sebagian besar tim tidak memilikinya dalam jumlah yang cukup.
Anda selalu membutuhkan data berlabel untuk melatih model, tetapi memberi label dengan benar memakan waktu dan sering kali memerlukan pakar domain. Misalnya, citra medis memerlukan radiolog dan dokumen hukum memerlukan pengacara. Bahkan tugas sederhana seperti analisis sentimen membutuhkan seseorang untuk duduk dan menandai setiap contoh secara manual. Akibatnya, sebagian besar tim ML berakhir dengan dataset berlabel yang sangat kecil dan sejumlah besar data tanpa label yang tidak dapat mereka gunakan.
Pembelajaran semi-supervised memperbaikinya dengan melatih pada keduanya. Ia mengambil dataset berlabel kecil Anda, menggabungkannya dengan dataset tidak berlabel yang besar, dan membiarkan model mempelajari pola.
Dalam artikel ini, saya akan menguraikan cara kerja pembelajaran semi-supervised, membahas teknik yang paling umum, dan menunjukkan kapan masuk akal untuk menggunakannya.
Namun apa sebenarnya Supervised Machine Learning itu? Baca postingan blog kami untuk mempelajari cara kerja algoritma supervised yang esensial.
Apa Itu Pembelajaran Semi-Supervised?
Pembelajaran semi-supervised adalah pendekatan machine learning yang melatih pada campuran data berlabel dan tidak berlabel.
Seperti namanya, ia berada di antara pembelajaran supervised dan unsupervised. Pembelajaran supervised membutuhkan setiap sampel berlabel. Pembelajaran unsupervised bekerja tanpa label sama sekali. Pembelajaran semi-supervised menggunakan sejumlah kecil contoh berlabel bersama kumpulan besar contoh tanpa label.
Data berlabel memberi tahu model apa yang perlu dicari. Data tidak berlabel menunjukkan kepada model bagaimana struktur data tersebut. Ketika digabungkan, keduanya memberi model lebih banyak bahan untuk dipelajari dibandingkan jika digunakan sendiri-sendiri.
Cara Kerja Pembelajaran Semi-Supervised
Prosesnya dimulai dengan dataset berlabel kecil — mungkin beberapa ratus contoh yang Anda ketahui keluaran yang benar.
Lalu Anda memasukkan dataset tidak berlabel yang jauh lebih besar. Ini bisa berupa ribuan hingga jutaan sampel tanpa label. Model menggunakan data tidak berlabel ini untuk mempelajari pola dan hubungan yang mendasari antar titik data.
Contoh berlabel kemudian mengarahkan struktur tersebut ke jawaban yang benar. Model sudah mengetahui bagaimana data terorganisasi dari sampel tanpa label. Label memberi tahu bagian mana dari struktur itu yang dipetakan ke keluaran mana.
Berikut contoh singkatnya.
Misalkan Anda mengklasifikasikan email sebagai spam atau bukan spam. Anda memiliki 100 email berlabel dan 10.000 tanpa label. Model pertama-tama mempelajari bagaimana email dikelompokkan berdasarkan pola kata dan struktur. Lalu ia menggunakan 100 contoh berlabel Anda untuk menentukan kelompok mana yang spam dan mana yang bukan. Hasilnya adalah model yang berkinerja lebih baik dibandingkan jika Anda hanya melatih pada 100 email berlabel tersebut.
Semi-Supervised vs Supervised vs Unsupervised Learning
Mari kita telusuri masing-masing pendekatan pembelajaran untuk melihat posisi pembelajaran semi-supervised relatif terhadap dua lainnya.
Supervised learning
Supervised learning dilatih pada data yang sepenuhnya berlabel. Setiap sampel dalam dataset memiliki masukan dan keluaran yang diketahui. Model mempelajari pemetaan di antara keduanya.
Ini bekerja dengan baik saat Anda memiliki cukup contoh berlabel. Namun "cukup" bisa berarti ribuan hingga jutaan sampel tergantung tugasnya. Itu mahal untuk diproduksi dan terkadang mustahil.
Unsupervised learning
Unsupervised learning tidak menggunakan label sama sekali. Model melihat data mentah dan menemukan strukturnya sendiri. Contoh klasiknya adalah clustering dan reduksi dimensi.
Keuntungannya, Anda tidak memerlukan data berlabel. Kekurangannya, model tidak tahu apa yang sebenarnya Anda butuhkan. Ia memang menemukan pola, tetapi pola tersebut mungkin tidak sesuai dengan masalah yang ingin Anda selesaikan.
Semi-supervised learning
Pembelajaran semi-supervised menggabungkan yang terbaik dari keduanya. Anda memberi model dataset berlabel kecil untuk mendefinisikan tugas dan dataset tidak berlabel besar untuk mempelajari struktur data.
Data berlabel mengarahkan model ke arah yang benar. Data tidak berlabel menunjukkan bagaimana sampel yang berbeda saling terkait. Kombinasi ini sering mengungguli supervised learning pada set berlabel kecil yang sama, karena model mendeteksi pola yang akan terlewat tanpa data tidak berlabel.
Berikut perbandingan singkat ketiganya:

Tabel perbandingan pendekatan machine learning
Singkatnya, jika memberi label memakan terlalu banyak waktu dan Anda memiliki banyak data tanpa label, semi-supervised patut dipertimbangkan. Selanjutnya, saya akan menunjukkan beberapa teknik umum.
Teknik Pembelajaran Semi-Supervised yang Umum
Ada beberapa cara untuk menerapkan pembelajaran semi-supervised. Setiap teknik menangani pembagian berlabel-tidak berlabel secara berbeda, jadi mari kita bahas yang paling umum.
Self-training
Ini adalah pendekatan paling sederhana. Anda melatih model pada data berlabel, lalu menggunakannya untuk memprediksi label bagi sampel tanpa label. Prediksi dengan keyakinan tertinggi ditambahkan ke set berlabel sebagai pseudo-label, dan Anda melatih ulang model pada dataset yang diperluas.
Proses ini diulang hingga model berhenti membaik atau data tanpa label habis. Mudah diterapkan, tetapi jika model membuat prediksi salah di awal, kesalahan itu kini menjadi bagian dari dataset Anda.
Co-training
Co-training menggunakan dua model alih-alih satu. Setiap model dilatih pada "pandangan" berbeda dari data. Anggap ini sebagai subset fitur yang berbeda.
Misalnya, katakanlah Anda mengklasifikasikan halaman web. Satu model mungkin melihat teks pada halaman, sementara yang lain melihat anchor text dari tautan yang mengarah ke sana. Masing-masing model memberi label sampel tanpa label untuk yang lain, dan mereka saling mengajarkan selama beberapa putaran.
Gagasannya adalah kekuatan satu model menutupi kelemahan yang lain. Jika kedua pandangan memiliki informasi yang cukup secara mandiri, co-training bisa melampaui self-training karena kesalahan dari satu model dikoreksi oleh yang lain.
Propagasi label
Pendekatan ini membangun graf di mana setiap titik data adalah node, dan edge menghubungkan titik-titik yang serupa. Label kemudian "menyebar" dari node berlabel ke tetangganya.
Asumsinya adalah titik data yang mirip seharusnya berbagi label yang sama. Jika sebuah sampel berlabel berada dekat dengan kluster sampel tanpa label, kemungkinan sampel tanpa label tersebut termasuk kelas yang sama. Label menyebar melalui graf hingga setiap node memilikinya.
Ini bekerja baik ketika data Anda memiliki struktur kluster yang jelas, tetapi bisa gagal ketika batas antar kelas kabur.
Jaringan saraf semi-supervised
Deep learning memiliki serangkaian teknik semi-supervised tersendiri. Berikut beberapa yang paling umum:
- Regularisasi konsistensi: Mendorong model menghasilkan keluaran yang sama untuk suatu masukan bahkan setelah gangguan kecil seperti noise atau augmentasi. Idenya adalah model yang baik tidak boleh mengubah prediksinya hanya karena Anda sedikit mengubah masukan
- Pseudo-labeling pada jaringan saraf: Bekerja seperti self-training tetapi pada tingkat batch. Model menghasilkan label untuk sampel tanpa label selama pelatihan dan menggunakannya bersama label asli dalam fungsi loss.
Metode seperti FixMatch dan MixMatch menggabungkan ide-ide ini, dan telah menunjukkan hasil yang baik pada benchmark dengan sangat sedikit contoh berlabel.
Mengapa Pembelajaran Semi-Supervised Penting
Anda perlu peduli terhadap pembelajaran semi-supervised karena satu alasan: biaya.
Memberi label data memerlukan data, pakar domain, waktu, dan uang. Pembelajaran semi-supervised mengurangi biaya dengan memaksimalkan manfaat dari label yang lebih sedikit.
Lalu, ada kinerja. Model yang dilatih pada 500 sampel berlabel dan 50.000 tanpa label sering kali mengalahkan model yang sama yang hanya dilatih pada 500 sampel berlabel tersebut. Data tanpa label memberi model gambaran yang lebih lengkap tentang bagaimana data terdistribusi, yang menghasilkan prediksi lebih baik.
Dan ada kenyataan di sebagian besar dataset. Data tanpa label ada di mana-mana. Setiap perusahaan memiliki log, gambar, dokumen, dan rekaman yang tidak ada waktu untuk diberi label. Pembelajaran semi-supervised memungkinkan Anda membuat sesuatu yang bermanfaat dari data tersebut.
Aplikasi Pembelajaran Semi-Supervised
Pembelajaran semi-supervised muncul di domain di mana label sulit diperoleh.
Klasifikasi gambar adalah salah satu kasus penggunaan paling umum. Memberi label ribuan gambar itu membosankan, tetapi mengumpulkan gambar tanpa label itu mudah. Metode semi-supervised memungkinkan Anda melatih pengklasifikasi akurat hanya dengan beberapa ratus gambar berlabel.
Klasifikasi teks juga demikian. Anda mungkin memiliki jutaan ulasan pelanggan atau tiket dukungan, tetapi hanya sebagian kecil yang berlabel manual. Pembelajaran semi-supervised dapat membantu Anda membangun pengklasifikasi yang menggeneralisasi ke seluruh dataset.
Pengenalan ucapan adalah area menarik lainnya. Transkripsi audio secara manual membutuhkan banyak upaya, tetapi data audio mentah melimpah. Rekaman tanpa label membantu model mempelajari pola akustik, sementara sampel yang ditranskripsi mengajarkannya pemetaan yang benar.
Analisis data medis adalah tugas spesifik domain yang sangat baik. Meminta dokter memberi label pemindaian atau catatan pasien itu mahal dan lambat, karena mereka memiliki hal yang lebih penting untuk dilakukan. Namun rumah sakit memiliki sejumlah besar data klinis tanpa label. Metode semi-supervised membantu membangun model diagnostik tanpa memerlukan dataset yang sepenuhnya berlabel.
Keunggulan Pembelajaran Semi-Supervised
Inilah yang membuat pembelajaran semi-supervised cocok untuk banyak proyek:
- Butuh lebih sedikit data berlabel: Anda bisa mendapatkan hasil yang baik dengan sebagian kecil label dibandingkan pendekatan yang sepenuhnya supervised
- Meningkatkan generalisasi: Data tidak berlabel memaparkan model pada rentang contoh yang lebih luas, yang membantunya berkinerja lebih baik pada data yang belum pernah dilihat
- Hemat biaya: Saat proses pelabelan mahal atau memakan waktu — yang biasanya terjadi — pembelajaran semi-supervised menghemat waktu dan anggaran dengan memaksimalkan apa yang sudah Anda miliki
Jadi, jika Anda memiliki lebih banyak data daripada label, saatnya mempertimbangkan pembelajaran semi-supervised.
Keterbatasan Pembelajaran Semi-Supervised
Pembelajaran semi-supervised memiliki beberapa kompromi yang perlu Anda ketahui.
- Kualitas data tanpa label itu penting: Jika data tanpa label tidak berasal dari distribusi yang sama dengan data berlabel Anda, model mempelajari pola yang salah
- Pseudo-label yang salah: Pada metode seperti self-training, prediksi yang yakin tetapi salah diperlakukan sebagai kebenaran. Model berlatih pada label buruk itu, yang memperkuat kesalahan dan memperburuk prediksi ke depannya
- Lebih kompleks daripada supervised learning: Ada lebih banyak hyperparameter yang harus disetel, lebih banyak pilihan desain, dan lebih banyak hal yang bisa salah. Model supervised lebih sederhana untuk dibangun dan dijelaskan. Metode semi-supervised menambah kompleksitas yang tidak selalu sepadan — terutama jika dataset berlabel Anda sudah cukup besar
Tidak ada satupun yang menjadi penghalang mutlak, hanya sesuatu yang perlu diketahui sebelum terjun.
Pembelajaran Semi-Supervised dalam Praktik (Contoh Python)
Mari lihat pembelajaran semi-supervised secara langsung dengan contoh Python sederhana menggunakan algoritma LabelSpreading dari scikit-learn.
Saya akan membuat dataset, memberi label hanya sebagian kecil, dan membiarkan model menebak sisanya.
Menyiapkan data
Pertama, mari saya hasilkan dataset dan menutupi sebagian besar label untuk mensimulasikan skenario semi-supervised:
import numpy as np
from sklearn.datasets import make_moons
from sklearn.semi_supervised import LabelSpreading
from sklearn.metrics import accuracy_score
# Generate a dataset with 500 samples
X, y_true = make_moons(n_samples=500, noise=0.2, random_state=42)
# Keep only 10%, mask the rest as -1
rng = np.random.RandomState(42)
labeled_idx = rng.choice(500, size=50, replace=False)
y_train = np.full(500, -1) # -1 means unlabeled in scikit-learn
y_train[labeled_idx] = y_true[labeled_idx]
print(f"Labeled samples: {np.sum(y_train != -1)}")
print(f"Unlabeled samples: {np.sum(y_train == -1)}")

Jumlah sampel data berlabel dan tidak berlabel
Di scikit-learn, -1 menandai sampel sebagai tidak berlabel. Dari 500 sampel, hanya 50 yang memiliki label. Model harus menebak 450 sisanya.
Pelatihan dan prediksi
Sekarang saya akan melatih model LabelSpreading dan melihat seberapa baik ia memberi label pada data tanpa label:
model = LabelSpreading(kernel="knn", n_neighbors=7)
model.fit(X, y_train)
y_pred = model.transduction_
# Check accuracy on the originally unlabeled samples
unlabeled_mask = y_train == -1
accuracy = accuracy_score(y_true[unlabeled_mask], y_pred[unlabeled_mask])
print(f"Accuracy on unlabeled samples: {accuracy:.2%}")

Akurasi pada sampel tidak berlabel
Model berhasil memberi label pada sebagian besar sampel tanpa label hanya dengan 10% data sebagai contoh berlabel. Itulah gagasan utamanya.
Memvisualisasikan hasil
Akurasi tinggi — hampir 96% — tetapi mari kita periksa secara visual sampel mana yang salah klasifikasi:

Label asli dan prediksi
Label prediksi hampir sepenuhnya cocok dengan label asli, meskipun model hanya melihat 50 contoh berlabel dari 500. Anda dapat melihat yang salah klasifikasi berwarna merah pada grafik kanan.
Kesalahan Umum pada Pembelajaran Semi-Supervised
Anda telah melihat betapa kuatnya pembelajaran semi-supervised, tetapi ini tidak sempurna untuk setiap skenario. Berikut kesalahan paling umum dan cara menghindarinya.
- Menganggap data tanpa label selalu membantu: Tidak. Jika data tanpa label berasal dari distribusi yang berbeda dengan data berlabel Anda, model mempelajari pola yang tidak relevan untuk tugas sebenarnya. Selalu periksa bahwa data berlabel dan tidak berlabel Anda berasal dari sumber yang sama dan mewakili masalah yang sama
- Inisialisasi model yang buruk: Metode semi-supervised dibangun di atas model supervised awal. Jika model pertama itu lemah — dilatih pada terlalu sedikit sampel atau dengan hyperparameter yang buruk — setiap langkah setelahnya mewarisi masalah tersebut. Mulailah dengan baseline supervised terbaik yang bisa Anda dapatkan sebelum menambahkan data tanpa label
- Terlalu mengandalkan pseudo-label: Pseudo-label hanya sebaik model yang menghasilkannya. Jika Anda mempercayai setiap pseudo-label, kesalahan dapat bertumpuk selama putaran pelatihan. Tetapkan ambang keyakinan yang tinggi dan hanya gunakan pseudo-label yang benar-benar diyakini model. Abaikan sisanya
- Mengabaikan distribusi data: Metode semi-supervised berasumsi bahwa struktur data tanpa label memberi petunjuk berguna tentang label. Jika data Anda tidak memiliki kluster yang jelas atau batas keputusan yang mulus, asumsi itu tidak akan berlaku
Untuk menghindari keempat kesalahan ini, mulailah dengan baseline supervised yang kuat, tambahkan data tanpa label secara bertahap, dan cek apakah kinerja benar-benar meningkat di setiap langkah.
Kapan Menggunakan Pembelajaran Semi-Supervised
Pembelajaran semi-supervised masuk akal dalam tiga skenario berikut:
- Saat data berlabel terbatas: Jika Anda hanya memiliki dataset berlabel kecil dan menambah label mahal atau lambat, pembelajaran semi-supervised membantu Anda memeras peningkatan akurasi ekstra
- Saat data tanpa label berlimpah: Anda memerlukan banyak data tanpa label agar ini bekerja. Jika Anda hanya memiliki sedikit set tanpa label, model tidak akan mempelajari cukup struktur untuk membuat perbedaan. Semakin besar kesenjangan ukuran antara set berlabel dan tidak berlabel Anda, semakin besar bantuan metode semi-supervised
- Saat data Anda memiliki struktur yang jelas: Pembelajaran semi-supervised bekerja paling baik saat titik data yang mirip berbagi label yang sama. Jika data Anda membentuk kluster atau memiliki batas antarkelas yang mulus, data tanpa label akan membuat pola tersebut semakin jelas. Jika kelas bercampur tanpa pemisahan yang jelas, data tanpa label tidak akan banyak membantu.
Jika ketiga kondisi ini terpenuhi, pembelajaran semi-supervised layak dicoba.
Kesimpulan
Secara sederhana, pembelajaran semi-supervised memberi Anda cara untuk melatih model yang lebih baik tanpa harus memberi label semuanya. Anda mengambil dataset berlabel kecil, menggabungkannya dengan yang tidak berlabel besar, dan membiarkan model belajar dari keduanya.
Manfaatnya jelas: lebih sedikit waktu memberi label, waktu ke pasar lebih cepat, biaya lebih rendah, dan kinerja lebih baik daripada hanya melatih pada label yang terbatas. Dan di bidang seperti medis, hukum, dan NLP — di mana pelabelan memerlukan pakar domain — itu sangat berarti.
Jika Anda memiliki sejumlah besar data tanpa label, coba pembelajaran semi-supervised. Mulailah dengan baseline supervised yang baik, pilih teknik yang cocok dengan struktur data Anda, dan ukur apakah data tanpa label benar-benar membantu. LabelSpreading milik scikit-learn adalah percobaan awal yang bagus, tetapi lakukan juga eksperimen dengan metode seperti FixMatch dan MixMatch.
Jika Anda ingin siap kerja pada 2026, ikuti jalur Machine Learning Engineer kami. Mencakup semuanya dari dasar hingga MLOps.
FAQs
Apa itu pembelajaran semi-supervised?
Pembelajaran semi-supervised adalah pendekatan machine learning yang melatih model pada set kecil data berlabel dan set besar data tidak berlabel. Data berlabel memberi tahu model apa yang perlu dicari, sementara data tidak berlabel membantunya memahami struktur keseluruhan data. Dengan cara ini, Anda mendapatkan hasil yang lebih baik dibandingkan hanya melatih pada data berlabel saja.
Apa bedanya pembelajaran semi-supervised dengan supervised dan unsupervised learning?
Supervised learning hanya menggunakan data berlabel, di mana setiap sampel memiliki keluaran yang diketahui. Unsupervised learning hanya menggunakan data tanpa label dan menemukan pola secara mandiri. Semi-supervised learning menggunakan dataset berlabel kecil untuk mendefinisikan tugas dan dataset tidak berlabel besar untuk mempelajari struktur data.
Kapan saya harus menggunakan pembelajaran semi-supervised?
Gunakan ketika Anda memiliki sedikit data berlabel, banyak data tanpa label, dan data Anda memiliki struktur yang jelas, seperti kluster alami atau batas antarkelas yang mulus. Jika pelabelan mahal atau memerlukan pakar domain — seperti pada pencitraan medis atau analisis teks hukum — pembelajaran semi-supervised membantu Anda membangun model akurat tanpa harus memberi label semuanya.
Apa itu self-training dalam pembelajaran semi-supervised?
Self-training adalah teknik di mana model dilatih terlebih dahulu pada data berlabel, lalu memprediksi label untuk sampel tanpa label. Prediksi dengan keyakinan tertinggi ditambahkan ke set berlabel sebagai pseudo-label, dan model dilatih ulang pada dataset yang diperluas. Risikonya adalah prediksi salah di awal akan diperkuat pada putaran berikutnya, jadi Anda harus menetapkan ambang keyakinan yang tinggi.

