Объяснимый ИИ (XAI)

Распаковка моделей «черный ящик»

Методы интерпретации моделей для объяснения моделей «черного ящика»

Серия: Интерпретируемое машинное обучение

Эта статья основана на реализации различных методов, не зависящих от модели, описанных Кристофером Молнаром в его книге "Интерпретируемое машинное обучение". Если вы хотите углубиться в изучение, вы можете найти электронную книгу по адресу: https://christophm.github.io/interpretable-ml-book/index.html

Примечание. Эта статья является второй частью серии: Интерпретируемое машинное обучение.

Чтобы понять, почему важна интерпретируемость и почему используется сложная модель, см.

Часть 1 — Сложность модели, точность и интерпретируемость: https://medium.com/@sajee.a/model-complexity-accuracy-and-interpretability-59888e69ab3d

Содержание

  1. Введение
  2. Необходимость интерпретируемости машинного обучения
  3. Почему методы, не зависящие от модели?
  4. Интерпретируемые методы, не зависящие от модели
  5. Вывод

Введение

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

Необходимость интерпретируемости машинного обучения

Удивительно видеть, как за последние несколько лет машинное обучение и ИИ взяли под полный контроль решения, которые люди принимают в своей жизни. От медицинской диагностики до юридических решений и компаний, принимающих бизнес-решения на основе моделей машинного обучения, огромный риск, если мы не знаем Почему?" и "Каккак?"мы получаем определенный прогноз. Когда мы интерпретируем модель, мы можем учитывать справедливость, подотчетность и прозрачность в прогнозах модели, что может помочь развивайте в них это доверие.

Интерпретируемость — это степень, в которой человек может понять причину решения. Чем выше интерпретируемость, тем лучше можно понять решения или прогнозы, сделанные моделью.

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

Для интерпретации моделей нам в основном нужно знать:

  • Важность функции
  • Влияние функции на конкретный прогноз
  • Влияние каждой функции на большое количество прогнозов

Ниже мы подробно обсудим каждый из них.

Зачем моделировать независимые методы

Когда вы думаете о черном ящике, вы не знаете, что внутри него, то есть мы не поймем, как он работает. Легче работать с объяснениями, не зависящими от модели, потому что один и тот же метод можно использовать для любого типа модели. Альтернативой модельно-независимым методам интерпретации является использование только интерпретируемых моделей.

Преимущества методов, не зависящих от модели:

  • Гибкость модели
  • Гибкость объяснения
  • Гибкость представления

Интерпретируемые методы, не зависящие от модели:

Важность функции:

  • Важность функции перестановки
  • Взаимодействие с функциями

Причинная интерпретация:

  • Графики частичной зависимости (PDP)
  • Индивидуальное условное ожидание (ICE)

Суррогатные модели:

  • Глобальный суррогат
  • Местный суррогат — LIME

Объясните прогнозы:

  • Правила области действия
  • Значения SHAP

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

Важность функции:

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

Важность функции перестановки:

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

Поэтому, если функция «важна», перетасовка ее значений увеличивает ошибку модели.

Реализация Python — ELI5

Более высокий вес указывает на более высокую важность функции.

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

Взаимодействие с функциями:

Взаимодействие признаков измеряет дисперсию функции частичной зависимости одного признака, т. е. как перестановка одного значения признака влияет на другой признак. Если дисперсия высока, то признаки взаимодействуют друг с другом, если равна нулю, то не взаимодействуют.

Давайте рассмотрим матрицу корреляции, чтобы найти функции, которые сильно коррелированы, а затем рассмотрим их взаимодействие функций.

Характеристики влажность — скорость ветра и температура — влажность имеют отрицательную корреляцию. Теперь давайте посмотрим на взаимодействие их функций.

Теория: H-статистика Фридмана:

Согласно H-статистике Фридмана мы имеем дело с двумя случаями:

  • 2-сторонняя мера взаимодействия, которая говорит нам, взаимодействуют ли две функции друг с другом и в какой степени.
  • Общая мера взаимодействия, чтобы сообщить нам, взаимодействует ли функция со всеми другими функциями в модели и в какой степени.

Реализация Python — H-статистика

Может быть вычислена статистика H переменных, представленных элементами array_or_frame и заданных index_or_columns. Чем больше H, тем убедительнее доказательства взаимодействия между переменными. H изменяется от 0 до 1.

{('temp', 'atemp'): 0.15373552315496558,
 ('temp', 'humidity'): 0.09849995273815548,
 ('temp', 'windspeed'): 0.5574920397015759,
 ('atemp', 'humidity'): nan,
 ('atemp', 'windspeed'): nan,
 ('humidity', 'windspeed'): 0.4392361526105014}

Взаимосвязь между температурой и скоростью ветра и влажностью и скоростью ветра очень высока.

Причинно-следственные связи:

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

Как добраться до причинно-следственной связи:

  1. Проверьте функции, сильно влияющие на модель
  2. Оценивайте важность на основе вклада в точность
  3. Проверить причинно-следственную связь между функциями и целью

Графики частичной зависимости (PDP) Фридмана:

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

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

Реализация Python — PDPbox

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

Чем выше температура, тем больше велосипедных прогулок. Когда температура поднимается выше 20 градусов Цельсия, количество велосипедных поездок увеличивается, а затем, когда температура достигает 30 градусов Цельсия, уменьшается. сильный>

Велосипедные прогулки увеличиваются, когда влажность превышает 60 %

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

Индивидуальные условные ожидания (ICE):

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

Реализация Python — PyCEbox

Большинство велосипедистов предпочитают ездить при температуре выше 20 градусов Цельсия.

Суррогатные модели:

Суррогатные модели — это, по сути, упрощенная модель, которая обучена аппроксимировать модель «черного ящика» при условии, что суррогатная модель должна быть интерпретируемой. Суррогатные модели могут быть как на глобальном уровне — интерпретация модели, так и на локальном уровне — интерпретация отдельного прогноза.

Глобальный суррогат:

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

Как работает суррогатная модель?

  1. Выберите набор данных X — набор данных поезда, набор данных с одинаковым распределением или подмножество данных
  2. Получить прогнозы модели черного ящика
  3. Выберите интерпретируемый тип модели (линейная модель, дерево решений и т. д.)
  4. Обучать интерпретируемую модель набору данных X и его прогнозам

Реализация Python — Суррогат дерева с Skater

Skater использует Tree Surrogate для объяснения изученных политик принятия решений модели. Базовым оценщиком («Оракул») может быть любая форма модели прогнозирования обучения с учителем — в нашем случае модель регрессора с усилением градиента.

#build a surrogate model
from skater.core.explanations import Interpretation
interpreter = Interpretation(training_data=X_train,
                             feature_names=X_train.columns)
from skater.model import InMemoryModel
model = InMemoryModel(GBR_model.predict, examples = X_train)
surrogate_explainer = interpreter.tree_surrogate(oracle=model, seed=5)
# explainer fit
mae = surrogate_explainer.fit(X_train, Y_train, use_oracle=True, prune='post', scorer_type='mae')
#Mean absolute error
mae = 22.945

Результат реализации генерирует оценку точности для количественной оценки приближения суррогатной модели на основе дерева к Oracle. Учитывая, что MAE примерно равно 23, суррогатные модели очень близки к модели регрессора с усилением градиента.

Местный суррогат (LIME)

Объяснения, не зависящие от локальной интерпретируемой модели:

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

Как работает LIME?

  • Выберите локальный экземпляр, для которого вы хотите получить прогноз
  • Набор данных Peturb для получения новых точек данных
  • Взвешивание новых образцов в соответствии с их близостью к экземпляру
  • Обучение взвешенной, интерпретируемой модели на наборе данных с вариантами
  • Объясните прогноз, интерпретируя локальную модель

Библиотека Python — лайм

Предсказание интерпретации экземпляра.

Intercept 263.5156364850176
Prediction_local [-4.57966725]
Right: 2.126336579439559

Объясните предсказания:

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

Ограниченные правила:

Якоря были опубликованы той же группой, которая работала над LIME, после того, как они обнаружили ограничения LIME в том смысле, что неясно, применимо ли данное объяснение к региону, где находится невидимый экземпляр.

Чтобы узнать больше об Anchor, обратитесь сюда — https://homes.cs.washington.edu/~marcotcr/aaai18.pdf.

Якоря обеспечивают высокоточные объяснения для отдельных прогнозов любой модели классификации черного ящика, находя правило принятия решения, которое « привязывает» прогноз в достаточной степени. Он в основном использует стратегию на основе возмущений для генерации локальных объяснений прогнозов. Таким образом, вместо построения суррогатной модели используются простые для понимания правила ЕСЛИ-ТО, называемые якорями.

Чем отличаются правила LIME и Scoped Rules?

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

Реализация Python — привязка

Anchor: year <= 0.00 AND weekday_6 <= 0.00 AND weekday_0 <= 0.00 AND 0.34 < temp <= 0.50 AND 6.00 < hr <= 12.00 AND season_Fall <= 0.00 AND month <= 4.00 AND humidity > 0.78 AND weekday_3 <= 0.00 AND weather_4 <= 0.00 AND total_count > 282.00 AND weather_2 <= 0.00 AND weekday_4 <= 0.00 AND weather_3 <= 0.00 AND 0.00 < season_Summer <= 1.00 AND season_Winter <= 0.00 AND windspeed <= 0.10 AND 0.33 < atemp <= 0.48 AND weekday_5 > 0.00 AND 0.00 < workingday <= 1.00 AND holiday <= 1.00 AND weekday_2 <= 0.00 AND weekday_1 <= 0.00 AND 0.00 < weather_1 <= 1.00 AND season_Spring <= 0.00
Precision: 0.99
Coverage: 0.28

ШАП значения:

SHAP расшифровывается как SHapley Additive exPPlanations. Это основанная на ядре оценка для подхода к значениям Шепли, вдохновленная локальными суррогатными моделями. Метод объяснения SHAP вычисляет значения Шепли из коалиционной теории игр.

SHAP можно использовать как для глобальной, так и для локальной интерпретации.

Библиотека Python — shap

Местные интерпретации:

Для обеспечения локальной интерпретируемости цель SHAP состоит в том, чтобы объяснить предсказание экземпляра x путем вычисления вклада каждой функции в предсказание.

Фактический прогноз — 149 | Средний прогноз — 164,67

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

Глобальные интерпретации:

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

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

Вывод:

После изучения различных методов, не зависящих от модели, для интерпретации нашей модели регрессора с повышением градиента мы получаем следующие объяснения прогнозов модели:

  1. Hr, температура, влажность, рабочий день являются наиболее важными характеристиками для нашей задачи регрессии.
  2. Характеристики температуры, влажности и скорости ветра сильно взаимодействуют между собой.
  3. Велосипедные прогулки увеличиваются с повышением температуры, увеличением влажности и уменьшаются со скоростью ветра.
  4. Интерпретация отдельных прогнозов приводит к пониманию того, какие функции положительно или отрицательно повлияли на его прогноз.
  5. Создание суррогатной модели для полной интерпретации модели черного ящика

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

Изучите возможности H20.ai MLI:

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

Чтобы узнать больше о возможностях H20.ai MLI —

https://www.h2o.ai/products-dai-mli/

Обо мне

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

Использованная литература:

[1] https://christophm.github.io/interpretable-ml-book/