Conceptos iniciales del aprendizaje automático
1 De la inteligencia artificial al aprendizaje automático
La inteligencia artificial (IA) es el campo que estudia y construye sistemas capaces de realizar tareas que asociamos con capacidades inteligentes, como percibir, razonar, aprender, planificar o tomar decisiones.
La IA no es un único método. Incluye, entre otros enfoques:
- búsqueda y planificación;
- razonamiento simbólico;
- representación del conocimiento;
- aprendizaje automático;
- sistemas híbridos que combinan varios de estos enfoques.
La inteligencia artificial simbólica representa el conocimiento mediante símbolos y reglas explícitas. Un sistema experto, por ejemplo, puede utilizar reglas como «SI el paciente tiene fiebre Y tos, ENTONCES considerar una infección respiratoria». Este enfoque puede ser interpretable, pero escribir y mantener todas las reglas resulta difícil cuando el problema es grande, ambiguo o cambia con el tiempo.
El aprendizaje automático (machine learning) es una subárea de la IA. En lugar de especificar manualmente todas las reglas, proporcionamos datos y un procedimiento capaz de ajustar un modelo para encontrar regularidades útiles. El resultado no es necesariamente una explicación del fenómeno: es una función que produce predicciones o representaciones con un rendimiento que podemos medir.
En este libro nos centraremos principalmente en el aprendizaje automático y en las matemáticas que permiten construirlo desde sus fundamentos.
2 El ciclo de un sistema de aprendizaje automático
Un sistema de aprendizaje automático puede describirse mediante este flujo:
Problema → datos → representación → modelo → pérdida → entrenamiento → evaluación → generalización
Cada etapa responde a una pregunta diferente:
- Problema: ¿qué queremos predecir, clasificar o descubrir?
- Datos: ¿qué ejemplos tenemos y qué información contienen?
- Representación: ¿cómo convertimos cada ejemplo en variables que el modelo pueda procesar?
- Modelo: ¿qué familia de funciones utilizaremos?
- Pérdida: ¿cómo cuantificamos el error de una predicción?
- Entrenamiento: ¿cómo ajustamos los parámetros del modelo?
- Evaluación: ¿cómo medimos el rendimiento sobre datos que no se utilizaron para ajustarlo?
- Generalización: ¿funcionará el modelo con ejemplos futuros y relevantes para el problema?
2.1 Datos y representación
En aprendizaje supervisado, un conjunto de datos puede escribirse como:
donde:
- \(x_i\) es la entrada del ejemplo \(i\);
- \(y_i\) es su salida esperada, etiqueta o target;
- \(n\) es el número de ejemplos.
La entrada \(x_i\) suele ser un vector de características (features). En una vivienda, sus características podrían ser los metros cuadrados, el número de habitaciones y la distancia al centro de la ciudad. La salida \(y_i\) podría ser el precio de venta.
Si agrupamos todas las entradas en una matriz, obtenemos \(X\); si agrupamos las salidas, obtenemos el vector \(y\). La representación elegida importa: un algoritmo solo puede aprender a partir de la información que recibe y de la forma en que se codifica.
2.2 Modelo y parámetros
Un modelo es una familia de funciones. En un problema supervisado, escribimos una predicción como:
El símbolo \(\theta\) representa los parámetros del modelo. Son los valores que el algoritmo modifica durante el entrenamiento. En una regresión lineal, por ejemplo, los coeficientes y el término independiente son parámetros.
Los parámetros no son instrucciones escritas a mano para cada ejemplo. Son valores que, combinados con una entrada, determinan la predicción del modelo.
2.3 Función de pérdida y función objetivo
La función de pérdida mide el error de una predicción. Si el valor real es \(y\) y el modelo produce \(\hat{y}\), una pérdida posible para regresión es el error cuadrático:
Para entrenar el modelo, normalmente agregamos la pérdida de todos los ejemplos del conjunto de entrenamiento. En este caso obtenemos la función objetivo o coste:
El objetivo del entrenamiento es encontrar unos parámetros que hagan pequeño \(J(\theta)\), sin limitarse a memorizar los ejemplos disponibles.
La función de pérdida es una herramienta del entrenamiento. No tiene por qué coincidir con la medida que comunicaremos para describir el rendimiento del sistema.
2.4 Entrenamiento, inferencia y evaluación
- Entrenamiento: el algoritmo utiliza ejemplos de entrenamiento para ajustar los parámetros \(\theta\).
- Inferencia: el modelo ya ajustado recibe una entrada nueva y genera una predicción.
- Evaluación: medimos el rendimiento de esas predicciones con datos reservados.
- Reentrenamiento: proceso opcional mediante el que actualizamos el modelo con nuevos datos.
La evaluación no modifica automáticamente los parámetros. Un sistema puede reentrenarse periódicamente, pero eso debe diseñarse de forma explícita.
3 Un ejemplo completo: estimar el precio de una vivienda
Construyamos un ejemplo pequeño para seguir todo el ciclo. Supongamos que utilizamos una sola característica: la superficie de la vivienda en metros cuadrados.
3.1 Datos
Tenemos tres ejemplos de entrenamiento:
| Vivienda | Superficie \(x\) | Precio real \(y\) |
|---|---|---|
| A | 50 | 150 |
| B | 80 | 220 |
| C | 100 | 260 |
Para simplificar, expresamos el precio en miles de euros. Cada ejemplo es un par \((x_i, y_i)\).
3.2 Representación y modelo
Elegimos una regresión lineal con término independiente:
Aquí \(\theta_0\) es el término independiente y \(\theta_1\) indica cuánto cambia la predicción cuando aumenta una unidad la superficie. Ambos son parámetros aprendidos.
3.3 Predicción inicial
Comenzamos con \(\theta_0 = 0\) y \(\theta_1 = 0\). El modelo predice cero para todas las viviendas:
| Vivienda | Precio real | Predicción inicial | Error cuadrático |
|---|---|---|---|
| A | 150 | 0 | 22500 |
| B | 220 | 0 | 48400 |
| C | 260 | 0 | 67600 |
La pérdida cuadrática media inicial es:
El modelo todavía no es útil, pero ya podemos medir objetivamente lo mal que predice.
3.4 Ajuste de parámetros
Después de aplicar un algoritmo de entrenamiento, obtenemos, a modo de ilustración:
El modelo queda:
Sus predicciones son:
| Vivienda | Precio real | Predicción | Error cuadrático |
|---|---|---|---|
| A | 150 | 155 | 25 |
| B | 220 | 218 | 4 |
| C | 260 | 260 | 0 |
La nueva pérdida cuadrática media es:
La pérdida ha disminuido mucho. Eso indica que los parámetros encontrados describen mejor estos ejemplos.
En un algoritmo real, los parámetros no aparecen por intuición. El procedimiento de entrenamiento comienza con unos valores iniciales y los modifica iterativamente para reducir la función objetivo.
3.5 Evaluación con un ejemplo no utilizado
Supongamos que reservamos otra vivienda, de 70 metros cuadrados, cuyo precio real es 200. El modelo predice:
El error absoluto es de 3 miles de euros. Este ejemplo no participó en el ajuste de los parámetros, por lo que permite comprobar mejor si el modelo generaliza.
El ejemplo es deliberadamente pequeño. En un problema real habría más características, ruido, valores atípicos y muchas funciones posibles que podrían explicar aproximadamente los mismos datos.
4 Parámetros e hiperparámetros
Los parámetros se aprenden durante el entrenamiento. En el ejemplo anterior son \(\theta_0\) y \(\theta_1\).
Los hiperparámetros son decisiones que controlan el modelo o el proceso de entrenamiento. No se ajustan automáticamente a partir de cada predicción, aunque pueden elegirse mediante un procedimiento de validación.
| Concepto | Se determina durante | Ejemplos |
|---|---|---|
| Parámetro | Entrenamiento | Pesos, sesgos, coeficientes |
| Hiperparámetro | Diseño o validación | Tasa de aprendizaje, profundidad de un árbol, valor de \(k\), fuerza de regularización |
La distinción es importante. Si elegimos una profundidad incorrecta para un árbol, el problema no se soluciona simplemente entrenando más: debemos cambiar un hiperparámetro y volver a comparar modelos.
5 Generalización y división de los datos
El objetivo de un modelo no es reproducir perfectamente los datos que ya ha visto, sino generalizar: producir predicciones útiles para ejemplos nuevos.
Para estimar esa capacidad, normalmente dividimos los datos en tres conjuntos:
| Conjunto | Uso principal |
|---|---|
| Entrenamiento | Ajustar los parámetros del modelo |
| Validación | Elegir hiperparámetros, modelos y decisiones de diseño |
| Prueba | Estimar el rendimiento final una sola vez |
El conjunto de prueba debe permanecer separado de todas las decisiones anteriores. Si consultamos repetidamente sus resultados para decidir qué modelo utilizar, deja de ser una estimación independiente.
Una división concreta, como 80 % para entrenamiento, 10 % para validación y 10 % para prueba, depende del tamaño y de la naturaleza de los datos. En conjuntos pequeños puede ser preferible utilizar validación cruzada. En datos temporales, normalmente debemos respetar el orden del tiempo en lugar de mezclar aleatoriamente los ejemplos.
El sobreajuste ocurre cuando el modelo se adapta demasiado a los ejemplos de entrenamiento y funciona peor con datos nuevos. El subajuste ocurre cuando el modelo es demasiado simple para capturar la relación relevante, incluso en los datos de entrenamiento.
6 Función de pérdida frente a métrica
La pérdida y la métrica están relacionadas, pero cumplen funciones distintas.
- La función de pérdida guía el entrenamiento y debe poder utilizarse para comparar y mejorar los parámetros.
- La métrica resume el rendimiento del modelo en un contexto determinado.
En regresión pueden utilizarse:
- MSE: promedio de los errores cuadráticos; penaliza mucho los errores grandes.
- MAE: promedio del valor absoluto de los errores; se expresa en las unidades originales y es más robusto frente a valores extremos.
- \(R^2\): proporción de variabilidad explicada por el modelo respecto a una referencia.
En clasificación pueden utilizarse precisión (accuracy), precisión positiva (precision), cobertura (recall) y F1. La elección depende del coste de cada tipo de error. Por ejemplo, en la detección de una enfermedad puede ser más importante no dejar casos enfermos sin detectar que maximizar la precisión global.
Por tanto, no basta con decir que un modelo tiene “un 95 % de acierto”. Hay que especificar la métrica, el conjunto de datos y el tipo de errores que se están midiendo.
7 Distribución de entrenamiento y distribución de producción
Cuando hablamos de generalización, solemos suponer que los ejemplos futuros proceden de una distribución parecida a la de los datos utilizados para entrenar el modelo.
Podemos distinguir:
- Distribución de entrenamiento: población o proceso que generó los datos disponibles.
- Distribución de producción: población o proceso que generará los datos cuando el modelo se utilice realmente.
Un modelo puede obtener un buen resultado en el conjunto de prueba y aun así fallar en producción si estas distribuciones son diferentes.
Algunos ejemplos:
- entrenar con imágenes tomadas de día y utilizar el modelo de noche;
- entrenar con viviendas de una ciudad y utilizarlo en otra con precios muy diferentes;
- entrenar con datos de hace diez años y utilizar el modelo después de un cambio económico importante.
Este fenómeno se conoce como cambio de distribución o distribution shift. En producción también puede aparecer deriva de datos (data drift), cuando las características de las entradas cambian con el tiempo. Evaluar un modelo no consiste únicamente en calcular una métrica: también hay que comprobar que los datos de evaluación representan el uso previsto.
8 Fuga de información
Existe fuga de información (data leakage) cuando el entrenamiento utiliza, directa o indirectamente, información que no debería estar disponible en ese momento.
Algunos ejemplos son:
- calcular la media y la desviación estándar utilizando entrenamiento, validación y prueba antes de dividir los datos;
- utilizar una variable que se construyó a partir de la etiqueta que se intenta predecir;
- seleccionar el modelo mirando repetidamente el conjunto de prueba;
- usar información futura para predecir un evento pasado;
- mezclar datos de una misma persona en entrenamiento y prueba cuando el modelo debe generalizar a personas nuevas.
Una regla práctica es la siguiente:
Toda transformación que aprende algo de los datos debe ajustarse solo con el conjunto de entrenamiento y aplicarse después, sin recalcularla, sobre validación, prueba y producción.
Por ejemplo, si estandarizamos una variable calculando su media \(\mu\) y su desviación \(\sigma\), ambos valores deben obtenerse con entrenamiento. Después aplicamos esa misma transformación a los demás conjuntos.
La fuga suele producir resultados de evaluación artificialmente optimistas. Por eso una puntuación muy alta no siempre indica que el modelo sea bueno: también hay que revisar cómo se construyó el experimento.
9 Aprendizaje supervisado
En el aprendizaje supervisado, cada entrada viene acompañada de una salida esperada. El objetivo es aprender una función que produzca una salida adecuada para entradas nuevas.
Los dos problemas supervisados más habituales son:
- Regresión: la salida es un valor numérico, como el precio de una vivienda o la temperatura.
- Clasificación: la salida pertenece a un conjunto de categorías, como gato o perro.
En clasificación binaria hay dos clases. En clasificación multiclase hay más de dos. También puede haber clasificación multietiqueta, cuando un mismo ejemplo puede pertenecer a varias categorías a la vez.
El ejemplo de las viviendas es un problema de regresión supervisada porque conocemos un precio histórico para cada conjunto de características.
10 Aprendizaje no supervisado
En el aprendizaje no supervisado no disponemos de una etiqueta objetivo para cada ejemplo. El algoritmo intenta encontrar estructura en las entradas.
Algunos objetivos habituales son:
- agrupar ejemplos similares (clustering);
- encontrar representaciones de menor dimensión;
- modelar una distribución de probabilidad;
- detectar ejemplos atípicos;
- descubrir relaciones latentes.
En clustering, por ejemplo, disponemos de vectores de características, pero no de una categoría conocida para cada punto. El algoritmo agrupa los ejemplos según una noción de similitud definida por el método y por la representación de los datos.
La ausencia de etiquetas no significa que el resultado sea automáticamente “la estructura verdadera” de los datos. El número de grupos, la escala de las variables y la definición de distancia pueden cambiar las agrupaciones obtenidas. Por eso también hay que evaluar si la estructura descubierta es útil para el problema.
11 Aprendizaje por refuerzo
El aprendizaje por refuerzo estudia sistemas que aprenden mediante interacción con un entorno. En lugar de recibir una respuesta correcta para cada ejemplo, un agente elige acciones y recibe recompensas, posiblemente después de varias acciones.
Sus elementos principales son:
- Agente: el sistema que toma decisiones.
- Entorno: el mundo con el que interactúa.
- Estado: información disponible sobre la situación actual.
- Acción: decisión que puede tomar el agente.
- Recompensa: señal numérica recibida después de una acción.
- Política: estrategia que relaciona estados con acciones.
El objetivo no suele ser maximizar la recompensa inmediata, sino el retorno acumulado. Una acción aparentemente mala puede ser útil si conduce a mejores recompensas futuras. Esta diferencia entre acción y consecuencia hace que el aprendizaje por refuerzo no sea simplemente aprendizaje supervisado con otra etiqueta.
Por ejemplo, un programa que juega al ajedrez puede sacrificar una pieza ahora para obtener una posición ganadora muchas jugadas después. El problema central es asignar correctamente el mérito de la recompensa a las acciones que la hicieron posible.
Este libro desarrolla principalmente el aprendizaje supervisado y el no supervisado. El aprendizaje por refuerzo se presenta aquí como parte del mapa general, pero no se estudia mediante algoritmos específicos.
11.1 Los tres paradigmas frente a frente
| Aspecto | Supervisado | No supervisado | Por refuerzo |
|---|---|---|---|
| Fuente de información | Entradas y etiquetas | Entradas sin etiquetas objetivo | Interacción con un entorno |
| Señal de aprendizaje | Respuesta esperada | Estructura o criterio del método | Recompensa, a veces diferida |
| Unidad principal | Ejemplo | Conjunto de datos o estructura | Secuencia de decisiones |
| Objetivo | Predecir bien ejemplos nuevos | Encontrar estructura útil | Maximizar el retorno acumulado |
| Ejemplos | Precio, spam, diagnóstico | Clustering, PCA, anomalías | Juegos, robots, control |
Las fronteras pueden combinarse. El aprendizaje semi-supervisado utiliza pocos ejemplos etiquetados y muchos sin etiquetar. En el aprendizaje auto-supervisado, los propios datos proporcionan una tarea de entrenamiento, como ocultar una palabra y pedir al modelo que la prediga. Muchos sistemas modernos combinan después un preentrenamiento auto-supervisado con un ajuste supervisado.
12 Cómo leer este libro
El libro sigue un orden de fundamentos a aplicaciones:
- Conceptos iniciales: vocabulario, paradigmas, entrenamiento y evaluación.
- Fundamentos matemáticos: vectores, matrices, derivadas, probabilidad y estadística.
- Algoritmos clásicos: regresión, árboles, SVM, Naive Bayes y otros métodos.
- Evaluación y mejora: generalización, métricas, validación, optimización y regularización.
- Ingeniería de características: transformación de datos crudos en representaciones útiles.
- Redes neuronales: desde el perceptrón hasta las redes convolucionales, recurrentes y transformers.
Cada bloque matemático conecta con algoritmos posteriores. El código pretende ser reproducible y los ejemplos congelan sus resultados para que las explicaciones puedan revisarse de forma consistente.
La meta no es tratar los algoritmos como cajas negras, sino entender qué problema resuelven, qué supuestos utilizan, cómo se entrenan y cómo se puede comprobar si sus resultados son fiables.