Hoy aprenderemos sobre qué es el Machine Learning y a qué tipos de problemas se aplica de la mano de las reflexiones de nuestro Friki durante el bautizo de su primito y los diferentes episodios que se vivieron en la celebración junto con sus familiares.


Querido Diario:


Ayer, domingo, le echaron agua en la cabeza a mi primo pequeño Roberto. Todavía sigo sin entender por qué lo hacían y por qué todo el mundo estaba tan expectante por ello. Que sí, que el bautismo es el primer sacramento de la fe cristiana y todo eso, pero para uno que sabe, como yo, que el mundo no es más que leyes físicas rigiendo el comportamiento de materia y energía, todo aquello parecía más un rito de iniciación a una secta que cualquier otra cosa. Además, no sé por qué se hace esto cuando el primo Roberto es prácticamente un bebé y para él ese episodio supone casi más una ducha en condiciones extraordinarias con un cura que no conoce, en un edificio que no es su cuarto de baño, y con muchos ojos más que los de sus padres que le vigilan mientras. Normal que el niño no parase de llorar…

Digo yo que eso tendría más sentido hacerlo cuando el niño desarrollara conciencia para que sepa, al menos, dónde se está metiendo y por qué. Pero bueno de eso que se encarguen el que se tenga que encargar.

El caso es que después de todo el rollo, se organizó una celebración con todos los familiares. Y ya sabes lo que implica eso, Querido Diario, que aparecen aquellos tíos tan peculiares y pintorescos, enunciando las ideas y frases que les hacen característicos en todo el país, y que idolatran más a su vasito de la única rubia que nunca miente que a la santísima Trinidad por cuya fe están tomándosela.

En una de ellas, estaba yo mirando el cielo y recordando por qué se ve azul (tal y como te conté en el episodio anterior), cuando vino mi tío lejano de Jaén, Paco. Dándome un codazo con el brazo con el que sujetaba el mismo vaso que antes le había dicho al camarero que tenía un agujero, me sacó de mis pensamientos y me dijo:

- ¡Niño, cómo que no bebes na! Mirando a las nubes no vas a aprender na de na. Vente pacá que tus tíos y yo te vamos a enseñar de qué va la vida.

&laquo ¿Aprender? – Pensé – ¿Qué será aprender para él? Si de hecho estaba aprendiendo muchísimo mirando al cielo… &raquo Iba a responder, pero no me dio tiempo pues me cogió del hombro y mientras íbamos con los demás, me comía la oreja mientras me decía: Si me pongo pesao’ me lo dices. Si pudiera hablar siquiera…

Mientras tanto, no obstante, comencé a preguntarme seriamente cómo se puede decir que uno está aprendiendo algo. Y si se puede extender una definición equivalente de aprendizaje de manera independiente a un individuo consciente. Digamos, un ordenador.

¿Puede un ordenador aprender? ¿Qué significa que un ordenador aprenda?

La última pregunta era vital para responder la primera. Pues no creo que por descargarte un documental de Youtube en tu ordenador, tu ordenador sea más listo que antes. ¿Cómo se podría definir el aprendizaje de una máquina, entonces?

Cuando ya llegamos donde mi tío Paco quería llevarme, paró de comerme la oreja y me dijo:

- Tú haznos caso a nosotros, los mayores, que ya tenemos muchos años de experiencia vital a nuestras espaldas. Y ya sabes que más sabe el diablo por viejo que por diablo.

Se me iluminó la cara, pues eso es exactamente el principio detrás del Machine Learning. El diablo ha aprendido gracias a la experiencia. Precisamente, un ordenador, una máquina, solo puede decirse que ha aprendido cuando su desempeño en una tarea mejora tras una experiencia dada. [1] Que un ordenador se descargue una página de Wikipedia no quiere decir que haya aprendido, pero sí cuando una misma aplicación es capaz de, por ejemplo, recomendarte tiktoks que capten más tu atención en base a tu historial pasado, a medida que se entrena con miles de ejemplos de otros usuarios (que eso sea bueno o no, lo dejamos para otra entrada…).

Es más, la frase &laquo más sabe el diablo por viejo que por diablo &raquo es aún más adecuada para nuestro propósito, pues se ha comprobado que da igual el algoritmo que la máquina esté utilizando, que si hay un numero suficientemente grande de datos, todos harán que la máquina aprenda y sea capaz de desempeñar la tarea con la misma efectividad. Este hecho se conoce como la irrazonable efectividad de los datos [2]. Parece ser que el tío Paco sabe cosas.

- ¡Paco! – gritó mi madre, llegando a mi rescate - ¡Deja a tu sobrino ya, que él aprende a su manera! ¿No sabes que acaso hay diferentes tipos de aprendizajes? Cada persona que aprenda lo que quiera, y a su manera.

Sistema de aprendizaje supervisado.
Como siempre mamá, tan oportuna, no solo me salvó de la chapa del tío, sino que la afirmación que anunció también es cierta para el Machine Learning. Hay diferentes tipos de problemas (analizar cantidades ingentes de datos, reconocimiento de patrones en problemas complejos, etc.) para los cuales las soluciones clásicas son o muy engorrosas o directamente imposibles, pero para los cuales se pueden idear algoritmos de Machine Learning que los solucionen, y de estilos muy diferentes. Para entender estos estilos, voy a apoyarme en frases que llegaron a mis oídos desde la acalorada discusión de las amigas de mi tía, la madre de Roberto, sobre qué bebé era el más listo de todos.

- Mi hijo es el más listo de todos, el otro día le estuve enseñando diferentes manzanas que hube comprado, y al día siguiente le dije que escogiera una manzana de entre una serie de frutas… ¡Y supo cuál era la manzana! Y eso que todavía no sabe hablar.

Sistema de aprendizaje no supervisado.
- Pues mi hijo es aún más listo, le puse en la cama toda la fruta que compré un día: manzanas, naranjas, peras y melocotones, y sin decirle nombres ni ninguna información extra, le dije que los agrupara… ¡Y lo hizo solito!

- Qué exageradas sois las dos. Comparado con ellos, mi perro es un premio Nobel. Ya ha aprendido a distinguir entre su hueso de juguete y mi dildo. Cada vez que se ponía a morder el dildo le daba una patada, y cada vez que mordía el hueso, le daba una chuche. Ya nunca se equivoca. Menos mal…

Sistema de aprendizaje de reforzamiento.
Estos tres ejemplos son los tres tipos de aprendizaje que hay atendiendo a la supervisión a la que se somete al sujeto en cuestión. En esos casos, los bebés o el perro. Pero un sistema de Machine Learning también puede funcionar de la misma manera. Respectivamente, los tipos de algoritmos correspondientes a cada caso se denominan: supervisado, no supervisado, y aprendizaje de reforzamiento. En el primero, el algoritmo se entrena con casos en los que se le dice qué es cada cosa, para que luego sepa identificar eso con ejemplos nuevos. En el segundo, al algoritmo se le muestran muchos datos con sus características y él solito tiene que encontrar los patrones necesarios para agruparlos. Y en el tercero, se le da una recompensa o se le castiga al algoritmo respectivamente cuando hace lo que queremos que haga o no.

No sé cuándo, pero mi tío se metió en la conversación justo cuando mi tía dijo que tenía ganas de ver a Roberto entrar en el colegio.

- Lo del colegio eso está mal hecho. Eso de estudiar teoría antes de un examen no sirve pa na. Hay que aprender mientras que se trabaja. Hacen faltan más clases prácticas. Que los niños aprendan haciendo. Que luego nos salen amamonaos.

De hecho, ambos tipos de aprendizaje también diferencian tipos de algoritmos de Machine Learning, atendiendo a si aprenden antes de salir al mercado y luego son usados, o si van aprendiendo mientras están en el mercado, con los datos de los usuarios online. Estos tipos de algoritmos se denominan, respectivamente de aprendizaje batch y online.

Mi otro primo Sergio, que ahora está entrando en la pubertad y tiene arrebatos de rebeldía, escuchó aquello y empezó a quejarse de que el sistema educativo premiaba a los que solo memorizaban las cosas y no a los que de verdad entendían las cosas.

- Yo quiero que me enseñen a comprender, no a repetir como un papagayo – se quejaba.

Sistema de aprendizaje instance-based.
Pues bien, ambos tipos de aprendizaje resultan muy útiles para según qué problemas un algoritmo de Machine Learning quiera solucionar. Si un sistema tiene por objetivo encontrar algún caso extraño de entre muchos similares, lo mejor es que sea buenísimo en comparar los casos que ha visto y ha memorizado ya con los nuevos a los que se enfrentan para que sea capaz de detectar algo extraño. Estos son los algoritmos instance-based. Sin embargo, si queremos que un algoritmo sea capaz de &laquo entender &raquo la dependencia de una serie de datos en función de sus características, lo mejor es que sea capaz de desarrollar un modelo que describa esa dependencia y que sirva para generalizarse correctamente a nuevos casos; de esa forma entendiendo los datos con los que trabaja. Este tipo de algoritmos se denominan model-based.

Sistema de aprendizaje model-based.
Ni que decir tiene, que, al igual que una persona puede aprender de manera supervisada, mientras que va haciendo y memorizando las cosas, por ejemplo, una máquina también puede aprender según un algoritmo que sea clasificable según los tres criterios, siendo un algoritmo supervisado, online, e instance-based. O solo ser de 2 o de una única clase.

Querido Diario, la verdad que me lo pasé muy bien en el bautizo, a pesar de todo, pues pude reflexionar sobre el aprendizaje y entender cómo puede decirse que las máquinas también aprenden y de qué forma. Quizá resumiría todo esto diciendo que los más sabios siempre serán los ancianos, y que cada anciano tendrá sus historietas y sus formas de contarlas.

Mi primo Roberto se bautizó y se inició en el cristianismo, y ahora vosotros, Queridos Lectores, os habéis iniciado en el maravilloso mundo del Machine Learning. Y no sé de dónde es más difícil salir…


Atte.

Un Friki

Referencias:

[1] A. Géron. O’Reilly Book Club. Aurélien Géron on hands-on machine learning with Scikit-Learn, Keras, and TensorFlow., (2023).

[2] Peter Norvig et al., “The Unreasonable Effectiveness of Data,” IEEE Intelligent Systems 24, no. 2 (2009): 8–12.