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

  • Поймите поведение модели: почему модель приняла такое решение?
  • Исправление модели: исправление предсказания модели в определенных случаях углов/ошибок без потери общей производительности.

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

Визуализация глубоких нейронных сетей

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

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

Максимизация активации

Идея максимизации активации (AM) состоит в том, чтобы найти входное изображение, которое максимально возбуждает определенный нейрон. Одной из первых попыток разработать формальный метод отслеживания активации сети до домена входных данных была Визуализация функций более высокого уровня глубокой сети Эрхана и др. Работа Симонян и др. и DeconvNet Цейлера и Фергуса — еще один примечательный пример из этого лагеря.

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

Инверсия кода

Другой подход, называемый инверсия кода, похож на АП, но вместо максимизации выходных данных определенного нейрона он направлен на реконструкцию слоя активации для определенного слоя ГНС (Визуализация глубоких сверточных нейронных сетей с использованием естественных предварительных вычислений). Изображения» Махендрана и др.)

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

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

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

Эффект становится более резким по мере того, как мы углубляемся:

Причина этого заключается в том, как генерируется входной стимул. Активация нейрона может быть усилена за счет (1) усиления яркости и цвета и (2) рисования все большего и большего количества частей объекта, на которые реагирует нейрон.

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

Но при прямом подходе к максимизации активации он, скорее всего, создаст изображение, в котором эти концепции будут смешаны.

Работа Нгуена на эл. дает отличный обзор слабых мест максимизации активации и представляет метод, называемый визуализация многогранных функций (MFV).

Визуализация многогранных функций

Идея MFV состоит в том, чтобы (1) идентифицировать различные типы изображений, которые возбуждают нейрон, а затем (2) использовать среднее изображение для каждого типа в качестве отправной точки минимизации активации. В результате каждый раз АМ будет сходиться к разным граням этого нейрона:

Чтобы справиться с повторяющимися фрагментами, авторы вводят технику, называемую регуляризация по центру:

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

ГАН

Этот обзор был бы неполным без упоминания одного из самых популярных методов генеративного моделирования — генеративно-состязательных сетей (GAN).

Глубокая сеть генераторов для максимизации активации (DGN-AM) Nguyen et al. на самом деле это не модель GAN, но у нее много общего. Конвейер обучения состоит из генератора и сети дискриминатора, предназначенной для классификации синтетических изображений отдельно от реальных. Генератор изображений DNN, используемый для генерации априорных значений для процедуры максимизации активации. Он обучен принимать код (например, вектор скаляров) и выводить синтетическое изображение, которое выглядит как можно ближе к реальным изображениям. Чтобы получить предпочтительный вход для визуализируемого нейрона, входной код генератора изображений DNN оптимизируется таким образом, чтобы сеть генератора выдавала изображение, которое активирует интересующий нейрон:

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

Работа над Синтезом условных изображений с вспомогательными классификаторами GAN не направлена ​​явно на понимание моделей, однако может использоваться и для этой цели, поскольку представленная там модель AC-GAN учится генерировать изображения, обусловленные классами. Помимо моделей генератора и дискриминатора, модель также имеет дополнительную сеть классификатора (в данном случае Inception-v3). Сгенерированные образцы, которые были должным образом классифицированы с помощью этой сети, могут служить предпочтительной входной визуализацией.

Промежуточный вывод

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