
ROSENBLATT: una sola neurona que aprende, paso a paso
En CDPC.1.B.4 tocaba dar el primer paso real hacia las redes neuronales. Antes de hablar de capas, de miles de neuronas conectadas o de modelos que ni cabe explicar en una pizarra, hacía falta ver la pieza más pequeña posible funcionando de verdad: una sola neurona artificial, aprendiendo por sí misma.
Así nace ROSENBLATT: una demostración interactiva de un único perceptrón — el modelo que Frank Rosenblatt presentó en 1958 — aprendiendo a resolver una puerta lógica AND o OR, con la tabla de pesos siempre a la vista. Nada de caja negra: cada clic muestra los pesos antes, el error cometido y el ajuste exacto que se aplica.
[ENLACE AL REPOSITORIO DE GITHUB]
Instalación
El proyecto es deliberadamente ligero: FastAPI sirviendo una única página, y toda la lógica del perceptrón en JavaScript puro, sin ninguna librería de aprendizaje automático de por medio.
# 1. Clona el repositorio
git clone [ENLACE AL REPOSITORIO DE GITHUB]
cd rosenblatt
# 2. Instala las dos únicas dependencias
pip install -r requirements.txt
# 3. Arranca el servidor
python main.py
Y abre el navegador en http://localhost:8032.
No hace falta clave de API, ni conexión a ningún servicio externo, ni base de datos. Todo corre en local, en el navegador.
Qué te vas a encontrar

La interfaz tiene cuatro piezas, siempre visibles a la vez:
- Un selector AND / OR, con la tabla de verdad de la puerta elegida.
- El estado actual de la neurona: sus dos pesos, el sesgo, la época y el paso.
- Un diagrama de la neurona — entradas, pesos rotulados sobre cada línea, la suma, el escalón y la salida — con una línea de retorno que se ilumina cada vez que hay error, precisamente para que se vea que ese error es lo que empuja el ajuste de los pesos.
- Un historial completo, fila a fila, con el antes y el después de cada actualización.
Dos botones gobiernan el ritmo: “Paso a paso” avanza un único ejemplo cada vez, para verlo con calma; “Terminar” completa el entrenamiento de golpe, para cuando ya se ha entendido la mecánica y solo queda comprobar que converge.
Cómo aprende la neurona, paso a paso
La neurona recibe dos entradas, x1 y x2 (cada una 0 o 1), y tiene tres números propios: dos pesos (w1, w2) y un sesgo (b). Con esos tres números hace tres cosas, en este orden, cada vez que le llega un ejemplo:
- Calcula una suma ponderada:
z = w1·x1 + w2·x2 + b. Es literalmente multiplicar cada entrada por su peso, sumarlo todo, y añadir el sesgo. - Aplica una función escalón: si
z ≥ 0, la salida es 1; si no, es 0. No hay término medio — la neurona decide sí o no. - Compara su salida con la esperada según la tabla de verdad de la puerta elegida, y calcula el error:
error = esperado − salida. Ese error solo puede valer −1, 0 o 1.
Si el error es 0, no pasa nada más: la neurona ya acertó y los pesos se quedan como están. Si el error no es 0, se aplica la regla de aprendizaje de Rosenblatt para corregirlo:
w_i ← w_i + tasa_aprendizaje · error · x_i
b ← b + tasa_aprendizaje · error
Con esto se repite el proceso sobre las cuatro combinaciones de entrada una y otra vez (cada vuelta completa es una época), hasta que acierta las cuatro seguidas.
Un ejemplo real, con los valores con los que arranca la página (pesos en cero, AND, tasa de aprendizaje 0.1). El primer clic en “Paso a paso” procesa x1=0, x2=0:
z = 0·0 + 0·0 + 0 = 0. Comoz ≥ 0, la salida es 1.- Pero en la tabla de AND,
(0,0)espera 0. Error =0 − 1 = −1. - Como
x1=0yx2=0, los pesos no cambian (se multiplican por 0):w1yw2siguen en 0. - El sesgo sí cambia, porque no depende de las entradas:
b ← 0 + 0.1·(−1) = −0.1.
Un solo clic, un solo error, un solo número que se mueve. Esa es la fila que aparece en el historial de la página — y es exactamente lo que hay que ver para entender qué es “aprender” en una red neuronal: no magia, un ajuste minúsculo y mecánico, repetido.
Por qué una sola neurona, y no un simulador más grande
Podríamos haber construido algo más vistoso — un simulador de agentes evolucionando, por ejemplo. Se descartó a propósito. Lo que se pidió fue algo pequeño y pegado al temario: el AND y el OR se resuelven con una única neurona con dos entradas, dos pesos y un sesgo, actualizados con la regla original de Rosenblatt:
w_i ← w_i + tasa_aprendizaje · (esperado − salida) · x_i
b ← b + tasa_aprendizaje · (esperado − salida)
Tres líneas de código. Verlas ejecutarse, paso a paso, es el objetivo pedagógico completo del proyecto.

El límite que no escondemos
Este perceptrón puede aprender AND y OR. Nunca aprenderá XOR, y eso no es un fallo que haya que arreglar añadiendo una capa oculta — es un límite real, célebre y deliberado.
Minsky y Papert lo demostraron en 1969, en su libro Perceptrons: una sola neurona solo puede trazar una línea recta para separar sus decisiones, y las combinaciones de XOR no se pueden separar con una recta — no son linealmente separables, como sí lo son AND y OR. El hallazgo no es anecdótico: contribuyó al llamado primer invierno de la IA, más de una década en la que la financiación y el interés por las redes neuronales se hundieron, hasta que las redes multicapa con retropropagación resolvieron exactamente esto que aquí se ve que no se puede.
Es el gancho perfecto para CDPC.1.B.3 (historia e impacto de la IA): un límite matemático, bien entendido y bien documentado, cambió el rumbo de la financiación de un campo científico entero.
Una historia paralela: Lois Haibt
Buscando si había alguna mujer ligada al perceptrón, apareció una historia que merece contarse aparte. Lois Haibt no estuvo en el equipo de Rosenblatt, pero dos años antes, en 1956, coescribió con Nathaniel Rochester, John Holland y William Duda una de las primerísimas simulaciones de red neuronal en ordenador: una simulación en un IBM 701 de la teoría de “asambleas celulares” de Donald Hebb, con varias neuronas conectadas entre sí — no una sola.
Se decidió, a propósito, no ponerle su nombre a este proyecto: aquí se implementa la regla de aprendizaje de Rosenblatt, no el modelo de su equipo, y llamarlo así habría atribuido mal el algoritmo. Su nombre queda reservado para cuando toque dar el segundo paso — una red de varias neuronas conectadas de verdad — donde sí le correspondería.
Qué sigue
La tasa de aprendizaje está fija en 0.1 por ahora, para que el alumnado se quede con la mecánica antes de tocar parámetros. Cuando lo tengan entendido, el siguiente paso natural es añadir un control para experimentar con distintas tasas y ver cómo cambia la velocidad de convergencia — pero eso, de momento, se queda para otro día.
ROSENBLATT forma parte de la misma familia de proyectos que PINSAPIA, METIS, Biotopo, Contagio, Arsenia, Bermeja, Vaucanson y Laberinto — todos gratuitos, sencillos, modulares y pensados para el aula.




