Guillermo Meléndez Alonso

Guillermo Meléndez Alonso (Grupo BME)

Responsable del laboratorio de Inteligencia Artificial de Bolsas y Mercados Españoles Inntech Director del máster de IA Aplicada a los Mercados Financieros (MIAX), de Instituto BME
Education ai
  • Aprende guitarra en dos semanas
  • Aprende inglés en dos semanas
  • Aprende a invertir como un bróker en 15 horas
  • Aprende Inteligencia Artificial en 15 horas

Los ejemplos anteriores son anuncios reales que he encontrado en internet, y que tienen algo en común: es imposible que cumplan lo que prometen.

Aprender cualquier disciplina conlleva siempre esfuerzo, ilusión y tiempo. A lo largo de dos semanas puede confirmar si una materia realmente te gusta o, si por el contrario, es muy diferente a cómo te lo habías imaginado y, por lo tanto, no deseas seguir con el proceso de aprendizaje. Pero es imposible llegar a dominar la guitarra, el inglés, las finanzas o la Inteligencia Artificial en dos semanas. Y mucho menos en 15 horas.

¿Y por qué querríamos aprender Inteligencia Artificial?, ¿para qué sirve?, ¿voy a poder aplicar IA si no tengo un ordenador muy potente?, ¿necesito un alto grado de conocimientos matemáticos para poder desarrollar Inteligencia Artificial?

Para responder a las preguntas anteriores vamos a utilizar un ejemplo práctico: el algoritmo del viajante.

  Albacete Alicante Almería Ávila Badajoz Barcelona Bilbao Burgos Cáceres Cádiz
Albacete 0 km 171 km 369 km 366 km 525 km 540 km 646 km 488 km 504 km 617 km
Alicante 171 km 0 km 294 km 537 km 696 km 515 km 817 km 659 km 675 km 688 km
Almería 369 km 294 km 0 km 663 km 604 km 809 km 958 km 800 km 651 km 484 km
Ávila 366 km 537 km 663 km 0 km 318 km 717 km 401 km 243 km 229 km 618 km
Badajoz 525 km 696 km 604 km 318 km 0 km 1.022 km 694 km 536 km 89 km 342 km
Barcelona 540 km 515 km 809 km 717 km 1.022 km 0 km 620 km 583 km 918 km 1.284 km
Bilbao 646 km 817 km 958 km 401 km 694 km 620 km 0 km 158 km 605 km 1.058 km
Burgos 488 km 659 km 800 km 243 km 536 km 583 km 158 km 0 km 447 km 900 km
Cáceres 504 km 675 km 651 km 229 km 89 km 918 km 605 km 447 km 0 km 369 km
Cádiz 617 km 688 km 484 km 618 km 342 km 1.284 km 1.058 km 900 km 369 km 0 km

Para aquellos que no estéis familiarizados con este problema, el viajante es un comercial que tiene que encontrar la ruta óptima para recorrer un conjunto de ciudades, pasando una sola vez por cada una (existen otras variantes en las que el viajante puede repetir ciudades) y volver a casa, habiendo recorrido el menor número de kilómetros posible.

A priori, no parece un problema tan complejo. Pero si lo examinamos bien, nos encontramos con que se trata de un problema de NP soluciones. Es decir, un problema extremadamente complejo de resolver.

Si únicamente tenemos 10 ciudades, como en la imagen de arriba, el número de rutas posibles existentes, asciende a 3.628.800 combinaciones posibles.

Para este artículo, vamos a tratar de resolver el mismo problema, pero con 47 ciudades (ver Excel adjunto). Esto supone que el número de combinaciones posibles asciende a:

258.623.241.511.168.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000

Es decir, 0,2 decillones de combinaciones posibles. Si fuéramos capaces de extraer 1 millón de combinaciones posibles por segundo, el tiempo estimado que nos llevaría resolver el problema es superior a la edad actual del universo… sin embargo el Excel que viene adjunto al problema tarda 4,5 minutos en resolverlo en VBA. ¿Cómo es posible? Y ¿un Excel?

Da igual el lenguaje de programación que utilices: C, Java, Python… el que quieras. Si tratas de resolver el problema por la fuerza bruta (recorriendo todas las combinaciones posibles, hasta encontrar la óptima), no lo resolverás jamás.

De ahí la importancia de estudiar Inteligencia Artificial. En este caso, he programado un sencillo algoritmo genético para resolver el problema.

Un algoritmo genético es una técnica de búsqueda iterativa inspirada en los principios de selección natural como estrategia de optimización.

El algoritmo crea sucesivas generaciones dando más importancia a las mejores soluciones alcanzadas hasta la fecha. Cada solución tiene asociada un valor que indica lo buena que es (valor de fitness). Cuanto mayor sea este, mayor será su probabilidad de sobrevivir y reproducirse.

  1. Ventajas de los genéticos: Solucionan problemas complejos en un periodo de tiempo aceptable.
  2. Desventajas de los genéticos: No garantizan una solución óptima.

Los algoritmos genéticos son preferibles frente a soluciones deterministas cuando el conjunto de posibilidades que arroja el problema, es superior a la capacidad de cálculo disponible. Por ejemplo, el problema que tenemos entre manos, el del viajante, con 0,2 decillones de combinaciones posibles.

Pasos para construir un algoritmo genético:

  • Generar aleatoriamente una población inicial
  • Repetir hasta que se cumpla la condición de parad
    • Evaluar los individuos según la función objetivo (maximizar beneficio, minimizar distancia)
    • Seleccionar padres (en función de la evaluación anterior).
    • Cruzamiento: recombinar material genético de los padres
    • Evaluar si el individuo, o parte de su código genético muta
    • Reemplazo generacional
    • Generación = Generación +1
  • Cuando se cumpla la condición de parada, devolver mejor solución.

Recuperando las preguntas que nos hacíamos al principio

¿Por qué querríamos aprender Inteligencia Artificial?: Abre un nuevo mundo de posibilidades para resolver problemas que, hasta ahora, no estaban al alcance de los ordenadores. Las posibilidades en finanzas, medicina, comunicaciones, transporte etc, ya son una realidad que han cambiado el panorama actual.

¿Para qué sirve?: Para mejorar cualquier solución existente a cualquier problema, o para generar nuevas soluciones a los problemas. Es un campo de conocimiento fascinante.

¿Voy a poder aplicar IA si no tengo un ordenador muy potente?: A nivel profesional, cuanto mejor sea el ordenador que tengas, menos tiempo tardarás en resolverlo, especialmente cuanto mejor tarjeta gráfica tengas. Pero a día de hoy existen multitud de soluciones. Tienes diversas plataformas cloud donde puedes desplegar en minutos una plataforma con la configuración que necesites y desarrollar allí tus programas.

¿Necesito un alto grado de conocimientos matemáticos para poder desarrollar Inteligencia Artificial? Con las soluciones actuales no es imprescindible. Necesitas tener conocimientos de programación y de Inteligencia Artificial para poder desarrollar (evidentemente). Pero estos conocimientos están al alcance de cualquiera que quiera llegar a adquirirlos (no en 15 horas, ni en 2 semanas). Eso sí, cuando ya tengas un nivel determinado, querrás adquirir los conocimientos matemáticos necesarios para poder comprender lo que hay dentro de las redes neuronales, para poder exprimir todo su jugo. Pero para dar tus primeros pasos, no es necesario.

¿Dónde puedo estudiar Inteligencia Artificial?: Aquí hay que separar el grano de la paja. Hay varias opciones muy válidas en el ámbito nacional, pero el boom que ha experimentado la IA ha hecho que muchas escuelas de negocio quieran llevarse una parte del pastel, sin tener programas con una mínima calidad. Me temo que tendrás que tener sentido común para diferenciar unos de otros, pero sí te recomiendo que mires varios elementos antes de decidir:

  1. Duración del programa: Es muy poco probable que adquieras conocimientos reales con un programa que dure menos de 400 – 500 horas.
  2. Precio: la formación de calidad no suele ser barata. Un programa de menos de 3.000 euros, probablemente no valga la pena.
  3. Actualidad de las materias impartidas: La IA está constantemente cambiando. La frecuencia con la que se actualice el temario es una variable muy importante a la hora de decidir. Por ejemplo, la gran mayoría de escuelas de negocio explicar procesamiento de lenguaje natural contando únicamente redes recurrentes, Word to vec y bag of words… lo cual estaba muy bien hace 5 – 7 años. Actualmente se usan capas de atención, modelos transformer… presta mucha atención a cómo de actualizado está el temario (compara entre escuelas, dando mucha más importancia a este punto, que al tema del precio, siempre y cuando te sea posible).