
BAAL - это библиотека активного обучения, которая поддерживает как промышленные приложения, так и исследования в области использования.
Прочитайте документацию по адресу https://baal.readthedocs.io.
Наша статья можно прочитать на Arxiv. Он включает в себя советы и рекомендации, чтобы сделать активное обучение пригодным для обучения в производстве.
Для быстрого введения в активное обучение BAAL и Bayesian, пожалуйста, смотрите эти ссылки:
Баал был первоначально разработан в Elementai (приобретенном ServiceNow в 2021 году), но в настоящее время является независимым.
Баал требует Python>=3.8 .
Для установки BAAL с помощью PIP: pip install baal
Мы используем поэзию как наш менеджер пакетов. Чтобы установить BAAL из источника: poetry install
Активное обучение - это особый случай машинного обучения, в котором алгоритм обучения способен интерактивно запросить пользователя (или какой -либо другой источник информации), чтобы получить желаемые выходы в новых точках данных (чтобы более глубоко понять концепцию, см. В нашем учебном пособии. )
На данный момент BAAL поддерживает следующие методы для выполнения активного обучения.
Если вы хотите предложить новые методы, отправьте проблему.
Метод отсева Монте-Карло является известным приближением для байесовских нейронных сетей. В этом методе выпадающий слой используется как во время обучения, так и во время тестирования. Запустив модель несколько раз, в то время как случайным образом сбрасывая веса, мы рассчитываем неопределенность прогноза, используя одно из измерений неопределенности в эвристике.py.
Структура состоит из четырех основных частей, как показано в блок -схеме ниже:
Чтобы начать, оберните свой набор данных в наш класс ActiveElearningDataset . Это гарантирует, что набор данных разделен на training и наборы pool . Набор pool представляет часть учебного набора, который еще не помечен.
Мы предоставляем легкий Object ModelWrapper, похожий на keras.Model , чтобы облегчить обучение и тестирование модели. Если ваша модель не готова к активному обучению, мы предоставляем модули для их подготовки.
Например, обертка McDropoutModule меняет существующий отступленный слой, который будет использоваться как во время обучения, так и во время вывода, а ModelWrapper указывает количество итераций для работы при обучении и выводе.
Наконец, ActiveElearningLoop автоматически вычисляет неопределенность и помечает самые неопределенные элементы в пуле.
В заключение, ваш сценарий должен быть похож на это:
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 ()Для полного эксперимента см. Эксперименты/vgg_mcdropout_cifar10.py .
docker build [--target base_baal] -t baal .
docker run --rm baal --gpus all python3 experiments/vgg_mcdropout_cifar10.pyПросто клонируйте репо и создайте свой собственный сценарий эксперимента, аналогичный примеру в экспериментах/vgg_mcdropout_cifar10.py . Обязательно используйте четыре основные части Baal Framework. Счастливые эксперименты
Чтобы внести свой вклад, см. Appling.md.
«Есть страсть, но мир; безмятежность, но эмоции; хаос, но порядок».
Команда BAAL проверяет и реализует самые последние документы по оценке неопределенности и активному обучению.
Текущие сопровождающие:
Если бы вы использовали BAAL в одном из ваших проектов, мы очень признателен, если бы вы указали эту библиотеку, используя эту бибту:
@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/}},
}
Чтобы получить информацию об лицензии на этот API, прочитайте лицензию