Визуализация функций — Google Brain показывает, как нейронные сети читают изображения

Google искусственный интеллект регулярное выражение Нейронные сети
Визуализация функций — Google Brain показывает, как нейронные сети читают изображения

О мудрости

Компиляция | Бот

Источник | Перегонка

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

Примечание редактора: Недавно команда Google Brain Крис Олах, Александр Мордвинцев и Людвиг Шуберт опубликовали статью на Distill, рассказывающую о последних достижениях GoogLeNet в визуализации функций нейронных сетей. В статье автор представляет эффект «обоюдоострого меча» оптимизации визуализации признаков в виде изображений и текстов и указывает, что визуализация признаков, как наиболее многообещающий инструмент для объяснения нейронных сетей, все еще имеет много проблем для решения. получить ответ. Что является их основой? Присоединяйтесь к Крису Ола, самому молодому ученому, который бросил школу после 90-х годов в этой легендарной команде.

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

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

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

оптимизация

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

Начиная со случайного шума, мы активируем определенный нейрон с изображением

Причина проста, но шаги оптимизации сложны.

оптимизировать цель

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

Различные цели оптимизации показывают разные объекты, которые ищет нейронная сеть слой: слой x, y: положение в пространстве z: путь k: класс

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

Если цель состоит в том, чтобы понять весь слой, вы можете напрямую использовать DeepDream, чтобы взять наиболее «интересный» слой в предварительно обученной модели.

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

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

Зачем оптимизировать?

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

Обученная на наборе данных модель может сказать, что представляет собой объект

Оптимизация позволяет моделям отделять сущность от корреляции

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

разнообразие

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

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

Разнообразие за счет оптимизации?

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

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

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

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

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

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

Пример набора данных

Простая оптимизация

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

Оптимизация разнообразия

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

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

Пример набора данных

Простая оптимизация

Оптимизация разнообразия

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

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

Пример набора данных

Простая оптимизация

Кошки, лисы и автомобили показаны с оптимизацией разнообразия

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

взаимодействие между нейронами

Если нейроны не могут объяснить нейронные сети, то что же? В реальной жизни нейроны работают вместе для представления изображений в нейронной сети.Один нейрон является фундаментальным направлением пространства активации, и неясно, будет ли он более особенным, чем другие направления. Сегеди и др. провели эксперименты и обнаружили, что случайное направление и основное направление имеют в основном одно и то же значение. Недавно Бау, Чжоу и др. также обнаружили, что фундаментальные направления более интерпретируемы, чем случайные направления. И наш вывод примерно такой же, как у них: случайное направление вроде бы объяснимо, но оно медленнее, чем кардинальное.

Выборки набора данных и оптимизированные выборки со случайными направлениями в активированном пространстве

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

Оптимизируя два нейрона, мы можем понять, как они взаимодействуют

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

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

«Враг» визуализации признаков

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

Как бы вы ни регулировали скорость обучения, вы получите шум

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

При переходе назад для каждого изображения появляются квадраты в виде шахматной доски.

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

нормализованный спектр

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

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

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

Три категории нормализации

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

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

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

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

Для них одним из подходов является создание генераторов, таких как GAN или VAE, которые сопоставляют точки в скрытом пространстве с выборочными данными. Другой подход заключается в изучении априорной концепции, которая дает вам доступ к градиенту вероятностей, после чего вы можете выполнять совместную оптимизацию. Когда априорные вероятности и вероятности класса оптимизируются, восстанавливается модель генерации данных, обусловленная этим конкретным классом. Наконец, используя генеративную модель Wei et al., по крайней мере, для распределения цветов, эта модель может достичь лучших результатов за счет ограничения расстояния между выходным патчем и ближайшим патчем, собранным в наборе данных.

Предварительная обработка и параметризация

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

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

Три направления наискорейшего градиентного спуска при разных концепциях расстояния

Градиентный спуск в трех направлениях на рисунке преследует одну и ту же цель, но результаты совершенно разные. Видно, что оптимизация в корреляционном пространстве (последний график) снижает высокие частоты, а использование L∞ увеличивает высокие частоты.

Сочетание надежности предварительной обработки и преобразования улучшает качество изображения.

в заключении

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

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

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

Оригинальный адрес: distill.pub/2017/feature-visualization/

Эта статья составлена ​​Lunzhi, пожалуйста, свяжитесь с этим публичным аккаунтом для авторизации.