Привет, Хабр!
В исследованиях и на практике значения Шепли (Shapley values) — один из наиболее популярных методов интерпретации. По определению, значения Шепли вычисляются по оценке вклада признака во все возможные "коалиции" (подмножества признаков). Так, если у нас естьпризнаков, нам необходимо перебрать комбинаций для оценки вклада каждого признака полностью. На практике этого не делается — применяется аппроксимация.
Отсюда возникают вопросы:
достаточно ли такого нам весьма грубого вычисления (особенно, если у нас картинка, которую хотелось бы оценить максимально детально)?
насколько значения Шепли случайны и основаны на данных?
В этом посте разберемся с ними!
Меня зовут Сабрина, и я от ушей до пят люблю область explainable AI!
За время мне удалось приобщиться к чтению семинаров по области, написать курс, и сейчас я пишу ВКР, которая потом прорастет (надеюсь) в кандидатскую и дальше(если я не захочу бросить это всё и уйти в лес).
Кроме того, я веду DataBlog, и как могу стараюсь популяризировать область, потому что считаю её важной и красивой. Буду рада единомышленникам и открыта к обсуждению!
Грубость в вычислениях
Зачем?
Во-первых, разберемся, какие значения нам нужно вычислять и зачем нам грубить. Обратимся к полной формуле значений Шепли. Для признака в модели , значение Шепли есть:
где:
- — множество всех признаков,
- S — подмножество признаков, исключающее ,
- — вклад признака при добавлении его к подмножеству
- — функция, отражающая выигрыш в игре. Это может быть изменение метрики качества, прогноз модели или лосс. В библиотеке shap есть прогнозируемое значение.
Интуитивный смысл:
Значения Шепли вычисляют "средний" вклад признака по всем возможным комбинациям других признаков, что даёт распределение вклада. И всё было бы прекрасно, если бы не страшные факториалы (значки "!") и количество подмножеств, которое нам нужно проанализировать. При признаках необходимо рассмотреть подмножеств, что, начиная с (примерно) уже неприятно. А ведь при этом нам нужно ещё и запускать инференс модели... Вот здесь нам и помогает аппроксимация.
Как?
Аппроксимация — метод, состоящий в замене одних объектов другими, в каком-то смысле близкими к исходным, но более простыми [Wiki]. В нашем контексте — это способ упростить сложные вычисления, используя приближённые методы вместо точных значений Шепли.
В оригинальной статье описаны несколько подходов для аппроксимации. Они делятся на две категории: модель-независимые (model-agnostic) (те, которые могут быть использованы для любых моделей) и моделе-зависимые (model-specific) (те, которые уже опираются на определенную структуру модели) аппроксимации.
Как модель-незаисимые предложены:
Shapley regression values: — считаем важности признаков по формуле [1], используя в качестве линейные модели. Данный подход хорош при мультиколлинерарности, ведь если существуют как минимум два признака, способных заменить друг друга, добавление в коалицию второго при наличии первого не существенно изменит прогноз (если вообще изменит).
Shapley sampling values: — основан на случайной выборке подмножеств признаков. То есть вместно всех $2^N$ берем лишь некоторые и объединяем полученный результат. Минус — всё равно точность будет зависить от количества проанализированных выборок.
Quantitative input influence: — про него аккуратной информации не удалось найти, если кто-то знает — welcome!
Как модель-зависимые:
Linear SHAP: — методы для линейных моделей. Его красота — в использовании той информации, что уже есть — коэффиентов линейной модели. Вклад здесь считается как вес домноженный на значение признака в точке минус матожидание (наблюдаемое среднее) признака. Формула выглядит так:
где
— коэффициент признака
— значение признака для рассматриваемой точки,
— математическое ожидание значения признака (выборочное среднее по данным)
Интерпретируя формулу, ещё раз подытожим, мы смотрим, как отклонение признака от его матожидания влияет на прогноз.
Deep SHAP: — от названия, метод, подходящий для DNN. Под капотом он задействует DeepLIFT — градиентный метод объяснения.
Приведенный список не исчерпывающ — с ростом востребованности SHAP, появлялись и другие способы ускорить вычисления. Вместо того, чтобы останавливаться на каждом, зафиксируем факт: аппроксимации существуют и несколько отходят от изначально сильной теории значений Шепли.
Корректно ли применение аппроксимаций?
И так, мы выяснили и показали, что значения Шепли вычисляются не в оригинале, а в упрощении. Помогает ли это нам получать точные оценки?
Да!
Аппроксимации вводятся так, что мы требуем их соответствие (или достаточное приближение) к теоретическим значениями Шепли. Среди основных требований можно выделить:
Локальная точность — сумма всех значений Шепли для конкретного прогноза должна точно соответствовать значению прогноза. То есть:
где — базовое значение модели, когда все признаки не
влияют на модель.Аксиома болвана (аналог) — если значение признака отсутствует, то его вклад должен быть нулевым:
где — индикатор наличия признака .Согласованность(Consistency) — если в двух моделях прогноз одной зависит от добавления признака сильнее, чем во второй, то значение Шепли этого признака во второй модели должно быть ниже, чем в первой:
, где — две рассматриваемые модели.
И вишенкой на торте, доказана теорема:
Только одна возможная модель объяснения является аддитивным методом оценки вклада признаков и удовлетворяет требованиям 1, 2 и 3! И это выполняется во фреймворке shap.
Попробуем на это посмотреть
Теория всегда красива и хороша, но её польза чувствуется ярче на практике. Я задалась вопросом — будут ли устойчивы объяснения для одинаковых моделей, обученных с разных стартовых точек? И на сколько случайны признаки, которые может нам дать метод Шепли?
Так был проведен эксперимент.
Рассмотрим 5 эквивалентных моделей . Под эквилентными будем понимать модели:
одной архитектуры
обученные на одном наборе данных
имеющие сопоставимое (отличное лишь на незначимое значение ) качество
Рассмотрим тестовое множество и значения Шепли для конкретного примера конкретного класса (я брала MNIST, поэтому смотрела на 10 классов ).
Алгоритм:
Для каждого класса ,
рассмотрим распределения значений Шепли каждой из пяти моделей
для каждой пары распределений (для одного класса у нас будет пар)
- проанализируем "одинаковость" (однородность) распределений, рассматривая тест хи-квадрат с уровнем значимости
- проанализируем результаты
Примечание:
Чтобы не углубляться в статистику, можно сказать, что хи-квадрат проверяет одинаково ли распределение важностей признаков для моделей. Вывод делается на основе статистики теста и "p-значения" — вероятности при условии истинности нулевой гипотезы получить такие же результаты. Если эта вероятность ниже критического значения (у меня это 0.025) мы говорим, что распределения различны.
Для 100 пар у меня получилось, что статистически значимо различаться распределения будут только у 5% наблюдений. Устойчиво? Вполне.
Подведение итогов
И так, мы с вами рассмотрели вопрос устойчивости значений Шепли и важность применения аппроксимаций в их вычислении. И вроде бы всё хорошо, значения Шепли прочны теоретически, применимы практически и просто прекрасны. Но оставим восхищение и сухо закрепим полученные выводы:
Аппроксимация является обоснованным и корректным способом для расчета значений Шепли. Однако, важно сказать, что это работает при предположении о независимости признаков.
Устойчивость значений Шепли в эксперименте показывает, что метод способен демонстрировать значимую стабильность и значения Шепли действительно могут показывать важные признаки, основываясь на свойствах данных.
НО: устойчивость в одном эксперименте может нарушиться при проведении других. Как автор поста, здесь я преследую две цели — показать, что инструмент полезен на практике и пробудить интерес к новым экспериментам.
Как видите, есть ограничения и нюансы. И здесь Explainable AI — удивительная область, полная вопросов и противоречий. Надеюсь, эта статья была полезна для вас и дала новые знания, которые будут полезны на практике. Как минимум при понимании применения конкретных explainer'ов с shap под капотом на практике.
Спасибо за чтение!
Желаю вам надежных и понятных моделей,
Ваш Дата-автор! :)