На пути к лучшему пониманию того, почему модели машинного обучения принимают решения, которые они принимают, и почему это важно

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

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

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

Графики частичной зависимости

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

Частичная зависимость работает за счет маргинализации выходных данных модели машинного обучения по распределению функций, которые нам не интересны (обозначены функциями в наборе C). Это делает так, что функция частичной зависимости показывает взаимосвязь между функциями, которые нас действительно волнуют (которые мы обозначаем покупкой в ​​наборе S), и прогнозируемым результатом. Путем маргинализации по сравнению с другими функциями мы получаем функцию, которая зависит только от функций в S. Это позволяет легко понять, как изменение конкретной функции влияет на прогнозы модели. Например, вот 3 графика PDP для температуры, влажности и скорости ветра, относящиеся к прогнозируемым продажам велосипедов с помощью линейной модели.

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

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

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

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

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

Недостатки

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

Предположение о независимости: вы предполагаете, что объекты, которые вы строите, не коррелируют с какими-либо другими объектами. Например, если вы прогнозируете артериальное давление исходя из роста и веса, вы должны предположить, что рост не коррелирует с весом. Причина этого в том, что вам нужно усреднить предельное распределение веса, если вы строите график роста (или наоборот). Это означает, например, что у вас могут быть очень маленькие веса для довольно высокого человека, которого вы, вероятно, не увидите в своем фактическом наборе данных.

Отлично! Я хочу реализовать PDP для своей модели. С чего мне начать?

Вот реализация с scikit-learn.

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

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

Алгоритм работает следующим образом:

input: a model f, feature matrix X, target vector Y and error measure L(y, f)
1. Estimate the original model error e⁰ = L(Y, f(x))
2. For each feature j:
- Generate feature matrix X' by permuting feature j in the original feature matrix X.
- Estimate the new error e¹=L(Y, f(X')) based off the model's predictions for the new data X'
- Calculate the permutation feature importance FI=e¹/e⁰. You can also use e¹-e⁰.
3. Sort the features by descending FI.

После того, как вы отсортировали объекты по убыванию FI, вы можете построить график результатов. Вот график важности перестановки для проблемы с прокатом велосипедов.

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

Интерпретируемость: важность признака - это то, насколько увеличивается ошибка при искажении признака. Это легко объяснить и визуализировать.

Важность перестановочного признака обеспечивает глобальное понимание поведения модели.

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

Недостатки

Неясно, следует ли использовать для построения графика данные обучения или тестирования.

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

Добавление коррелированного объекта в вашу модель может снизить важность другого объекта.

Отлично! Я хочу реализовать важность функции перестановки для моей модели. С чего мне начать?

Вот реализация модели eli5 на Python.

График накопленных локальных эффектов

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

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

«Позвольте мне показать вам, как прогнозы модели меняются в небольшом« окне »объекта».

Вот визуальная интерпретация того, что происходит на графике ALE.

Это также можно сделать с помощью двух функций.

После того, как вы вычислили различия в прогнозах для каждого окна, вы можете создать график ALE.

Графики ALE также могут быть созданы для категориальных функций.

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

Графики ALE беспристрастны, то есть они работают с коррелированными функциями.

Графики ALE вычисляются быстро.

Интерпретация сюжета ALE ясна.

Недостатки

Реализация графиков ALE сложна и трудна для понимания.

Интерпретация все еще остается сложной, если признаки сильно коррелированы.

Графики ALE второго порядка или 2D могут быть трудными для интерпретации.

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

Отлично! Я хочу реализовать ALE для своей модели. С чего мне начать?

Вот библиотека, которая предоставляет реализацию ALE.

Индивидуальное условное ожидание

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

Глядя на этот сюжет, вы можете спросить себя: какой смысл смотреть на сюжет ICE вместо PDP? Это кажется гораздо менее интерпретируемым.

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

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

Как и графики PDP, графики ICE очень интуитивно понятны.

Графики ICE могут выявить гетерогенные отношения лучше, чем графики PDP.

Недостатки

Кривые ICE могут отображать только одну функцию за раз.

Графики, созданные этим методом, могут быть трудночитаемыми и переполненными.

Отлично! Я хочу реализовать ICE для своей модели. С чего мне начать?

Вот обзор интерпретируемости с реализацией ICE.

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

Суррогатная модель - это интерпретируемая модель (например, дерево решений или линейная модель), которая обучена приближать предсказания черного ящика. Мы можем лучше понять черный ящик, интерпретируя решения суррогатной модели.

Алгоритм создания суррогатной модели прост.

1. Select a dataset X that you can run your black box model on.
2. For the selected dataset X, get the predictions of your black box model. 
3. Select an interpretable model type (e.g. linear model or decision tree)
4. Train the interpretable model on the dataset X and the black box's predictions. 
5. Measure how well the surrogate model replicates the predictions of the black box model. 
6. Interpret the surrogate model.

Один из способов измерить, насколько хорошо суррогат воспроизводит черный ящик с помощью метрики R-квадрат:

Метрика R-квадрат - это способ измерить дисперсию, зафиксированную суррогатной моделью. Значение R-квадрата, близкое к 1, означает, что суррогатная модель хорошо улавливает дисперсию, а близкое к 0 означает, что она фиксирует очень небольшую дисперсию и плохо объясняет модель черного ящика.

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

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

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

Недостатки

Линейная модель может не соответствовать модели черного ящика.

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

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

Объяснить интерпретируемую модель может быть сложно.

Отлично! Я хочу реализовать суррогатную модель. С чего начать?

Вот обзор интерпретируемости с помощью суррогатной реализации модели.

Будущее интерпретируемости

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

Ориентация на интерпретируемость, не зависящую от модели

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

Модели, которые говорят сами за себя

Одна тенденция, которую я не видел, чтобы закрепиться в большинстве систем машинного обучения, которая, как я полагаю, будет существовать в будущем, - это идея самообъяснимой модели. Большинство систем сегодня просто принимают решение по причинам, которые не понятны пользователю. Я верю, что в будущем это изменится. Если беспилотный автомобиль принимает решение остановиться, мы узнаем, почему. Если Alexa не может понять наше предложение, она подробно расскажет нам, что пошло не так, и как мы можем более четко сформулировать наш запрос. С помощью моделей, которые объясняют сами себя, мы можем лучше понять, как работают системы машинного обучения в нашей жизни.

Повышенное внимание модели

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

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

Цитируемые работы:

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

(Молнар, Кристоф. «Интерпретируемое машинное обучение. Руководство по созданию объяснимых моделей черного ящика», 2019. https://christophm.github.io/interpretable-ml-book/)

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