Объяснение модели с использованием LIME

Объяснимый ИИ: интерпретируемость моделей машинного обучения

Можете ли вы доверять своей модели машинного обучения?

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

Итак, что такое объяснимый ИИ?

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

  1. Объяснимость (Почему это так?)
  2. Прозрачность (как это работает?)

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

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

Есть разные способы сделать это. LIME - один из них. Давай сожмем.

LIME означает:
L ocal: приблизительно локально в окрестности объясняемого прогноза;
I nterpretable: представленные объяснения читабельны, < br /> M odel-Agnostic: работает с любой моделью, такой как SVM, нейронные сети и т. д. E xplanations: Предоставляет объяснения прогнозов модели (локальное линейное объяснение поведения модели)

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

Установка

Вы можете просто установить его или клонировать репозиторий Github:

pip install lime
pip install . (Git version)

Реализация

Мы будем использовать Lime для объяснения прогнозов случайной модели регрессора леса в наборе данных о диабете, который встроен в sci-kit learn. В этом посте предполагается, что вы уже знакомы с Python и машинным обучением. Для простоты мы не будем рассматривать все шаги, которые мы обычно выполняем в конвейере построения модели, такие как визуализация и предварительная обработка. Для части построения модели Вы можете клонировать репо здесь.

Итак, давайте перейдем к делу и посмотрим, как мы можем объяснить определенный пример с помощью Lime.

Понимание поведения модели при прогнозировании с помощью Lime в основном состоит из двух этапов:

  • Инициализировать объяснитель
  • Позвоните объяснение_экземпляра

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

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

Наконец, мы можем использовать объяснитель для отображения объяснения конкретного прогноза в Jupyter Notebook.

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

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

exp.save_to_file(“explanation.html”)

Альтернативы

  • Eli5 - Еще одна библиотека для объяснения модели. Я использовал его для текстовых данных, и он отлично работает. Подробнее об Eli5 можно прочитать здесь.
  • SHAP - Shapley Additive Пояснения, как следует из названия, говорят вам, как он получил оценку для экземпляра аддитивным способом. SHAP имеет не только универсальный объяснитель, который работает для любой модели, но также TreeExplainer для древовидных моделей. Теоретически гарантирует однородность и действует медленнее, чем лайм. Кроме того, вычислительные требования для изучения всех возможных комбинаций функций в SHAP экспоненциально растут.

Заключение

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

Интересно, что Lime также поддерживает объяснение изображений, текстовых данных и проблем классификации. Вы можете дополнительно изучить объяснения Lime в более сложных моделях, таких как Xgboost и LightGBM, и сравнить прогнозы. Подробнее о Лайме здесь. Кроме того, вот интересное чтение о различных инструментах для обеспечения прозрачности и объяснимости в ИИ.

Я хотел бы услышать ваши мысли о Lime, машинном обучении и Explainable AI в комментариях ниже. Если вы нашли это полезным и знаете кого-то, кому, по вашему мнению, это могло бы пригодиться, пожалуйста, присылайте его им.