Интерпретируемые модели — различия между версиями
Frak (обсуждение | вклад) |
Frak (обсуждение | вклад) |
||
Строка 21: | Строка 21: | ||
=== Когда интерпретируемость не требуется === | === Когда интерпретируемость не требуется === | ||
− | * Влияние модели мало, а сама интерпретация | + | * Влияние модели мало, а сама интерпретация требует большого количества ресурсов (предложение новых покупок на основе предыдущих в онлайн магазинах). |
− | * | + | * Проблема хорошо разработана и специалистов обучают ещё в университетах. |
− | * | + | * Класс модели широко применяется: [[Линейная регрессия|линейные модели]] (стоимость квартиры: понятно, что это метраж, расстояние до метро, школы, детского сада и т.д., но когда параметром много, то уже сложно всё это держать в голове). |
− | * | + | * Необходимость скрыть систему (кому давать кредит, качество работы сотрудника, поисковое ранжирование). |
== Примеры моделей == | == Примеры моделей == | ||
=== Пример интерпретируемой модели === | === Пример интерпретируемой модели === | ||
− | === Пример эффективной в предсказании но не интерпретируемой модели === | + | Допустим есть модель в банке которая, помогает решить, давать ли кредит человеку или нет. Приходит в банк Вася, модель отказывает ему в кредите, вопрос почему? Интерпретируемая модель ответит, потому что у него, допустим плохая кредитная история или маленькая зарплата, а по не интерпретируемой модели вряд ли будет, что-то понятно. |
+ | |||
+ | === Пример эффективной в предсказании, но не интерпретируемой модели === | ||
Допустим есть данные и задача бинарной [[Общие_понятия#.D0.A2.D0.B8.D0.BF.D1.8B_.D0.B7.D0.B0.D0.B4.D0.B0.D1.87|классификации]], и 99% объектов имеют класс 1, остальные 0. | Допустим есть данные и задача бинарной [[Общие_понятия#.D0.A2.D0.B8.D0.BF.D1.8B_.D0.B7.D0.B0.D0.B4.D0.B0.D1.87|классификации]], и 99% объектов имеют класс 1, остальные 0. | ||
Строка 39: | Строка 41: | ||
== Другие свойства моделей == | == Другие свойства моделей == | ||
− | * Предсказуемость и моделируемость: свойства при которых человек способен предсказывать поведение и ошибки модели, а так же умение "симулировать" их. Например | + | * Предсказуемость и моделируемость: свойства при которых человек способен предсказывать поведение и ошибки модели, а так же умение "симулировать" их. Например: сложные физические модели, где часто возможно абстрагировать простые привила для примерного предсказания результатов. [[Дерево решений и случайный лес| деревья решений]] или [[Линейная регрессия|линейный модели]] для небольшой размерности. |
− | * Разложимость и модульность: свойства при которых человек способен декомпазировать модель на интепретируемые компоненты. Например [[Дерево решений и случайный лес| деревья решений]] или [[Линейная регрессия|линейный модели]] для небольшой размерности. | + | * Разложимость и модульность: свойства при которых человек способен декомпазировать модель на интепретируемые компоненты. Например: [[Дерево решений и случайный лес| деревья решений]] или [[Линейная регрессия|линейный модели]] для небольшой размерности. |
− | * Доверие: | + | * Доверие: пользователь чувствует себя комфортно с настройками предсказания. Так же модель, может показать, когда она не совсем уверена в своём предсказании. |
* Информативность: из модели можно выявить вспомогательную информацию полезную для принятия какого-либо решения. | * Информативность: из модели можно выявить вспомогательную информацию полезную для принятия какого-либо решения. | ||
Строка 53: | Строка 55: | ||
=== Использовать только интерпретируемые модели (англ. Transparent Models): === | === Использовать только интерпретируемые модели (англ. Transparent Models): === | ||
− | + | [[Файл:inter2acc.png|thumb|400px| рис. 1. Зависимость интерпретируемости от точности.]] | |
− | * [[ | + | * [[Линейная регрессия|Линейные модели]]. |
− | * Модели основывающиеся на предыдущем опыте | + | * [[Дерево решений и случайный лес| Деревья решений]], списки правил, наборы правил. |
+ | |||
+ | * Модели основывающиеся на предыдущем опыте. | ||
+ | |||
+ | '''Но''' не всё хорошо описывается этими моделями. | ||
=== Построить интерпретируемую модель поверх эмбендинга === | === Построить интерпретируемую модель поверх эмбендинга === | ||
Строка 63: | Строка 69: | ||
'''Пример:''' у нас есть лук. Если “лук” находится рядом с “чесноком”, то модель думает о “луке” как о овоще, если “лук” находится рядом с “пистолетом”, “рогаткой”, то модель думает о “луке” как о оружии. | '''Пример:''' у нас есть лук. Если “лук” находится рядом с “чесноком”, то модель думает о “луке” как о овоще, если “лук” находится рядом с “пистолетом”, “рогаткой”, то модель думает о “луке” как о оружии. | ||
− | '''Но''' модель теперь интерпретируема, но сами признаки перестают быть таковым | + | '''Но''' модель теперь интерпретируема, но сами признаки перестают быть таковым. |
=== Важность признаков === | === Важность признаков === | ||
Строка 69: | Строка 75: | ||
Одна из возможностей проанализировать модель — оценить, насколько её решение зависит от отдельных признаков. | Одна из возможностей проанализировать модель — оценить, насколько её решение зависит от отдельных признаков. | ||
− | '''SHAP''' - (англ. SHapley Additive exPlanations) Важность i-го признака здесь вычисляется по такой формуле:<ref name="exp"> Пример реализации [https://github.com/slundberg/shap]</ref> | + | '''SHAP''' - (англ. SHapley Additive exPlanations) Важность i-го признака здесь вычисляется по такой формуле:<ref name="exp"> Пример реализации [https://github.com/slundberg/shap]</ref>. |
<math>\begin{equation*} \phi_{i}(p) =\sum_{S \subseteq \{1,2..n\} / \{i\}} \frac{|S|!(n - |S| -1)!}{n!}(p(S \cup \{ i \}) - p(S)) \end{equation*}</math> | <math>\begin{equation*} \phi_{i}(p) =\sum_{S \subseteq \{1,2..n\} / \{i\}} \frac{|S|!(n - |S| -1)!}{n!}(p(S \cup \{ i \}) - p(S)) \end{equation*}</math> | ||
− | где f(S) — ответ модели, обученной на подмножестве S множества n признаков (на конкретном объекте — вся формула записывается для конкретного объекта).<ref name="habr">Павел Трошенков "Как интерпретировать предсказания моделей в SHAP" [https://habr.com/ru/post/428213]</ref> | + | где '''f(S)''' — ответ модели, обученной на подмножестве '''S''' множества '''n''' признаков (на конкретном объекте — вся формула записывается для конкретного объекта).<ref name="habr">Павел Трошенков "Как интерпретировать предсказания моделей в SHAP" [https://habr.com/ru/post/428213]</ref>. |
Видно, что вычисление требует переобучения модели на всевозможных подмножествах признаках, поэтому на практике применяют приближения формулы. | Видно, что вычисление требует переобучения модели на всевозможных подмножествах признаках, поэтому на практике применяют приближения формулы. | ||
=== Суррогатные модели === | === Суррогатные модели === | ||
− | |||
− | |||
'''LIME''' - (англ. Local Interpretable Model-agnostic Explanations) <ref name="Lime">Marco Tulio Ribeiro, Sameer Singh, Carlos Guestrin "Explaining the Predictions of Any Classifier" [https://www.kdd.org/kdd2016/papers/files/rfp0573-ribeiroA.pdf]</ref> | '''LIME''' - (англ. Local Interpretable Model-agnostic Explanations) <ref name="Lime">Marco Tulio Ribeiro, Sameer Singh, Carlos Guestrin "Explaining the Predictions of Any Classifier" [https://www.kdd.org/kdd2016/papers/files/rfp0573-ribeiroA.pdf]</ref> | ||
Даже если простая модель не сможет смоделировать сложную во всём пространстве, в окрестности конкретной точки это вполне возможно. Локальные модели объясняют конкретный ответ чёрного ящика. Эта идея показана на рис. w. У нас есть чёрный ящик (ЧЯ), который построен на данных. В некоторой точке он выдал ответ, мы генерируем выборку в окрестности этой точки, узнаём ответы ЧЯ и настраиваем обычный линейный классификатор. Он описывает ЧЯ в окрестности точки, хотя во всём пространстве он сильно отличается от ЧЯ. Из рис. 2 понятны достоинства и недостатки такого подхода. | Даже если простая модель не сможет смоделировать сложную во всём пространстве, в окрестности конкретной точки это вполне возможно. Локальные модели объясняют конкретный ответ чёрного ящика. Эта идея показана на рис. w. У нас есть чёрный ящик (ЧЯ), который построен на данных. В некоторой точке он выдал ответ, мы генерируем выборку в окрестности этой точки, узнаём ответы ЧЯ и настраиваем обычный линейный классификатор. Он описывает ЧЯ в окрестности точки, хотя во всём пространстве он сильно отличается от ЧЯ. Из рис. 2 понятны достоинства и недостатки такого подхода. | ||
+ | [[Файл:lime.png|500px]] | ||
+ | |||
+ | ''рис. 2. Построение локальной суррогатной модели.'' | ||
== Примечания == | == Примечания == |
Версия 15:01, 5 января 2021
Интерпретируемая модель - модель обладающая свойством интерпретируемости.
Интерпретируемость - это свойство модели, которое показывает, что структуру данной модели может объяснить человек. При этом структура модели не противоречит данным, на которых данная модель построена и сохраняет некоторые свойства предоставленных данных. При интерпретации модели могут быть объяснены принципы и закономерности, которые использует сама модель для предсказания на конкретных данных.
Содержание
Практическая польза
Если модель машинного обучения работает хорошо, почему мы просто не доверяем модели и игнорируем факторы, из-за которых она приняла то или иное решение? "Проблема в том, что только одна метрика измерения, такая как, точность классификации, это неполное описание большинства реальных задач". [1]
Когда нужна интерпретируемость
- Когда целью является получение каких либо знаний с помощью изучения построенной модели.
- Когда алгоритм оптимизировал неполную цель. Например, когда автомобильный инженер получает предсказания об параметрах двигателя, но ему нужно построит в целом наилучший автомобиль.
- Для безопасности сложных систем. Такие системы, в большинстве случаев, нельзя протестировать от начала до конца. Вычислительно тяжело просмотреть все возможное входные данные и сценарии развития событий.
Когда интерпретируемость не требуется
- Влияние модели мало, а сама интерпретация требует большого количества ресурсов (предложение новых покупок на основе предыдущих в онлайн магазинах).
- Проблема хорошо разработана и специалистов обучают ещё в университетах.
- Класс модели широко применяется: линейные модели (стоимость квартиры: понятно, что это метраж, расстояние до метро, школы, детского сада и т.д., но когда параметром много, то уже сложно всё это держать в голове).
- Необходимость скрыть систему (кому давать кредит, качество работы сотрудника, поисковое ранжирование).
Примеры моделей
Пример интерпретируемой модели
Допустим есть модель в банке которая, помогает решить, давать ли кредит человеку или нет. Приходит в банк Вася, модель отказывает ему в кредите, вопрос почему? Интерпретируемая модель ответит, потому что у него, допустим плохая кредитная история или маленькая зарплата, а по не интерпретируемой модели вряд ли будет, что-то понятно.
Пример эффективной в предсказании, но не интерпретируемой модели
Допустим есть данные и задача бинарной классификации, и 99% объектов имеют класс 1, остальные 0. Модель a(x) = 1, имеет точность 99%, но проинтерпретировать ее нельзя для каких-то наших исследований, особенно если нас интересуют, как возникает класс 0. Такая модель не интерпретируема, так как не информативна.
Другие свойства моделей
- Предсказуемость и моделируемость: свойства при которых человек способен предсказывать поведение и ошибки модели, а так же умение "симулировать" их. Например: сложные физические модели, где часто возможно абстрагировать простые привила для примерного предсказания результатов. деревья решений или линейный модели для небольшой размерности.
- Разложимость и модульность: свойства при которых человек способен декомпазировать модель на интепретируемые компоненты. Например: деревья решений или линейный модели для небольшой размерности.
- Доверие: пользователь чувствует себя комфортно с настройками предсказания. Так же модель, может показать, когда она не совсем уверена в своём предсказании.
- Информативность: из модели можно выявить вспомогательную информацию полезную для принятия какого-либо решения.
- Cтабильность: статисические и оптимизационные свойства
Как создать интерпретируемую модель?
Использовать только интерпретируемые модели (англ. Transparent Models):
- Деревья решений, списки правил, наборы правил.
- Модели основывающиеся на предыдущем опыте.
Но не всё хорошо описывается этими моделями.
Построить интерпретируемую модель поверх эмбендинга
Пример: у нас есть лук. Если “лук” находится рядом с “чесноком”, то модель думает о “луке” как о овоще, если “лук” находится рядом с “пистолетом”, “рогаткой”, то модель думает о “луке” как о оружии.
Но модель теперь интерпретируема, но сами признаки перестают быть таковым.
Важность признаков
Одна из возможностей проанализировать модель — оценить, насколько её решение зависит от отдельных признаков.
SHAP - (англ. SHapley Additive exPlanations) Важность i-го признака здесь вычисляется по такой формуле:[2].
где f(S) — ответ модели, обученной на подмножестве S множества n признаков (на конкретном объекте — вся формула записывается для конкретного объекта).[3].
Видно, что вычисление требует переобучения модели на всевозможных подмножествах признаках, поэтому на практике применяют приближения формулы.
Суррогатные модели
LIME - (англ. Local Interpretable Model-agnostic Explanations) [4] Даже если простая модель не сможет смоделировать сложную во всём пространстве, в окрестности конкретной точки это вполне возможно. Локальные модели объясняют конкретный ответ чёрного ящика. Эта идея показана на рис. w. У нас есть чёрный ящик (ЧЯ), который построен на данных. В некоторой точке он выдал ответ, мы генерируем выборку в окрестности этой точки, узнаём ответы ЧЯ и настраиваем обычный линейный классификатор. Он описывает ЧЯ в окрестности точки, хотя во всём пространстве он сильно отличается от ЧЯ. Из рис. 2 понятны достоинства и недостатки такого подхода.
рис. 2. Построение локальной суррогатной модели.
Примечания
Источники информации
- Doshi-Velez and Kim "Towards A Rigorous Science of Interpretable Machine Learning" 2017[4]
- Sanmi Koyejo "Interpretability" MACHINE LEARNING SUMMER SCHOOL 2019 [5]