Escudo de la Universidad Autónoma de Santo Domingo Logo de la Facultad de Ciencias de la UASD

Universidad Autónoma de Santo Domingo
Facultad de Ciencias · Escuela de Matemática

FONDOCYT · UASD

IA para la detección de enfermedades foliares en arroz y musáceas mediante drones EXPLORANDO LA MATEMÁTICA

Arrozal visto desde el dron Mapa del índice NDRE del mismo arrozal Plantación de banano vista desde el dron Banda de infrarrojo cercano del arrozal
Contenido

Lo que veremos hoy

El proyecto

Ver la enfermedad antes que el ojo, y fumigar solo donde hace falta

  • El arroz y las musáceas (bananos) están entre los rubros más consumidos del país.
  • Las enfermedades foliares (piricularia, mancha parda, sigatoka) se detectan hoy recorriendo la finca, cuando el daño ya es visible.
  • Nuestra propuesta: un dron con cámara multiespectral toma las imágenes, una red neuronal marca las zonas afectadas y un dron fumigador aplica solo allí.

Equipo investigador

Mtro. Joel Abel Macea Selmo · investigador principal (matemática)
PhD Rosalba Rodríguez · coinvestigadora (Especilista en Sanidad Vegetal y Docente F. Ciencias Agronómicas)
Robert Muñoz Rivera · Doctorante en IA
Marco Antonio Reyes · Asistentes de investigación

Equipo del proyecto en un arrozal de Mao.
El proyecto

Dos drones: uno que ve y uno que actúa

DJI Mavic 3 Multispectral. El que ve. Foto: ZLEA · CC BY-SA 4.0
  • Una cámara a color de 20 MP y cuatro cámaras de 5 MP, una por banda de luz.
  • Posicionamiento RTK: cada foto queda ubicada con precisión de centímetros.
DJI Agras. El que actúa. En la foto, un T50, de la misma serie que nuestro T40. Foto: Blervis · CC0
  • Nuestro Agras T40: dron fumigador con tanque de 40 litros.
  • Acepta un mapa de prescripción: cuánto producto aplicar en cada zona.
El proyecto

Visitas a: Mao, Bonao y San Francisco

Revisión de plántulas en campo.
Arrozal desde el dron
Arroz visto por el dron.
Banano desde el dron
Banano visto por el dron.
Plátano desde el dron
Plátano visto por el dron.
~24 GBde imágenes
5 imágenespor cada disparo del dron

El procesamiento empezó por el arroz; banano y plátano son la etapa siguiente.

El proyecto

¿Por qué multiespectral? Cada disparo produce cinco imágenes

Cada toma en blanco y negro mide cuánta luz de un solo color refleja el cultivo: claro = refleja mucho; oscuro = la absorbe.

Foto a color
Color (RGB)
La foto normal: lo que ve el ojo.
Banda verde
Verde · 560 nm
La planta refleja un poco: por eso la vemos verde.
Banda roja
Rojo · 650 nm
La clorofila lo absorbe: planta sana, oscura.
Banda de borde rojo
Borde rojo · 730 nm
El primero en cambiar cuando hay estrés.
Banda de infrarrojo cercano
Infrarrojo · 860 nm
Lo refleja la hoja sana por dentro: clara.

Una hoja sana refleja mucho infrarrojo y absorbe el rojo. Cuando se estresa, ese patrón cambia antes de que la hoja se vea amarilla.

El proyecto

Indices de vegetación

Con dos bandas se construye un índice de vegetación, un número entre −1 y 1 para cada píxel:

$$\text{NDVI}=\frac{\text{NIR}-\text{Rojo}}{\text{NIR}+\text{Rojo}}$$ $$\text{NDRE}=\frac{\text{NIR}-\text{Borde rojo}}{\text{NIR}+\text{Borde rojo}}$$
  • NDVI separa planta de suelo.
  • NDRE es más sensible al estado de la clorofila.

Un índice mira cada píxel por separado. Una red convolucional mira también a sus vecinos: formas, bordes y texturas.

Mapa NDVI
NDVI
Mapa NDRE
NDRE

Escala de color: de rojo (valor bajo) a verde (valor alto), ajustada al rango de esta imagen.

El proyecto

Etapa actual

1. CapturaVuelos en Mao sobre arroz, banano y plátano.Hecho
2. PreparaciónAlinear bandas, quitar suelo, recortar.Hecho (arroz)
3. Etiquetado38,956 recortes con etiqueta automática.En Proceso
4. Red neuronalU-Net de 4 bandas entrenada en 2 GPU.Primera versión
5. Equipo de campoLlevar el modelo a un computador portátil de borde.Pendiente
6. Mapa de fumigaciónExportar la prescripción para el Agras T40.En proceso de compra

Lo que ya funciona (versión preliminar)

Un primer flujo en arroz, de las fotos del dron a un mapa por píxel. En una prueba inicial, la red discrimina, pero con sesgo.

Contexto IA

IA, aprendizaje automático y aprendizaje profundo

Inteligencia artificialmáquinas que resuelven tareas "inteligentes"
Aprendizaje automáticoAlgoritmos que aprenden de datos, no de reglas
Aprendizaje profundoredes neuronales con muchas capas

Programar: yo escribo la regla.
Aprender: muestro ejemplos y la máquina ajusta la regla.

Dónde avanza más rápido hoy

  • Lenguaje: asistentes, traducción, programación.
  • Visión: diagnóstico por imagen, vehículos, satélites y drones.
  • Voz y audio: reconocimiento del habla, dictado, voces sintéticas.
  • Ciencia: estructura de proteínas, clima, nuevos materiales.
  • Agricultura: plagas y enfermedades, riego, estimación de cosecha.
Contexto

Aprender es ajustar parámetros: el caso más simple

En ámbar, la distancia de cada punto a la recta: el error.

Regresión lineal. Buscamos la recta que mejor se ajusta a los puntos:

$$y=m\,x+b$$

La función de pérdida resume todos los errores en un número; aquí, el error cuadrático medio:

$$\text{MSE}(m,b)=\frac{1}{n}\sum_{i=1}^{n}\big(y_i-(m\,x_i+b)\big)^{2}$$
2parámetros en esta recta: m y b
n + 1en un perceptrón con n entradas
25,557,032red de simulación en COLAB (ResNet-50)
Contexto

La pieza más pequeña: el perceptrón

x₁x₂x₃yb Σ φ w₁w₂w₃ entradassuma ponderadaactivaciónsalidasesgo

Definición. Una neurona artificial: recibe números, los combina con una suma ponderada y decide con una función de activación. La propuso Frank Rosenblatt en 1958.

$$y=\varphi\Big(\sum_{i=1}^{n} w_i\,x_i+b\Big)=\varphi\big(\mathbf{w}^{\top}\mathbf{x}+b\big)$$
  • $\mathbf{x}$: las entradas (por ejemplo, los píxeles).
  • $\mathbf{w}$ y $b$: los pesos y el sesgo. Son lo que se aprende.
  • $\varphi$: la activación. En el perceptrón original, un escalón: 1 si la suma es positiva, 0 si no.
  • Geométricamente, $\mathbf{w}^{\top}\mathbf{x}+b=0$ es un hiperplano: el perceptrón separa el espacio en dos lados.
↓ OTRAS ACTIVACIONES
Para profundizar

La activación no es una sola: algunas de las más usadas

Escalón

$\varphi(x)=\begin{cases}1 & x>0\\ 0 & x\le 0\end{cases}$

La del perceptrón original. Su derivada es cero donde existe: el gradiente no indica cómo ajustar.

Sigmoide

$\sigma(x)=\dfrac{1}{1+e^{-x}}$

Aplasta cualquier número al intervalo (0, 1). Se lee como una probabilidad.

Tangente hiperbólica

$\tanh(x)=\dfrac{e^{x}-e^{-x}}{e^{x}+e^{-x}}$

Como la sigmoide, pero centrada en cero: va de −1 a 1.

ReLU

$\text{ReLU}(x)=\max(0,x)$

La más usada en redes convolucionales desde 2012: simple y rápida.

GELU

$\text{GELU}(x)=x\,\Phi(x)$

Una ReLU suavizada ($\Phi$ es la distribución normal acumulada). Es la habitual en los transformers.

Todas cumplen el mismo papel: romper la linealidad. Se les pide ser no lineales y, para poder entrenar con el gradiente, derivables en casi todo punto con derivada que no se anule siempre.

Contexto

De una neurona a una red profunda

entrada xcapa 1capa 2salida

Una capa son muchos perceptrones en paralelo: los pesos pasan de un vector a una matriz.

$$\mathbf{h}=\varphi\big(W\mathbf{x}+\mathbf{b}\big)$$

Una red profunda es una composición de capas: la salida de una es la entrada de la siguiente.

$$f(\mathbf{x})=\varphi_L\Big(W_L\cdots\varphi_2\big(W_2\,\varphi_1(W_1\mathbf{x}+\mathbf{b}_1)+\mathbf{b}_2\big)\cdots+\mathbf{b}_L\Big)$$

Aprender es encontrar todas las $W$ y $\mathbf{b}$. Una red convolucional es este mismo esquema, donde cada $W$ es un filtro pequeño que se repite por toda la imagen.

Contexto

Sabemos cómo aprende, pero no del todo cómo actúa cada neurona

“We have a very good idea of sort of roughly what it's doing. But as soon as it gets really complicated, we don't actually know what's going on any more than we know what's going on in your brain.”

«Tenemos una idea bastante buena de, a grandes rasgos, lo que está haciendo. Pero en cuanto se vuelve realmente complicado, no sabemos qué está pasando, igual que no sabemos qué pasa en tu cerebro.»

Geoffrey Hinton, entrevista en 60 Minutes (CBS News), octubre de 2023

¿Quién es Geoffrey Hinton?

  • Científico británico-canadiense (1947), llamado el «padrino de la IA».
  • Premio Nobel de Física 2024, junto a John Hopfield, «por descubrimientos e invenciones fundamentales que permiten el aprendizaje automático con redes neuronales artificiales».
  • Su aporte premiado: la máquina de Boltzmann (1985), una red que aprende patrones por sí sola con ideas de la física estadística.
  • En 1986 popularizó la retropropagación (la regla de la cadena aplicada capa por capa, de la salida a la entrada, para derivar el error respecto a cada peso), el método con el que hoy se entrenan las redes.
Contexto

Caja blanca y caja negra

Caja blanca: el modelo se puede leer

Regresión lineal, árboles de decisión, reglas.

si NDRE < 0.20 → «estrés»
si no → «sana»
  • Pocos números, y cada uno significa algo.
  • Una persona puede revisar por qué decidió así.
  • Límite: alguien tiene que escoger qué medir.

Caja negra: el modelo funciona, pero no se deja leer

Redes neuronales profundas.

25,557,032 números
(una ResNet-50)
  • Aprende sola qué medir: bordes, texturas, formas.
  • Conocemos cada operación; no sabemos qué significa cada número.
  • Por eso existe un área entera dedicada a interpretarlas: la IA explicable (XAI).

Hoy abrimos la caja: la matemática de cada pieza sí se conoce. Lo difícil es entender qué aprendió el conjunto de maneral individual.

Contexto

Visión computarizada: tres preguntas sobre una imagen

Clasificación

¿Qué hay?
Una etiqueta para toda la imagen: "gato", "perro"… o "hoja sana", "piricularia".

Detección

¿Qué hay y dónde?
Un recuadro alrededor de cada objeto.

Segmentación

¿Qué es cada píxel?
Un mapa del mismo tamaño que la imagen. Es lo que necesita el dron fumigador.

Hoy veremos la matemática de un clasificador. La segmentación usa exactamente las mismas piezas, repetidas para cada píxel.

La herramienta común a las tres tareas es la red neuronal convolucional (CNN, por sus siglas en inglés).

Contexto

Sesenta años enseñando a las máquinas a ver

1959
Hubel y WieselNeuronas de la corteza visual que responden a bordes.
1980
NeocognitrónPrimera red por capas inspirada en esa idea.
1998
LeNet-5Lee dígitos escritos a mano en cheques.
2012
AlexNetGana ImageNet con GPU. Empieza el auge.
2014
VGG y GoogLeNetRedes mucho más profundas.
2015
ResNet y U‑NetMás de 100 capas; segmentación precisa.
2020
Vision TransformerLa imagen como secuencia de trozos.
2023
Segment AnythingUn modelo que segmenta casi cualquier objeto.

En ámbar, los dos hitos que usamos hoy: la simulacion de Google COLAB corre una ResNet y el proyecto entrena una U-Net.

↓ ARTÍCULOS ORIGINALES
Para profundizar

Los artículos detrás de cada hito

AñoArtículoAporteEnlace
1998LeCun et al. Gradient-based learning applied to document recognitionLeNet-5: convolución, submuestreo y entrenamiento por gradiente.doi:10.1109/5.726791
2012Krizhevsky, Sutskever y Hinton. ImageNet classification with deep convolutional neural networksAlexNet: ReLU, GPU y un salto de precisión en ImageNet.NeurIPS 2012
2013Zeiler y Fergus. Visualizing and understanding convolutional networksMuestra qué aprende cada capa: bordes, texturas, partes.arXiv:1311.2901
2014Simonyan y Zisserman. Very deep convolutional networks for large-scale image recognitionVGG: muchas capas con filtros pequeños de 3×3.arXiv:1409.1556
2014Szegedy et al. Going deeper with convolutionsGoogLeNet: filtros de varios tamaños en paralelo.arXiv:1409.4842
2015He et al. Deep residual learning for image recognitionResNet: conexiones de atajo que permiten más de 100 capas.arXiv:1512.03385
2015Ronneberger, Fischer y Brox. U-Net: convolutional networks for biomedical image segmentationU-Net: la arquitectura de segmentación del proyecto.arXiv:1505.04597
2016Mohanty, Hughes y Salathé. Using deep learning for image-based plant disease detectionCNN aplicadas a 26 enfermedades en 14 cultivos.arXiv:1604.03169
2020Dosovitskiy et al. An image is worth 16x16 wordsVision Transformer: atención en lugar de convolución.arXiv:2010.11929
Contexto

La red convolucional no es la única forma de ver

Redes convolucionales (CNN)

  • Miran la imagen con filtros pequeños que se deslizan: primero lo local, después lo global.
  • Traen incorporada una suposición útil: un patrón es el mismo esté donde esté.
  • Aprenden bien con pocos datos y corren en equipos modestos.
  • Ejemplos: LeNet, AlexNet, ResNet, U-Net.

Transformers de visión (ViT)

  • Cortan la imagen en trozos de 16 × 16 píxeles y los tratan como palabras de una frase.
  • Con la atención, cada trozo se compara con todos los demás desde la primera capa.
  • Suelen necesitar muchos más datos y cómputo.
  • Ejemplos: ViT, Swin, Segment Anything.
$$\text{Atención}(Q,K,V)=\text{softmax}\Big(\frac{QK^{\top}}{\sqrt{d}}\Big)V$$

Hoy estudiamos la CNN porque es la que usa el proyecto: pocas imágenes etiquetadas y un equipo de campo pequeño. La matemática de fondo es la misma: productos de matrices, softmax y gradiente.

La matemática

El recorrido: de una foto a una decisión

Imagennúmeros en una rejilla
Convoluciónbuscar un patrón
ReLUquedarse con lo positivo
Poolingresumir
Softmaxconvertir en probabilidades
Pérdidamedir el error
Gradientecorregir

Toda la red es una función con millones de números ajustables. Entrenar es buscar los números que hacen pequeño el error.

  • Verde: lo que la red calcula (álgebra lineal).
  • Ámbar: cómo la red aprende (cálculo).
La matemática

Qué matemática hay dentro de una red neuronal

ÁreaDónde intervieneLo veremos en
Álgebra linealUna imagen es una matriz o un tensor. La convolución es un producto punto repetido.Matriz, tensor, convolución
CálculoEl gradiente dice cómo ajustar cada peso; la regla de la cadena lo lleva por todas las capas. El AUC es una integral.Gradiente, regla de la cadena, AUC
Probabilidad y estadísticaLa salida es una distribución de probabilidad; el error se mide con entropía cruzada. Generalizar es un problema estadístico.Softmax, entropía cruzada, curva ROC
OptimizaciónEntrenar es minimizar una función de millones de variables. Elegir hiperparámetros también, pero sin derivadas.Descenso del gradiente, Adam,
hiperparámetros
GeometríaUnir cientos de fotos en un mapa exige geometría proyectiva.Ortomosaico
La matemática

Nuestro ejemplo: ¿cómo sabe una máquina que esto es un gato?

Foto de la cara de un gato atigrado
Foto de dominio público (ejemplo «Chelsea» de scikit-image). Es la misma que clasifica la demostración.

Para nosotros es inmediato. Para la computadora esta foto son 270,000 números, y ninguno dice «gato».

300 × 300 píxeles × 3 colores (rojo, verde y azul) = 270,000. En grises serían 90,000.

  • No se puede escribir la regla a mano: «orejas en punta, bigotes, ojos rasgados» no es una fórmula.
  • La red la aprende a partir de miles de fotos ya etiquetadas.
  • Seguiremos esta foto por cada pieza de la red, y al final volveremos al arroz: allí la pregunta no es «¿gato o perro?», sino «¿sana o enferma?», y la matemática es la misma.
La matemática · 1

Una imagen en grises es una matriz

Cara del gato en escala de grises
El gato, en grises: 300 × 300 píxeles (90,000 números).
La misma foto reducida a 12 × 12 píxeles (144 números).
Lo que recibe la computadora: 0 = negro, 255 = blanco.

$A\in\{0,\dots,255\}^{12\times 12}$  ·  pasa el cursor sobre un píxel para ver su número

La reducimos a 12 × 12 solo para poder leer la matriz. La red usa la foto completa (224 × 224 en la demostración).

↓ CON UNA HOJA DE ARROZ
Para estudiar en casa

La misma idea con una hoja de arroz

Recorte de hojas de arroz en escala de grises
Recorte de hojas de arroz tomado por el dron, en grises.
El mismo recorte reducido a 12 × 12 píxeles.
Lo que recibe la computadora.

Gato u hoja, para la red es lo mismo: una rejilla de números. En «Convolución en acción» puedes cambiar entre las dos imágenes.

La matemática · 2

Una imagen a color son tres matrices: rojo, verde y azul

Cara del gato a color
El gato, a color: 300 × 300 píxeles.
Reducido a 12 × 12 para poder verlo.
=
Canal rojo (R)
Canal verde (G)
Canal azul (B)

Cada píxel ya no es un número, sino tres: cuánto rojo, cuánto verde y cuánto azul. Mezclados dan el color que vemos.

La matemática · 2

Tensor: de un número a una pila de matrices

Escalarorden 0$a\in\mathbb{R}$un píxel en grises
Vectororden 1$\mathbf{v}\in\mathbb{R}^{n}$una fila de píxeles
Matrizorden 2$A\in\mathbb{R}^{m\times n}$una imagen en grises
Tensororden 3$X\in\mathbb{R}^{c\times m\times n}$una imagen a color

Matriz

Una matriz real de $m\times n$ es un arreglo de números con dos índices:

$$A=(a_{ij}),\qquad 1\le i\le m,\;\; 1\le j\le n$$

A cada par de índices $(i,j)$, fila y columna, le corresponde un número $a_{ij}$.

Tensor

Un tensor real de orden $k$ y tamaño $n_1\times\cdots\times n_k$ es un arreglo de números con $k$ índices:

$$X=(x_{i_1 i_2\cdots i_k}),\qquad 1\le i_j\le n_j$$

A cada lista de $k$ índices $(i_1,\dots,i_k)$ le corresponde un número. El orden es cuántos índices hacen falta.

Escalar, vector y matriz son los casos $k=0,1,2$. Nuestra foto a color es un tensor de orden 3 y tamaño $3\times 300\times 300$.

Fuente: Kolda y Bader, Tensor Decompositions and Applications, SIAM Review 51(3), 2009: «A tensor is a multidimensional array». doi:10.1137/07070111X

↓ VERSIÓN ABSTRACTA
Para profundizar

Tensor, en abstracto: una aplicación multilineal

En matemática

Sea $V$ un espacio vectorial real de dimensión finita y $V^{*}$ su dual. Un tensor de tipo $(p,q)$ sobre $V$ es una aplicación multilineal

$$T:\underbrace{V^{*}\times\cdots\times V^{*}}_{p}\times\underbrace{V\times\cdots\times V}_{q}\longrightarrow\mathbb{R}$$

Equivalentemente, un elemento de $V^{\otimes p}\otimes (V^{*})^{\otimes q}$. Fijada una base $\{e_i\}$ de $V$, con $n=\dim V$, queda determinado por sus $n^{\,p+q}$ componentes $T^{\,i_1\dots i_p}_{\,j_1\dots j_q}$, que se transforman de modo prescrito al cambiar de base.

En aprendizaje profundo

Se llama tensor al arreglo de números con varios índices, es decir, a las componentes en una base ya fijada:

$$X=(X_{c,i,j})\in\mathbb{R}^{c\times m\times n}\;\cong\;\mathbb{R}^{c}\otimes\mathbb{R}^{m}\otimes\mathbb{R}^{n}$$

Una imagen a color es un elemento de ese producto tensorial escrito en la base canónica. En la práctica solo interesa su forma; nunca se cambia de base, así que la ley de transformación no interviene.

Las dos definiciones se conectan así: el arreglo de la lámina anterior son las componentes de un tensor abstracto una vez fijada una base.

La matemática · 2

Una imagen a color es un tensor: varias matrices apiladas

Foto normal: 3 canales

$X\in\mathbb{R}^{3\times H\times W}$

Nuestro dron: 4 canales

Verde
Rojo
Borde rojo
Infrarrojo

$X\in\mathbb{R}^{4\times 224\times 224}$

La matemática · 3

Convolución: un promedio ponderado que se desliza

En matemática

Combinar dos funciones deslizando una sobre la otra:

$$(f*g)(t)=\int_{-\infty}^{\infty} f(\tau)\,g(t-\tau)\,d\tau$$

Aparece en probabilidad (suma de variables aleatorias), en señales (filtros) y en ecuaciones diferenciales.

En una imagen

La integral se vuelve una suma sobre una ventana pequeña, el filtro o kernel $K$:

$$S(i,j)=\sum_{m}\sum_{n} I(i+m,\,j+n)\,K(m,n)$$

Para cada posición: multiplicar ventana por filtro, casilla a casilla, y sumar.

El resultado es grande donde la imagen se parece al filtro. Un filtro es un detector de patrones.

↓ ¿O CORRELACIÓN?
Para profundizar

Un detalle para matemáticos: en rigor es correlación cruzada

Convolución (voltea el filtro)

$$S(i,j)=\sum_{m}\sum_{n} I(i-m,\,j-n)\,K(m,n)$$

Es conmutativa y asociativa: propiedades cómodas para demostrar teoremas.

Correlación cruzada (no lo voltea)

$$S(i,j)=\sum_{m}\sum_{n} I(i+m,\,j+n)\,K(m,n)$$

Es lo que calculan PyTorch y TensorFlow bajo el nombre de "convolución".

Para una red no hay diferencia práctica: como el filtro se aprende, la red aprendería el filtro ya volteado.

La matemática · 3

Convolución a mano: multiplico, sumo y me muevo una casilla

Entrada 6 × 6

Filtro 3 × 3

Salida 4 × 4

Los números de la entrada son un trozo de la matriz del gato. La ventana de 3 × 3 cabe en 4 × 4 posiciones: por eso la salida es más pequeña.

La matemática · 3

Convolución en acción: cambia el filtro y mira qué detecta

Entrada

Filtro 3 × 3

Salida

Pasa el cursor sobre la entrada para ver el cálculo en ese punto.

En una CNN nadie escribe estos nueve números: la red los aprende. Son sus parámetros.

La matemática · 4

ReLU: sin ella, cien capas valdrían lo mismo que una

x ReLU(x) negativo → 0 positivo → igual

$\text{ReLU}(x)=\max(0,\,x)$

Qué hace: apaga las respuestas negativas del filtro. Queda solo "aquí sí encontré el patrón".

La no linealidad entre capas es lo que permite construir patrones complejos a partir de patrones simples.

La matemática · 5

Max pooling: resumir cada vecindario con su valor más alto

1
3
2
0
5
2
1
4
0
1
7
3
2
6
2
1
→
5
4
6
7

Reduce

De 4 × 4 a 2 × 2: la cuarta parte de los números para la capa siguiente.

Tolera

Si el patrón se mueve un píxel, el máximo del vecindario es el mismo.

Amplía la vista

Cada número de la salida resume una región más grande de la foto original.

La matemática · 6

Apilar las piezas: de bordes a objetos

Imagen
3 × 224 × 224
→
Conv + ReLU
+ Pooling
→
Conv + ReLU
+ Pooling
→
Conv + ReLU
+ Pooling
→
Conv + ReLU
+ Pooling
→
Vector de
características
→
Un puntaje
por clase

La imagen se hace más pequeña y el número de filtros crece: menos "dónde", más "qué".

Primeras capasBordes y cambios de color en distintas direcciones.
Capas intermediasTexturas y esquinas: combinaciones de bordes.
Capas profundasPartes: un ojo, una oreja, los bigotes.
SalidaUn número por clase: cuánta evidencia hay de cada una.
La matemática · 7

Dos clases: la sigmoide convierte un puntaje en probabilidad

¿Gato o perro? La red da un solo puntaje $z$: cuánta evidencia ve de «gato». La sigmoide lo convierte en probabilidad:

$$p_{\text{gato}}=\sigma(z)=\frac{1}{1+e^{-z}}\qquad p_{\text{perro}}=1-p_{\text{gato}}$$

Pérdida: entropía cruzada binaria

$$L=-\big[\,y\ln p+(1-y)\ln(1-p)\,\big]$$

$y=1$ si era gato, $y=0$ si era perro. La foto en realidad era un:

Gato
Perro

Así decide la U-Net del proyecto en cada píxel: una sigmoide da la probabilidad de «estrés» y la pérdida binaria mide el error.

La matemática · 8

Más de dos clases: softmax y pérdida

Softmax (multiclase)

$$p_k=\frac{e^{z_k}}{\sum_j e^{z_j}}$$

Con dos clases, esta fórmula vuelve a ser la sigmoide (↓ deducción).

ClasePuntaje zProbabilidad Gato2.0
0.66 Perro1.0
0.24 Conejo0.1
0.10

Mueve los puntajes: las probabilidades siguen siendo positivas y siguen sumando 1. En el proyecto las clases serían «hoja sana», «piricularia» y «mancha parda».

Pérdida: entropía cruzada

$$L=-\ln\big(p_{\text{clase correcta}}\big)$$

El animal de la foto en realidad era un:

L = -ln(0.66) = 0.42
Error pequeño

La pérdida resume en un solo número qué tan equivocada está la red. Ese número es lo que vamos a minimizar.

↓ DEDUCCIÓN
Para profundizar

Por qué con dos clases la softmax es la sigmoide

$$p_{\text{gato}}=\frac{e^{z_{\text{gato}}}}{e^{z_{\text{gato}}}+e^{z_{\text{perro}}}}=\frac{1}{1+e^{\,z_{\text{perro}}-z_{\text{gato}}}}=\frac{1}{1+e^{-(z_{\text{gato}}-z_{\text{perro}})}}=\sigma(z_{\text{gato}}-z_{\text{perro}})$$
  • Basta dividir numerador y denominador por $e^{z_{\text{gato}}}$.
  • Solo importa la diferencia de puntajes: sumar la misma constante a todos no cambia las probabilidades. Por eso con dos clases alcanza un solo puntaje $z=z_{\text{gato}}-z_{\text{perro}}$.
  • La entropía cruzada de la softmax, $-\ln p_{\text{clase correcta}}$, se convierte en la entropía cruzada binaria de la lámina de la sigmoide.
La matemática · 9

Descenso del gradiente: bajar la cuesta paso a paso

$$w \leftarrow w-\eta\,\frac{\partial L}{\partial w}$$

Paso pequeño: avanza lento. Paso grande: se pasa de largo y puede divergir.

↓ CADENA Y ADAM
Para profundizar

¿Cómo se deriva una red entera? Regla de la cadena

Una red es una composición de funciones, capa tras capa:

$$L=\ell\big(f_3(f_2(f_1(x;\,w_1);\,w_2);\,w_3)\big)$$

La derivada respecto a un peso de la primera capa es un producto de derivadas:

$$\frac{\partial L}{\partial w_1}=\frac{\partial L}{\partial f_3}\cdot\frac{\partial f_3}{\partial f_2}\cdot\frac{\partial f_2}{\partial f_1}\cdot\frac{\partial f_1}{\partial w_1}$$

Retropropagación (backpropagation)

Es calcular ese producto de atrás hacia adelante, reutilizando los factores comunes. Así el costo de obtener todas las derivadas es parecido al de evaluar la red una vez.

La derivada de ReLU es 0 o 1, y la de una convolución es otra convolución: por eso todo esto es rápido en una GPU.

Para profundizar

Más allá del paso fijo: el optimizador Adam

$$\begin{aligned} m_t &= \beta_1\,m_{t-1}+(1-\beta_1)\,g_t\\ v_t &= \beta_2\,v_{t-1}+(1-\beta_2)\,g_t^{2}\\ \hat m_t &= \frac{m_t}{1-\beta_1^{\,t}},\qquad \hat v_t=\frac{v_t}{1-\beta_2^{\,t}}\\ w_t &= w_{t-1}-\eta\,\frac{\hat m_t}{\sqrt{\hat v_t}+\varepsilon} \end{aligned}$$

$g_t$ es el gradiente en el paso $t$. Valores habituales: $\beta_1=0.9,\ \beta_2=0.999,\ \varepsilon=10^{-8}$.

  • $m_t$, el momento: promedio de los gradientes recientes. Suaviza el camino y no se deja frenar por un gradiente aislado.
  • $v_t$, la escala: promedio de los gradientes al cuadrado. Si un peso tiene gradientes grandes, su paso se achica; si son pequeños, se agranda.
  • Corrección de sesgo: como $m$ y $v$ arrancan en cero, al principio se dividen para no subestimarlos.
  • Resultado: cada peso tiene su propio tamaño de paso, que se ajusta solo. Por eso es el optimizador más usado para entrenar redes.

Kingma y Ba, Adam: a method for stochastic optimization, 2014. arXiv:1412.6980

Simulación

Simulación de una CNN: una red pequeña leyendo un dígito

Dibujas un número del 0 al 9 y ves cómo cada capa de la red lo transforma hasta dar la respuesta. Reconocer dígitos escritos a mano es el ejemplo clásico con el que nacieron las redes convolucionales.

CNN Explorer, de moralesangel. Interfaz en inglés; necesita conexión.

Base de datos: MNIST · 70,000 imágenes de 28 × 28

60,000 para entrenar (85.7 %) · 10,000 para prueba (14.3 %)

Validación: no aparta un grupo propio; usa el de prueba.

En la aplicaciónQué se veLo vimos en
Dibujar un dígitoLa entrada: 28 × 28 números.Imagen = matriz
Replay forward passLa señal avanzando capa por capa.Apilar las piezas
Clic en un cubo de Conv 1El filtro deslizándose sobre la imagen.Convolución a mano
Pestaña KernelsLos filtros que la red aprendió.Convolución en acción
Barras de OutputDiez probabilidades que suman 1.Softmax
Pestaña TrainLa red aprendiendo desde cero.Descenso del gradiente

Esta red tiene 52,266 parámetros y acierta el 98.9 % de los dígitos. La siguiente demostración usa una con 25 millones.

Simulación

Pruébalo: un clasificador real en tu navegador

  1. Abrir el cuaderno de Google Colab.
  2. Ejecutar las celdas en orden.
  3. Subir cualquier foto.
  4. Ver las 5 clases más probables, los filtros que la red aprendió y la zona de la foto en la que se fijó.

El modelo es una ResNet-50 entrenada con ImageNet: reconoce 1,000 categorías cotidianas (animales, objetos, alimentos). No conoce enfermedades del arroz; para eso hay que entrenarla con nuestras imágenes.

↓ CAPTURAS DE RESPALDO
Simulación · respaldo

Lo que muestra el cuaderno, con una foto de ejemplo

Gráfico de las cinco clases más probables
Softmax. Las 5 clases más probables para la foto de un gato.
Los 64 filtros de la primera capa de ResNet-50
Filtros aprendidos. Primera capa: bordes en varias direcciones y contrastes de color.
Mapa de calor sobre la foto
Gradiente. En rojo, la zona que más pesó en la decisión.
De vuelta al proyecto

U-Net: clasificar cada píxel

Entrada: 4 bandas Salida: 1 mapa cuello de botella Codificador: ¿qué hay? Decodificador: ¿dónde? conexiones de salto: conservan el detalle fino
  • Baja como un clasificador: convolución, ReLU y pooling.
  • Sube de nuevo hasta el tamaño original.
  • En cada píxel de la salida hay una probabilidad: ya no «¿gato o perro?», sino «¿sana o estresada?», repetido 224 × 224 veces.

No hay matemática nueva: son las mismas piezas en forma de U.

↓ CÓMO SE MIDE
Para profundizar

Cómo se mide una segmentación: Dice e IoU

Sea $P$ el conjunto de píxeles que la red marca y $G$ el conjunto marcado en la etiqueta:

$$\text{Dice}=\frac{2\,|P\cap G|}{|P|+|G|}\qquad \text{IoU}=\frac{|P\cap G|}{|P\cup G|}$$

Ambos valen 1 con coincidencia perfecta y 0 sin solapamiento.

98.50 %Dice en 3,845 recortes de validación (preliminar)
97.06 %IoU en los mismos recortes (preliminar)

Medido contra la etiqueta automática (NDRE < 0.20 sobre vegetación), no contra diagnóstico de campo.

La pérdida de entrenamiento combina entropía cruzada con una versión derivable de Dice.

Para profundizar

Otras métricas: matriz de confusión y curva ROC

Etiqueta: síEtiqueta: no
Modelo: síVPverdaderos positivosFPfalsos positivos
Modelo: noFNfalsos negativosVNverdaderos negativos
$$\text{Precisión}=\frac{VP}{VP+FP}\qquad \text{Recall}=\frac{VP}{VP+FN}$$ $$F_1=\frac{2\,\text{Precisión}\cdot\text{Recall}}{\text{Precisión}+\text{Recall}}=\text{Dice}$$

En segmentación binaria, el Dice de la lámina anterior es el $F_1$: la media armónica de precisión y recall.

tasa de falsos positivos (FPR) tasa de verdaderos positivos (TPR) AUC = 0.86 azar (0.5)
$$\text{AUC}=\int_{0}^{1}\text{TPR}\;d(\text{FPR})$$

La curva se traza moviendo el umbral de decisión. El área bajo ella es la probabilidad de que el modelo puntúe más alto un caso positivo que uno negativo, ambos elegidos al azar: 0.5 es azar; 1, perfecto.

De vuelta al proyecto

Del píxel a la parcela: ortomosaico y mapa de fumigación

Fotos sueltascientos por vuelo
Ortomosaicouna sola imagen con coordenadas
U-Netprobabilidad por píxel
Prescripcióndosis 0 %, 60 % o 100 %
Agras T40aplica por zona
Salida del prototipo: foto, NDRE, mapa de la red y prescripción
Prototipo del flujo sobre un disparo del semillero de arroz. Los umbrales de dosis aún no están calibrados con diagnóstico de campo.

El ortomosaico une las fotos corrigiendo la perspectiva, de modo que cada píxel corresponde a un punto del terreno con latitud y longitud.

Sin él tendríamos predicciones sobre fotos; con él tenemos un mapa que el dron fumigador puede seguir.

Meta: aplicar producto solo donde hace falta.

Cierre

Lo que nos llevamos

Tensor

Una imagen es una pila de matrices de números: 3 canales en una foto, 4 en nuestro dron.

Convolución

Un filtro que se desliza busca un patrón. La red no recibe los filtros: los aprende.

ReLU y pooling

Rompen la linealidad y resumen, para apilar capas y pasar de bordes a objetos.

Pérdida y gradiente

La pérdida mide el error en un solo número; el gradiente dice cómo cambiar cada peso para reducirlo.

Gracias. ¿Preguntas?