Pembelajaran Aktif membangun kumpulan data berharga dari awal – Menuju AI — Publikasi AI dan Teknologi Terkemuka di Dunia

Pengarang: Edward Ma

Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.

Pembelajaran mesin

Pengantar Pembelajaran Aktif

Foto oleh Mimi Thian di Unsplash

Pembelajaran Aktif adalah salah satu strategi pengajaran yang melibatkan peserta didik (misalnya siswa) untuk berpartisipasi dalam proses pembelajaran secara aktif. Dibandingkan dengan proses pembelajaran tradisional, peserta didik tidak hanya duduk dan mendengarkan tetapi bekerja sama dengan guru secara interaktif. Kemajuan belajar dapat disesuaikan dengan umpan balik dari peserta didik. Oleh karena itu, siklus belajar aktif sangat penting.

Jika Anda sudah terbiasa dengan Pembelajaran Aktif, Anda dapat melompat ke bagian terakhir tentang cara menggunakan paket python NLPatl (NLP Active Learning) untuk mencapainya.

Objektif

Bisakah kita menerapkan kerangka kerja ini ke area pembelajaran mesin? Itu mungkin tetapi kita perlu mengklarifikasi apa tujuan dari pembelajaran aktif. Saat melatih model klasifikasi, kami biasanya kekurangan data berlabel di awal. Tentu saja, kami dapat memilih rekaman secara acak dan memberi label, tetapi itu terlalu mahal.

Asumsi pembelajaran aktif adalah bahwa kita dapat memperkirakan catatan yang representatif dalam beberapa cara dan melabelinya oleh ahli materi pelajaran (UKM). Karena kami hanya membutuhkan catatan yang paling representatif, kami tidak membutuhkan data berlabel dalam jumlah yang sangat besar. Model pembelajaran mesin harus dapat menemukan pola dari catatan berharga tersebut. Ini menghemat uang dan waktu untuk memperoleh data yang cukup untuk melatih model Anda yang luar biasa.

Jadi poin kuncinya adalah strategi memperkirakan catatan yang representatif dan masukan dari UKM.

Strategi

Ada banyak strategi untuk memperkirakan nilai catatan. Saya akan mulai dengan 3 pendekatan untuk memperkenalkan pembelajaran aktif. Saya akan membahas idenya terlebih dahulu dan memberikan contoh satu per satu. Margin Sampling mengacu pada penghitungan perbedaan antara probabilitas tertinggi dan tertinggi kedua. Entropy Sampling bertujuan untuk memanfaatkan semua keluaran probabilitas (Margin Sampling hanya menggunakan dua hasil terbesar) untuk mengidentifikasi catatan yang paling tidak pasti. Metode terakhir berbeda dari yang disebutkan di atas karena menggunakan pembelajaran tanpa pengawasan untuk mengidentifikasi catatan yang paling berharga. Anda bisa menyebutnya Clustering Sampling.

Untuk memulai dengan penjelasan, kami memiliki catatan sampel berikut. Mengingat bahwa kami memiliki model klasifikasi dan memprediksi probabilitas.

Himpunan data

Pengambilan Sampel Margin

Margin Sampling mengacu pada penghitungan perbedaan antara probabilitas tertinggi dan tertinggi kedua. Asumsinya adalah jika perbedaan antara dua probabilitas tertinggi besar, model klasifikasi memiliki ketidakpastian yang lebih tinggi. Dari contoh di atas, Catatan 2 memiliki nilai yang lebih tinggi (0,3 = 0, 6-0,3) daripada Catatan 1 (0,984 = 0,99–0,006). Oleh karena itu, pendekatan pengambilan sampel margin memilih rekaman 2 daripada rekaman 1 untuk pelabelan.

Pengambilan Sampel Entropi

Entropy Sampling bertujuan untuk memanfaatkan semua keluaran probabilitas untuk mengidentifikasi catatan yang paling tidak pasti. Daripada hanya menghitung selisih probabilitas tertinggi. Pendekatan ini menghitung entropi dengan memanfaatkan semua probabilitas. Dari contoh di atas, Rekam 2 memiliki nilai yang lebih tinggi (0,898) daripada Rekam 1 (0,063). Oleh karena itu, pendekatan pengambilan sampel entropi memilih rekaman 2 daripada rekaman 1 untuk pelabelan.

Pengambilan Sampel Pengelompokan

Clustering Sampling berbeda dengan strategi di atas. Prasyarat Margin Sampling dan Entropy Sampling memiliki dataset yang awalnya diberi label dan melatih model klasifikasi sederhana. Jika Anda tidak memiliki kumpulan data berlabel di awal, Anda dapat mempertimbangkan untuk menggunakan pendekatan ini. Pada dasarnya, ini memanfaatkan pembelajaran transfer untuk mengonversi teks menjadi embeddings (atau vektor) dan cocok dengan algoritme tanpa pengawasan untuk menemukan catatan yang paling representatif. Misalnya, Anda dapat menerapkan KMeans untuk menemukan cluster dan memberi label.

Kode Python oleh NLPatl

Untungnya, Anda tidak perlu mengimplementasikan framework sendiri tetapi paket python NLPatl sudah siap digunakan. Memiliki ide tentang pembelajaran aktif, kemudian bersiap untuk mengotori tangan Anda. Saya akan menjelaskan bagaimana Anda bisa menerapkan pembelajaran aktif di NLP dengan beberapa baris kode. Anda dapat mengunjungi buku catatan ini untuk versi lengkap kodenya.

Kode sampel berikut menunjukkan bagaimana menggunakan Entropy Sampling untuk memperkirakan catatan yang paling berharga.

# Inisialisasi pendekatan pengambilan sampel entropi untuk memperkirakan data paling berharga untuk pelabelan
learning = EntropyLearning() # Model BERT awal untuk mengonversi teks ke vektor
belajar.init_embeddings_model(
‘bert-base-uncased’, return_tensors=’pt’, padding=True) # Regresi Logistik Awal untuk klasifikasi
learning.init_classification_model(
‘logistic_regression’) # Latih model klasifikasi sampel terlebih dahulu
learning.learn(train_texts, train_labels) # Label data di notebook secara interaktif
learning.explore_educate_in_notebook(train_texts, num_sample=2)

Kode sampel berikut menunjukkan bagaimana menggunakan Clustering Sampling untuk memperkirakan catatan yang paling berharga.

# Inisialisasi pendekatan pengambilan sampel pengelompokan untuk memperkirakan data paling berharga untuk pelabelan
learning = ClusteringLearning() # Model BERT awal untuk mengonversi teks ke vektor
belajar.init_embeddings_model(
‘bert-base-uncased’, return_tensors=’pt’, padding=True) # KMeans awal untuk pengelompokan
learning.init_clustering_model(
‘kmeans’, model_config={‘n_clusters’: 3}) # Label data di notebook secara interaktif
learning.explore_educate_in_notebook(train_texts, num_sample=2)

Suka belajar?

Saya Data Scientist di Bay Area. Berfokus pada state-of-the-art dalam Ilmu Data, Kecerdasan Buatan, terutama dalam NLP dan terkait platform. Jangan ragu untuk terhubung dengan saya di LinkedIn atau Github.

Pembelajaran Aktif membangun kumpulan data berharga dari awal awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI