Интерпретируемость моделей в Машинном обучении Azure (предварительная версия)

в этой статье описываются методы, которые можно использовать для интерпретации модели в Машинное обучение Azure.

Почему имеет смысл интерпретируемость модели?

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

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

  • Аудиторам необходимы средства для проверки моделей с учетом соответствия нормативным требованиям и отслеживания того, как решения моделей влияют на человека.

  • Бизнес-руководителям требуется возможность обеспечить прозрачность для конечных пользователей. Это позволяет им выстраивать и поддерживать доверительные отношения.

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

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

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

Интерпретируемость моделей в Машинном обучении Azure

Классы интерпретации модели доступны в следующем пакете SDK: (узнайте, как установить пакеты SDK для Машинного обучения Azure)

  • azureml.interpret, содержит функциональные возможности, поддерживаемые корпорацией Майкрософт.

Используйте pip install azureml-interpret в общих сценариях.

Интерпретация модели

С помощью классов и методов в пакете SDK можно:

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

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

Поддерживаемые методы интерпретации модели

azureml-interpret использует методы интерпретации, разработанные в Interpret-Community, пакете Python с открытым исходным кодом для обучения интерпретируемых моделей и объяснения систем искусственного интеллекта на базе модели "черный ящик". Interpret-Community выступает в качестве узла для поддерживаемых объяснений SDK и в настоящее время поддерживает следующие методы интерпретации:

Метод интерпретации Описание Тип
SHAP Tree Explainer SHAP Tree Explainer — это метод, в котором основное внимание уделяется алгоритму оценки стоимости SHAP, связанному с деревьями и совокупностями деревьев. Характерный для модели
SHAP Deep Explainer Согласно пояснениям SHAP: "Deep Explainer — это "высокоскоростной алгоритм аппроксимации для значений SHAP в моделях глубокого обучения, который основан на связи с DeepLIFT, описанным в документе SHAP NIPS. Модели TensorFlow и Keras, использующие серверную часть TensorFlow, поддерживаются (также доступна предварительная поддержка PyTorch)". Характерный для модели
SHAP Linear Explainer SHAP Linear Explainer вычисляет значения SHAP для линейной модели, при необходимости учитывая взаимные корреляции признаков. Характерный для модели
SHAP Kernel Explainer В SHAP Kernel Explainer используется специально взвешенная локальная линейная регрессия для оценки значений SHAP для любой модели. Не зависит от модели
Mimic Explainer (глобальный суррогат) Метод Mimic Explainer основан на представлении глобальных суррогатных моделей для имитации моделей "черного ящика". Модель глобального суррогата — это внутренняя интерпретируемая модель, которая обучена для аппроксимации прогнозов любой модели "черного ящика" как можно точнее. Специалисты по обработке и анализу данных могут интерпретировать суррогатную модель, чтобы делать выводы о модели "черного ящика". В качестве суррогатной модели можно использовать одну из следующих интерпретируемых моделей: LightGBM (LGBMExplainableModel), линейная регрессия (LinearExplainableModel), объяснимая стохастическая модель градиентного спуска (SGDExplainableModel) и дерево принятия решений (DecisionTreeExplainableModel). Не зависит от модели
Permutation Feature Importance Explainer (PFI) Permutation Feature Importance — это прием, который используется для объяснения моделей классификации и регрессии и основан на работе Бреймана Random Forests (Случайные леса) (см. раздел 10). Общий принцип работы такой: метод случайным образом перетасовывает данные по одному признаку для всего набора данных и вычисляет показатель изменений интересующей метрики. Чем больше изменение, тем важнее компонент. PFI может объяснить общее поведение любой базовой модели, но не объясняет отдельные прогнозы. Не зависит от модели

Помимо методов интерпретации, описанных выше, мы поддерживаем метод на основе SHAP под названием TabularExplainer. В зависимости от модели TabularExplainer использует один из поддерживаемых методов объяснения SHAP:

  • TreeExplainer для всех моделей на основе дерева
  • DeepExplainer для моделей DNN
  • LinearExplainer для линейных моделей
  • KernelExplainer для всех других моделей

TabularExplainer также предоставляет значительные усовершенствования функций и производительности по сравнению с прямыми методами объяснения SHAP:

  • Формирование сводки по набору данных инициализации. Если скорость объяснения наиболее важна, мы создаем сводку набора данных инициализации и небольшой набор репрезентативных образцов, который ускоряет создание общих и индивидуальных значений важности признаков.
  • Получение выборки набора данных для оценки. Если пользователь передает большой набор образцов для оценки, но на самом деле они не требуют оценки, для параметра sampling можно задать значение true, чтобы ускорить вычисление общих объяснений модели.

На следующей схеме показана текущая структура поддерживаемых методов объяснения.

Архитектура интерпретации службы Машинного обучения

Поддерживаемые модели машинного обучения

Пакет azureml.interpret SDK поддерживает модели, обученные со следующими форматами наборов данных:

  • numpy.array
  • pandas.DataFrame
  • iml.datatypes.DenseData
  • scipy.sparse.csr_matrix

Функции объяснения принимают в качестве входных данных модели и конвейеры. Если модель предоставлена, в ней должна быть реализована функция прогнозирования predict или predict_proba, соответствующая соглашению Scikit. Если модель не поддерживает эту функцию, можно создать оболочку для модели в функции, которая дает тот же результат, что и predict или predict_proba в Scikit, и использовать эту функцию-оболочку с выбранным методом объяснения. Если предоставлен конвейер, функция объяснения предполагает, что выполняющийся сценарий конвейера возвращает прогноз. Используя эту методику создания оболочки, azureml.interpret может поддерживать модели, обученные с помощью платформ глубокого обучения PyTorch, TensorFlow и Keras, а также классические модели машинного обучения.

Локальный и удаленный целевой объект вычисления

Пакет azureml.interpret предназначен для работы с локальными и удаленными целевыми объектами вычислений. При локальном запуске функции пакета SDK не будут обращаться к службам Azure.

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

Дальнейшие действия