Новости

[Перевод] Интерпретируемость машинного обучения: состояние дел

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

Я придерживаюсь категоризации, использованной в работе Lipton et al.’s Mythos of Model Interpretability, которую считаю наилучшей статьей, проясняющей различные дефиниции интерпретируемости. Мы рассмотрим множество способов формализовать значение «интерпретируемости». В широком смысле интерпретируемость отвечает на вопрос «как». Она призвана дать понятие о нашей модели и объяснить, каким образом эта модель принимает те или иные решения. Ниже каждый раздел концептуализируется на основе конкретного вопроса, который можно поставить к нашей модели машинного обучения, опираясь на конкретное определение интерпретируемости. Если все это для вас в новинку, объясню для начала, почему нас вообще должна волновать интерпретируемость.

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

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

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

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

Определение интерпретируемости

У Lipton et al. выделяется два типа интерпретируемости: прозрачность и апостериорная интерпретируемость.

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

Согласно Lipton et al., прозрачность как интерпретируемость касается тех свойств модели, которые полезно понимать, и которые могут быть известны до начала обучения. В данном случае предлагается три разных (но взаимосвязанных) вопроса.

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

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

0.00000000e+00, 0.00000000e+00, 0.00000000e+00, -1.47542413e-03,
-1.67811041e-04, -3.83280468e-02, -8.10846867e-02, -5.01943218e-02,
-2.90314621e-02, -2.65494116e-02, -8.29385683e-03, 0.00000000e+00,
0.00000000e+00, 1.67390785e-04, 3.92789141e-04, 0.00000000e+00,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]

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

Вот веса для модели, которая ищет цифру 0:

А вот веса для модели, которая ищет цифру 3:

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

Но, как указывают Lipton et al., этот недочет может быть связан не столько с конкретным типом модели, сколько с ее размером. Так, понять дерево решений, в котором миллиард узлов, может быть очень непросто. Понимание требует держать в уме большую часть модели, а такое удержание зачастую зависит от того, как именно параметризована модель.

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

Декомпонуемость: поддается ли модель интерпретации на каждом шаге или применительно к ее субкомпонентам?

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

Например, я обучал дерево решений для MNIST при помощи следующих интерпретируемых признаков:

1. Средняя яркость изображения — average_luminosity

2. Средняя яркость контуров изображения (определяется при помощи детектора краев) — edge_property

3. Количество углов, присутствующих в контуре изображения — num_corners

4. Ширина изображения — max_width

5. Высота изображения — max_height

Представляется, что эти признаки будут содержать как минимум некоторое количество ценной информации. «Единички» занимают сравнительно мало места (поэтому показатель average_luminosity будет ниже), у «восьмерок» может быть сравнительно много углов и т.д. Все-таки, результирующее дерево решений глубиной 3 (показанное ниже) достигает при обучении точности всего в 33%. Если при обучении углубиться аж до 10 уровня, точность возрастет лишь примерно до 50%.

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

Я сравниваю эти признаки, подобранные вручную, с грубыми визуальными признаками, обучая дерево решений (глубиной 3) на пиксельных значениях, то есть, вектор из 784 значений в оттенках серого. Результирующая модель, показанная ниже, дает 50% точности при обучении и тестировании.

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

Алгоритмическая прозрачность: дает ли алгоритм какие-либо гарантии?

Этот вопрос сводится к тому, обладает ли наш алгоритм обучения такими желаемыми свойствами, которые легко понять. Например, мы можем знать, что алгоритм дает на выход лишь разреженные модели, либо, возможно, он всегда сходится к конкретному типу решений. В таких случаях результирующая обученная модель может быть более пригодна для анализа. Так, метод опорных векторов с максимальным зазором гарантированно находит уникальное решение, дающее максимальный зазор. Аналогично, перцептрон гарантированно находит параметры (правда, не всегда уникальные), позволяющие достигать нулевых потерь при обучении, если данные линейно разделимы. Если говорить о глубоком обучении, то полный обзор результатов выходит за рамки этой статьи. В принципе, правда, найдется и много других конфигураций значений, которые дадут сравнимую производительность. Это означает, у нас нет прямой аналогии некому уникальному набору весов, которые хорошо применимы к решению имеющейся задачи. Алгоритм KNN, рассмотренный выше, иллюстрирует другой уровень понимания в духе «расскажите простыми словами, что делает алгоритм», сверх механической прозрачности. KNN легко описать как «он сообщает метки тех точек, что находятся ближе всего к введенной точке». Отчасти это свойство означает, что большая часть работы производится именно так, как описано здесь. Очевидно, работу большинства моделей ML можно описать как «находит параметры, удовлетворяющие определенным ограничениям», но это утверждение очень общее и неприменимое на практике. Представляется, что сложнее найти описание с аналогичным уровнем детализации для нейронной сети, более внятное, чем «она изучает многообразие с высокой размерностью, соотносимое с вводимыми данными». Даже притом, что зачастую мы можем лаконично резюмировать, что делает ML-модель, лишь некоторые из них информативны с точки зрения их воспроизводимости.

Апостериорная интерпретируемость

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

Тестовое объяснение: может ли модель постфактум объяснить свое решение на естественном языке?

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

Притом, насколько желательным подобное представляется, данная дисциплина еще только формируется, и у Lipton et al. есть только одна статья, акцент в которой делается на RL (обучении с подкреплением). На ConnectedPapers я выяснил, что статья, на которую они ссылаются, входит в более обширную близкую область обучения с подкреплением с использованием человеческих подсказок. По-видимому, эта область сосредоточена на решении противоположной задачи: если у нас есть человеческие объяснения, то как модели могут встроить их в свой процесс принятия решений?

Визуализация/локальные объяснения: может ли модель выяснить, что является/являлось важным для принятого в ней процесса принятия решений?

Этот вопрос связан с тем, как соотносятся друг с другом изменения входных и выходных данных.

Карты значимости (saliency maps) – это широкий класс подходов, рассматривающих, как изменение ввода (или части ввода) сказывается на выводе. Наиболее прямой подход к решению такой задачи — взять производную функции потерь относительно ввода. Кроме такого упрощенного подхода существует много модификаций, связанных, например, с усреднением градиента, возмущением ввода, либо локальными приближениями. Хороший обзор этой области дается в статье Understanding Deep Networks via Extremal Perturbations and Smooth Masks.

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

При помощи PyTorch я вычислил производную logit (соответствующую цифре «три») относительно входного изображения. Так я получил изображение, показанное ниже. Здесь белые пиксели соответствуют тем частям изображения, которые увеличивали бы значение logit для «тройки», а черные пиксели соответствуют обратному. Мы видим, как проступают примерные криволинейные очертания цифры «три».

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

Другое семейство подходов сосредоточено на визуализациях, относящихся к параметрам модели как таковым, а не ко вводу. Масса работы в этой области сделана Крисом Олахом, Шеном Картером, Людвигом Шубертом и другими на сайте distill.pub. Их работа в этой области простирается от визуализации активаций конкретных нейронов и слоев до целых карт активаций для множества сетей и декомпозиции моделей в интерпретируемые элементарные блоки. Другой отличный ресурс по визуализации работ такого типа — OpenAI Microscope. Здесь достигнут замечательный прогресс, но остается наблюдать, будут ли найдены для нейронных сетей другие подобные подходы, предназначенные для решения иных задач, нежели распознавание образов.

Объяснение на примере: может ли модель показать, какая еще информация из учебных данных, на взгляд модели, относится к этому вводу/выводу?

Этот вопрос сводится к тому, какие еще примеры из учебного множества похожи на актуальный ввод. Когда в качестве метрики схожести выступает лишь расстояние в оригинальном пространстве признаков, ситуация напоминает модель KNN с K = 1. В более тонких методах поиск схожих примеров может вестись в том представлении или латентном пространстве, которые использует модель. Человек предпочитает подход такого рода, поскольку он похож на рассуждение по аналогии, где в обоснование своих действий мы представляем сценарий, похожий на актуальный.

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

Какие еще есть обзорные работы?

Для более подробного ознакомления с конкретными приемами рекомендую статью A Survey Of Methods For Explaining Black-Box Models, где освещен широкий спектр подходов для многих конкретных моделей машинного обучения, а также для алгоритмов, не зависящих от моделей. Подробный материал по нейронным сетям — Explainable Deep Learning: A Field Guide for the Uninitiated. Что касается других концептуальных обзоров в этой области, упомяну Definitions, methods, and applications in interpretable machine learning и Explainable Machine Learning for Scientific Insights and Discoveries. Особенно хороша, в частности, статья «Explainable Machine Learning» (Объяснимое машинное обучение), так как в ней иерархически представлены модели, все лучше поддающиеся интерпретации, из разных предметных областей и на разные случаи использования.

Что дальше?

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

Оценка

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

Более того, в недавней статье Sanity Checks for Saliency Maps убедительно объяснено, почему этого недостаточно. Как упоминалось выше, карты значимости представляют широкий класс подходов, призванных пояснить, какие части ввода существенны для вывода модели, зачастую это делается при помощи градиента.

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

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

В целом, авторы находят, что простейшая карта градиентов обладает желаемой чувствительностью к двум вышеописанным тестам, а некоторые другие подходы, в частности, направленное обратное распространение – нет. Ранее исследования атрибуции были более субъективными. Например, статья Grad-CAM подробно описывает, как подготовленная авторами карта значимости может помочь давать объяснения к датасету или выявлять искажение датасета. Но авторы не рассматривают чувствительность предложенного ими подхода к параметрам модели.

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

Другой подход в данном направлении – отталкиваться от объяснений, которыми люди пользуются в повседневной жизни, и таким образом выводить более качественные контрольные точки. В статье Explanation in Artificial Intelligence: Insights from the Social Sciences дан обзор того, где есть точки соприкосновения между философией и социологией с одной стороны и машинным обучением – с другой. Конечно, окончательно судить обо всех этих подходах можно по тому, как люди смогут пользоваться этими результатами интерпретируемости, и здесь я подхожу к моему второму тезису.

Полезность

Вторая область задач призвана обеспечить полезную отдачу от этих подходов к интерпретируемости. Даже если мы найдем способы объяснять модели, которые действительно чувствительны к усвоенным параметрам (и всему прочему), думаю, надо будет еще посмотреть, полезны ли эти объяснения на практике. Что касается, как минимум, актуальных методов, считаю, что ответ пока неопределенный или, возможно, даже отрицательный.

Manipulating and Measuring Model Interpretability – это большое предварительно зарегистрированное исследование от Microsoft Research. Оно показало, что модели с дополнительной информацией, например, с весами, зачастую не помогают пользователям решить, как самостоятельно приходить к более точным суждениям; также пользователи не всегда замечают, что такая модель ошибочна. Пользователи получали либо модель, работающую по принципу «черного ящика», либо более поддающуюся интерпретации.

Исследование показало, что:

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

Другая работа, Interpreting Interpretability: Understanding Data Scientists’ Use of Interpretability Tools for Machine Learning, показала, что даже специалисты по data science не всегда понимают, что сообщается в интерпретируемых визуализациях. Это может приводить к необоснованной уверенности в основополагающей модели и даже провоцировать попытки импровизированно обосновать подозрительные результаты.

Наконец, свежее исследование Evaluating Explainable AI: Which Algorithmic Explanations Help Users Predict Model Behavior? Описывает пять подходов к интерпретируемости и описывает, как они эмпирически помогают людям сымитировать модель. Авторы почти не нашли пользы ни в одном из этих методов. Следует отметить такое наблюдение: участники расценивали некоторые объяснения как более качественные, но на самом деле эти объяснения почти не улучшали успешности участника в прохождении опыта.

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

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

Заключение

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

Всем следует побеспокоиться о безопасности, что привносит некоторую срочность в разработку этой дисциплины, поскольку возможности ИИ постоянно растут. Методы интерпретируемости зачастую требуют тратить дополнительное время на обучение, а производительность при решении задачи из-за этого снижается. Остается открытым вопрос: как стимулировать внедрение методов интерпретируемости на практике, если польза от них неочевидна, а издержки ощущаются сразу? Кроме дальнейших исследований, потребуется, вероятно, вовлеченность общества и широкое информирование о рисках, возникающих при пренебрежении интерпретируемостью. Такие проекты как Partnership on AI и работа команд по обеспечению безопасности в OpenAI и DeepMind ведут нас в правильном направлении, и мне хотелось бы увидеть, как в будущем эта ситуация продолжит улучшаться.

Добавить комментарий

Кнопка «Наверх»