Perceptrón y clasificación lineal con redes neuronales

Capítulo 2

Tiempo estimado de lectura: 8 minutos

+ Ejercicio

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 + b

donde 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:

Continúa en nuestra aplicación.
  • Escuche el audio con la pantalla apagada.
  • Obtenga un certificado al finalizar.
  • ¡Más de 5000 cursos para que explores!
O continúa leyendo más abajo...
Download App

Descargar la aplicación

w · x + b = 0

En 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 b desplaza 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), con y_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_i

Intuició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)

  1. Inicializa w y b (por ejemplo, ceros o valores pequeños aleatorios) y elige η.

  2. Recorre el conjunto de entrenamiento (una época): para cada (x_i, y_i), calcula z_i = w · x_i + b y ŷ_i = sign(z_i).

  3. Si hay error (equivalentemente, si y_i z_i ≤ 0), aplica la actualización w ← w + η y_i x_i y b ← b + η y_i.

  4. 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_epochs para 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 de w.
  • η 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}:

Puntox1x2y
A22+1
B20+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:

Puntox1x2y
A11-1
B1-1+1
C-11+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) > 0

Si 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).

Puntox
P1(2, 1)
P2(1, 2)
P3(-1, -2)
P4(-2, -1)
  • ¿Qué recta representa w · x + b = 0 en 2D?
  • ¿Qué puntos quedan del lado positivo?
  • Si cambias b a 1, ¿cómo se desplaza la frontera?

Ejercicio 2: una época de entrenamiento a mano

Dataset:

ixy
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 z y ŷ.
  • Decide si hay error con y z ≤ 0.
  • Si hay error, actualiza w y b.

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:

Puntoxy
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?

Ahora responde el ejercicio sobre el contenido:

¿Qué ocurre típicamente al entrenar un perceptrón cuando los datos NO son linealmente separables (por ejemplo, un patrón tipo XOR o con solapamiento)?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

El perceptrón busca una frontera lineal. Si no existe un hiperplano que separe perfectamente las clases, el entrenamiento puede no converger: el modelo seguirá actualizando w y b y los errores por época tienden a oscilar en lugar de llegar a 0.

Siguiente capítulo

Funciones de activación y no linealidad en redes neuronales

Arrow Right Icon
Portada de libro electrónico gratuitaIntroducción a las Redes Neuronales: Del Perceptrón al Deep Learning
15%

Introducción a las Redes Neuronales: Del Perceptrón al Deep Learning

Nuevo curso

13 páginas

Descarga la aplicación para obtener una certificación gratuita y escuchar cursos en segundo plano, incluso con la pantalla apagada.