Advbox — это открытая библиотека инструментов для проверки обученных нейросетей на уязвимости. Разработкой библиотеки занимались исследователи из Baidu. В библиотеке есть функционал для генерации, распознавания и защиты от состязательных примеров. Состязательными примерами называются примеры входных данных, для которых модель стабильно выдает неверные предсказания.
В последние годы нейросети широко применялись для задач компьютерного зрения. В частности — для задачи классификации. Несмотря на то, что часть моделей по метрикам обходит человека на этой задачи, модели все еще остаются уязвимыми к состязательным примерам. Незначительные и незаметные изменения входных изображений достаточны, для того чтобы обмануть большинство нейросетевых подходов.
Чтобы повысить устойчивость предсказаний модели, необходимо проводить мониторинг того, к каким состязательным примерам модель уязвима. Для этого разработчики из Baidu опубликовали библиотеку Advbox. Функционал Advbox позволяет генерировать состязательные примеры. В сравнении с схожими инструментами Advbox предоставляет возможность проводить более разнообразные атаки на модели.
Что внутри библиотеки
В классе Attack в Advbox реализованы популярные состязательные атаки, которые ищут состязательные примеры в выборке. Каждый метод атаки использует меру расстояния, чтобы оценить степень искажения изображения.
В классе Model реализованы интерфейсы для взаимодействия с разными нейросетевыми фреймворками: Tensorflow, PyTorch, MxNet и PaddlePaddle. Модуль используется библиотекой для подсчета градиентов и выдачи предсказаний.
Класс Adversary содержит оригинальные входные данные, разметку и состязательные примеры. Состязательный пример добавляется в список, если модель выдала для него неверное предсказание.
Advbox поддерживает 6 алгоритмов атаки:
- FGSM;
- BIM;
- DeepFool;
- JSMA;
- CW;
- PGD
Помимо этого, в библиотеке доступны 6 алгоритмов для защиты от атак:
- Feature Squeezing;
- Spatial Smoothing;
- Label Smoothing;
- Gaussian Augmentation;
- Adversarial Training;
- Thermometer Encoding
Чтобы оценить устойчивость модели к атакам Advbox использует библиотеку Perceptron.