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

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

Ключевой проблемой при разработке и развертывании ответственных систем машинного обучения (ML) является понимание их эффективности при широком спектре входных данных.

Именно здесь в игру вступает инструмент «Что, если» (WIT) TensorFlow. Это визуальный интерфейс, который поможет вам понять ваш набор данных и выходные данные вашей модели машинного обучения. Вы можете запускать его с минимальным кодом на многих различных платформах, таких как Jupyter notebook, Google Colab, Tensorboard, записные книжки на платформе Cloud AI. Анализ, проводимый с помощью WIT, может быть полезен во всех трех случаях; сбор данных по обучению, создание модели и оценка после обучения. Вы можете использовать WIT для:

  • Анализируйте важность различных функций
  • Визуализируйте поведение модели в нескольких моделях
  • Работоспособность тестовой модели в гипотетических ситуациях
  • Применяйте показатели справедливости ИИ

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

Вот общий первый взгляд на WIT:

В WIT есть три основных вкладки;

  • Редактор Datapoint
  • Производительность и справедливость
  • Функции

Редактор Datapoint

Первоначальный вид - это редактор Datapoint. Здесь мы можем увидеть прогнозы модели для точки охвата. Редактор Datapoint можно использовать для:

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

Производительность и справедливость

Следующая вкладка «Производительность и справедливость» показывает некоторые общие показатели для нашей модели, такие как матрица путаницы, ROC и т. Д. Она также позволяет пользователю срезать данные по различным значениям функций и применять стратегии справедливости, такие как:

Примечание. (на примере утверждения кредита)

  • Группа не знает: справедливо, пока люди выбираются исключительно по их достоинствам
  • Групповые пороги: например, оба пола могут иметь разные пороги достоверности для утверждения ссуды
  • Демографический паритет: Состав группы лиц, которым предоставляются ссуды, должен отражать процент соискателей
  • Равные возможности
  • Равная точность

Функции

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

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

Пример пошагового руководства - набор данных Iris

Давайте изучим инструмент "Что, если", используя знаменитый набор данных о цветках ириса. В наборе данных есть три класса: Iris-setosa, Iris-versicolor и Iris-virginica. В наборе данных всего четыре функции; длина чашелистика, ширина чашелистика, длина лепестка и ширина лепестка.

Редактор Datapoint

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

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

В настоящее время мы видим, что максимальный класс вероятности равен virginica с вероятностью 0,933.

Если мы изменим значения характеристик и уменьшим длину лепестка до 1 с 5,2

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

Вы можете видеть, что, уменьшив длину лепестка до 1, метка класса изменилась. Блок предсказания показывает, как изменилась каждая вероятность. Вероятность для virginica упала до нуля и увеличилась как для setosa, так и для versicolor. Таким образом мы можем проанализировать каждую отдельную точку данных. Это особенно полезно для случаев, когда мы делаем неправильные прогнозы и хотим понять, какие значения функций вызывают неправильные прогнозы. Или понять, какие изменения ценности функции приносят наибольшее влияние. Короче говоря, вы можете создавать гипотетические ситуации и просматривать результаты своей модели.

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

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

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

Например, при длине лепестка 1,75 мы видим, что класс Iris-setosa имеет наивысшую оценку логического вывода. Мы также можем видеть, что оценка логического вывода для Iris-setosa уменьшается по мере увеличения длины лепестка. И наоборот, оценка для Iris-virginica увеличивается с увеличением длины лепестка.

Производительность и справедливость

Перейдя к вкладке производительности, посмотрите на это:

Мы можем увидеть некоторые основные графики и показатели производительности. У нас есть матрица путаницы, кривые ROC и т. Д. Мы также можем выполнить срез по функциям и посмотреть характеристики модели.

Здесь мы нарезали его, но «длина лепестка», и мы можем увидеть точность относительно интервалов значений характеристик. То есть он разделил данные на две ячейки для длины лепестка с диапазонами 1–4 и 4– 6,9 с точностью 97,8 и 100 соответственно.

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

Мы видим, что производительность модели немного ниже для petal-length от 4 до 5,9, и если мы хотим еще более высокую производительность, мы можем работать конкретно по этим точкам или диапазонам данных. Мы можем увидеть аналогичный анализ и для остальных функций, а также у нас может быть вторичная функция нарезки, как показано на следующем изображении.

Функции

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

На этом пока об инструменте "Что, если". Ниже приведены некоторые ресурсы для вашей помощи: