Глубокое погружение в LRP для объяснения предсказаний нейронной сети.

Послойное распространение релевантности (LRP) - один из самых известных методов объяснимого машинного обучения (XML). Эта статья даст вам хорошее представление о деталях LRP и некоторых приемах его реализации. Содержание во многом основано на этой главе книги.

Чтобы рассказать о потенциале LRP, сначала посмотрите эту интерактивную демонстрацию.

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

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

Послойное распространение релевантности

Интуитивно понятно, что LRP использует веса сети и нейронные активации, созданные прямым проходом, для распространения выходных данных обратно по сети до входного уровня. Там мы можем визуализировать, какие пиксели действительно внесли свой вклад в результат. Мы называем величину вклада каждого пикселя или промежуточного нейрона «релевантными» значениями R.

LRP - это консервативный метод, означающий, что величина любого вывода y сохраняется в процессе обратного распространения и равна сумме карты релевантности R входного слоя. Это свойство сохраняется для любых последовательных слоев j и k, а также в силу транзитивности для входного и выходного слоя.

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

С этого момента мы идем в обратном направлении по сети, следуя этому основному правилу LPR:

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

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

Итак, что означает эта формула? Числитель дроби - это величина, в которой нейрон j влияет на нейрон k (это верно для линейного случая активного ReLU). Чтобы обеспечить соблюдение указанного выше свойства сохранения, его необходимо разделить на сумму вкладов всех нейронов нижнего слоя. Обычно мы добавляем к знаменателю очень маленькую константу, чтобы сделать дробь более стабильной. Внешняя сумма по k означает, что релевантность нейрона j определяется суммой его влияния на все нейроны k следующего слоя, раз актуальность этих нейронов.

Мы можем просто выполнить это от последнего до первого слоя. В зависимости от того, с какого выходного нейрона мы выберем начать, мы можем получить объяснение для любого класса. Таким образом, мы можем даже проверить, что, по мнению сети, было бы релевантным для предсказания любого класса A, даже если оно фактически предсказало класс B!

Структура сети, которая может быть проанализирована таким образом, не строго ограничена. Например, LRP также отлично работает для CNN и может использоваться для LSTM. Однако требуется, чтобы сеть содержала только функции активации ReLU.

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

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

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

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

На третьем шаге мы вычисляем количество c для каждого нейрона в предыдущем слое, поэтому это можно рассматривать как обратный проход. Эту c можно грубо увидеть по тому, насколько релевантность доходит до нейрона j от последующего слоя.

Наконец, на четвертом шаге релевантность, исходящая сверху, умножается на активацию нейрона для вычисления собственной релевантности. Интуитивно понятно, что нейрон важен, если 1) он имеет высокую активацию и 2) он вносит большой вклад в соответствующие нейроны более высокого уровня.

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

Уловки реализации

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

Ключевой частью является использование эффективных фреймворков автограда, таких как pytorch или tensorflow, для выполнения обратного прохода за нас.

Большая разница с формулами, которые мы рассмотрели выше, заключается в том, что мы вычисляем значения c как вычисление градиента.

Это позволяет нам использовать эффективную автоматическую обратную операцию. Чтобы это сработало и дало правильный результат, мы должны рассматривать s как константу. На это указывает .data в приведенном выше коде.

Разные правила

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

Входной слой: для изображений правило выбора было введено в Документ о глубоком разложении Тейлора авторами LRP и принимает следующую форму:

Здесь l и h - наименьшее и наибольшее допустимые значения пикселей соответственно.

Нижние слои: здесь мы хотим, чтобы объяснение было более плавным и менее шумным, поскольку эти слои уже очень близки к карте релевантности, которую мы, люди, увидим и должны понять. Для этой цели мы можем использовать правило LRP-γ, которое непропорционально отдает предпочтение положительным свидетельствам перед отрицательными:

Более высокие уровни: здесь могут работать либо LRP-γ сверху, либо следующее правило LRP-ϵ. Они убирают часть шума с карты релевантности. В частности, ϵ поглотит некоторые незначительные или противоречивые доказательства.

Выходной уровень: в идеале мы используем немодифицированное правило LRP-0.

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

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

Приложения

В этом разделе вкратце приведены некоторые примеры успешного применения LRP.

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

Томас и др. применил эту технику к большому корпусу данных нейровизуализации фМРТ, объясняя состояния мозга на основе трехмерных данных.

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

Хорст и др. анализировать модели походки человека с помощью LRP.

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

Montavon et at. применить LRP к играм Atari и классификации изображений.

Связанных с работой

Теперь, когда у вас есть хорошее представление о внутренней работе LRP, будет справедливо упомянуть связанные методы. Общий термин объяснимое машинное обучение или объяснимый ИИ может использоваться для обозначения множества различных техник. Здесь я укажу только на некоторые из них, которые очень тесно связаны с LRP.

Цайлер и Фергус опубликовали в 2014 году основополагающую статью, в которой визуализировали активацию нейронов с помощью деконволюционной сети.

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

Спрингенберг и др. вскоре после этого опубликовал Guided Backpropagation.

Чжан и др. представил Excitation Backprop, рассматривая обратное распространение как вероятностный процесс.

Рампрасаат и др. представил Grad-Cam для CNN.

Сундарараджан и др. представил метод интегрированного градиента.

На основе LRP Bach et al., Montavon et al. создал Deep Taylor Decomposition.

Спасибо за чтение! Надеюсь, вы узнали что-то полезное.