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

Понимание и интерпретация моделей имеют решающее значение для укрепления доверия людей к нашей системе. Наиболее распространенная проблема, с которой решаются CNN, - это классификация изображений, и подход визуального объяснения, обычно известный как карты значимости или карта атрибуции, используется для поиска наиболее важных характеристик, которые влияют на предсказания модели. Существует несколько методов, используемых для создания карт значимости, и наиболее распространенной из них является визуализация на основе градиента, которая возвращает частную производную оценки целевого класса относительно входного слоя. Однако проблема с картами на основе градиента заключается в том, что они, как правило, имеют низкое качество и имеют случайный шум. Другие методы включают методы на основе возмущений, которые работают путем добавления небольшого шума на вход (возмущение) и наблюдения за изменением прогноза. Другой - это карты активации классов (CAM), которые я недавно объяснил в моем сообщении, и их расширения, такие как Grad-Cam и Grad-Cam ++. Обычно они генерируют карты значимости путем линейно взвешенной комбинации карт активации, чтобы выделить области импорта в пространстве изображения. Однако они также страдают от проблемы случайных шумов, которые не имеют отношения к целевому объекту на изображении, а вес не отражает важность каждой карты активации.

SCORE-CAM:

В этой статье я попытаюсь объяснить совсем недавно опубликованную статью Score-Cam, которая является улучшением предыдущих методов, упомянутых выше, и пытается сделать CNN интерпретируемыми, как ее предшественники.

Score-Cam построен на основе Class Activation Mapping и утверждает, что решает ранее описанные проблемы, связанные с несущественными шумами, и генерирует более четкие и содержательные объяснения. В Score-Cam исследователи следуют идее основанных на возмущении методов, которые маскируют часть регионов в исходном вводе и наблюдают за изменением целевого показателя. Полученная маска активации рассматривается как своего рода маски для входного изображения, которые маскируют части входного изображения и позволяют модели прогнозировать на частично замаскированном изображении. Затем оценка целевого класса используется для представления важности карты активации.

Примеры замаскированных активаций с использованием методов на основе возмущений: -

Score-Cam, в отличие от знаменитого Grad-Cam, не использует градиенты, потому что исследователь считает, что распространяемые градиенты довольно нестабильны и создают случайный шум в картах яркости на основе градиента. Нестабильный характер градиентов показан на рис. 3, где градиент резко меняется при небольшом изменении входного изображения, даже если это изменение не воспринимается человеческим глазом и не влияет на результат прогнозирования. Поэтому есть основания сомневаться в эффективности градиентных методов снижения избыточного шума.

Методология:

Различные предыдущие работы, такие как CAM, GradCam и т. Д., Утверждали тот факт, что более глубокие слои в CNN захватывают визуальную информацию более высокого уровня. Кроме того, сверточные элементы естественным образом сохраняют пространственную информацию, которая теряется в полностью связанных слоях, поэтому обычно ожидается, что последний сверточный слой предложит лучший компромисс между семантикой высокого уровня и подробной пространственной информацией, а нейроны в этих слоях ищут класс -специфическая семантическая информация во входном изображении. Следовательно, в Score-Cam мы используем последний слой для получения карт активации, содержащих сбалансированные представления.

В отличие от GradCam и GradCam ++, которые используют информацию о градиенте, проходящую через последний уровень CNN, чтобы представить важность каждой карты активации. В Score-Cam мы используем веса баллов, полученных для определенного целевого класса. Следовательно, Score-Cam может избавиться от зависимости от градиента и работать как более общая структура, поскольку для этого требуется только доступ к карте активации классов и выходному баллу модели.

Конвейер Score-Cam показан на рисунке 4 и показывает все шаги, необходимые для достижения окончательной карты значимости.

Чтобы получить классификационную карту значимости с помощью Score-Cam, процесс делится на следующие этапы:

  1. Первый задействованный шаг - передача изображений в модель CNN и выполнение forward_pass. После прямого прохода активации извлекаются из последнего сверточного слоя в сети.
  2. Каждая карта активации, полученная из последнего слоя, имеющего форму 1xmxn, затем подвергается повышающей дискретизации с использованием билинейной интерполяции до того же размера, что и входное изображение.
  3. После повышающей дискретизации карт активации полученные карты активации нормализуются с каждым пикселем в диапазоне [0,1], чтобы поддерживать относительную интенсивность между пикселями. Нормализация достигается с помощью следующей формулы, показанной на рисунке 5.

4. После завершения нормализации карт активации выделенные области карт активации проецируются на входное пространство путем умножения каждой нормализованной карты активации (1 x Ш x В) на исходное входное изображение. (3 x Ш x В), чтобы получить замаскированное изображение M формы 3 x Ш x В.

5. Полученные таким образом замаскированные изображения M затем передаются в сверточную нейронную сеть с выводом SoftMax.

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

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

8. Наконец, мы применяем пиксельное ReLU к финальной карте активации. Мы применяем ReLU, потому что нас интересуют только те функции, которые положительно влияют на интересующий класс.

ВНЕДРЕНИЕ SCORE CAM В KERAS:

Мы будем следовать тому же конвейеру, описанному ранее как на рисунке, так и в методологии.

  1. Мы используем VGG16, предварительно обученный на Imagenet, в качестве нашей модели для всего конвейера.

2. Мы загружаем входное изображение, показанное выше на рис. 1, предварительно обрабатываем его, чтобы его можно было передать в модель VGG16.

3. После этого мы пропускаем изображение через модель и получаем оценки прогнозов для каждого класса. Мы извлекаем индекс для целевого класса из прогнозов.

4. Затем мы извлекаем активации из последнего сверточного слоя размером (1 x 14 x 14 x 512).

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

6. Затем мы нормализуем каждую из 512 карт активации, используя формулу, показанную на рисунке 5.

Примечание. Мы добавляем в знаменатель очень маленький член, например, 1e-5, чтобы предотвратить ошибку деления на ноль, приводящую к значениям nan.

7. После шага 6 мы проецируем маски, созданные на исходное изображение, путем поэлементного умножения между масками и входным изображением, как показано на рисунке 6.

8. Полученные таким образом замаскированные изображения затем передаются вперед через модель VGG16, и получаются оценки softmax.

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

10. Теперь у нас есть все, что требовалось для создания карты отличительной значимости классов, т.е. нормализованная карта активации и оценка целевого класса, которая будет использоваться в качестве весов. Теперь мы выполняем поэлементное умножение баллов softmax целевого класса и нормализованной карты активации.

11. После завершения последнего шага и получения результата мы выполняем суммирование по всем картам активации (512) и объединяем все карты для создания единой карты активации формы 1 x 224 x 224 x 3

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

Полученная окончательная дискриминативная карта классов показана на Рисунке 9 ниже.

Как мы видим, Score-Cam отличается классом распознавания, а также имеет меньше шума по сравнению со своими предшественниками.

Преимущества Score-Cam:

  1. Score-Cam, такой как Grad-Cam и Grad-Cam ++, может использоваться в любой архитектуре сверточной нейронной сети и не требует повторного обучения модели для создания карт значимости, таких как CAM.
  2. Score-Cam распознает классы и удаляет нерелевантный шум для создания значимой карты значимости.
  3. Использует оценки Softmax в качестве весов и устраняет зависимость от нестабильных градиентов.

Заключение:

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

Чтобы узнать больше о Score-Cam, прочтите статью по следующей ссылке https://arxiv.org/abs/1910.01279.

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