Saltar al contenido

2026-08-31

Fundamentos de Deep Learning: de las SVM a las redes neuronales convolucionales

Antes de que las redes neuronales profundas dominaran la visión por computadora, los clasificadores de margen máximo como las Support Vector Machines (SVM) eran el estándar para separar clases en problemas de clasificación. Entender por qué funcionan, y por qué las redes neuronales convolucionales (CNN) terminaron reemplazándolas en tareas de imagen, es la mejor forma de entender qué problema resuelve realmente el deep learning. Esta nota es un punto de partida: iré ampliándola con implementaciones, gráficas de entrenamiento propias y comparativas experimentales a medida que suba proyectos nuevos.

¿Qué es una Support Vector Machine (SVM)?

Una SVM es un clasificador que busca la frontera de decisión que separa dos clases dejando el margen más amplio posible entre ellas. En vez de conformarse con cualquier línea que separe los puntos, busca específicamente la que queda lo más lejos posible de los ejemplos más cercanos de cada clase.

Esos ejemplos más cercanos —los que "sostienen" el margen— se llaman vectores de soporte, y le dan nombre al método: son los únicos puntos que realmente determinan dónde queda la frontera. Todos los demás ejemplos podrían moverse o eliminarse sin cambiar el resultado.

Línea sólida: hiperplano de decisión. Líneas punteadas: los dos márgenes. Los puntos con anillo pulsante son los vectores de soporte — los únicos que definen la frontera.

Cuando las clases no son separables con una línea recta, la SVM aplica el truco del kernel (kernel trick): proyecta los datos a un espacio de mayor dimensión donde sí existe un hiperplano separador, sin tener que calcular esa proyección explícitamente. Los kernels RBF y polinomial son los más usados en la práctica.

Ventajas: funciona bien con pocos datos, tiene fundamento matemático sólido (maximizar el margen tiene garantías teóricas de generalización) y es interpretable — se puede inspeccionar qué ejemplos son vectores de soporte. Limitaciones: no aprende representaciones de los datos por sí misma (hay que diseñar a mano las características que recibe), escala mal a millones de ejemplos, y en problemas con estructura espacial fuerte —como imágenes— pierde frente a arquitecturas que sí modelan esa estructura.

¿Qué es una Red Neuronal Convolucional (CNN)?

Una CNN es una red neuronal diseñada específicamente para datos con estructura de grilla, como imágenes. Su pieza fundamental es la convolución: en vez de conectar cada neurona con todos los píxeles de la imagen (como haría una red totalmente conectada), desliza un pequeño filtro (kernel), típicamente de 3×3 o 5×5, sobre la imagen completa, calculando en cada posición un producto punto entre el filtro y la región que cubre.

→

Un filtro (kernel) de 3×3 recorre la imagen de entrada de 6×6. En cada posición produce un valor del mapa de características de la derecha — la respuesta de ese filtro a ese fragmento de la imagen.

Ese filtro no se diseña a mano: sus valores son parámetros que la red aprende durante el entrenamiento, igual que los pesos de cualquier capa. Cada filtro termina especializándose en detectar un patrón — bordes, texturas, luego formas más complejas en capas más profundas. Esto es lo que las SVM no hacen por sí mismas: una CNN aprende automáticamente qué características extraer, en vez de requerir que alguien las diseñe.

Una arquitectura CNN típica encadena tres tipos de capa:

  1. Convolución — extrae características locales con filtros aprendidos.
  2. Pooling (max o average) — reduce la resolución espacial, conservando la información más relevante y dando cierta invarianza a pequeñas traslaciones.
  3. Capas totalmente conectadas — al final, combinan las características extraídas para producir la predicción (clasificación, detección, etc.).

Apiladas varias veces, estas capas forman una jerarquía: las primeras capas detectan bordes y texturas simples, las intermedias combinan esos patrones en formas, y las capas profundas reconocen objetos completos.

SVM vs. CNN: ¿cuándo usar cada una?

SVMCNN
Aprendizaje de característicasManual (requiere feature engineering)Automático, aprendido end-to-end
Dato idealTabular, pocas muestras, dimensión moderadaImágenes, audio, datos con estructura espacial/temporal
Cantidad de datosFunciona bien con datasets pequeñosNecesita datasets grandes (o transfer learning)
Costo computacionalBajo–medioAlto (entrenamiento), requiere GPU
InterpretabilidadAlta (vectores de soporte, márgenes)Baja sin herramientas adicionales (Grad-CAM, saliency maps)
Ejemplo de uso típicoClasificación de texto o tabular con pocas featuresClasificación, detección y segmentación de imágenes

En la práctica, ambas siguen siendo herramientas válidas: una SVM bien afinada sobre buenas features sigue siendo difícil de superar en datasets pequeños, y sigue apareciendo como baseline sólido antes de pasar a deep learning. Los proyectos de este portafolio que trabajan con imágenes usan CNN por la naturaleza espacial de los datos; cuando el problema es tabular o de bajo volumen, una SVM (u otro método clásico) suele ser el punto de partida antes de justificar la complejidad de una red profunda.


Esta nota es un punto de partida y seguirá creciendo: próximamente gráficas de entrenamiento reales, comparativas de kernels y una implementación de convolución desde cero.