Por Oscar García y Javier Blanque (*)
En esta ciencia, al principio, como pasa casi siempre, no sabíamos ni lo que no sabíamos. Se intentaba reproducir la inteligencia humana, pero sin seres artificiales que fueran semejantes a humanos, sin una estructura mental que permitiera el aprendizaje, sin piernas ni brazos, sin manos para asir, sin capacidad de interactuar con otros seres artificiales o naturales, salvo a través de un monitor, teclado y mouse. Esto era un evidente “dead-end”.
La inteligencia artificial y las teorías subyacentes en las que se soporta, abarcan el desarrollo de sistemas computacionales capaces de realizar tareas que requieren, o aparentan, inteligencia. Algunos ejemplos son los siguientes: el reconocimiento del habla, traducción automática de idiomas, diagnóstico de enfermedades, predicción de cambios climatológicos y de eventos temporales, navegación en un entorno complejo bi o tri-dimensional, toma de decisiones, análisis y recomendaciones de tácticas y estrategias, análisis de patrones y percepción visual, entre muchas otras tareas.
La inteligencia artificial a su vez tiene varias ramas de investigación activas, algunas más que otras, en distintos momentos a lo largo de su historia. Principalmente se las divide en Sistemas Expertos, Algoritmos Genéticos, Redes Neuronales Artificiales, y otras ramas menores como Lógica Difusa y la fusión de paradigmas que se enfocan en el intercambio de “opiniones” de distintos “expertos” a través de una metáfora de pizarrón (blackboard).
Los Sistemas Expertos son aquellos basados en conjuntos de reglas (de tipo “SI Condición1 Y Condición2 Y… Y CondiciónN, ENTONCES AccionP” y están sostenidos por un motor de inferencia que puede ser inductivo o deductivo. La investigación en estos sistemas fue muy activa durante unos cuarenta años y hasta el inicio del nuevo siglo. Aún es una rama activa, pero no la preponderante actualmente. Uno de los ejemplos más importantes en esta rama de la ciencia fue el sistema experto médico Mycin.
Otra rama importante es la de los Algoritmos Genéticos, inicialmente descriptos por John Holland y que generaron (y aún generan) numerosas investigaciones. Estos algoritmos genéticos son una metáfora de la Naturaleza y se utilizan principalmente en problemas cuya respuesta no puede ser obtenida recorriendo el espacio de búsqueda de manera completa, debido a que es demasiado grande, o a que se tardaría demasiado tiempo en hacerlo.
Son los denominados “problemas de optimización”, y lo que se hace, al plantear la resolución de uno de estos problemas mediante un sistema de algoritmos genéticos, es ver el problema como una serie de características “interesantes” que definen al problema como un individuo, y se crea una cantidad de variantes aleatorias de este individuo (posibles soluciones) que se agrupan en un conjunto de individuos, en lo que se llama “una generación”.
Esta generación se compara contra una función que mide la “adaptabilidad” o el “fitness” de cada individuo de esa generación, y se los segmenta en subcategorías. Los que mejor se adaptan, es decir que son exitosos y “pasan” la función de “fitness”, son migrados directamente a la siguiente generación (en un proceso llamado selección). Esta generación siguiente se completa con individuos que se combinan unos con otros (en un proceso que se llama entrecruzamiento), y haciendo variaciones aleatorias mínimas a algunos individuos (en un proceso que se llama mutación), la función de “adaptabilidad” o “fitness” se aplica a todos los individuos durante miles o millones de generaciones, hasta que el proceso se termina por tiempo o alguna condición de éxito se alcanza. Esto permite obtener soluciones aproximadas a problemas de optimización que de otra forma serían irresolubles. Estas soluciones pueden no ser exactas, pero sí lo suficientemente buenas en la práctica.
Javier Blanque y Oscar García
En la cresta de la ola
La tercera rama de la inteligencia artificial son las Redes Neuronales Artificiales, y son la tecnología que está en la cresta de la ola desde hace unos diez años, debido en parte, a que ahora existe suficiente capacidad computacional, y en parte a que se han refinado las teorías de entrenamiento de las redes y sus mecanismos de aprendizaje.
El funcionamiento de las redes neuronales artificiales emula de cierta manera a las redes neuronales biológicas, de donde se extrae la metáfora. Son unidades lógicas que tienen dendritas y axones que se conectan con otras neuronas y que se activan en relación a una función de activación, que dispara una respuesta (generalmente hacia otra/s neurona/s) cuando se pasa determinado umbral.
Al mismo tiempo estas neuronas están organizadas en capas, generalmente tres o más; una de entrada, una o más oculta/s o interna/s, y una de salida. Las redes neuronales son muy buenas en tareas de reconocimiento de patrones, que son difícilmente resolubles mediante sistemas basados en reglas. Por ejemplo en reconocimiento de imágenes o en reconocimiento de huellas digitales, o de la voz u otros sonidos, y en estos casos, son las que mejor resultado obtienen.
Existen otras sub ramas menores de la inteligencia artificial como la Lógica Difusa, creada por el científico y matemático Lotfi A. Zadeh, recientemente fallecido, y la fusión de paradigmas a través de tecnologías de pizarrón (blackboard).
Aprendizaje automático
Esta sub área de la inteligencia artificial estudia y desarrolla algoritmos para aprender a realizar tareas. Las tareas pueden generar predicciones con exactitud, o aprender a tener un comportamiento inteligente. Para esto es necesario contar con una serie de observaciones de datos previa; es importante tener en cuenta cuán representativos son éstos del problema que se quiera resolver, y si la cantidad de “muestras” previas es grande, mejor.
Se espera que el aprendizaje permita tener un buen comportamiento en el futuro a partir de lo que se ha acumulado como experiencia. Básicamente, el objetivo final es aprender en forma automática sin intervención humana. En la actualidad, en general los ejemplos son presentados al sistema (la red neuronal) con su etiqueta correspondiente (el ejemplo tal pertenece a tal clase). Un objetivo más ambicioso es lograr que el sistema sea capaz de aprender sin dicha supervisión (es decir, que el sistema mismo pueda crear o generar las etiquetas).
El aprendizaje profundo (deep learning) es, dentro del aprendizaje automático, un conjunto variado de algoritmos que, en forma muy abstracta, trata de emular la actividad de un conjunto de capas de neuronas.
El desarrollo de hardware en la última década ha permitido el avance de esta metodología a tal nivel que la posiciona entre las mejores para reconocer patrones en representaciones digitales de imágenes, sonido y otros tipos de datos.
El término aprendizaje profundo hace referencia al gran número de capas de neuronas procesable gracias a los recursos computacionales disponibles. Se ha probado que los problemas representables como imágenes pueden ser reconocidos por este tipo de sistemas, con un nivel semejante al de un ser humano.
Es importante destacar que el objetivo no es necesariamente tomar decisiones a partir de información con la que contaría un ser humano a través de sus sentidos; la capacidad de estos sistemas se extiende a características del mundo no percibidas directamente por nosotros. Ejemplos son el procesamiento de imágenes que incluyan, además de los canales de color, otros tipos de características como microondas, radiación ultravioleta o infrarroja, ultrasonidos. Las variantes son prácticamente ilimitadas, así como las aplicaciones donde se pueden utilizar.
El salto cualitativo se dio en base al avance de la electrónica y las telecomunicaciones, que permitieron crear GPU (Graphic Processing Units) y CPU (Central Processing Units), como los de Nvidia, AMD o Intel, con miles de millones de circuitos en unos pocos milímetros cuadrados, y poder usarlos masivamente en servidores con gran cantidad de memoria y capacidad de almacenamiento; en agrupamientos de servidores (clusters); en súper–computadoras, y finalmente en la nube, a través de cloud computing.
Es por esto que los más grandes jugadores entre los proveedores de internet, y de servicios “en la nube”, como Google, Amazon, Microsoft, IBM, Facebook, Yandex, Weibo, Tencent, Ali Baba y Baidu, son a su vez, los más activos y grandes jugadores en esta nueva “ola” de inteligencia artificial, el deep learning, con las mejores y más sofisticadas implementaciones de redes de pensamiento profundo.
Éxitos en juegos y competencias
La inteligencia artificial se ha venido demostrando en juegos y competencias, y siempre fue noticia cuando ganaba a competidores humanos expertos, como en el caso de la IBM Deep Blue, al ganar el campeonato de ajedrez a Kasparov en 1996, o del IBM Watson al ganar el juego televisado de Jeopardy en 2011. Más recientemente, los ejemplos notables de los avances de la IA en juegos se dieron en la implementación de redes neuronales profundas (DNN) para juegos como AlphaGo de Google y Giraffe de Matthew Lai.
AlphaGo en 2016 venció 4-1 al mejor jugador profesional de Go surcoreano Lee Sedol, y en marzo de este año venció por 3-0 al mejor jugador del mundo, el chino Ke Jie. Consideremos que el número de átomos en el universo observable es menor que las posibles variaciones en los primeros 32 movimientos en un juego de Go, que tiene un tablero de 19×19. Giraffe puede aprender a jugar ajedrez a nivel de maestro internacional en solo 72 horas.
Actualmente se dispone de una gran variedad de software para aprendizaje profundo, la mayoría publicado como software libre (open source) o gratuito: Tensorflow, Caffe, Theano, Keras, Torch, MXNet. Distintos modelos de redes están presentes en estas aplicaciones, con facilidad para modificar arquitecturas y parámetros en estos sistemas. Es importante aclarar que estas redes no se “programan” sino que se entrenan, y este trabajo aún tiene mucho de artesanal (menos ciencia y más arte) para el tunning y la optimización de las implementaciones.
Estas herramientas pueden ser modificadas y extendidas con interfases (API) basadas en lenguajes de programación genéricos como Python, Lua, Java, y C/C++; también se usan herramientas más especializadas como MatLab, Octave, Mathematica y R, y extensiones para programación de placas gráficas (GPUs) como CUDA (Nvidia), ROCm (AMD) u OpenCL.
Aplicaciones de la inteligencia artificial
Las aplicaciones son ilimitadas. Actualmente los robots (físicos y lógicos) realizan cada vez más tareas y se incluye cada vez más inteligencia artificial en su programación. Todos nuestros aparatos agregan valor a través de la automatización de funciones cada vez más abstractas, nuestros smartphones son usados cada vez menos para hablar y más como asistentes personales inteligentes. De hecho, se han vuelto casi indispensables.
Si nuestra lustra-aspiradora robótica Roomba es inteligente y nuestra cortadora de pasto, mucho más, los asistentes personales y hogareños comenzarán a aparecer en cada habitación, en cada lamparita, al estilo del “Echo” de Amazon, desde donde harán lo que creen que queremos. Nos hablarán, nos interrumpirán y nos escucharán todo lo que decimos. Allí se plantea un problema de privacidad y seguridad, que quedará para otro análisis.
Los drones vuelan tele-comandados, pero cada vez más, durante gran parte del vuelo, este se realiza de manera automática, usando inteligencia artificial, que se incorpora también en los aviones. Y hay fusión de sensores, desde sensores temporales a geolocalización, con GPS, Glonass, Beidou, Galileo, sensores corporales, de presión sanguínea y temperatura, de temperatura interna y externa, etc.
Toda esta información se utiliza para predicción de condiciones locales, de tránsito, de clima y otras. Los automóviles, los omnibuses, los camiones, tienen cada vez más funciones de inteligencia artificial, que llegan en la actualidad a permitir el frenado de emergencia autónomo, el estacionamiento automático, el manejo automático, incluso sin un piloto sentado en el asiento del conductor. Sin embargo, no todo son rosas. Estas tecnologías pueden producir despidos masivos a 10 años vista, en el sector del transporte. Si bien puede ser un problema no inmediato, y ya está siendo discutido en el presente, es necesario dar prioridad a su esclarecimiento y solución.
Existen asistentes personales, que son cada vez más inteligentes, como Alexa (Amazon), Siri (Apple), OK (Google), Cortana (Microsoft) y otros, y si bien son útiles actualmente, están a años luz de convertirse en sistemas inteligentes independientes, que amenacen el futuro de la humanidad.
Pero la discusión ya ha comenzado y, de la misma manera que Stephen Hawking nos alerta sobre “no contactar extraterrestres”, Elon Musk nos avisa que hay que regular la inteligencia artificial, o iremos camino a una tercera guerra mundial. La IA es una amenaza existencial para la humanidad, y Vladimir Putin nos dice que el país que controle la ciencia de la inteligencia artificial, controlará el mundo.
De todos modos, no deberíamos ser tan melodramáticos. En lugar de preocuparnos, deberíamos ocuparnos. Podemos enseñar a un robot a usar unos nunchakos (instrumentos en artes marciales), pero la capacidad intelectual de las más avanzadas inteligencias artificiales, medida con respecto a la humana, es del nivel de un niño de 6 años, según un reciente estudio de investigadores chinos.
Sin embargo sí existen peligros latentes, por ejemplo en armas inteligentes autónomas (como drones) que comiencen a tomar decisiones sobre cuando y donde disparar sus misiles, y si nos guiamos por experiencia, en base al nivel de inteligencia del ser humano, estos sistemas de armas no serán demasiado inteligentes, y de allí a que todo el daño sea “colateral” hay solo un paso.
La mayor oportunidad de las empresas en el uso de la inteligencia artificial es en la combinación de la IA con sus bases de datos y sus repositorios de documentos e información no estructurada y convertirlos en bases de conocimiento.
Usando para ello técnicas de análisis de patrones, para navegar el “big-data”, utilizar el flujo de datos que ahora mismo se está dejando pasar, y que va a parar al /dev/null, rescatándolo, para convertirlo en información, y hallar las relaciones ocultas en ese océano de datos, para sacar provecho de esa “meta” información.
(*) Oscar García es profesor titular de la asignatura Sistemas Inteligentes, de la Universidad Nacional de Luján; Javier Blanque es profesor adjunto de la misma asignatura, también en la Universidad Nacional de Luján.
Alibaba quiere ser más que una tienda online
La compañía de comercio electrónico más grande de China está invirtiendo muy fuerte para dejar de ser una simple tienda online. En la conferencia sobre cloud computing que realiza todos los años, el CTO de la compañía, Jeff Zhang, anunció que va a instalar en el mundo laboratorios de investigación y desarrollo, con una inversión de US$ 15.000 millones.
El anuncio pone de manifiesto que buax convertirse en un gigante tecnológico global en condiciones de competir con Google, Microsoft y Amazon.
El programa de llama Academia para el descubrimiento, la aventura, el momento y el pronóstico (DAMO, según siglas inglesas).
De los siete laboratorios proyectados, dos estarán en China y los demás estarán en Singapur, Moscú, Tel Aviv, Bellevue (Seattle) y San Mateo (Silicon Valley). Se concentrarán en la investigación en tecnología fundacional y disruptiva en áreas como inteligencia de datos, procesamiento de lenguaje natural, tecnología financiera, máquinas con capacidad de aprender e interacción entre el ser humano y la máquina. Publicarán sus trabajos y desarrollarán tecnologías para uso de Alibaba y terceros.