¿Cómo aprende una IA?

¿Qué es una red neuronal? En simple

Una idea descifr[ada]: ¿Cómo aprende una IA?

Estamos rodeados de algoritmos de IA. Algunos más obvios (como el algoritmo de YouTube o de tiktok que eligen lo que vas a ver a continuación) y otros menos obvios (¿sabías que el 75% de la compra y venta de acciones la hacen algoritmos?). Incluso, hace tiempo que ocupamos una versión más simple de lo que eventualmente sería ChatGPT, en Google Docs.

El bisabuelo de ChatGPT

Todos estos algoritmos tienen algo en común: utilizan redes neuronales para aprender.

Las redes neuronales intentan replicar la complejidad de nuestras propias neuronas. Aun cuando nadie sabe muy bien como funciona el cerebro, de alguna forma los 120 billones de neuronas se conectan de una forma que nos permite entender nuestro entorno.

Para entender lo que es una red neuronal, veamos un ejemplo simple. Supongamos que queremos entrenar un bot para que pueda distinguir entre fotos de abejas y números 3.

Una tarea que es relativamente simple para mi hijo de dos años, es una hazaña de ingeniería complejísima. De hecho, ningún programador sabe escribir un algoritmo que haga eso directamente.

Pero lo que si saben hacer, es construir otros bots que los ayuden a lograr esa tarea: un bot que construye otros bots, y un bot que les enseña.

Bot el Constructor y ProfeBot.

El proceso de entrenar a un bot se parece a Los Juegos del Hambre. Bot el Constructor no es muy bueno haciendo bots que sepan distinguir entre abejas y números 3. De hecho, las primeras versiones que construye tienen redes neuronales conectadas de forma prácticamente aleatoria.

Las primeras creaciones de Bot el Constructor son bien “especiales”.

La tarea de ProfeBot no es enseñarles a distinguir entre abejas y 3s. De hecho, ni el mismo sabe cómo hacer eso. Pero si sabe hacer algo que muchos profesores de la educación tradicional saben hacer muy bien: ponerlos a prueba con un examen.

La frustración de ProfeBot al ver los estudiantes que le tocan. Ellos hacen lo mejor que pueden. No es su culpa, Bot el Constructor no le puso mucho esfuerzo a la primera camada.

El examen que les hace ProfeBot es simple: les muestra fotos de abejas y 3s, y los bots tienen que tratar de achuntarle a la mayor cantidad posible. ¿Cómo corrige ProfeBot los exámenes si él mismo no sabe cómo distinguir entre una abeja y un 3?

Porque los exámenes vienen con respuesta.

Los programadores de estos algoritmos le entregan un “set de entrenamiento” que son fotos de abejas y 3s con sus respuestas correctas.

Con los resultados de los exámenes en mano, Bot el Constructor se queda solo con aquellos bots que tuvieron mejores resultados, y los toma como base para crear la nueva camada de bots.

“¡Y que la suerte esté siempre de su parte!” Katniss.

Esa nueva generación se somete al examen de ProfeBot, y este ciclo se repite un número gigantesco de veces. Cada nueva generación “hereda” las características que hicieron que sus antepasados sobrevivieran.

De alguna forma sorprendente e incomprensible, este ciclo (crear bots con características casi aleatorias, someterlos a prueba y quedarse con los mejores) funciona.

La clave es que los programadores corren este ciclo billones de veces, con exámenes de millones de preguntas. Si cada generación es un poco mejor que la anterior, entonces con suficiente tiempo (iteraciones) eventualmente se llega a un bot que sabe muy bien como distinguir abejas de números 3s.

El bot ganador, cuyas redes neuronales son inmensamente complejas.

Lo que más me sorprende a mí es que nadie sabe cómo funciona la red neuronal ganadora. Las conexiones aleatorias que se fueron modificando generación tras generación resultan en algo demasiado complejo para que un humano lo entienda.

Pero funciona.

PD: los dibujos y la idea central de este post vienen de este excelente video de CGP Grey.

PD2: hay muchas formas distintas de enseñarle a una red neuronal. La que exploré en este post comúnmente se le llama algoritmo genético, por su paralelo con la selección natural. Si te interesa saber más sobre otros tipos de aprendizaje, en particular Reinforced Learning, este video con una simulación de autos de carrera que aprenden a manejar es interesantísimo.

PD3: si te interesa saber la parte más matemática de cómo funcionan las redes neuronales, este video me ayudó mucho. Va a lo profundo pero de forma accesible.

Mis cosas favoritas de esta semana

🎙 Un video - Vas manejando en la carretera. Te topas con tráfico. Bajas la velocidad e incluso frenas. Llevas una hora manejando lento y estás ansioso por ver que fue lo que causó el tráfico. Debe ser un choque gigante. Pero de la nada, mágicamente, desaparece el tráfico. ¿Te ha pasado? Este video del mismo canal que inspiró el newsletter de esta semana, nos muestra por qué pasa es y como podemos solucionar la mayoría de los tráficos de auto.

📽 Un artículo - Todos tenemos a ese amigo misterioso que dice que tiene una idea excelente para una startup que va a revolucionar al mundo. Y cuando le preguntas cuál es su idea, prefiere no contarte para que nadie se la robe. Este mini artículo (2 min de lectura, literal) de Derek Sivers habla sobre la diferencia entre una idea y su ejecución. La idea por si sola o con mala ejecución no vale nada.

🐦 Un tweet - Esta ilusión óptica de unas cajas que estoy seguro de que se mueven, pero se supone que no. Magia.