Интуитивное объяснение того, как работают эти современные методы XAI

Это третья часть серии под названием «Объяснимый ИИ для обычного человека». В этой части я постараюсь предоставить общий обзор типичных стратегий, используемых для объяснения алгоритмов ИИ.

Остальные части доступны здесь:

Часть 1. Что такое объяснимый ИИ и зачем он нам нужен?

Часть 2: Типы объяснимого ИИ (XAI)

Часть 4. Создание XAI для распознавания активности: умный дом, который разговаривает со своими жильцами!

В предыдущем посте мы обсудили, что такое объяснимый ИИ (XAI), и представили общий обзор двух основных способов достижения XAI: методов, не зависящих от модели, и новых архитектур, использующих внимание. Здесь мы сосредоточимся на основах самых популярных методов XAI, не зависящих от модели: LIME и SHAP.

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

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

Как мы можем сгенерировать веса вклада для каждой функции в этом случае?

Давайте посмотрим, как это делает LIME.

Локальные интерпретируемые объяснения, не зависящие от модели (LIME)

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

Во-первых, необходимо создать набор данных, представляющий локальный район. Для этого LIME различными способами «возмущает» объекты экземпляра для создания нового набора данных. (Высота и вес заменяются значениями, взятыми из распределения каждой функции по всем экземплярам в наборе данных). Этот набор данных возмущения визуализируется зелеными точками.

Затем мы тестируем нашу модель черного ящика с этими экземплярами и получаем их метки.

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

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

Ясно, что эта линия является хорошим приближением фактической границы решения черного ящика в этой локальной области. Другими словами, он имеет высокую локальную точность. Линия может иметь уравнение z = 0,4 * рост + 0,2 * вес (где 0,4 и 0,2 — веса, полученные суррогатной моделью. Любой экземпляр над линией классифицируется как собака, а любой экземпляр ниже линии — классифицируется как кошка.

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

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

LIME довольно прост и эффективен, но не лишен некоторых сложностей:

  1. Определить размер локальной области сложно: если определенная локальная область слишком велика, искаженный набор данных больше не является хорошим представлением интересующего объекта, и объяснения могут не иметь смысла. В настоящее время не существует четкого способа определения размера локальной области. Часто используется метод проб и ошибок.
  2. Нестабильность. Из-за случайных возмущений LIME иногда генерирует разные объяснения для одного и того же экземпляра! Это ограничивает наше доверие к объяснениям.
  3. Ограниченный объем: LIME может объяснить решение модели только для одного экземпляра за раз. Что, если мы хотим понять общее поведение модели во всех экземплярах? Для этого нужна новая техника.

Аддитивные объяснения Шепли (SHAP)

SHAP использует концепции теории игр для создания как индивидуальных объяснений для экземпляров, так и глобальных объяснений для целых классов. Он основан на идее ценностей Шепли.

Допустим, у нас есть классификатор, который использует три признака для предсказания вероятности того, что животное является собакой: вес, рост и скорость бега. (Классификатор обучен только на собаках и кошках.)

Вот один пример:

Вход:

Высота: 12 дюймов

Вес: 10 фунтов

Скорость бега: 15 миль в час

Вывод:

Вероятность собаки: 0,8

В среднем классификатор выдает вероятность 0,5. (В равной степени вероятно, что в модель были введены собака или кошка.) Значения Шепли описывают вклад каждого из признаков в отклонение вывода от среднего вывода. Другими словами, насколько рост, вес и скорость бега этого животного способствовали увеличению на 0,8–0,5 = 0,3 вероятности того, что это животное является собакой? Ответ может быть:

Ценности Шепли:

Высота: 0,2

Вес: 0,2

Скорость бега: -0,1

Эти значения в сумме составляют 0,3, отклонение вывода этого экземпляра от среднего вывода.

Чтобы определить эти значения, мы создаем новый набор возмущенных данных, аналогичный набору LIME, но более строгого характера. Скажем, у нас есть k признаков и мы хотим определить значение Шепли k-го признака.

Сначала мы создаем «коалиции», состоящие из всех возможных групп от нуля до k-1 признаков. В нашем примере это будут следующие группы:

Нет функций

Высота=12

Вес=10

Рост=12, Вес=10.

Каждая из этих коалиций принимает значения признаков экземпляра, который мы объясняем, для признаков, которые они в настоящее время содержат. Затем они принимают случайные значения для всех функций, которых они еще не содержат. (Эти случайные значения взяты из распределения каждой функции в наборе данных.)

У нас есть:

Рост = СЛУЧАЙНЫЙ, Вес = СЛУЧАЙНЫЙ, Скорость бега = СЛУЧАЙНЫЙ

Рост = 12, Вес = СЛУЧАЙНО, Скорость бега = СЛУЧАЙНО

Рост = СЛУЧАЙНО, Вес = 10, Скорость бега = СЛУЧАЙНО

Рост = 12, Вес = 12, Скорость бега = СЛУЧАЙНАЯ

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

Теперь у нас есть:

Рост = СЛУЧАЙНО, Вес = СЛУЧАЙНО, Скорость бега = 15

Рост = 12, Вес = СЛУЧАЙНО, Скорость бега = 15

Рост = СЛУЧАЙНО, Вес = 10, Скорость бега = 15

Рост = 12, Вес = 12, Скорость бега = 15

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

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

Мы обучаем суррогатную модель на этом наборе данных, получаем изученные веса и вуаля! У нас есть ценности Шепли!

Преимущество значений Шепли по сравнению с оценками вклада LIME заключается в том, что они справедливо распределены и всегда суммируются с выходными данными экземпляра, который мы объясняем. Таким образом, они полностью объясняют вывод. (Для LIME баллы вклада не обязательно ничего не дают в сумме). Кроме того, теоретическая основа Шепли довольно строгая, в отличие от теоретической основы LIME (нет никаких доказательств того, что суррогатная модель LIME может аппроксимировать нелинейную границу. Мы просто надеемся, что это возможно).

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

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

Я настоятельно рекомендую этот ресурс для более глубокого объяснения LIME и SHAP.

Теперь, когда у нас есть базовое понимание XAI, давайте перейдем к изучению новой исследовательской проблемы: как мы можем создать ИИ для умного дома, который предсказывает действия жителей и объясняет свои прогнозы жителям на естественном языке? См. Часть 4: Создание XAI для распознавания активности: умный дом, который разговаривает со своими жильцами!