pensamiento computacional

Qué es el machine learning o el aprendizaje automático

Ilustración conceptual del machine learning frente a la programación clásica

Imagen generada con IA

Enséñale a un niño una calculadora y pídele que sume 7 más 5. Después enséñale diez fotos y pídele que señale cuáles tienen gatos.

En el primer caso, la receta está clara: sumar dos números. En el segundo, todos reconocemos un gato al verlo, pero explicar paso a paso qué convierte una imagen en "un gato" ya no es tan fácil. ¿Las orejas? ¿Los bigotes? ¿La forma? ¿Cualquier combinación de esos? Cuesta escribir esa receta.

Ahí aparece la diferencia entre programación clásica y machine learning (o aprendizaje automático, que es la misma idea con el nombre en español). Son las dos formas grandes que existen de hacer que un ordenador resuelva un problema. No compiten, sirven para problemas distintos.

¿Qué es el machine learning?

Machine learning es lo que se hace cuando no podemos escribir la receta. En vez de explicarle al ordenador los pasos uno por uno, le damos mucha información (miles de fotos etiquetadas, montañas de texto, partidas jugadas, lo que haga falta) y le damos una manera de medir si lo está haciendo bien. Con esos dos ingredientes, el ordenador ajusta un modelo hasta dar con un patrón que funcione.

El ejemplo más famoso son los modelos como ChatGPT. Nadie le ha escrito una receta para responder. Lo que se hizo fue darle a leer una parte enorme de internet y entrenarlo durante meses para que aprendiera a predecir la siguiente palabra de un texto. Repitiendo eso miles de millones de veces, acabó aprendiendo a generar respuestas coherentes. Esta explicación es una simplificación, pero sirve para entender la idea: no se le escribió una receta con todas las respuestas posibles, se entrenó un modelo con muchísimos ejemplos.

Eso introduce diferencias muy fuertes con la programación de toda la vida:

No es magia: detrás hay matemáticas concretas. Solo que en vez de explicárselas tú al ordenador, el ordenador las afina a base de probar y corregir.

¿Y la programación clásica?

Si tu problema tiene una receta clara, la programación clásica sigue siendo la herramienta. Tú piensas los pasos uno por uno y los escribes en un lenguaje que el ordenador entiende. Después él los repite siempre igual.

Una calculadora suma con esta receta:

  1. Coge el primer número.
  2. Coge el segundo número.
  3. Súmalos.
  4. Muestra el resultado.

Lo escribes una vez, funciona para siempre y siempre da el mismo resultado. Es predecible, rápida y auditable: cualquier persona puede leer la receta y entender qué hace el programa.

Casi todo el software del mundo está hecho así: el sistema operativo de tu móvil, tu navegador, el cajero del banco, el termostato de tu casa, el videojuego de tu consola. Son recetas, a veces de millones de líneas, que alguien escribió.

La limitación es honesta: si tú no sabes la receta, esto no sirve. Y muchas cosas que se nos dan bien a las personas no tienen receta clara: distinguir un gato de un perro, entender una frase ambigua, decidir si un correo es basura, traducir un libro de poemas. Para todo eso hace falta otra herramienta.

¿Qué piezas hacen falta para que un ordenador aprenda?

El machine learning no es una sola técnica, son varias que se combinan. Cada pieza tiene su artículo aparte en este blog:

Dentro del aprendizaje automático hay además distintas formas de aprender según qué información le des al ordenador (con ejemplos etiquetados, sin etiquetas, por recompensas), pero esa subdivisión es harina para otro artículo.

¿Cuándo se usa una y cuándo la otra?

La regla práctica es directa:

Esto explica por qué la mayoría del software del mundo sigue siendo programación clásica, aunque las noticias hablen solo de inteligencia artificial. Tu navegador no es ML, el cajero del banco no es ML, el sistema de control de un ascensor no es ML. Para todo eso hay receta.

El machine learning brilla en lo que la programación clásica no podía: visión por ordenador, traducción, reconocimiento de voz, recomendaciones personalizadas, generación de texto e imágenes. Cosas que no son recetas, son patrones difusos que solo se notan al mirar muchos ejemplos.

A veces las dos se combinan. Un coche autónomo, por ejemplo, usa machine learning para "ver" la carretera y programación clásica para decidir el freno, el giro y mil cosas más. Lo mejor de las dos cuando el problema lo necesita.

Para decidir qué herramienta usar

  • ¿Sé escribir los pasos uno por uno, o solo sé reconocer si la respuesta es buena?
  • ¿Tengo muchos ejemplos del resultado correcto, o una forma clara de medir si una solución lo es?
  • ¿Necesito que el programa sea predecible y pueda explicar sus decisiones?
  • ¿Qué partes del problema se pueden resolver con una receta, y cuáles tiene más sentido aprenderlas de los datos?

Una nota final

Este artículo, como todo el blog, prioriza la simplicidad sobre la precisión técnica, sin caer en la simpleza. Hay nombres, familias y matices que he dejado fuera a propósito. Lo que sí merece la pena llevarse:

La inteligencia artificial es un campo extenso, y el machine learning solo es una parte. Y dentro de la programación, la diferencia clave es entender cuándo escribir tú las reglas paso a paso, y cuándo dejar que la máquina las aprenda sin que tú las hagas explícitas.