Lección 0.2 — Cómo funciona el aprendizaje automático: sus piezas clave
Lección 0.2 — Cómo funciona el aprendizaje automático: sus piezas clave
Curso de inteligencia artificial desde cero
Bloque 0: Fundamentos de inteligencia artificial
Lección 0.2 · Lección 2 de 5 del bloque
Nivel: iniciación · Sin conocimientos previos
Para entender cómo funciona el aprendizaje automático, necesitamos conocer las piezas que permiten a un sistema aprender de ejemplos: los datos, el modelo, el objetivo de entrenamiento y la evaluación.
En la lección anterior vimos que aprender puede consistir en ajustar parámetros para reducir errores. Ahora vamos a conectar esa idea con el proceso completo.
Utilizaremos un ejemplo sencillo: estimar el tiempo de entrega de un pedido según la distancia. Al terminar, podrás identificar qué información recibe un modelo, qué aprende y cómo comprobar si sus resultados son útiles.
Antes del modelo: definir el problema
El primer paso de un proyecto de inteligencia artificial es concretar qué queremos resolver.
«Mejorar los repartos» es un propósito demasiado amplio. Una tarea más precisa sería:
Estimar los minutos que tardará una entrega utilizando la distancia disponible cuando se realiza el pedido.
Esta definición establece tres elementos:
- Entrada: la distancia de la entrega.
- Salida: una estimación del tiempo en minutos.
- Momento de uso: cuando se realiza el pedido.
El momento importa porque solo podemos utilizar información disponible entonces. Si utilizamos datos que se conocen después de completar la entrega, estaremos resolviendo un problema distinto del que tendrá la aplicación real.
También debemos preguntarnos qué error sería aceptable. Equivocarse cinco minutos puede ser tolerable en un contexto e inaceptable en otro.
Un modelo solo puede evaluarse adecuadamente si sabemos para qué lo necesitamos.
1. Los datos: ejemplos de la tarea
Los datos contienen las observaciones que utilizaremos para desarrollar y evaluar el sistema.
En nuestro ejemplo, cada observación representa una entrega terminada:
| Distancia en kilómetros | Tiempo real en minutos |
|---|---|
| 1 | 8 |
| 2 | 11 |
| 3 | 14 |
| 4 | 17 |
Estos datos son inventados y deliberadamente sencillos. Las entregas reales presentarían mucha más variación.
Características y variable objetivo
Una característica, también llamada atributo o feature, es una información que el modelo utiliza como entrada.
Aquí tenemos una característica: la distancia.
La variable objetivo es el resultado que queremos predecir. En este caso, los minutos que tarda la entrega.
Es habitual representar estos elementos así:
| Símbolo | Significado | Ejemplo |
|---|---|---|
| X | Conjunto de entradas | Distancias de las entregas. |
| y | Resultados conocidos | Tiempos reales. |
| ŷ | Resultados estimados | Tiempos calculados por el modelo. |
El símbolo ŷ se lee «y estimada». En el código utilizaremos nombres descriptivos para facilitar la comprensión.
Qué hace que unos datos sean útiles
No basta con acumular observaciones. Debemos revisar:
- Calidad: ¿hay errores, duplicados o valores ausentes?
- Representatividad: ¿aparecen las situaciones en las que se utilizará el modelo?
- Disponibilidad: ¿conoceremos estas características cuando necesitemos predecir?
- Coherencia: ¿las unidades y los criterios son los mismos en todos los registros?
Si entrenamos únicamente con entregas cortas, no podemos dar por hecho que el modelo funcionará bien en trayectos largos.
Tampoco conviene mezclar kilómetros y metros dentro de una misma columna sin convertir las unidades.
2. El modelo: una relación entre entradas y salidas
Un modelo es una representación que transforma entradas en resultados.
Para empezar, proponemos esta fórmula:
tiempo estimado = a × distancia + b
Tiene dos parámetros:
- a: cuánto aumenta el tiempo estimado por cada kilómetro adicional.
- b: el tiempo base que añade el modelo.
Si elegimos a = 3 y b = 5, para una distancia de dos kilómetros obtenemos:
tiempo estimado = 3 × 2 + 5 = 11 minutos
Esta fórmula es un modelo lineal sencillo de una variable.
Parámetros e hiperparámetros
Son conceptos diferentes:
| Concepto | Qué representa | Ejemplo |
|---|---|---|
| Parámetro | Valor que se ajusta durante el entrenamiento. | a y b. |
| Hiperparámetro | Configuración del modelo o del procedimiento de entrenamiento. | La profundidad máxima permitida de un árbol de decisión. |
Los hiperparámetros pueden elegirse manualmente o mediante búsquedas automatizadas. La diferencia es que no se ajustan del mismo modo que los parámetros dentro del entrenamiento que estamos considerando.
Un modelo es una simplificación
La distancia influye en el tiempo de entrega, pero también pueden influir el tráfico, el clima o el tiempo de preparación.
Un modelo que solo recibe la distancia no puede distinguir directamente entre un trayecto despejado y otro con atasco.
Además, que el parámetro b tenga un valor concreto no demuestra que hayamos descubierto el tiempo real de preparación. Los parámetros describen el ajuste del modelo; su interpretación depende de los datos y de las suposiciones utilizadas.
3. El objetivo: medir qué queremos mejorar
Para entrenar necesitamos una forma de comparar las predicciones con los resultados conocidos.
La función de pérdida asigna un valor al error del modelo. El entrenamiento intenta reducir esa pérdida.
Una opción es el error cuadrático medio, conocido como MSE por sus siglas en inglés:
- Calculamos la diferencia entre cada predicción y su resultado real.
- Elevamos cada diferencia al cuadrado.
- Calculamos la media.
Supongamos que tenemos:
| Tiempo real | Predicción | Diferencia | Diferencia al cuadrado |
|---|---|---|---|
| 8 | 10 | 2 | 4 |
| 12 | 10 | −2 | 4 |
El error cuadrático medio es:
MSE = (4 + 4) / 2 = 4
Elevar al cuadrado evita que las diferencias positivas y negativas se cancelen. También penaliza especialmente los errores grandes.
El objetivo matemático y el objetivo real
Reducir una pérdida no garantiza, por sí solo, resolver bien el problema del usuario.
Por ejemplo, podría ser más perjudicial prometer una entrega demasiado pronto que demasiado tarde. Una pérdida que trate ambos errores por igual no expresa esa diferencia.
La función de pérdida debe elegirse teniendo en cuenta qué errores queremos evitar.
Más adelante estudiaremos otras pérdidas, restricciones y objetivos.
4. El entrenamiento: ajustar los parámetros
Entrenar consiste en buscar parámetros que reduzcan la pérdida sobre los datos de entrenamiento.
En nuestro modelo queremos encontrar valores adecuados para a y b.
Un procedimiento elemental sería:
- Probar una pareja de valores.
- Calcular las predicciones.
- Medir su error.
- Repetir con otras parejas.
- Conservar la pareja con menor pérdida.
Este método funciona para un ejemplo pequeño. Probar todas las combinaciones deja de ser práctico cuando hay muchos parámetros.
En otros modelos utilizaremos procedimientos como el descenso del gradiente, que estudiaremos cuando hayamos introducido sus bases matemáticas.
Ejemplo completo en Python
El siguiente programa utiliza únicamente funciones básicas de Python.
No necesitas comprender todavía toda la sintaxis: el objetivo es reconocer las piezas del sistema.
# Cada pareja contiene:
# (distancia en kilómetros, tiempo en minutos)
datos_entrenamiento = [
(1, 8),
(2, 11),
(3, 14),
(4, 17),
]
# Estos ejemplos quedan reservados para evaluar.
datos_prueba = [
(5, 21),
(6, 22),
]
def predecir(distancia, a, b):
return a * distancia + b
def calcular_mse(datos, a, b):
errores_cuadrados = []
for distancia, tiempo_real in datos:
estimacion = predecir(distancia, a, b)
error = estimacion - tiempo_real
errores_cuadrados.append(error ** 2)
return sum(errores_cuadrados) / len(datos)
mejor_a = None
mejor_b = None
menor_perdida = float("inf")
# Probamos valores enteros de 0 a 10.
for a in range(11):
for b in range(11):
perdida = calcular_mse(
datos_entrenamiento, a, b
)
if perdida < menor_perdida:
menor_perdida = perdida
mejor_a = a
mejor_b = b
print("Parámetros:", mejor_a, mejor_b)
print("MSE de entrenamiento:", menor_perdida)
errores_absolutos = []
for distancia, tiempo_real in datos_prueba:
estimacion = predecir(
distancia, mejor_a, mejor_b
)
error_absoluto = abs(estimacion - tiempo_real)
errores_absolutos.append(error_absoluto)
print(
f"Distancia: {distancia} km | "
f"Real: {tiempo_real} min | "
f"Estimado: {estimacion} min"
)
mae = sum(errores_absolutos) / len(datos_prueba)
print("MAE de prueba:", mae, "minutos")
Resultado esperado
Parámetros: 3 5 MSE de entrenamiento: 0.0 Distancia: 5 km | Real: 21 min | Estimado: 20 min Distancia: 6 km | Real: 22 min | Estimado: 23 min MAE de prueba: 1.0 minutos
Cómo interpretar el código
La función predecir() contiene el modelo.
La función calcular_mse() mide su pérdida. Utilizamos:
- append() para añadir un elemento a una lista.
- sum() para sumar sus elementos.
- len() para contar cuántos hay.
Los dos bucles de entrenamiento prueban 121 parejas: once valores de a multiplicados por once valores de b.
El programa elige a = 3 y b = 5 porque esa pareja obtiene el menor error de entrenamiento entre las candidatas.
Después utiliza los parámetros elegidos sobre los datos de prueba. Estos datos no intervienen en la selección.
abs() calcula el valor absoluto: convierte una diferencia negativa en su magnitud positiva.
Las cadenas que empiezan por f permiten insertar valores entre llaves dentro del texto.
5. La evaluación: comprobar si funciona
La evaluación mide el comportamiento del modelo con datos y criterios adecuados para su uso.
En el ejemplo utilizamos el error absoluto medio, o MAE:
MAE = media de las diferencias absolutas
Las dos predicciones se desvían un minuto de sus valores reales. Por eso el MAE es de un minuto.
El MAE conserva la unidad de la variable objetivo, lo que facilita su interpretación. El MSE, en cambio, se expresa en la unidad al cuadrado.
Pérdida y métrica no son exactamente lo mismo
La pérdida guía el entrenamiento. Una métrica ayuda a evaluar el resultado.
Una misma medida puede desempeñar ambos papeles, pero no es obligatorio. En nuestro ejemplo entrenamos con MSE y evaluamos con MAE.
Ninguna métrica cuenta toda la historia: un promedio pequeño puede ocultar algunos errores muy grandes.
Entrenamiento, validación y prueba
En muchos proyectos distinguimos tres conjuntos:
| Conjunto | Uso |
|---|---|
| Entrenamiento | Ajustar los parámetros. |
| Validación | Comparar configuraciones y tomar decisiones durante el desarrollo. |
| Prueba | Estimar el rendimiento final del sistema elegido. |
Nuestro programa omite la validación para mantener el ejemplo pequeño: hemos fijado de antemano el modelo y la búsqueda de parámetros.
En un proyecto real, si consultamos repetidamente la prueba y modificamos el sistema según sus resultados, acabaremos adaptándonos indirectamente a ella.
Cómo separar los datos depende del problema
No siempre debemos repartir filas al azar:
- Para predecir el futuro, suele ser necesario respetar el orden temporal.
- Si hay varios registros de una misma persona, puede ser necesario mantenerlos en el mismo grupo.
- Los duplicados o ejemplos casi idénticos pueden hacer que la evaluación parezca mejor de lo que realmente es.
La separación debe representar, en la medida de lo posible, la situación que encontrará el modelo al utilizarse.
Comparar con una solución sencilla
Antes de celebrar el resultado de un modelo, necesitamos una referencia o línea base.
En nuestro ejemplo, podríamos predecir siempre la media del tiempo de entrenamiento:
Media = (8 + 11 + 14 + 17) / 4 = 12,5 minutos
Sobre los dos ejemplos de prueba, esa solución obtiene:
MAE = (|12,5 − 21| + |12,5 − 22|) / 2 MAE = 9 minutos
El modelo obtiene un MAE de un minuto, frente a nueve de la referencia.
Es una mejora en este ejemplo, pero dos observaciones inventadas no permiten concluir que funcionará bien en una empresa real.
Problemas que debemos reconocer desde el principio
Sobreajuste
Ocurre cuando un modelo se adapta demasiado a particularidades de los datos de entrenamiento y generaliza mal.
Un error de entrenamiento muy bajo no demuestra por sí solo sobreajuste: debemos compararlo con el comportamiento sobre datos nuevos.
Subajuste
Un modelo demasiado limitado puede no representar los patrones relevantes y funcionar mal incluso en entrenamiento.
Fuga de información
Aparece cuando el desarrollo utiliza información que no debería estar disponible para aprender o predecir.
Por ejemplo, utilizar la hora real de llegada para estimar cuánto tardará un pedido antes de salir.
Cambios en los datos
Un modelo puede perder utilidad si cambian las circunstancias: nuevas rutas, horarios diferentes o una modificación del proceso de reparto.
Evaluarlo una vez no sustituye el seguimiento durante su uso.
Cómo encajan las piezas del aprendizaje automático
| Pieza | Pregunta que responde | En nuestro ejemplo |
|---|---|---|
| Problema | ¿Qué queremos resolver? | Estimar la duración de una entrega. |
| Datos | ¿Qué ejemplos tenemos? | Distancias y tiempos observados. |
| Modelo | ¿Cómo calculamos una salida? | tiempo = a x distancia + b. |
| Pérdida | ¿Qué error intentamos reducir? | Error cuadrático medio. |
| Entrenamiento | ¿Cómo ajustamos parámetros? | Probando parejas de a y b. |
| Evaluación | ¿Cómo comprobamos el resultado? | MAE sobre ejemplos reservados. |
| Inferencia | ¿Cómo usamos el modelo? | Estimando el tiempo de otro pedido. |
Estos principios aparecen también en sistemas más avanzados, aunque cambien los datos, las arquitecturas y los procedimientos.
No todos los enfoques necesitan etiquetas escritas manualmente. Por ejemplo, el aprendizaje autosupervisado construye objetivos a partir de los propios datos. Estudiaremos estas diferencias en las siguientes lecciones.
Ejercicios de autoevaluación
- En nuestro ejemplo, ¿cuál es la característica y cuál es la variable objetivo?
- ¿Qué diferencia hay entre el modelo y sus parámetros?
- ¿Por qué reservamos datos para evaluar?
- ¿Qué significa un MAE de tres minutos?
- ¿Podemos utilizar la hora real de llegada para predecir el tiempo antes de iniciar la entrega?
- Si un modelo complejo no mejora una solución sencilla, ¿qué deberíamos revisar?
Soluciones explicadas
1. La característica es la distancia. La variable objetivo es el tiempo real de entrega.
2. El modelo establece la forma del cálculo. Los parámetros son los valores ajustables dentro de esa forma: a y b.
3. Para comprobar el comportamiento con ejemplos que no hayan servido para ajustar los parámetros.
4. Que la magnitud del error es de tres minutos de media en los ejemplos evaluados. No significa que todas las predicciones fallen exactamente tres minutos.
5. No. Esa información no estará disponible en el momento de predecir y produciría una fuga de información.
6. La calidad de los datos, las características, el procedimiento de entrenamiento y la evaluación. También debemos considerar si la complejidad adicional aporta alguna ventaja útil.
Preguntas frecuentes
¿Los datos siempre tienen que estar en una tabla?
No. Pueden ser imágenes, texto, audio u otros formatos. El sistema necesita una representación que sus operaciones puedan procesar, normalmente numérica.
¿Entrenar y evaluar son lo mismo?
No. Entrenar ajusta los parámetros. Evaluar comprueba los resultados. Utilizar los mismos ejemplos para ambas tareas puede dar una impresión demasiado optimista.
¿El mejor modelo es el que tiene menos error?
El error es importante, pero también cuentan el tiempo de respuesta, el coste, la interpretabilidad y las necesidades de la aplicación.
¿Puede un modelo acertar con datos que no se parecen a los de entrenamiento?
Puede ocurrir, pero no debemos darlo por hecho. Cuanto más se aleja una situación de los ejemplos conocidos, más importante resulta comprobar su comportamiento.
Continúa el curso
Has completado la lección 0.2, la segunda de las cinco lecciones del bloque 0: Fundamentos de inteligencia artificial.
| Navegación | Contenido |
|---|---|
| Anterior | Lección 0.1 — Qué es la inteligencia artificial. |
| Índice del curso | Presentación e índice del curso de inteligencia artificial desde cero. |
| Siguiente | Lección 0.3 — Tipos de aprendizaje automático. |
En la siguiente lección conocerás los principales tipos de aprendizaje automático: supervisado, no supervisado, autosupervisado y por refuerzo. Veremos qué los diferencia y en qué situaciones se utiliza cada uno.
