Краткое изложение технологии визуализации CNN (1) - визуализация карты функций
Краткое изложение технологии визуализации CNN (2) - визуализация ядра свертки
Добро пожаловать в техническое руководство CV для общедоступной учетной записи, в котором основное внимание уделяется техническому обзору компьютерного зрения, отслеживанию новейших технологий и интерпретации классических статей.
предисловие:
Ранее мы представили два метода визуализации, визуализацию карты объектов и визуализацию ядра свертки, Оба эти метода относительно распространены в статьях, Эти два метода больше используются для анализа того, чему модель научилась на определенном уровне. Поняв эти два метода визуализации, легко понять, как изображения распознаются и классифицируются после прохождения через нейронную сеть.
Однако в прошлый раз я увидел вопрос об обнаружении падений через yolov3 в Zhihu, надеясь добавить распознавание лиц для многозадачного обучения для повышения точности. Очевидно, что спрашивающий не понимает, как нейросеть анализирует такое видео с измерением времени для реализации распознавания поведения, по сути, это фактически означает, что он не понимает, как нейросеть распознает класс. Поэтому, когда на данный момент понимание неправильное, выбор модели, разработка схемы и улучшение неразумны.
(Я ответил на этот вопрос на Zhihu. Какой должна быть правильная идея обнаружения падения? Если вам интересно, вы можете пойти и посмотреть. Мой Zhihu id, кажется, светится)
Поэтому в этой статье мы представим метод того, как узнать, какую информацию модель распознает для разных классов, то есть визуализировать классы, что с точки зрения непрофессионала представляет собой тепловую карту. Этот метод в основном относится к серии САМ, в настоящее время существуют САМ, Град-САМ, Град-САМ++.
CAM (карта активации класса)
Как показано на рисунке выше, структура CAM состоит из сети извлечения признаков CNN, GAP глобального среднего пула, полносвязного уровня и Softmax.
Принцип реализации: изображение получает карты признаков после прохождения через сеть извлечения признаков CNN, а затем выполняет глобальное усреднение на каждой карте признаков, чтобы стать одномерным вектором, а затем проходит через полносвязный слой и softmax, чтобы получить вероятность класса .
Предполагая, что до GAP есть n каналов, после GAP получается вектор длины 1 x n. Предполагая, что количество категорий равно m, вес полносвязного слоя представляет собой тензор n x m. (Примечание: размер пакета здесь сначала игнорируется)
Для определенной категории C я теперь хочу визуализировать, какие области исходного изображения играют основную роль в определении категории C. Другими словами, какая информация модель использует для получения изображения категории C.
Метод заключается в том, чтобы вынести одномерный вес вероятности получения категории C в полносвязном слое, который представлен буквой W, то есть нижней половиной приведенного выше рисунка. Затем карта признаков до GAP взвешивается и суммируется.Поскольку карта признаков в настоящее время не соответствует размеру исходного изображения, после взвешенного суммирования необходимо выполнить повышающую дискретизацию, чтобы получить карту активации класса.
Формула выглядит следующим образом: (k представляет канал, c представляет категорию, fk(x, y) представляет карту объектов)
Изображение эффекта:
Анализ САМ
CAM имеет очень фатальный недостаток, его структура состоит из CNN + GAP + FC + Softmax, то есть, если вы хотите визуализировать существующую модель, но большинство существующих моделей не имеют операции GAP, в настоящее время Если вы хотите визуализировать, вам нужно изменить исходную структуру модели и переобучить ее, что довольно хлопотно, а если модель большая, переобучение после модификации может не дать исходного эффекта, и визуализация бессмысленна.
Поэтому в ответ на этот недостаток последовала улучшенная версия Град-САМ.
Grad-CAM
Самая большая особенность Grad-CAM заключается в том, что ему больше не нужно изменять существующую структуру модели или переобучать ее, ее можно визуализировать непосредственно на исходной модели.
Принцип: это также последний слой карт объектов, который обрабатывает сеть извлечения объектов CNN. Для категории C, которую вы хотите визуализировать, Grad-CAM распространяет конечное выходное значение вероятности категории C на последний слой карт объектов посредством обратного распространения и получает значение градиента каждого пикселя категории C на картах объектов для каждый пиксель Возьмите глобальное среднее объединение значения градиента , чтобы получить весовой коэффициент альфа карт объектов, В документе упоминается, что весовой коэффициент, полученный таким образом, почти эквивалентен коэффициенту в CAM. Затем карты функций взвешиваются и суммируются, корректируются с помощью ReLU, а затем подвергаются повышающей дискретизации.
Причина использования ReLU заключается в том, что для этих отрицательных значений его можно считать не относящимся к категории распознавания C. Эти отрицательные значения могут быть связаны с другими категориями, в то время как положительные значения оказывают положительное влияние на распознавание С.
Формула выражается следующим образом:
Структурная схема Grad-CAM показана на рисунке выше.Для читателей, которые не понимают, что такое Guided Backpropagation, вы можете прочитать первую статью резюме технологии визуализации CNN.
Схема эффекта выглядит следующим образом:
За Grad-CAM следует улучшенная версия Grad-CAM++.Основной эффект улучшения заключается в том, что позиционирование становится более точным и более подходящим для ситуации с аналогичными мультицелями.Так называемые мультицели одного и того же вид относится к появлению нескольких целей для определенного класса на изображении, например, семь или восемь человек.
Метод улучшения заключается в том, чтобы предложить новый метод получения весового коэффициента, который слишком сложен для непосредственного применения. Поэтому он не будет здесь представлен, а заинтересованные читатели могут получить документ по ссылке в конце статьи.
В следующей статье будут обобщены некоторые инструменты визуализации. Содержание будет размещено в разделе технического резюме резюме.
CAM: https://arxiv.org/pdf/1512.04150.pdfGrad-CAM: https://arxiv.org/pdf/1610.02391v1.pdfGrad-CAM++: https://arxiv.org/pdf/1710.11063.pdf
Справочные документы:
1. Learning Deep Features for Discriminative Localization
2.Grad-CAM: Why did you say that?Visual Explanations from Deep Networks via Gradient-based Localization
3. Grad-cam++: Generalized gradient-based visual explanations for deep convolutional networks
Эта статья взята из серии технических сводок Технического руководства CV для общедоступных аккаунтов.
Добро пожаловать в техническое руководство CV для общедоступной учетной записи, в котором основное внимание уделяется техническому обзору компьютерного зрения, отслеживанию новейших технологий и интерпретации классических статей.
Ответьте на ключевое слово «Техническое резюме» в официальном аккаунте, чтобы получить резюме следующих статей в формате pdf.
Другие статьи
Краткое изложение методов недообучения и переобучения
Краткое изложение общих идей бумажных инноваций
Резюме методов эффективного чтения англоязычной литературы по направлению CV
Обзор непродолжительного обучения компьютерному зрению
Краткий обзор дистилляции знаний
Оптимизировать скорость чтения видео OpenCV
Краткое изложение методов функции потерь
Техническое резюме механизма внимания
Краткое изложение технологии пирамиды функций
Краткое изложение технологии объединения
Краткое изложение методов увеличения данных
Резюме эволюции структуры CNN (1) Классическая модель
Резюме эволюции структуры CNN (2) Облегченная модель
Резюме эволюции структуры CNN (3) Принципы проектирования
Как увидеть будущее направление компьютерного зрения
Краткое изложение технологии визуализации CNN (1) - визуализация карты функций
Краткое изложение технологии визуализации CNN (2) - визуализация ядра свертки
Краткое описание технологии визуализации CNN (3) - визуализация класса
Краткое описание технологии визуализации CNN (4) - инструменты и проекты визуализации