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

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

Представляем инструмент "Что, если" 🔎

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

What-If-Tool - это пользовательский интерфейс, созданный Google, чтобы люди могли визуально исследовать модели машинного обучения. Он может работать в записных книжках TensorBoard, Jupyter и Colaboratory и может работать как с классификационными, так и с регрессионными моделями.

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

Функции просмотра 👀

В What-If-Tool есть вкладка функций, где вы можете получить полное представление как о числовых, так и о категориальных данных, с которыми работает ваша модель.

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

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

Редактор Datapoint 📍

Существует редактор точек данных, который чрезвычайно полезен для анализа данных.

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

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

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

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

Измерение производительности 📏

На вкладке «Производительность и справедливость» отображается матрица неточностей для модели, показывающая количество истинных положительных / отрицательных результатов и количество ложных положительных / отрицательных результатов для описания производительности модели. What-If-Tool также предоставляет ползунок для настройки порога классификации, чтобы увидеть, как он влияет на значения матрицы путаницы, а также есть возможность изменить соотношение затрат, чтобы увидеть стоимость ложных срабатываний по сравнению с ложноотрицательными.

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

Справедливость 👩‍⚖

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

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

Общие выводы

Преимущества для нетехнических специалистов:

Я думаю, что инструмент What-If-Tool чрезвычайно полезен для объяснения модели для нетехнических специалистов, которые могут включать широкий круг заинтересованных сторон, поскольку вы можете показать им использованные данные, вы можете продемонстрировать, как изменения в точках данных могут повлиять на вывод и, наконец, вы можете дать им визуальную разбивку общей производительности моделей.

Преимущества для разработчика:

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

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

Недостатки:

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

В целом, я считаю, что это очень полезный инструмент, и всем рекомендую его попробовать, в официальной Документации What-If-Tool есть масса полезных примеров его реализации.