Одними из самых важных инструментов, которыми должен обладать разработчик глубокого обучения, являются инструменты отладки моделей и интерпретации моделей. В посте предполагается, что читатели имеют некоторое представление о предварительно обученных моделях изображений, нейронной сети свертки и алгоритме обратного распространения. Мы будем использовать изображение выше, чтобы подчеркнуть, как этот инструмент может быть полезен.
В этом уроке мы практически обсудим простой инструмент, разработанный для интерпретации модели с использованием GradCAM (карты активации класса градиента). В следующих примерах показаны предварительно обученные веса Imagenet. Инструмент построен на основе TensorFlow Keras API.
Их интерпретации всегда начинались с CAM (карты активации классов), у которых были свои плюсы и минусы, но этот пост посвящен GradCAM, который преодолел эти недостатки. Простое описание для понимания GradCAM состоит в том, чтобы использовать градиенты, чтобы найти, какие области изображений активируются для конкретного прогноза. иначе мы можем назвать это контролируемым обратным распространением.
Я выделил несколько простых моментов, которые помогут читателям понять суть инструмента кратко и интуитивно понятно.
Шаги, выполняемые в GradCAM:
- Загрузите модель и ее препроцессоры.
- Найдите имя слоя последней карты объектов.
- Удалите окончательные слои активации, если это необходимо. (обычно софтмакс)
- Используйте любые предсказанные индексы классов (тигр, кошка, лев), чтобы получить матрицу градиента в окончательной карте объектов.
- Преобразуйте матрицу градиента в вектор и умножьте ее на карту объектов. мы получаем NrxNcx1 (пример: 10x10x1) на основе матрицы интенсивности карты объектов, которая указывает на важные области, на которых фокусируется модель.
- мы изменяем размер матрицы интенсивности до исходного размера изображения для целей визуализации.
Интерпретация результатов:
Первым предсказанием для приведенного выше изображения был тигр, и с помощью инструмента мы можем объяснить, почему был предсказан тигр.
Top2nd предсказание для приведенного выше изображения было каменным питоном, и с помощью инструмента мы можем объяснить, почему это было предсказано.
Это простой инструмент, но он может быть очень полезен, чтобы узнать, связана ли проблема с набором данных или с какими-либо другими проблемами параметров модели. Надеюсь, это будет полезно для тех, кто новичок в этой области.
Найдите коды здесь: https://github.com/anish9/Deep-Learning-Notes/tree/main/gradcam_tool