Cómo funciona una CNN
Antes vimos una red neuronal apilar neuronas en capas para aprender patrones complejos. Pero una sola foto tiene decenas de miles de puntos. Aplanarla en una fila para una red común es demasiado, y el mismo gato corrido un poco se vuelve una entrada totalmente distinta. Por eso surgió un método que escanea partes pequeñas para hallar características, igual que nuestros ojos. Esa es la red que mira imágenes, la CNN.
Una foto es en realidad una rejilla de números
A nuestros ojos solo parece una imagen.
Pero para dar una foto a una computadora
tenemos que convertirla en números.
Mira muy de cerca una foto
y verás puntos diminutos, píxeles, en rejilla.
Cada punto guarda su brillo como un número.
Un punto claro es un número grande, uno oscuro pequeño.
Así que una sola foto
es una rejilla con un número de brillo en cada celda.
Toca la imagen para acercar. De cerca, cada punto guarda un número de brillo, así que ves que la foto es una rejilla de números.
Al acercar, aparecieron los números.
Celdas claras son números grandes, oscuras pequeños.
Una persona ve la forma de un vistazo,
pero para la computadora es solo una tabla de números.
Entonces entre todos estos números,
cómo puede hallar una característica
como un borde o una curva?
Ver todo a la vez es demasiado,
así que estudia partes pequeñas una a una.
Halla una característica con un filtro pequeño
La herramienta que halla una característica es el filtro.
Un filtro es un panel pequeño, mucho menor que la rejilla.
Es como poner una lupa en un punto.
Por ejemplo, un filtro que halla un borde vertical
prefiere un patrón oscuro a la izquierda, claro a la derecha.
Coloca el filtro sobre una ventana de la imagen
y mira cuánto encaja con los números de ahí.
Si el patrón calza bien, la puntuación es alta,
y si no calza, es baja.
Coloca el filtro en distintas ventanas y mira la puntuación. Donde el parche se parece al filtro (oscuro a la izquierda, claro a la derecha), la puntuación es alta, lo que dice que hay un borde vertical.
Cada punto que probaste dio otra puntuación.
Donde el patrón calzaba, era alta.
Eso dice que ahí hay un borde vertical.
Una cosa importa más.
Dondequiera que pongas el mismo filtro,
busca la misma característica.
Así que esté el borde a la izquierda del cuadro
o a la derecha, lo puede captar.
Entonces, en vez de un punto, escaneemos todos.
Desliza el filtro para hacer un mapa de características
Ahora mueve el filtro paso a paso.
Empieza arriba a la izquierda,
una celda a la derecha, luego otra.
Al llegar al final, baja una fila
y escanea de nuevo desde la izquierda.
Anota la puntuación en cada punto,
y las puntuaciones forman una rejilla pequeña nueva.
Este es el mapa de características.
Muestra de un vistazo dónde la característica es fuerte.
Toca para deslizar el filtro paso a paso. La puntuación de cada punto llena el mapa de la derecha. Al terminar, el mapa revela dónde la característica es fuerte.
El filtro barrió toda la rejilla.
Las puntuaciones formaron un mapa de características.
Es menor que la foto original,
pero muestra con claridad dónde está la característica.
Un filtro halla solo un tipo de característica.
Por eso en la práctica usamos muchos filtros juntos.
Bordes verticales, horizontales, curvas,
hallando distintas características a la vez.
Pero estas son aún solo características pequeñas.
Capas más altas, características mayores
Pasa un filtro por el mapa una vez más
y las características pequeñas se juntan en mayores.
La capa frontal ve piezas pequeñas como puntos y bordes,
la de arriba junta bordes en un ojo o una nariz,
y una más alta junta ojos y nariz en un rostro entero.
Es igual que apilar capas en una red neuronal.
La diferencia es que aquí cada capa escanea con filtros.
Así que cuanto más subes,
más abstractas las características que capta.
Toca el botón para subir una capa cada vez. De bordes a partes como un ojo y una nariz, luego a un rostro entero, la abstracción sube paso a paso.
Cada capa arriba, lo que ve creció.
De bordes a ojos y nariz, luego a un rostro.
Las capas bajas ven piezas pequeñas y simples,
y las altas las juntan en formas con sentido.
Es muy parecido a como una persona reconoce cosas.
Ver líneas, reconocer partes, saber el todo.
Escanear con filtros pequeños para hallar características
y apilar esas capas para subir la abstracción
es justo la destreza de una CNN que mira imágenes.
Resumamos
Reunido en una línea, es esto.
Una foto es una rejilla llena de números de brillo.
Una CNN pone un filtro pequeño, una lupa, en una ventana
y puntúa si esa característica está ahí.
Deslizar el mismo filtro por la rejilla
hace un mapa que la halla esté donde esté.
Apilando muchas de esas capas,
de bordes a ojos y nariz, luego a un rostro,
capta características cada vez más abstractas. Eso es una CNN.
Toca los puntos clave en orden para repasar. (una foto es rejilla de números -> un filtro pequeño puntúa una característica -> escanea para hacer un mapa -> capas más altas, más abstractas)
Ahora sabes cómo una computadora ve una imagen.
Convierte la foto en una rejilla de números,
escanéala con filtros pequeños para hallar características,
y apila capas para subir la abstracción paso a paso.
Un gato corrido lo capta igual el mismo filtro.
Esta idea simple, escanear con lupa y juntar características,
es la base de máquinas listas que reconocen imágenes.
Luego sigamos explorando cómo esta forma de ver
se aplica también a texto y sonido.