La Inteligencia Artificial no es magia. Son matemáticas / Carles Gomara

  • por

Seguramente alguna vez has querido enseñar una habilidad o conocimiento a un compañero del trabajo, un amigo, o a tus hijos.

Si se trata de un conocimiento Explícito (aquel que es estructurado) puedes transmitirlo de forma oral o escrita mediante instrucciones concretas. Como si se tratara de una receta de cocina describiendo ordenadamente los pasos y aportando toda la información necesaria para cada uno de ellos. También pueden ser directrices del estilo causa-efecto: “si ocurre esto, haz esto otro, si en cambio la situación es esta otra, entonces haz aquello”. Las instrucciones pueden ser numerosas y complicadas, pero eres capaz de dar una solución para cada una de las situaciones posibles.

Este conocimiento es fácil de “enseñar” también a las máquinas. Es la programación tradicional de los ordenadores. Los programadores escriben el código con todas las instrucciones que necesita la máquina, que cubren todos los posibles escenarios. Y las máquinas son mucho más rápidas que las personas ejecutando estas instrucciones, sin errores ni descanso.

En otras ocasiones, se trata de conocimiento Tácito (difuso y difícil de formalizar) que nos resulta complicado de explicar y comunicar a los demás. El maestro necesita compartir tiempo con el aprendiz para enseñar. Este conocimiento se adquiere a base de ejemplos, observando, deduciendo o imitando, y sobre todo practicando. Y una vez asimilado surge cuando lo necesitamos sin saber cómo.

¿Cómo podemos transmitir este conocimiento difuso a las máquinas? De forma parecida a como lo hacemos entre personas.

Alimentamos el sistema informático con gran cantidad de ejemplos (Datos). Y le pedimos que busque características o patrones comunes que nos permitan proponer reglas (Algoritmos). Luego, podemos probar el algoritmo con nuevos datos y ajustarlo para mejorar el resultado. Es un proceso continuo de prueba y error que nunca termina. Básicamente, así es como funciona el aprendizaje automático (ML).

Pongamos un ejemplo simplificado. Si quiero que un ML aprenda a identificar fotos de gatos, le daré miles de fotografías con gatos de distintas razas y colores (Datos). Ésta es la parte del conocimiento explícito que puedo transmitir: “estas son fotos de gatos”. Y le pediré que descubra patrones en las imágenes utilizando métodos estadísticos y matemáticas. Comenzará descubriendo que en todas las imágenes se repiten 2 formas triangulares que son las orejas, también descubrirá repetida una forma parecida a una doble “Y” opuestas (una hacia arriba y otra hacia abajo) que en realidad la forman la nariz y la boca del gato.

No alt text provided for this image

Ya está. Con esto el ML puede construir su primera propuesta de Algoritmo: si hay 2 formas triangulares y una doble “Y” entonces se trata de un gato. Probaremos el algoritmo con más Datos (fotografías) y revisaremos el resultado para comprobar que funciona correctamente (del mismo modo que haría un maestro). Tal vez descubriremos que en algún caso la hipótesis falla y confunde un Tigre con un Gato. Hay que mejorar el algoritmo. Con más estadística y matemática averiguará que en las fotos de tigres se repite además el patrón de las rayas en su pelaje, por lo que modificaremos el Algoritmo incluyendo esta nueva característica: “Si tiene orejas triangulares, doble “Y”, pero tiene rayas, no es un Gato”. El sistema aprende con la experiencia, se adapta y mejora. Evoluciona.

Este aprendizaje es un proceso largo y costoso de prueba y error continuo hasta tener un grado de fallo suficientemente bajo. La programación tradicional ofrece resultados concretos y precisos. El ML ofrece probabilidad de acierto (en tareas en las que la programación tradicional no pude aplicarse).

Y el crecimiento actual del ML se explica gracias a 3 factores: se han desarrollado nuevas y mejores herramientas estadísticas y matemáticas para encontrar patrones en los datos, tenemos chips mucho más potentes y baratos (Ley de Moore) para ejecutar estos algoritmos, y disponemos de acceso a grandes cantidades de datos que podemos utilizar para alimentar y enseñar a los sistemas de ML.

Las personas asimilamos el conocimiento (Tácito. No estructurado) sin saber muy bien cómo, ni cómo transmitirlo. Y lo llamamos experiencia e instinto. En realidad, son patrones que nuestra psique ha reconocido con tiempo y esfuerzo.

El aprendizaje automático hace lo mismo para aprender: descubre patrones.

No es magia. Son matemáticas.

(aunque como dijo Arthur C. Clarke: “Cualquier tecnología suficientemente avanzada es indistinguible de la magia”)

 

Linkedin Carles Gomara