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

В этом уроке мы практически обсудим простой инструмент, разработанный для интерпретации модели с использованием GradCAM (карты активации класса градиента). В следующих примерах показаны предварительно обученные веса Imagenet. Инструмент построен на основе TensorFlow Keras API.

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

Я выделил несколько простых моментов, которые помогут читателям понять суть инструмента кратко и интуитивно понятно.

Шаги, выполняемые в GradCAM:

  • Загрузите модель и ее препроцессоры.
  • Найдите имя слоя последней карты объектов.
  • Удалите окончательные слои активации, если это необходимо. (обычно софтмакс)
  • Используйте любые предсказанные индексы классов (тигр, кошка, лев), чтобы получить матрицу градиента в окончательной карте объектов.
  • Преобразуйте матрицу градиента в вектор и умножьте ее на карту объектов. мы получаем NrxNcx1 (пример: 10x10x1) на основе матрицы интенсивности карты объектов, которая указывает на важные области, на которых фокусируется модель.
  • мы изменяем размер матрицы интенсивности до исходного размера изображения для целей визуализации.

Интерпретация результатов:

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

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

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

Найдите коды здесь: https://github.com/anish9/Deep-Learning-Notes/tree/main/gradcam_tool