Открыть сервис

Grad-CAM

Grad-CAM (Gradient-weighted Class Activation Mapping) — это метод визуализации решений свёрточных нейронных сетей, позволяющий определить, какие области входного изображения наиболее значимы для предсказания определённого класса. Он относится к классу методов объяснимого искусственного интеллекта (XAI) и используется для интерпретации работы моделей компьютерного зрения без необходимости изменения их архитектуры или повторного обучения.

История возникновения

Метод Grad-CAM был предложен в 2017 году группой исследователей из Университета Джорджии, Технологического института Виргинии и компании Microsoft Research. Основными авторами стали Рампрасад Селвараджу, Майкл Когсвелл, Арун Дас, Рамон Видал, Саймон Парк и Дэвид Баттист. Работа была представлена на Международной конференции по компьютерному зрению (ICCV) в 2017 году. Grad-CAM стал развитием более раннего метода CAM (Class Activation Mapping), который требовал замены полносвязных слоёв сети на глобальный средний пулинг и повторного обучения модели. Grad-CAM устранил эти ограничения, сделав метод применимым к любой свёрточной нейронной сети без модификации.

Принцип работы

Grad-CAM основан на анализе градиентов целевого класса по отношению к картам признаков последнего свёрточного слоя сети. Процесс включает несколько этапов:

  1. Прямой проход: изображение подаётся на вход обученной свёрточной нейронной сети, и для интересующего класса вычисляется значение функции активации (логит) до применения softmax.
  2. Вычисление градиентов: для каждого канала карты признаков последнего свёрточного слоя вычисляется градиент логита класса по отношению к активациям этого канала. Полученные градиенты усредняются по пространственным измерениям (ширине и высоте), что даёт веса важности для каждого канала.
  3. Взвешенное суммирование: карты признаков умножаются на соответствующие веса и суммируются по каналам, формируя грубую карту активации.
  4. Постобработка: к полученной карте применяется функция ReLU (отсечение отрицательных значений), после чего карта нормализуется и масштабируется до размеров исходного изображения. Использование ReLU обусловлено тем, что интерес представляют только положительные вклады в предсказание класса.

Результатом является тепловая карта, где области с высокими значениями (обычно отображаемые красным или жёлтым цветом) указывают на участки изображения, наиболее сильно повлиявшие на решение сети.

Отличия от других методов

Grad-CAM и CAM

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

Grad-CAM и методы возмущений (например, LIME, Occlusion Sensitivity)

  • Методы возмущений требуют множественных прогонов сети с изменёнными версиями входного изображения, что вычислительно затратно.
  • Grad-CAM выполняется за один прямой и один обратный проход, что делает его значительно быстрее.

Grad-CAM и методы на основе градиентов (например, Saliency Maps, Integrated Gradients)

  • Saliency Maps (карты значимости) показывают градиенты по пикселям, что часто приводит к шумным и трудно интерпретируемым результатам.
  • Grad-CAM даёт более гладкие и семантически осмысленные карты, так как работает на уровне карт признаков, а не пикселей.

Разновидности и модификации

Grad-CAM++

Предложен в 2018 году как улучшение Grad-CAM для лучшего выделения мелких объектов и нескольких экземпляров одного класса на изображении. Вместо простого усреднения градиентов используется взвешенное суммирование с учётом вторых производных (гессиана), что позволяет точнее локализовать объекты.

HiResCAM

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

Score-CAM

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

Layer-CAM

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

Применение

Интерпретация решений нейросетей

Grad-CAM широко используется для объяснения, почему модель приняла то или иное решение. Это особенно важно в областях, где требуется доверие к ИИ: медицина, автономное вождение, финансы.

Диагностика ошибок модели

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

Обнаружение предвзятости

Grad-CAM может показать, что модель использует нежелательные признаки, такие как пол, раса или контекст сцены, для принятия решений. Это позволяет разработчикам корректировать модели для повышения справедливости.

Обучение и исследования

Студенты и исследователи используют Grad-CAM для понимания внутренней работы свёрточных сетей, изучения иерархии признаков и проверки гипотез о том, что именно «видит» сеть.

Промышленные приложения

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

Ограничения и критика

Низкое пространственное разрешение

Карты Grad-CAM имеют грубое разрешение, определяемое размером карт признаков последнего свёрточного слоя. Для сетей с большим количеством пулинговых слоёв (например, VGG16) карты могут быть слишком размытыми для точной локализации мелких объектов.

Ограниченная применимость к не-свёрточным архитектурам

Grad-CAM изначально разработан для свёрточных нейронных сетей. Для трансформеров (Vision Transformer) и других архитектур требуются адаптации, такие как Grad-CAM для ViT, использующие карты внимания.

Чувствительность к выбору слоя

Результаты Grad-CAM сильно зависят от того, какой свёрточный слой выбран для анализа. Использование слишком раннего слоя даёт шумные карты, слишком позднего — слишком грубые.

Проблема множественных объектов

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

Отсутствие каузальности

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

Интересные факты

  • Исходная статья Grad-CAM была процитирована более 10 тысяч раз (по данным Google Scholar на 2024 год), что делает её одной из самых влиятельных работ в области объяснимого ИИ.
  • Метод лёг в основу многих библиотек для визуализации нейросетей, включая популярные инструменты в PyTorch и TensorFlow.
  • Grad-CAM может быть использован не только для классификации, но и для задач сегментации, обнаружения объектов и генерации изображений, хотя с некоторыми модификациями.
  • В 2020 году исследователи продемонстрировали, что Grad-CAM может быть использован для атак на нейросети: злоумышленник, зная карты активации, может подобрать такие возмущения, которые будут незаметны для человека, но приведут к ошибке классификации.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →