
Baal adalah perpustakaan pembelajaran aktif yang mendukung aplikasi industri dan penelitian.
Baca dokumentasi di https://baal.readthedocs.io.
Makalah kami dapat dibaca di Arxiv. Ini termasuk tips dan trik untuk membuat pembelajaran aktif dapat digunakan dalam produksi.
Untuk pengantar cepat untuk pembelajaran aktif Baal dan Bayesian, silakan lihat tautan ini:
Baal awalnya dikembangkan di Elementai (diakuisisi oleh ServiceNow pada tahun 2021), tetapi sekarang menjadi independen.
Baal membutuhkan Python>=3.8 .
Untuk menginstal Baal menggunakan PIP: pip install baal
Kami menggunakan puisi sebagai manajer paket kami. Untuk menginstal Baal dari Sumber: poetry install
Pembelajaran Aktif adalah kasus khusus pembelajaran mesin di mana algoritma pembelajaran dapat secara interaktif meminta pengguna (atau sumber informasi lainnya) untuk mendapatkan output yang diinginkan pada titik data baru (untuk memahami konsep secara lebih mendalam, lihat tutorial kami ).
Saat ini Baal mendukung metode berikut untuk melakukan pembelajaran aktif.
Jika Anda ingin mengusulkan metode baru, silakan kirimkan masalah.
Metode putus sekolah Monte-Carlo adalah perkiraan yang diketahui untuk jaringan saraf Bayesian. Dalam metode ini, lapisan putus sekolah digunakan baik dalam pelatihan dan waktu tes. Dengan menjalankan model beberapa kali sementara menjatuhkan bobot secara acak, kami menghitung ketidakpastian prediksi menggunakan salah satu pengukuran ketidakpastian dalam heuristik.py.
Kerangka kerja ini terdiri dari empat bagian utama, seperti yang ditunjukkan dalam diagram alur di bawah ini:
Untuk memulai, bungkus dataset Anda di kelas ActiveLearningDataset kami. Ini akan memastikan bahwa dataset dibagi menjadi set training dan pool . Set pool mewakili bagian dari set pelatihan yang belum diberi label.
Kami menyediakan model objek yang ringan yang mirip dengan keras.Model untuk membuatnya lebih mudah untuk melatih dan menguji model. Jika model Anda belum siap untuk pembelajaran aktif, kami menyediakan modul untuk mempersiapkannya.
Misalnya, pembungkus MCDROPOUTMODULE mengubah lapisan putus sekolah yang ada untuk digunakan dalam waktu pelatihan dan inferensi dan ModelWrapper membuat menentukan jumlah iterasi yang akan dijalankan pada pelatihan dan inferensi.
Akhirnya, ActiveLearningloop secara otomatis menghitung ketidakpastian dan memberi label item yang paling tidak pasti di kumpulan.
Sebagai kesimpulan, skrip Anda harus mirip dengan ini:
dataset = ActiveLearningDataset ( your_dataset )
dataset . label_randomly ( INITIAL_POOL ) # label some data
model = MCDropoutModule ( your_model )
wrapper = ModelWrapper ( model , args = TrainingArgs (...))
experiment = ActiveLearningExperiment (
trainer = wrapper , # Huggingface or ModelWrapper to train
al_dataset = dataset , # Active learning dataset
eval_dataset = test_dataset , # Evaluation Dataset
heuristic = BALD (), # Uncertainty heuristic to use
query_size = 100 , # How many items to label per round.
iterations = 20 , # How many MC sampling to perform per item.
pool_size = None , # Optionally limit the size of the unlabelled pool.
criterion = None # Stopping criterion for the experiment.
)
# The experiment will run until all items are labelled.
metrics = experiment . start ()Untuk percobaan lengkap, lihat Eksperimen/VGG_MCDROPOUT_CIFAR10.PY .
docker build [--target base_baal] -t baal .
docker run --rm baal --gpus all python3 experiments/vgg_mcdropout_cifar10.pyCukup klon repo, dan buat skrip percobaan Anda sendiri mirip dengan contoh pada percobaan/vgg_mcdropout_cifar10.py . Pastikan untuk menggunakan empat bagian utama kerangka kerja Baal. Senang menjalankan eksperimen
Untuk berkontribusi, lihat Contributing.md.
"Ada gairah, namun kedamaian; ketenangan, namun emosi; kekacauan, namun ketertiban."
Tim Baal menguji dan mengimplementasikan makalah terbaru tentang estimasi ketidakpastian dan pembelajaran aktif.
Pemelihara saat ini:
Jika Anda menggunakan Baal di salah satu proyek Anda, kami akan sangat menghargai jika Anda mengutip perpustakaan ini menggunakan Bibtex ini:
@misc{atighehchian2019baal,
title={Baal, a bayesian active learning library},
author={Atighehchian, Parmida and Branchaud-Charron, Frederic and Freyberg, Jan and Pardinas, Rafael and Schell, Lorne
and Pearse, George},
year={2022},
howpublished={url{https://github.com/baal-org/baal/}},
}
Untuk mendapatkan informasi tentang lisensi API ini, silakan baca lisensi