Объясните сетевые предсказания с помощью Grad-CAM
возвращает карту отображения активации класса с взвешенным градиентом (Grad-CAM) изменения в классификационной оценке изображения scoreMap
= gradCAM(net
,X
,label
)X
, когда сеть net
оценивает счет класса для класса, заданную как label
. Используйте эту функцию для объяснения сетевых предсказаний и проверки того, что ваша сеть фокусируется на правых частях изображения.
Метод интерпретации Grad-CAM использует градиенты классификационной оценки относительно окончательной сверточной карты функций. Части изображения с большим значением для карты Grad-CAM являются теми, которые больше всего влияют на счет сети для этого класса.
Используйте этот синтаксис для вычисления карты Grad-CAM для задач классификации изображений или пикселей.
возвращает карту важности Grad-CAM с помощью функции сокращения. scoreMap
= gradCAM(net
,X
,reductionFcn
)reductionFcn
является указателем на функцию, который уменьшает выходные активации восстановительного слоя до скалярного значения. Этот скаляр выполняет роль счета класса для задач классификации и обобщает метод Grad-CAM для неклассификационных задач, таких как регрессия.
gradCAM
функция вычисляет карту Grad-CAM путем дифференцирования уменьшенного выхода слоя сокращения относительно функций в слое признаков. gradCAM
автоматически выбирает слои сокращений и функций, которые будут использоваться при вычислении карты. Чтобы задать эти слои, используйте 'ReductionLayer'
и 'FeatureLayer'
аргументы имя-значение.
Используйте этот синтаксис для вычисления карты Grad-CAM для задач неклассификации.
[
также возвращает имена слоя функции и слоя сокращения, используемые для вычисления карты Grad-CAM. Используйте этот синтаксис с любыми комбинациями входных аргументов в предыдущих синтаксисах. scoreMap
,featureLayer
,reductionLayer
] = gradCAM(___)
___ = gradCAM(___,
задает опции, использующие один или несколько аргументов имя-значение в дополнение к входным параметрам в предыдущих синтаксисах. Для примера, Name,Value
)'ReductionLayer','prob'
устанавливает слой редукции в net
слой с именем 'prob'
.
The reductionFcn
функция получает выход от восстановительного слоя как трассированный dlarray
объект. Функция должна уменьшить этот выход до скалярного dlarray
, который gradCAM
затем дифференцируется относительно активации слоя функции. Для примера, чтобы вычислить карту Grad-CAM для канала 208 активаций softmax сети, функция сокращения @(x)(x(208))
. Эта функция получает активации и извлекает 208-й канал.
gradCAM
функция автоматически выбирает сокращение и слои признаков, которые будут использоваться при вычислении карты Grad-CAM. Для некоторых сетей выбранные слои могут оказаться неподходящими. Например, если ваша сеть имеет несколько слоев, которые могут использоваться в качестве слоя признаков, то функция выбирает один из этих слоев, но ее выбор может оказаться не самым подходящим. Для таких сетей задайте, какой слой функции использовать, используя 'FeatureLayer'
аргумент имя-значение.
[1] Selvaraju, Ramprasaath R., Michael Cogswell, Abhishek Das, Ramakrishna Vedantam, Devi Parikh и Dhruv Batra. «Grad-CAM: визуальные объяснения из глубоких сетей через локализацию на основе градиентов». 2017 (октябрь 2017): 618-626, https://doi.org/10.1109/ICCV.2017.74.
[2] Виноградова, Кира, Александр Дибров и Джин Майерс. «К интерпретации семантической сегментации через отображение активации класса с учетом градиента». Материалы Конференции AAAI по искусственному интеллекту 34, № 10 (апрель 2020): 13943-13944, https://doi.org/10.1609/aaai.v34i10.7244.