Gradiente Ponderado Activación Mapas (Grad-CAM)

 

Grad-CAM es una técnica de interpretación y visualización.

 

En modelos de redes neuronales profundas.

 

En arquitecturas convolucionales (CNNs).

 

Permite identificar qué partes de una imagen o entrada.

 

Influyen más en la decisión de la red.

 

Esto se logra generando un mapa de calor.

 

Resalta las regiones de interés en la entrada.

 

Haciendo que el comportamiento del modelo.

 

Sea más transparente y comprensible.

 

¿Cómo Funciona Grad-CAM?

 

Grad-CAM combina las activaciones de las capas convolucionales.

 

Con los gradientes del modelo.

 

Genera un mapa de relevancia sobre la entrada.

 

El enfoque aprovecha las propiedades jerárquicas de las CNNs.

 

Donde las capas profundas identifican características.

 

De alto nivel como bordes o texturas.

 

Paso 1: Identificar la capa de interés

 

Se elige una de las últimas capas convolucionales.

 

Del modelo porque conserva información espacial.

 

Relevante y captura características avanzadas.

 

Paso 2: Calcular gradientes

 

Los gradientes de la salida relacionados con la clase de interés.

 

Con respecto a las activaciones.

 

De la capa seleccionada se computan.

 

Estos gradientes indican la sensibilidad de la clase.

 

De salida con respecto a cada ubicación.

 

En las activaciones.

 

Paso 3: Ponderar activaciones

 

Los gradientes se promedian.

 

A lo largo de las dimensiones espaciales.

 

Obtener un conjunto de pesos αk

 

Ponderan la importancia de cada canal de activación:

 

 

Paso 4: Generar mapa de calor

 

Se combinan las activaciones de la capa convolucional con los pesos αk

 

 

Paso 5: Superponer el mapa de calor

 

El mapa de activación LGrad-CAM se escala

 

Se superpone a la imagen original.

 

Para destacar las regiones relevantes.

 

Ventajas de Grad-CAM

 

Interpretabilidad

 

Grad-CAM proporciona una representación visual.

 

Ayuda a los humanos a entender qué regiones.

 

Influyen más en las decisiones del modelo.

 

Generalidad

 

Funciona con una amplia gama de arquitecturas.

 

Basadas en CNNs.

 

Puede aplicarse a tareas de clasificación de imágenes.

 

Detección de objetos.

 

Reconocimiento de acciones.

 

Transparencia en aplicaciones críticas

 

Es útil en dominios como la medicina.

 

Es esencial justificar las predicciones del modelo.

 

En imágenes médicas.

 

Limitaciones de Grad-CAM

 

Resolución espacial

 

El mapa de calor generado depende de la resolución.

 

De las activaciones de la capa seleccionada.

 

Puede limitar el detalle.

 

Dependencia de la capa seleccionada

 

La elección de la capa convolucional.

 

Afecta directamente los resultados.

 

Una capa mal seleccionada puede no capturar.

 

La información más relevante.

 

No captura interacciones complejas

 

Grad-CAM no considera relaciones no lineales.

 

Interacciones complejas entre las características.

 

Casos de Uso de Grad-CAM

 

Clasificación de imágenes

 

Identificar qué partes de una imagen llevaron a la predicción.

 

De una clase específica.

 

Imágenes médicas

 

Destacar regiones anómalas en imágenes.

 

Radiografías o resonancias magnéticas.

 

Detección de errores en modelos

 

Ayudar a diagnosticar problemas en las predicciones.

 

Al identificar qué información fue ignorada o mal interpretada.

 

Explicabilidad en modelos de visión por computadora

 

Proveer interpretaciones visuales.

 

Pueden ser utilizadas por usuarios no técnicos.

 

Ejemplo Práctico: Grad-CAM con PyTorch

 

Cómo implementar Grad-CAM utilizando PyTorch.

 

import torch
import torch.nn.functional as F
from torchvision import models
import cv2
import numpy as np

# Modelo preentrenado
model = models.resnet50(pretrained=True)
model.eval()

# Imagen de entrada (preprocesada)
image = cv2.imread(«example.jpg»)
image = cv2.resize(image, (224, 224))
input_tensor = torch.tensor(image).permute(2, 0, 1).unsqueeze(0).float() / 255

# Seleccionar capa para Grad-CAM
target_layer = model.layer4[-1] # Última capa convolucional

# Forward hook para capturar activaciones
activations = []

def hook_function(module, input, output):
activations.append(output)

hook = target_layer.register_forward_hook(hook_function)

# Forward pass
output = model(input_tensor)
predicted_class = output.argmax(dim=1)

# Backward pass para calcular gradientes
model.zero_grad()
output[0, predicted_class].backward()

# Gradientes y activaciones
grads = target_layer.weight.grad.cpu().data.numpy()[0] activations = activations[0].cpu().data.numpy()[0]

# Ponderar activaciones con gradientes
weights = np.mean(grads, axis=(1, 2))
cam = np.zeros(activations.shape[1:], dtype=np.float32)

for i, w in enumerate(weights):
cam += w * activations[i]

# ReLU para eliminar valores negativos
cam = np.maximum(cam, 0)

# Normalizar y redimensionar el mapa de calor
cam = cam / cam.max()
cam = cv2.resize(cam, (image.shape[1], image.shape[0]))
heatmap = cv2.applyColorMap(np.uint8(255 * cam), cv2.COLORMAP_JET)
superimposed_image = heatmap * 0.4 + image

# Guardar resultado
cv2.imwrite(«grad_cam_result.jpg», superimposed_image)

 

 

Grad-CAM es una herramienta para los modelos de redes neuronales convolucionales.

 

Más interpretables y confiables.

 

Su capacidad para identificar regiones clave en las entradas.

 

Ayuda a diagnosticar problemas.

 

Mejorar la confianza en aplicaciones críticas.

 

Justificar predicciones en una amplia variedad de dominios.

 

Herramientas como Grad-CAM serán esenciales.

 

Para garantizar la transparencia y la confianza en los modelos.

 

 

Te puede interesar;

Curso de ChatGPT (GRATIS)

 

Manu Duque
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Nunca almacenamos información personal.

Puedes revisar nuestra política en la página de Política de Privacidad, Condiciones de Uso y Cookies.