Почему стоит доверять своей модели?

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

Этот пост будет охватывать следующие темы:

  1. Как важно доверять своей модели
  2. Что такое ЛАЙМ?
  3. Что делает LIME хорошим помощником для объяснения моделей?
  4. Как LIME обеспечивает объяснимость модели?
  5. Практический пример использования LIME для решения задачи классификации

Как важно доверять своей модели

Чтобы укрепить доверие к модели, мы запускаем несколько перекрестных проверок и выполняем проверку удерживаемого набора. Эти симуляции дают агрегированное представление о производительности модели по неизвестным данным. Это не помогает понять, почему одни из наших прогнозов верны, а другие - нет, и мы не можем проследить путь решения нашей модели. Другими словами, мы не можем понять, как он учится, или сделать ложные выводы. Но что, если я скажу вам, что существует инструмент, который объясняет границы принятия решений вашей модели понятным человеку способом. Название этой волшебной библиотеки - ЛАЙМ.

Что такое ЛАЙМ?

LIME (Local Interpretable Model-Agnostic Explanations) - это новый метод объяснения, который объясняет предсказание любого классификатора интерпретируемым и достоверным образом путем изучения интерпретируемой модели локально вокруг предсказания.

Что LIME может предложить в отношении интерпретируемости модели?
1. Объяснение, не зависящее от модели [LIME].
2. Метод выбора репрезентативного набора с пояснениями [SP-LIME] для обеспечения согласованного поведения модели. при копировании человеческой логики. Этот репрезентативный набор обеспечит интуитивное глобальное понимание модели.

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

  1. Интерпретируемый
    Он должен обеспечивать качественное понимание между входными переменными и ответом. Это должно быть легко понять.
  2. Локальная верность
    Возможно, объяснение не будет полностью достоверным, если оно не является полным описанием самой модели. При этом он должен быть по крайней мере локально верным, т.е. он должен воспроизводить поведение модели в непосредственной близости от прогнозируемого экземпляра.
  3. Агностик модели
    Объясняющий должен уметь объяснять любую модель и не должен делать никаких предположений относительно модели, предоставляя объяснения.
  4. Глобальная перспектива
    Объясняющий должен объяснить пользователю репрезентативный набор, чтобы пользователь имел глобальное интуитивное представление о модели.

Что делает LIME хорошим объяснением моделей?

Давайте посмотрим, как LIME соотносится со следующими характеристиками:

1. Интерпретируемые представления данных
LIME используют представление, понятное людям, независимо от фактических функций, используемых моделью. Это придумано как интерпретируемое представление. Интерпретируемое представление будет зависеть от типа данных, с которыми мы работаем, например:
1. Для текста: представляет наличие / отсутствие слов.
2. Для изображения: представляет присутствие / отсутствие суперпикселей (непрерывный участок одинаковых пикселей).
3. Для табличных данных: это взвешенная комбинация столбцов.

Короче говоря, объяснения LIME понятны даже неспециалистам.

2. Компромисс между верностью и интерпретируемостью

Нам нужен объяснитель, который был бы правдивым (копирующим поведение нашей модели локально) и интерпретируемым (пункт 1). Для достижения этого LIME сводит к минимуму следующее:

Переменные уравнения
f
: исходный предсказатель
x: исходные характеристики
g: модель объяснения, которая может быть линейной моделью, деревом решений или падающими списками правил
Pi: мера близости между экземпляром z и x для определения местоположения вокруг x. Он взвешивает z ’(возмущенные экземпляры) в зависимости от их расстояния от x.
Первый член: мера неверности g в приближении f в местности, определяемой Pi. В исходной статье это называется потерей с учетом местоположения
Последний термин: мера сложности модели объяснения g. Например, если ваша модель объяснения представляет собой дерево решений, это может быть глубина дерева или, в случае линейных моделей объяснения, это может быть количество ненулевых весов

Сокращение для использования в будущем
1. x ' (интерпретируемое представление)
: этот двоичный вектор представляет собой понятную человеку версию фактических функций, используемых исходной моделью.
2. z ' (образец возмущения): часть ненулевых элементов x'.
3. f (z): метка класса
4. g (z '): это модель, которую изучил LIME (модель объяснения).

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

3. Выборка для локального исследования
Повторяю, g - это модель, которую нужно изучить, z ' - это один экземпляр обучающих данных, а f (z) - это y. Чтобы создать полный обучающий набор, мы выполняем случайную однородную выборку из x ’. Другими словами, мы создаем несколько z ' из одной строки x (исходный пример обучения).
Затем они взвешиваются с помощью Pi (x), чтобы больше сосредоточиться на z ', которое ближе к x.
С учетом этого набора данных и меток уравнение 1 оптимизировано для изучения модели объяснения. Подводя итог, можно сказать, что LIME не зависит от типа исходной модели для предоставления объяснений (независимость от модели).

4. Редкое линейное объяснение
Предположим,
1. g (z ’) = w. z ’ (построение модели объяснения линейной)
2 . потеря с учетом локальных значений = потеря квадрата
3. Pi (z): exp (-D (x, z) (2) / sigma (2)) (бесконтактное взвешивание для образцов)
4. D (x, z): функция расстояния

Понимание алгоритма LIME

K - это ограничение на количество переменных, которые следует учитывать при объяснении. Например, для текста K - это количество учитываемых слов, для изображения - количество суперпикселей, а для табличных данных - количество столбцов. Для этого мы заставляем Omega стремиться к бесконечности, если size (w) ›K. Подводя итог, LIME использует линейные объяснители для аппроксимации границы решения исходной модели.

Часть 2: субмодульный инструмент (SP-LIME) для объяснения моделей

LIME стремится связать предсказание модели с понятными человеку особенностями. Для этого нам нужно запустить модель объяснения на разнообразном, но репрезентативном наборе экземпляров, чтобы вернуть неизбыточный набор объяснений, который является глобальным представлением модели. Перед тем, как представить алгоритм, давайте рассмотрим предварительные условия:
1. B (бюджет): количество объяснений, которые пользователь желает изучить
2. Шаг выбора: Задача выбора экземпляров B из всех экземпляров
3. W (матрица пояснений): n (количество образцов) * d ' (понятные человеку особенности) матрица
4. I (j): Глобальная важность компонента j в пространстве объяснения
5. V: возможности, учитываемые для объяснения
6. C (V, W, I): вычисляет общую важность функций, которые появляются хотя бы в одном экземпляре в набор V. (ур.3)

2 этапа алгоритма
1. Запустите модель объяснения для всех экземпляров (все x)
2. Вычислите глобальную важность отдельных компонентов
3. Максимизируйте функцию покрытия, итеративно добавляя экземпляр с наивысшим максимальным усилением покрытия.
4. Вернуть V (репрезентативный набор неизбыточных объяснений)

Таким образом, мы видим, что LIME обладает всеми 4 желательными свойствами идеального объяснителя модели.

Практический пример использования LIME для решения задачи классификации

Ниже приведен код для объяснения модели для классической классификации Титаника. Я использовал LightGBM для обучения модели (Нажмите, чтобы узнать о библиотеке LightGBM и здесь для ее оптимизации).

Вот как выглядят объяснения для строки 1 в данных обучения

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

Объяснение состоит из трех частей:

  1. Крайний левый раздел отображает вероятности прогнозов
  2. средняя часть возвращает 5 наиболее важных функций. Для задачи бинарной классификации он будет двух цветов: оранжевый / синий. Атрибуты оранжевого цвета поддерживают класс 1, а синего - класс 0. Sex_le ≤0 поддерживает класс 1. Числа с плавающей запятой на горизонтальных полосах представляют относительную важность этих функций.
  3. Цветовая кодировка одинакова для всех разделов. Он содержит фактические значения пяти основных переменных.

Используйте приведенный ниже код для запуска SP-LIME

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

Ссылки

  1. Ссылка на исходную статью: https://arxiv.org/abs/1602.04938
  2. Ссылка на Github: https://github.com/marcotcr/lime
  3. Блог автора статьи: https://homes.cs.washington.edu/~marcotcr/blog/lime/

Не стесняйтесь делиться своими мыслями, отзывами или предложениями ниже.