Выяснение причин, по которым ваша модель машинного обучения может быть последовательно менее точной в одних классах, чем в других, может помочь вам повысить не только ее общую точность, но и ее устойчивость к атакам.

Введение

Модели машинного обучения (ML) и особенно модели глубокого обучения (DL) могут достигать впечатляющих результатов, особенно с неструктурированными данными, такими как изображения и текст. Однако у (контролируемой) среды машинного обучения есть фундаментальное ограничение: дистрибутивы, на которых мы используем модели машинного обучения, НЕ всегда являются теми, на которых мы их обучаем. Это приводит к моделям, которые, с одной стороны, кажутся точными, а с другой — хрупкими.

Враждебные атаки используют эту хрупкость и вносят в изображения незаметные возмущения, которые заставляют модель переворачивать свои прогнозы.

Например, освещение знака Стоп определенным образом может привести к тому, что модель дорожного знака предскажет его как знак Скорость 30 (рис. 1 слева). В другом примере, просто повернув изображение или заменив некоторые слова в предложении медицинского диагноза их синонимами, вы можете обмануть модели, чтобы они давали неправильный медицинский диагноз и оценки риска соответственно (рис. 1 справа).

Очевидно, что противоборствующая устойчивость модели связана с ее безопасностью и безопасностью, поэтому важно знать о ее существовании и ее последствиях.

В этой статье мы будем использовать модель, обученную на общедоступном наборе данных CIFAR10, чтобы:

📌 Изучите интуитивное предположение о том, что неспособность модели правильно предсказать изображение также приводит к более высокой восприимчивости к атакам злоумышленников.

📌 Мы измерим различия в классах, то есть проверим производительность модели по 10 классам.

📌 В конце мы проведем анализ первопричин, который выявит причины этих различий в классах, что, как мы надеемся, поможет нам исправить не только ошибки в классификации, но и повысит устойчивость модели к состязаниям.

Классы «кошка», «птица» и «собака» сложнее правильно классифицировать и легче атаковать.

Мы обучили простую модель, используя хорошо известный архитектурный шаблон ResNet в 20-уровневой глубокой сети, которая обеспечивает точность 89,4% на проверочном наборе. Затем мы построили график пропуска (на класс), чтобы проверить, есть ли какие-либо различия между классами (рис. 2).

Очевидно, что классы «кошка», «птица» и «собака» сложнее правильно классифицировать, чем остальные классы.

Затем мы применили два вида состязательных атак:

  • Нецелевая атака, при которой атака считается успешной, если метка прогнозируемого класса изменена (на любую другую метку).
  • Целенаправленная атакас наименее вероятной целью, где мы имеем успешную атаку, когда предсказанная метка класса специально изменен на метку, указывающую на то, что модель имеет наименьшую достоверность для конкретного экземпляра.

После этого мы нанесли на график коэффициент успешных атак для каждого класса, который измеряет процент успешных атак для каждого класса (примечание: каждый класс в тестовом наборе содержит 1000 изображений). Мы можем заметить, что наиболее успешно атакованные классы — это те же классы, которые также не классифицированы (рис. 3).

Это интуитивно понятно и в некоторой степени ожидаемо, поскольку тот факт, что модель пропускает классификацию некоторых экземпляров, означает, что она уделяет больше внимания функциям, которые не очень важны для этого класса, поэтому добавление большего количества возмущенных функций значительно усложняет работу модели, а цель нападающего легче.

Анализ причин

Мы определили три возможные основные причины несоответствия классов в прогнозах модели:

1. Неправильно помеченные/запутанные тренировочные данные

Сбор данных, вероятно, является самой дорогостоящей и трудоемкой частью большинства проектов машинного обучения. Вполне разумно ожидать, что этот трудоемкий процесс повлечет за собой некоторые ошибки. Мы обнаружили, что обучающий набор CIFAR10 содержит некоторые изображения, которые либо неправильно помечены, либо сами по себе сбивают с толку даже человека (рис. 4).

Это можно рассматривать как своего рода непреднамеренное отравление данными, так как значительное количество этих отравленных изображений может сместить распределение данных в ложном направлении, тем самым усложнив модель, чтобы изучить значимые функции и, следовательно, сделать правильные прогнозы.

Отравление данных также связано с враждебными атаками, хотя в этом случае зараженные данные тщательно обрабатываются. Показано, что даже одно искаженное изображение может повлиять на несколько тестовых изображений (рис. 5).

2. Это «кошка» или «собака»?

Класс «кошка» имеет наихудший показатель промахов из всех классов, за ним следует класс «собака», который имеет третий наихудший показатель промахов.

Поскольку эти животные имеют некоторые сходные черты (четыре ноги, уши, хвост), наша интуиция подсказывает, что наша модель не смогла выделить значимые признаки, чтобы отличить этих двух животных, или усвоила «собачьи» признаки лучше, чем «кошачьи».

Используя объяснения карты заметности, мы можем проверить эту интуицию: мы видим, что модель не усвоила некоторые отличительные характеристики кошки, такие как заостренные уши и нос, и вместо этого фокусируется на морде или теле животного целиком (рис. 6).

3. Это «птица» или «самолет»?

Аналогичная ситуация происходит с классами «птица» и «самолет». Модель в этом случае смущает синий фон, так как большинство изображений самолетов содержат объект на синем фоне (рис. 7).

Выводы

👉 Хорошие данные означают хорошую модель: потратьте некоторое время на изучение ваших данных и попытайтесь определить, есть ли какие-либо систематические ошибки в вашем обучающем наборе.

👉 Используйте методы объяснения в качестве отладчика, чтобы понять, почему ваша модель модели пропускает определенные группы экземпляров больше, чем другие.

👉 Состязательные атаки — это экономичный способ проверить устойчивость вашей модели к состязательным действиям.

Первоначально опубликовано на https://code4thought.eu 17 мая 2022 г.