El perceptrón como clasificador lineal
El perceptrón es una neurona artificial diseñada para resolver problemas de clasificación binaria mediante una frontera de decisión lineal. Dado un vector de entrada x = [x1, x2, ..., xd], el modelo calcula una combinación lineal y decide una clase según el signo del resultado.
Regla de decisión
La salida del perceptrón se basa en una puntuación (score) lineal:
z = w · x + bdonde w es el vector de pesos y b es el sesgo (bias). La regla de decisión típica para clases {-1, +1} es:
ŷ = sign(z) = { +1 si z ≥ 0; -1 si z < 0 }Interpretación: si la entrada cae “del lado” del hiperplano donde w · x + b ≥ 0, se asigna a la clase positiva; en caso contrario, a la negativa.
Hiperplano separador
La frontera de decisión es el conjunto de puntos donde el modelo está indeciso:
- Escuche el audio con la pantalla apagada.
- Obtenga un certificado al finalizar.
- ¡Más de 5000 cursos para que explores!
Descargar la aplicación
w · x + b = 0En 2D, esto es una recta; en 3D, un plano; en dimensiones mayores, un hiperplano. El vector w es perpendicular a esa frontera y su dirección indica hacia qué lado se considera la clase positiva.
Limitaciones: datos no separables linealmente
El perceptrón solo puede encontrar una solución si las clases son linealmente separables, es decir, si existe algún hiperplano que las separe sin errores. Si los datos no son separables (por ejemplo, patrón XOR en 2D o clases con solapamiento), el algoritmo de aprendizaje puede no converger: seguirá actualizando pesos indefinidamente o hasta que se alcance un límite de iteraciones.
En plataformas de práctica como Kaggle o Google Colab, es común observar esta limitación al entrenar un perceptrón sobre datasets con ruido o con fronteras no lineales: el error de entrenamiento deja de disminuir de forma estable.
Función de activación escalón
La función de activación clásica del perceptrón es el escalón (Heaviside), que convierte la puntuación z en una decisión discreta.
Definición
Para etiquetas {0, 1}:
H(z) = { 1 si z ≥ 0; 0 si z < 0 }Para etiquetas {-1, +1}:
sign(z) = { +1 si z ≥ 0; -1 si z < 0 }Interpretación geométrica y práctica
- Discreta: no produce probabilidades, solo una clase.
- Umbral: el sesgo
bdesplaza la frontera; equivale a cambiar el umbral de decisión. - No derivable: el escalón no es diferenciable en 0, lo que explica por qué el perceptrón se entrena con una regla de actualización específica y no con descenso por gradiente estándar (esto se retoma más adelante cuando se estudian activaciones suaves y backpropagation).
Algoritmo de aprendizaje del perceptrón
El objetivo del aprendizaje es ajustar w y b para clasificar correctamente los ejemplos de entrenamiento. El perceptrón actualiza sus parámetros solo cuando se equivoca.
Notación
- Datos:
(x_i, y_i), cony_i ∈ {-1, +1}. - Predicción:
ŷ_i = sign(w · x_i + b). - Tasa de aprendizaje:
η(eta), un número positivo.
Regla de actualización de pesos y sesgo
Si el ejemplo está mal clasificado, es decir, si y_i (w · x_i + b) ≤ 0, entonces:
w ← w + η y_i x_i
b ← b + η y_iIntuición: si un punto de clase positiva fue clasificado como negativo, se empuja el hiperplano en la dirección de x_i; si un punto negativo fue clasificado como positivo, se empuja en la dirección contraria.
Guía práctica paso a paso (entrenamiento)
Inicializa
wyb(por ejemplo, ceros o valores pequeños aleatorios) y eligeη.Recorre el conjunto de entrenamiento (una época): para cada
(x_i, y_i), calculaz_i = w · x_i + byŷ_i = sign(z_i).Si hay error (equivalentemente, si
y_i z_i ≤ 0), aplica la actualizaciónw ← w + η y_i x_iyb ← b + η y_i.Repite varias épocas hasta cumplir un criterio de parada.
Criterios de parada
- Convergencia por cero errores: detener cuando en una época completa no hay actualizaciones (todos los puntos quedan bien clasificados). Esto solo es posible si los datos son separables.
- Máximo de épocas: detener tras
max_epochspara evitar bucles infinitos en datos no separables. - Umbral de actualizaciones: detener si el número de actualizaciones no mejora (por ejemplo, se estanca) durante varias épocas.
Elección de la tasa de aprendizaje (η)
En el perceptrón clásico, η escala el tamaño del paso. En datos separables, cambiar η suele afectar la velocidad de convergencia y la trayectoria de los pesos, pero no la existencia de una solución. En la práctica:
ηmuy grande puede producir oscilaciones más marcadas en el recorrido dew.ηmuy pequeño puede hacer el aprendizaje lento.
Efecto del orden de los datos
El perceptrón es un algoritmo online: actualiza con cada ejemplo. Por eso, el orden de presentación influye en:
- La rapidez con la que llega a una solución (en separables).
- La solución final (puede converger a distintos hiperplanos separadores según el orden, inicialización y
η). - El comportamiento en no separables: el patrón de oscilación y el número de errores por época puede variar mucho.
Práctica recomendada: barajar (shuffle) los datos en cada época para evitar sesgos por ordenamiento.
Ejemplos 2D para entender separabilidad y errores
Ejemplo A: conjunto separable (convergencia esperable)
Considera puntos en 2D con etiquetas {-1, +1}:
| Punto | x1 | x2 | y |
|---|---|---|---|
| A | 2 | 2 | +1 |
| B | 2 | 0 | +1 |
| C | -2 | -1 | -1 |
| D | -1 | -2 | -1 |
Visualmente, los positivos están en el cuadrante derecho y los negativos en el izquierdo: una recta vertical (por ejemplo x1 = 0) los separa. En este caso, el perceptrón debería alcanzar una época sin errores tras un número finito de actualizaciones (si se recorre el dataset repetidamente).
Ejemplo B: XOR (no converge)
Puntos clásicos XOR:
| Punto | x1 | x2 | y |
|---|---|---|---|
| A | 1 | 1 | -1 |
| B | 1 | -1 | +1 |
| C | -1 | 1 | +1 |
| D | -1 | -1 | -1 |
No existe una recta que separe perfectamente las clases. El perceptrón seguirá cometiendo errores y actualizando pesos; el criterio “cero errores” no se cumplirá.
Cómo analizar errores y anticipar convergencia
Margen y condición de separabilidad
Una forma práctica de razonar sobre convergencia es preguntarse si existe algún (w, b) tal que para todos los puntos se cumpla:
y_i (w · x_i + b) > 0Si esto es posible, el conjunto es separable. Si además existe un margen “cómodo” (puntos lejos de la frontera), suele converger más rápido.
Registro de errores por época
Una herramienta didáctica es contar cuántos ejemplos quedan mal clasificados en cada época:
- En separables, el conteo tiende a bajar hasta llegar a 0.
- En no separables, el conteo oscila alrededor de un valor y rara vez llega a 0 de forma estable.
En un cuaderno de Google Colab, puedes imprimir errores_por_epoca y observar si se estabiliza o si cae a cero.
Ejercicios conceptuales (2D) para practicar
Ejercicio 1: dibuja la frontera y predice sin entrenar
Se propone el hiperplano w = [1, -1], b = 0. Para cada punto, calcula z = w · x + b y la clase ŷ = sign(z).
| Punto | x |
|---|---|
| P1 | (2, 1) |
| P2 | (1, 2) |
| P3 | (-1, -2) |
| P4 | (-2, -1) |
- ¿Qué recta representa
w · x + b = 0en 2D? - ¿Qué puntos quedan del lado positivo?
- Si cambias
ba1, ¿cómo se desplaza la frontera?
Ejercicio 2: una época de entrenamiento a mano
Dataset:
| i | x | y |
|---|---|---|
| 1 | (1, 0) | +1 |
| 2 | (0, 1) | +1 |
| 3 | (-1, 0) | -1 |
| 4 | (0, -1) | -1 |
Inicializa w = (0, 0), b = 0, η = 1. Recorre los puntos en orden y, para cada uno:
- Calcula
zyŷ. - Decide si hay error con
y z ≤ 0. - Si hay error, actualiza
wyb.
Preguntas: ¿cuántas actualizaciones hiciste en la época? ¿La frontera final separa correctamente?
Ejercicio 3: efecto del orden (mismo dataset, distinto recorrido)
Repite el Ejercicio 2 pero con el orden (3, 4, 1, 2). Mantén la misma inicialización. Compara el w final y la recta separadora obtenida.
- ¿Llegas a una solución distinta?
- ¿El número de actualizaciones cambia?
Ejercicio 4: detecta no separabilidad por contradicción geométrica
Considera estos cuatro puntos:
| Punto | x | y |
|---|---|---|
| A | (1, 1) | +1 |
| B | (1, -1) | -1 |
| C | (-1, 1) | -1 |
| D | (-1, -1) | +1 |
- Dibuja los puntos y marca las clases.
- Intenta trazar una recta que separe las clases sin errores.
- Explica por qué cualquier recta deja al menos un punto mal clasificado.
Ejercicio 5: análisis de errores por época (razonamiento)
Supón que entrenas un perceptrón en un conjunto con solapamiento (dos nubes 2D parcialmente mezcladas). Sin calcular pesos exactos:
- ¿Qué esperas observar en el número de errores por época si entrenas durante 100 épocas?
- ¿Qué criterio de parada usarías para evitar entrenar indefinidamente?
- ¿Qué efecto tendría barajar los datos en cada época?