Посетите нас по адресу https://www.ansaro.ai, чтобы узнать больше о том, как мы используем науку о данных для улучшения найма

Почему так важна интерпретируемость

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

Оказалось, что и регрессия, и нейронная сеть сделали вывод, что пациенты с пневмонией, страдающие астмой, имеют более низкий риск смерти и не должны быть госпитализированы. Очевидно, это нелогично. Но это отражало реальную закономерность в данных обучения: пациенты с астмой и пневмонией обычно попадали не только в больницу, но и непосредственно в отделение интенсивной терапии, лечились агрессивно и выживали. [1]

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

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

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

Во-первых, давайте вернемся к тому, почему интерпретируемость важна, а когда нет. Как показывает пример пневмонии, интерпретируемость является ключом к «отладке» моделей. В регулируемых отраслях, таких как финансы и здравоохранение, требуется проводить аудит процесса принятия решений и гарантировать, что он не является дискриминационным. Закон США о справедливой кредитной отчетности требует, чтобы агентства раскрывали «все ключевые факторы, которые отрицательно повлияли на кредитный рейтинг потребителя в используемой модели, общее количество которых не должно превышать четырех» - и они не ошиблись, установив это предел. Модели, реализованные в популярных программных пакетах, могут легко принимать тысячи точек данных, а огромный набор функций может быстро сделать простое объяснение практически невозможным (не говоря уже о том, что коллинеарные функции могут еще больше усложнить ситуацию, но мы не будем рассматривать это здесь).

Интерпретируемость также является ключом к завоеванию доверия к алгоритмам, которые пытаются улучшить человеческое суждение, а не просто автоматизировать его. Возьмем, к примеру, нашу работу в Ansaro, которая пытается предсказать, какие соискатели будут работать лучше всего. Наша цель - добиться большего, чем человеческая интуиция. Чтобы пользователи приняли наши прогнозы, они должны их понять.

Итак, когда мы можем лишить интерпретируемость приоритета? Мы думаем, что эти критерии являются разумным ориентиром:

  • Глобальная интерпретируемость: насколько хорошо мы можем понять взаимосвязь между каждой характеристикой и прогнозируемым значением на глобальном уровне - для всего нашего набора наблюдений. Можем ли мы понять как величину, так и направление воздействия каждой функции на прогнозируемое значение?
  • Локальная интерпретируемость: насколько хорошо мы можем понять взаимосвязь между каждой функцией и прогнозируемым значением на локальном уровне - для конкретного наблюдения.
  • Выбор функций. Помогает ли модель сосредоточиться только на важных функциях? Может ли он обнулить функции, которые являются просто «шумом»?

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

Линейная регрессия

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

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

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

Случайный лес

Посередине диапазона точности-интерпретируемости находятся случайные леса. Мы часто видели, как их описывают как «черные ящики», что мы считаем несправедливым - может быть, «серыми», но уж точно не «черными»!

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

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

Однако понять направленность объектов сложнее. Мы можем быстро определить, что Характеристика X может быть наиболее важной, но делает ли она Результат Y более или менее вероятным? Может и не быть ответа «да» или «нет». В отличие от линейной регрессии, случайные леса могут определять немонотонные отношения (большая часть причины, по которой они превосходят регрессию по оси точности). В одной области пространства наблюдения направление объекта может быть положительным; в другом он может быть отрицательным.

Понимать, как особенности конкретного наблюдения способствуют предсказанию, также сложно, но выполнимо. Чтобы добиться локальной интерпретируемости, мы можем каталогизировать пути решения для конкретного наблюдения через все наши деревья решений. Затем мы суммируем уменьшение индекса Джини для каждой функции по всем этим путям. Для нестатистиков снижение индекса Джини является мерой того, насколько более чисто разделяются классы после разделения в дереве решений. Звучит тяжело, но библиотеки, такие как превосходный treeinterpreter Андо Саабаса, делают это практичным. [2]

Нейронные сети

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

Никто не понимает, как эти системы - нейронные сети, смоделированные на основе человеческого мозга - дают свои результаты. Ученые-информатики «тренируют каждого, скармливая ему данные, и он постепенно учится. Но если нейронная сеть начинает работать нормально, она становится черным ящиком. Спросите его создателя, как он достигает определенного результата, и вы, скорее всего, пожалеете плечами ». - Wired Magazine, октябрь 2010 [3]

Мы думаем, что это резкое преувеличение. Мы также осознаем тот факт, что существует много типов архитектур нейронных сетей, и делать общие заявления о них сложно [см. Потрясающий Зоопарк нейронных сетей Института Азимова]. Для простоты мы сосредоточимся на сверточных нейронных сетях (CNN), широко используемых для распознавания изображений (и многих других приложений).

Представьте, что мы обучаем CNN предсказывать вероятность того, что изображение размером 64x64 пикселя содержит кошку. Мы могли бы начать понимать, насколько важны функции, настраивая их и наблюдая, как изменяется результирующая вероятность. Но функции, передаваемые в эту CNN, представляют собой 4096 значений пикселей RGB. Знание того, что конкретный пиксель соответствует кошке, не особенно полезно, и мы даже не ожидаем, что такая связь произойдет - пиксели, представляющие кошку, могут появиться в любом месте изображения. Чтобы эта модель была семантически интерпретируемой, нам необходимо понимать ее особенности на более абстрактном уровне.

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

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

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

Заключительные мысли

Вместо статического компромисса мы думаем о точности и интерпретируемости как о границе, которая постоянно расширяется.

Мы считаем, что в ближайшее десятилетие разработка более интерпретируемых моделей будет так же важна, как и разработка более точных моделей для сообщества специалистов по науке о данных. Большая часть работы по продвижению интерпретируемости будет проделана экспертами по конкретным предметным областям - например, лучшие способы визуализации результатов CNN. Но есть также впечатляющие достижения в подходах, выходящих за рамки конкретных типов моделей. Наше внимание привлек один подход - LIME (Local Interpretable Model-Agnostic Explanations) [4], который позволяет вам построить любую модель, которая вам нравится, а затем использовать возмущение и линейное приближение для объяснения конкретных прогнозов.

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

–Мэтт и Сэм, соучредители, https://www.ansaro.ai
[email protected], [email protected]

Мы нанимаем! Если вы хотите помочь компаниям принимать оптимальные решения о приеме на работу, ознакомьтесь с нашими объявлениями о вакансиях: https://angel.co/ansaro/jobs

Ссылки

[1] Разумные модели для здравоохранения: прогнозирование риска пневмонии и 30-дневная реадмиссия в больницу, Каруана и др. (2015). Http://people.dbmi.columbia.edu/noemie/papers/15kdd.pdf

[2] http://blog.datadive.net/interpreting-random-forests/

[3] https://www.wired.com/2016/10/understanding-artificial-intelligence-decisions/

[4] http://blog.fastforwardlabs.com/2017/09/01/LIME-for-couples.html