Universidad de SonoraReconocimiento
de Patrones
06
Unidad 6 · 3 semanas

Redes neuronales

Del perceptrón multicapa a la atención, con PyTorch.

Presentaciones

  • Perceptrón multicapa y diferenciación automática

    La red como atributos aprendidos más un modelo lineal generalizado, qué promete y qué no la aproximación universal, grafos de cómputo y diferenciación automática (PyTorch, TensorFlow, JAX), y las inicializaciones de Xavier y He.

    PDFAbrir
  • Entrenar redes: optimización y regularización

    Minilotes, tasa de aprendizaje, momento, Adam y calendarios; parada temprana, dropout, normalización por lotes y aumento de datos; el costo energético de entrenar.

    PDFAbrir
  • Redes convolucionales

    Por qué importan las imágenes; convolución, campo receptivo y pooling; la parte convolucional como preprocesamiento aprendido bajo un clasificador; y las arquitecturas VGG, ResNet, Inception, Xception y EfficientNet, con Fashion-MNIST.

    PDFAbrir
  • Transferencia y detección de objetos

    Qué aprende cada capa, dónde hay modelos preentrenados, sustituir la última capa contra ajuste fino con EuroSAT, el caso Gender Shades, y la detección de objetos de la ventana deslizante a R-CNN, Faster R-CNN y YOLO.

    PDFAbrir
  • Secuencias: redes recurrentes, atención y transformers

    Predecir la siguiente letra: perplejidad, n-gramas, el gradiente de las redes recurrentes, la LSTM, la atención y la razón del √d, y qué aprenden las cabezas de un transformer.

    PDFAbrir

Las presentaciones se abren en una pestaña nueva. Usa las flechas o la barra espaciadora para avanzar, o para ver todas las láminas y f para pantalla completa.

Libretas de ejemplo

  • Una red neuronal con PyTorch: grafos de cómputo y diferenciación automática

    Un motor de diferenciación automática de 40 líneas comparado con torch.autograd, el costo del modo directo y del inverso, la última capa como GLM, redes en las lunas y los dígitos, e inicialización de Xavier y He.

    Abrir en Colab
  • Entrenar una red con Fashion-MNIST

    SGD, momento y Adam; el ruido del gradiente, el momento en un valle mal condicionado, parada temprana, dropout, normalización por lotes y más datos.

    Abrir en Colab
  • Redes convolucionales con Fashion-MNIST

    La convolución programada y su equivariancia, una red convolucional contra un perceptrón multicapa, su parte convolucional como preprocesamiento para una regresión logística, y los bloques de VGG, ResNet, Inception, Xception y EfficientNet contados y programados.

    Abrir en Colab
  • Transferencia: lo que una red de ImageNet sabe de imágenes de satélite

    Qué ve cada capa de una VGG-16, dónde encontrar modelos preentrenados, y EuroSAT con pocas etiquetas: atributos congelados, sustituir la última capa, ajuste fino y entrenar desde cero.

    Abrir en Colab
  • Detección de objetos: de las ventanas deslizantes a YOLO

    Intersección sobre unión y supresión de no máximos programadas, y detectores preentrenados (Faster R-CNN y YOLO26) en fotos de Hermosillo.

    Abrir en Colab
  • Ajuste fino de YOLO: contar espigas de trigo (Colab con GPU)

    Ajuste fino de YOLO26 con Global Wheat: el formato de las etiquetas, una validación sin fuga, curvas de entrenamiento, mAP y conteo de espigas. Requiere GPU; tarda del orden de una hora en Colab.

    Abrir en Colab
  • Un modelo de lenguaje del Quijote, letra por letra

    De los n-gramas con suavizado de Laplace a una LSTM y un transformer mínimo escrito a mano, con perplejidad, temperatura y mapas de atención.

    Abrir en Colab

Laboratorio

  • Laboratorio 6 · Diferenciación automática y entrenamiento con PyTorch

    Grafos de cómputo y torch.autograd: gradientes con backward(), su acumulación, una operación propia verificada con gradcheck y diferencias finitas; un perceptrón multicapa con inicialización de Xavier o He entrenado con SGD escrito a mano; el ciclo de entrenamiento con torch.optim y una red convolucional pequeña. Se verifica automáticamente.

    Abrir en Colab

Los laboratorios son para practicar y no cuentan para la calificación.

DataCamp

Cursos y proyectos de esta unidad que forman parte de la calificación. Ver Evaluación.

Lecturas

  • Goodfellow, Bengio y Courville (2016). Deep Learning. MIT Press. Capítulos 6–10.
  • Prince (2023). Understanding Deep Learning. MIT Press. Capítulos 6, 9, 10, 11 y 12.
  • Zhang, Lipton, Li y Smola. Dive into Deep Learning. Capítulos 7, 8 y 14 (visión por computadora).
  • Vaswani et al. (2017). Attention is all you need. NeurIPS. Secciones 3 y 4.

Autoevaluación

26 preguntas. Responde, verifica y lee la explicación. No cuenta para la calificación y nada se guarda.

0 de 26 correctas
Pregunta 1

En una red con salida softmax y pérdida de entropía cruzada, ℓ=−∑kykln⁡y^k\ell = -\sum_k y_k \ln \hat y_k con y\mathbf{y} en one-hot, ¿cuánto vale el error de la capa de salida δ[L]=∂ℓ/∂z[L]\boldsymbol\delta^{[L]} = \partial \ell / \partial \mathbf{z}^{[L]}?

Pregunta 2

Una red de dos capas tiene 64 entradas, 64 neuronas ocultas y 10 salidas, con sesgos en ambas capas. ¿Cuántas evaluaciones de la pérdida necesita la verificación del gradiente completo con diferencias centradas?

Pregunta 3

Una red de diez capas ocultas sin funciones de activación (g(z)=zg(z) = z) puede representar fronteras de decisión que una regresión softmax no puede representar.

Pregunta 4

En una red profunda con activaciones ReLU, cada capa tiene nin=256n_{\text{in}} = 256 entradas. ¿Qué varianza de los pesos iniciales mantiene aproximadamente constante la escala de las activaciones de capa en capa?

Pregunta 5

Con minilotes de tamaño B=16B = 16, el error cuadrático medio del gradiente del minilote, E∥gB−g∥2\mathbb{E}\lVert\mathbf{g}_B - \mathbf{g}\rVert^2, vale 12. Si los índices se toman independientes, ¿cuánto vale con B=64B = 64?

Pregunta 6

En un cuadrático con número de condición κ=100\kappa = 100, el descenso por gradiente con la mejor tasa converge con factor (κ−1)/(κ+1)≈0.98(\kappa-1)/(\kappa+1) \approx 0.98 por paso. ¿Qué factor logra el método de la bola pesada con η\eta y β\beta óptimos?

Pregunta 7

En Adam, mt=β1mt−1+(1−β1)gt\mathbf{m}_t = \beta_1\mathbf{m}_{t-1} + (1-\beta_1)\mathbf{g}_t con m0=0\mathbf{m}_0 = 0. Si todos los gradientes tienen esperanza E[g]\mathbb{E}[\mathbf{g}], ¿cuánto vale E[mt]\mathbb{E}[\mathbf{m}_t]?

Pregunta 8

Con dropout invertido (el de PyTorch), al pasar el modelo a evaluación hay que multiplicar los pesos por 1−p1-p para que la escala de las activaciones sea la misma que en el entrenamiento.

Pregunta 9

Una capa convolucional recibe un mapa de 32×3232 \times 32 con 64 canales y aplica 128 filtros de 3×33 \times 3 (con sesgo). ¿Cuántos parámetros tiene?

Pregunta 10

Una imagen de 28×2828 \times 28 pasa por una convolución de 5×55 \times 5 con relleno 2 y paso 2. ¿De qué tamaño es el mapa de salida?

Pregunta 11

Una capa convolucional seguida de max-pooling de 2×22 \times 2 con paso 2 es exactamente invariante a cualquier traslación de un pixel de la imagen de entrada.

Pregunta 12

En EuroSAT, con 10 imágenes etiquetadas por clase, una regresión logística sobre los atributos de una ResNet-18 entrenada en ImageNet acertó el 77 % de las veces; una red pequeña entrenada desde cero con las mismas imágenes, el 55 %. ¿Cuál es la mejor explicación?

Pregunta 13

Un modelo de lenguaje de caracteres tiene, en validación, una entropía cruzada promedio de 1.36 nats por carácter. ¿Cuál es su perplejidad? (Redondea a dos decimales.)

Pregunta 14

En la atención de producto punto se divide q⊤k\mathbf{q}^\top\mathbf{k} entre dk\sqrt{d_k}. Si las componentes de q\mathbf{q} y k\mathbf{k} son independientes, con media 0 y varianza 1, ¿cuál es la razón?

Pregunta 15

En una red recurrente ht=tanh⁡(Wht−1+Uxt)\mathbf{h}_t = \tanh(W\mathbf{h}_{t-1} + U\mathbf{x}_t) con σmax⁡(W)=0.9\sigma_{\max}(W) = 0.9, ¿cuál es la cota superior de ∥∂hT/∂ht∥2\lVert\partial\mathbf{h}_T/\partial\mathbf{h}_t\rVert_2 cuando T−t=50T - t = 50? (Da el valor con tres cifras significativas.)

Pregunta 16

Sin encaje de posición y sin máscara causal, si se permutan las posiciones de la entrada de una capa de autoatención, sus salidas quedan permutadas de la misma manera.

Pregunta 17

En PyTorch se ejecuta dos veces, sin nada en medio, perdida = modelo(X, y); perdida.backward() con los mismos datos. ¿Qué queda en p.grad para cada parámetro p?

Pregunta 18

Una capa con nin=100n_{\text{in}} = 100 entradas y nout=50n_{\text{out}} = 50 salidas, seguida de tanh⁡\tanh, se inicializa con Xavier usando una distribución uniforme U(−r,r)U(-r, r). ¿Cuánto vale rr? (Da tres cifras significativas.)

Pregunta 19

Una red debe predecir el número de bicicletas rentadas en una hora (un conteo). Si se ve la última capa como un modelo lineal generalizado con liga canónica, ¿qué salida y qué pérdida corresponden?

Pregunta 20

Con C=64C = 64 canales de entrada y de salida (sin sesgos), ¿cuántos parámetros menos tienen dos convoluciones de 3×33 \times 3 apiladas que una sola de 5×55 \times 5? Las dos opciones ven un cuadro de 5×55 \times 5 de la entrada.

Pregunta 21

Una red de 56 capas sin conexiones residuales tiene mayor error de entrenamiento que una de 20 capas con el mismo diseño. ¿Qué lo explica mejor?

Pregunta 22

Una convolución normal de 3×33 \times 3 va de C=128C = 128 a C′=128C' = 128 canales. Su versión separable en profundidad (un filtro de 3×33 \times 3 por canal, seguido de una convolución 1×11 \times 1) tiene, sin sesgos, ¿cuántas veces menos parámetros? Da dos decimales.

Pregunta 23

Tienes 300 radiografías etiquetadas y una ResNet-18 preentrenada en ImageNet. ¿Qué haces primero?

Pregunta 24

Una caja verdadera va de (0,0)(0, 0) a (10,10)(10, 10) y la predicha de (5,0)(5, 0) a (15,10)(15, 10). ¿Cuánto vale su IoU? Da dos decimales.

Pregunta 25

¿Por qué R-CNN (2014) tardaba decenas de segundos por imagen y Faster R-CNN (2015) unas décimas?

Pregunta 26

En YOLO, la celda de la rejilla responsable de detectar un objeto es la que contiene el centro de su caja.