¿Qué es una red neuronal?

Mascote do LinuxPro conectando nos da rede neural

Reconocer un 3 garabato en 28×28 píxeles es instantáneo para ti. Escribir un if/else que haga lo mismo — curva aquí, trazo allí, y si está torcido? — es un infierno. La red neuronal del vídeo But what is a neural network?, de 3Blue1Brown (Grant Sanderson), desmonta esto: no es magia, es una función con miles de botones.

Este texto sigue el capítulo 1 de la serie de deep learning. La cuenta que la GPU hace en el post GPU vs TPU es exactamente esta: multiplicar matrices, un millón de veces.

Una neurona es un número

Olvida el dibujo biológico. En silicio, una neurona es un recipiente con un número — la activación. En MNIST (dígitos manuscritos):

  • Entrada: 28×28 = 784 neuronas. Cada una guarda el brillo del píxel, de 0 (negro) a 1 (blanco).
  • Salida: 10 neuronas, una por dígito 0–9. El valor más alto es la suposición.
  • Ocultas: en el ejemplo del vídeo, dos capas de 16. La red queda 784 → 16 → 16 → 10.
entrada 784 px   →   oculta 16   →   oculta 16   →   saída 10
  (pixels)            (bordas)         (formas)        (0..9)

Por qué capas

Un píxel por sí solo no significa nada. La red apila abstracciones:

  • Capa 2: trozos de borde (trazo corto, diagonal).
  • Capa 3: une bordes — círculo arriba + asta = 9; dos círculos = 8; tres rectas = 4.
  • Capa 4: combina las piezas y elige el dígito.

El mismo esquema en el audio: muestra → fonema → sílaba → palabra. Por eso “deep”: profundidad es jerarquía, no marketing.

Pesos, sesgo y activación

Cada arista entre neuronas tiene un peso w. Positivo estimula; negativo inhibe (¿luz en esa región? entonces no es el patrón). Cero ignora el píxel.

El estímulo que llega a la neurona j es la suma ponderada de las activaciones anteriores, más un sesgo b (el umbral: con b = -10, la suma debe superar +10 para que la neurona “se encienda”):

estímulo = (w1·a1 + w2·a2 + … + wn·an) + b

Ese número puede ser cualquier real. La función de activación lo comprime a un intervalo útil. El vídeo utiliza la sigmoide (curva logística), la analogía clásica con el disparo biológico:

σ(x) = 1 / (1 + e^(-x))
  x → -∞  ⇒  0
  x = 0     ⇒  0,5
  x → +∞  ⇒  1

En la práctica, las redes profundas abandonaron la sigmoide a mitad de camino: se satura y el gradiente desaparece (vanishing gradient). El patrón pasó a ser ReLU — barata y suficientemente no lineal:

ReLU(x) = max(0, x)

13.002 botones

¿Cuántos números libres hay en esta red didáctica?

Capas Pesos Sesgos Total
784 → 16 12.544 16 12.560
16 → 16 256 16 272
16 → 10 160 10 170
Suma 12.960 42 13.002

Entrenar es encontrar esos 13 mil números. Gradient descent + backpropagation — el próximo vídeo de la serie. Un LLM de 2026 tiene billones de los mismos botones; la cuenta no cambia, solo la escala. Por eso un modelo no Ollama come RAM: cada parámetro es un float que necesita caber en memoria.

Una línea de álgebra lineal

Neurona a neurona no escala. Apila las activaciones en el vector a, los pesos en la matriz W, los sesgos en el vector b. La capa entera se convierte en:

a¹ = σ( W · a⁰ + b )

Producto matriz-vector, suma el sesgo, aplica σ en cada posición. NumPy, PyTorch, TensorFlow existen para hacer esto rápido — BLAS/GEMM en la GPU. La “IA” del centro de datos es, en el fondo, esa línea repetida.

Entonces, ¿qué es una red neuronal?

Una función f. En MNIST: entra ℝ784, sale ℝ10, por dentro 13.002 parámetros en productos matriciales con no linealidad en medio. Con datos suficientes, esa función aprende patrones que nadie escribiría a mano. El resto — Transformer, atención, GPU — es variación del mismo truco.

Referencias

Trece mil números para leer un dígito. Trillones para conversar. La máquina es la misma.