Если алгоритм, который вы используете, представляет собой модель черного ящика, почему бы не использовать интерпретируемую модель, которая имитирует поведение оригинала?

Обзор предыдущих сообщений

Объяснимое машинное обучение (XAI) относится к усилиям, направленным на то, чтобы программы искусственного интеллекта были прозрачными в своих целях и в том, как они работают. [1] Это 5-й пост среди серии XAI, который я планирую написать.

До сих пор я представил вам четыре методологии XAI — графики частичной зависимости (PDP), графики индивидуального условного ожидания (ICE), кривые накопленных локальных эффектов (ALE) и важность перестановок. В этом посте я расскажу о глобальных суррогатных моделях. Пожалуйста, ознакомьтесь с моими предыдущими четырьмя постами, если вам интересно или вам нужно подвести итоги!

Методы XAI, часть I

Методы XAI, часть II

Методы XAI Часть III

Методы XAI, часть IV

Концепция высокого уровня

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

Главное здесь — убедиться, цитата за цитатой из книги «Интерпретируемое машинное обучение», что суррогатная модель, которую вы используете, максимально точно аппроксимирует прогнозы базовой модели и в то же время поддается интерпретации. [2]

Типы суррогатных моделей

Существует два типа суррогатных моделей — глобальные и локальные. Глобальные суррогатные модели используются для объяснения «общих/глобальных прогнозов» моделей черного ящика, в то время как локальные суррогатные модели, лучше всего представленные методом локальных интерпретируемых независимых от модели объяснений (LIME), предназначены для объяснения «индивидуальных» прогнозов. В этом посте мы имеем дело только с глобальными суррогатными моделями. Мой следующий пост будет касаться темы LIME.

Как построить глобальные суррогатные модели — теория

  1. Сначала вам нужен набор данных, который можно использовать для обучения суррогатной модели. Это могут быть точно такие же данные, которые использовались для обучения исходной модели черного ящика. Это также могут быть новые данные, аналогичные исходным данным с точки зрения распределения и своих характеристик. Для этих выбранных данных извлеките выходные значения, предсказанные моделью черного ящика.
  2. Выберите внутренне интерпретируемый алгоритм, который можно использовать в качестве глобальной суррогатной модели. Примеры включают обобщенную аддитивную модель, логистическую регрессию и древовидные алгоритмы (например, не такие прозрачные, как линейная регрессия, но все же относительно простые для интерпретации).
  3. Обучите суррогатную модель на данных, выбранных на шаге 1, и сохраните результирующий набор прогнозов.
  4. Проверьте, насколько хорошо обученная суррогатная модель аппроксимирует прогнозы, сделанные моделью черного ящика. Это важно, потому что если суррогатная модель не может имитировать поведение исходной модели черного ящика, то информация, которую мы получаем в результате интерпретации суррогатной модели, БОЛЬШЕ НЕ ОБЪЯСНЯЕТ ИСХОДНУЮ МОДЕЛЬ.

Как мы делаем шаг 4?

Есть несколько показателей, которые мы можем использовать для выполнения шага 4, но одним из популярных показателей является R-квадрат. Помните, как R-квадрат в условиях регрессии представляет собой долю дисперсии данных, объясняемую обученной моделью? Концепция аналогична здесь. R-квадрат в контексте суррогатных моделей — это процент дисперсии, улавливаемый суррогатной моделью. [2] См. ниже точную формулировку расчета R-квадрата, цитируя Главу 9.2 книги «Интерпретируемое машинное обучение.

Как построить глобальные суррогатные модели — реализация

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

Однако существуют пакеты как для R, так и для Python, которые позволяют упростить весь этот процесс! (подмигивание)

Для пользователей R пригодится пакет iml. Рассмотрим пример из официальной документации R-CRAN.

set.seed(42)
library(“iml”)
library(“randomForest”) 
data(“Boston”, package = “MASS”) 
rf <- randomForest(medv ~ ., data = Boston, ntree = 50)
X <- Boston[which(names(Boston) != "medv")] 
predictor <- Predictor$new(rf, data = X, y = Boston$medv)
# fit surrogate decision tree model
tree <- TreeSurrogate$new(predictor, maxdepth = 2)

# how well does this model fit the original results
tree$r.squared

Набор данных — это знаменитые данные Boston Housing. Мы хотим использовать случайный лес, чтобы делать прогнозы. Но это не очень объяснимо. В этом случае мы используем древовидный алгоритм в качестве суррогатной модели. Вы видите выше, что rf — это переменная, в которой хранится модель случайного леса, а предиктор — это переменная, в которой хранятся все прогнозы модели случайного леса.

Переменная дерева — это объект iml, созданный функцией TreeSurrogate из пакета iml. Эта функция имеет параметр maxdepth, который позволяет пользователям контролировать максимальную глубину формируемого дерева. Одним из недостатков пакета iml является тот факт, что в качестве опции для суррогатных моделей доступен только древовидный алгоритм. Наконец, функция r.squared для объекта iml (в данном случае для переменной дерева) возвращает значение R-Squared суррогатной модели.

plot(tree)

Функция plot, примененная к объекту iml, вернет приведенные выше визуализации коробчатой ​​диаграммы. Мы видим, что для lstat > 9,71 и lstata > 16,21 значение y в квадрате особенно низкое.

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

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

from interpret.ext.blackbox import MimicExplainer
from interpret.ext.glassbox import LinearExplainableModel

MimicExplainer — это функция суррогатной модели, которая может охватывать любые интерпретируемые алгоритмы. В этом случае мы используем линейную модель, поэтому мы импортируем функцию LinearExplainableModel. Доступны и другие варианты, включая DecisionTreeExplainableModel и GBMExplainableModel.

Полный пример кода я рекомендую в следующем сообщении в блоге.

Преимущества и вещи, на которые следует обратить внимание!

Преимущества

Любая интерпретируемая модель может быть использована в качестве суррогатной модели, что дает пользователям гибкость! Более того, в зависимости от целевой аудитории, которая слушает объяснения XAI, вы можете обучить несколько суррогатных моделей, которые лучше всего работают для разных групп аудитории, помогая им четко понять идеи.

Недостатки и о чем следует помнить

В некоторых случаях вы столкнетесь с ситуациями, когда ни одна из интерпретируемых моделей, которые вы пробовали обучать, не имеет достаточно высокого значения R-квадрата, чтобы можно было сделать заявление о том, что суррогатная модель аппроксимирует предсказания исходной модели черного ящика. Более того, каков приемлемый порог для значения R-квадрата? Это что-то выше 50%? Должно быть хотя бы 80%? На данный момент не существует отдельной методологии, позволяющей оценить, является ли суррогатная модель «достаточно похожей» на исходную модель.

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

Мой следующий пост будет посвящен локальным суррогатным моделям, а именно интерпретируемым объяснениям, не зависящим от модели (LIME). Следите за обновлениями!

Рекомендации

[1] Объяснимый искусственный интеллект (XAI) (2019), Технопедия

[2] К. Молнар, Интерпретируемое машинное обучение (2020)

[3] Ф. Сантьяго, Интерпретируемость модели — Заставить свою модель признаться: суррогатные модели (2020), Medium

об авторе

Сынджун (Джош) Ким — специалист по данным, который работает научным сотрудником в лаборатории системы административной документации уголовного правосудия (CJARS) в Мичиганском университете. Он планирует приступить к программам докторантуры по статистике или информации, начиная с этой осени (ждет результатов). В это свободное время он любит поклоняться, читать Библию, смотреть дорамы, тренироваться, сочинять и играть музыку и пробовать новые рецепты азиатской кухни.

Его личный сайт