Всем привет. До старта курса «Machine Learning» остается чуть больше недели. В преддверии начала занятий мы подготовили полезный перевод, который будет интересен как нашим студентам, так и всем читателям блога. Начнем.




Пора избавиться от черных ящиков и укрепить веру в машинное обучение!

В своей книге “Interpretable Machine Learning” Кристоф Мольнар прекрасно выделяет суть интерпретируемости Машинного Обучения с помощью следующего примера: Представьте, что вы эксперт Data Science, и в свободное время пытаетесь спрогнозировать куда ваши друзья отправятся в отпуск летом, основываясь на их данных из facebook и twitter. Итак, если прогноз окажется верным, то ваши друзья будут считать вас волшебником, который может видеть будущее. Если прогнозы будут неверны, то это не принесет вреда ничему, кроме вашей репутации аналитика. Теперь представим, что это был не просто забавный проект, а к нему были привлечены инвестиции. Скажем, вы хотели инвестировать в недвижимость, где ваши друзья, вероятно, будут отдыхать. Что произойдёт, если предсказания модели будут неудачными? Вы потеряете деньги. Пока модель не оказывает существенного влияния, ее интерпретируемость не имеет большого значения, но когда есть финансовые или социальные последствия, связанные с предсказаниями модели, ее интерпретируемость приобретает совершенно другое значение.

Объяснимое машинное обучение


Интерпретировать, значит, объяснить или показать в понятных терминах. В контексте ML-системы, интерпретируемость – это способность объяснить ее действие или показать его в понятном человеку виде.

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

Важность интерпретируемости


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

«Проблема заключается в том, что всего одна метрика, такая как точность классификации, является недостаточным описанием большинства реальных задач.» (Доши-Велес и Ким 2017)

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


Текст на картинке снизу вверх: Мир -> Получение информации -> Данные -> Обучение -> Black Box модель -> Извлечение -> Методы интерпретации -> Люди

Некоторые из преимуществ, которые приносит интерпретируемость:

  • Надежность;
  • Удобство отладки;
  • Информирование об инженерии признаков;
  • Управление сбором данных для признаков;
  • Информирование о принятии решений;
  • Выстраивание доверия.


Методы Интерпретации моделей


Теория имеет смысл только до тех пор, пока мы можем применять ее на практике. В случае, если вы действительно хотите разобраться с этой темой, можете попробовать пройти курс Machine Learning Explainability от Kaggle. В нем вы найдете правильное соотношение теории и кода, чтобы понять концепции и уметь применять на практике к реальным кейсам концепции интерпретируемости (объяснимости) моделей.

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



Инсайты, которые можно извлечь из моделей


Для понимания модели нам потребуются следующие инсайты:

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


Давайте обсудим несколько методов, которые помогают извлекать вышеперечисленные инсайты из модели:

Permutation Importance


Какие признаки модель считает важными? Какие признаки оказывают наибольшее влияние? Эта концепция называется важностью признаков (feature importance), а Permutation Importance – это метод, широко используемый для вычисления важности признаков. Он помогает нам увидеть, в какой момент модель выдает неожиданные результаты, он же помогает нам показать другим, что наша модель работает именно так, как нужно.

Permutation Importance работает для многих оценок scikit-learn. Идея проста: Произвольным образом переставить или перетасовать один столбец в наборе датасета валидации, оставив все остальные столбцы нетронутыми. Признак считается «важным», если точность модели падает и его изменение вызывает увеличение ошибок. С другой стороны, признак считается «неважным», если перетасовка его значений не влияет на точность модели.

Как это работает?


Рассмотрим модель, которая предсказывает, получит ли футбольная команда награду “Man of the Game” или нет, на основе определенных параметров. Эту награду получает игрок, который демонстрирует лучшие навыки игры.
Permutation Importance вычисляется после обучения модели. Итак, давайте обучим и подготовим модель RandomForestClassifier, обозначенную как my_model, на обучающих данных.

Permutation Importance вычисляется с использованием библиотеки ELI5. ELI5 – это библиотека в Python, которая позволяет визуализировать и отлаживать различные модели машинного обучения с помощью унифицированного API. Она имеет встроенную поддержку для нескольких ML-фреймворков и обеспечивает способы интерпретации black-box модели.

Вычисление и визуализация важности с помощью библиотеки ELI5:
(Здесь val_X,val_y обозначают соответственно наборы валидации)



Интерпретация


  • Признаки сверху – наиболее важные, снизу – наименее. Для этого примера, самым важным признаком были забитые голы.
  • Число после ± отражает, как производительность изменялась от одной перестановки к другой.
  • Некоторые веса отрицательны. Это связано с тем, что в этих случаях прогнозы по перетасованным данным оказались более точными, чем реальные данные.

Практика


А теперь, чтобы посмотреть на полный пример и проверить правильно ли вы все поняли, перейдите на страницу Kaggle по ссылке.

Вот и подошла к концу первая часть перевода. Пишите ваши комментарии и дл встречи на курсе!

В ближайшие дни мы опубликуем вторую часть, в которой говорится о Partial Dependence Plots, не пропустите.

Комментарии (13)


  1. Griboks
    22.08.2019 17:56

    «Теория имеет смысл только до тех пор, пока мы можем применять ее на практике.»
    Теория имеет смысл только, когда практика невозможна.


    1. zuko3d
      23.08.2019 00:02

      Было бы интересно посмотреть, как люди с таким подходом запустят спутник в космос. Видимо, методом проб и ошибок, а теория — это всё выдумки, далёкие от жизни =)


      1. Griboks
        23.08.2019 09:53

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

        Если мы умеем что-то делать, то для этого нам не нужна теория. Мы и так это умеем, доказательство совершенного факта не интересно. Но если мы чему-то хотим научиться, если мы хотим что-то улучшить, то встаёт вопрос: «Как?» Вот тут и приходит на помощь теория.

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


        1. CrazyElf
          23.08.2019 19:40

          Теория струн — это отдельный вырожденный случай. Вещь в себе. Да, она хорошо могла бы объяснить какие-то вещи, которые не могут объяснить другие теории, проблема только в том, что она не может дать никаких предсказаний, которые мы могли бы проверить. В общем, это куда-то в сторону философии. Всё-таки бОльшая часть науки идёт в ногу с практикой — нормальная научная теория должна быть проверяемой на практике, иначе какой в ней вообще смысл (кроме философских рассуждений на досуге)?


          1. Griboks
            23.08.2019 19:44

            Смысл в том, что теория двигает практику на новый уровень. Поэтому, когда практика имеет удовлетворительную форму, теория не требуется.


            1. CrazyElf
              23.08.2019 20:17

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


              1. Griboks
                23.08.2019 20:23

                Но именно практика запускает эти итерации, обращаясь к теории за помощью в расширении своих 'компетенций'.


  1. RobertLis
    23.08.2019 00:27

    А были ли исследования, где сравнивается точность предсказания обычного чёрного ящика с системой, состоящей из человека в связке с интерпретируемой моделью?


  1. worldmind
    23.08.2019 09:47

    RandomForestClassifier? Вроде это не та модель которую критикую за плохую интерпретируемость, обычно речь про нейронные сети.


    1. CrazyElf
      23.08.2019 19:43

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


  1. CrazyElf
    23.08.2019 14:43

    Давайте уж и про SHAP values тогда. )


  1. arthin
    24.08.2019 06:57

    Термин «интерпретируемая» общепринятый? Мне казалось, что это называется «эксплицитная модель».


    1. CrazyElf
      25.08.2019 09:34

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