martes, 9 de junio de 2015

AI as a Service: ¿Acabaremos alquilando inteligencia?

UN POCO DE HISTORIA

En 1956, durante la famosa conferencia de DarthmounthJon McCAthty acuño el término Inteligencia Artificial, definiéndola simplemente como:

 "La ciencia y el ingenio de hacer máquinas inteligentes"

En la introducción de la conferencia se mencionan los objetivos de aquella joven ciencia que, cincuenta años después, aún se mantienen vigentes:

"Cada aspecto del aprendizaje o cualquier otra característica de la inteligencia puede, en principio, ser descrito con tanta precisión que puede fabricarse una máquina para simularlo. Se intentará averiguar cómo fabricar máquinas que utilicen el lenguaje, formen abstracciones y conceptos, resuelvan las clases de problemas ahora reservados para los seres humanos, y mejoren por sí mismas"

Por aquel entonces apenas se habían desarrollado los primeros Sistemas Expertos, unos algoritmos primitivos que, basándose en reglas heurísticas y lógica difusa, eran capaces de tomar ciertas decisiones. Pasarían diez años hasta que uno de ellos, DENDRAL, mostrara cierta utilidad en el mundo real.

Sin embargo, dos años después de la conferencia, se abrió otra línea de investigación mucho más prometedora. En 1958, Frank Rosenblat desarrolló el PERCEPTRON, un algoritmo capaz de reconocer algunos patrones utilizando una red neuronal de dos niveles.

Aunque pronto se demostró que sería necesaria mucha mayor complejidad para poder resolver incluso los problemas más sencillos, se esperaba que, con el tiempo, las redes neuronales fueran capaces de emular el funcionamiento del cerebro humano.

Lamentablemente, ni siquiera la llegada de la computación en paralelo en los años ochenta permitió lograr los avances prometidos por lo que la investigación en redes neuronales fue decayendo eclipsada por los SVM (Support Vector Machines) y los algoritmos de clasificación no-lineal.

Tras estos fracasos se abrieron nuevas líneas de investigación como los algoritmos evolutivos en donde las posibles soluciones a un problema (un inmenso conjunto creado aleatoriamente) competían en un entorno en donde rigen los principios de la Selección Natural (recombinación, mutaciones, herencia, etc) o la Teoría Computacional de la Mente en un intento por encontrar un plan maestro tras el procesamiento neuronal considerando al cerebro como un ordenador que ejecuta un programa capaz de procesar un lenguaje simbólico.

Ha sido un agrio debate que ha mantenido ocupados a los investigadores durante casi cuatro décadas aunque parece que estamos cerca de ver su conclusión en favor de ...

EL APRENDIZAJE PROFUNDO

El aprendizaje profundo (el Deep Learning) es un término de nueva factura que engloba un conjunto de algoritmos que tratan de simular el funcionamiento básico del cerebro, encadenando en cascada varias redes neuronales (más información...).


El modelo no es nuevo, se basa en los trabajos de Kunihiko Fukushima quién  propuso en los años 80 un algoritmo conocido como "neocognitron" en donde se empleaban varias redes para emular el funcionamiento de las neuronas del córtex visual primario.

En su interpretación moderna, se establece una jerarquía de redes neuronales capaces de procesar determinadas características de un conjunto de datos, desde las más básicas a las más complejas. Así los resultados de una red son empleados por el siguiente nivel para lidiar con un problema de mayor calado.

La estructura de cada una de estas redes neuronales puede ser diferente y pueden intervenir en ella diferentes tipos de neuronas aunque siempre incorporan un componente de aprendizaje (supervisado o no). De la misma manera, la arquitectura de las capas también puede variar según sea el propósito del algoritmo.

En la actualidad todos los grandes actores de Internet y las Redes Sociales están tratando de explotar este tipo de algoritmos para mejorar los servicios que ofrecen a sus miles de millones de usuarios pues resultan especialmente útiles para el reconocimiento de imágenes y el entendimiento del lenguaje natural:
  • Google lo emplea en sus buscadores de contenidos e imágenes, Google Now (su asistente personal) y en Inbox (su nuevo cliente de correo electrónico)
  • Microsoft sigue una línea similar incorporando el Deep Learning en Cortana (su asistente personal) y en Outlook.com
  • Facebook lo utiliza para clasificar los contenidos en nuestra página personal y para el reconocimiento facial
Experimentar con el Deep Learning, aunque sea a pequeña escala, está al alcance de todos gracias a los servicios Cloud. Os dejo aquí un fantástico artículo, aunque reservado para frikis de la programación, sobre cómo montar un entorno de este tipo utilizando los servicios Amazon EC2 y Phyton.

EL TAMAÑO SÍ IMPORTA

Buscadores inteligentes capaces de localizar los contenidos en función de preguntas expresadas en lenguaje natural, asistentes personales que conocen tus preferencias, sistemas capaces de reconocer los objetos que aparecen en una fotografía, clientes de correo electrónico que no sólo son capaces de clasificar los mensajes en función de su temática sino que, además, escriben por ti la respuesta. Las aplicaciones del Deep Learning son infinitas y no hemos hecho más que dar los primeros pasos.

Por poner sólo un ejemplo, recientemente Google ha presentado el proyecto Im2Calories para desarrollar un agente cognitivo (así se llaman este tipo de aplicaciones inteligentes) capaz de contar las calorías que te aportará el plato que te dispones a comer. Bastará con sacar una fotografía para que la aplicación reconozca los alimentos presentes en el menú y te informe sobre su contenido calórico.

Para realizar esta proeza, la imagen del plato no será procesada en tu móvil, será transmitida a un inmenso centro de proceso de datos en donde se ejecutará alguno de los componentes desarrolladoa por el equipo de Google Brain, el proyecto para crear un cerebro artificial del gigante del buscador. Entre sus proyectos, destaca también Descartes, un agente capaz de mantener una conversación sin haber sido previamente entrenado (os dejo también el paper publicado recientemente por Oril Vinyals. uno de los investigadores del proyecto)

En la misma línea Microsoft está desarrollando Adam e IBM trabaja para crear Watson, su agente inteligente (ver "La carrera por crear la primera Inteligencia Artificial"). Incluso la Unión Europea está dispuesta a invertir 1200 millones de euros para crear su propio cerebro artificial lanzando el ambicioso y polémico Human Brain Project .

Todas estas inteligencias artificiales en ciernes surgen de la potencia combinada de cientos de miles de procesadores. El super-ordenador Blue Gene de IBM cuenta en la actualidad con 150.000 procesadores funcionando en paralelo (más...). Ahora mismo, es capaz de emular 1.500 millones de neuronas y 6 billones de sinapsis, toda una proeza. Y sin embargo, aún no puede competir con el cerebro humano en donde se estima hay 86.000 millones de neuronas capaces de establecer 100.000 billones de sinapsis.

Las cifras asustan pero IBM piensa que será capaz de alcanzar la capacidad de proceso del cerebro humano en 2020 (¡sólo quedan 5 años!) cuando dispongan de los 800.000 procesadores necesarios. Quedan por resolver otros problemas como la velocidad de proceso y el consumo energético pero no parece que sean irresolubles.

Para soslayarlos, ya se están desarrollando chips neuromórficos en los que la clásica arquitectura de Von Newman es reemplazada por otra inspirada por el funcionamiento de las neuronas. IBM ya tiene disponible Synapse, un chip capaz de contener en su interior 1 millón de neuronas y establecer 256 millones de sinapsis.

Aunque uno sólo de estos chips puede hacer que un robot tenga una inteligencia quizás equiparable a la de un ratón, para comprender el lenguaje natural o reconocer objetos se necesita mucho más y, por el momento, no existe una tecnología que pueda integrarse en un móvil o un ordenador de medianas prestaciones.

SEGUIMOS SIENDO LOS MÁS INTELIGENTES

El Deep Learning  no es sólo potencia de procesamiento, requiere de un trabajo previo para diseñar la arquitectura de las capas de redes neuronales (pues cada una puede incorporar diferentes tipos de neuronas y métodos de aprendizaje) y para entrenar al conjunto.

Tampoco un sistema de este tipo nace agraciado por una "inteligencia" prodigiosa, la adquiere siguiendo el, tan conocido para los humanos, método de ensayo y error. Es un burdo proceso pero muy efectivo si disponemos de la suficiente masa crítica.

Supongamos que buscamos desarrollar un algoritmo capaz de interpretar el contenido de una imagen. Para entrenarlo podemos suministrarle unas cuantas imágenes de melocotones y contratar a una persona para determinar si los resultados que ofrece son correctos. Si acierta, se reforzarán automáticamente algunas conexiones neuronales y, si falla, se reducirá la relevancia de otras.

Pero, claro, no todo en la viña del señor son melocotones. Existen infinidad de objetos cuyas imágenes se ven afectadas por la perspectiva o las condiciones de iluminación y que, además, pueden combinarse de cualquier manera.

En consecuencia, para entrenar a un sistema de visión artificial se necesitan miles de millones de imágenes y un número parejo de personas que vayan validando o descartando los resultados obtenidos.

Si la inversión necesaria en infraestructura está al alcance de muy pocos, disponer del inmenso conjunto de datos y los recursos humanos necesarios para entrenar las redes neuronales restringe los candidatos a sólo un puñado.

UNA ESTRATEGIA WIN-WIN

Todos los grandes están luchando por incorporar el Deep Learning a sus servicios. Basta con revisar las constantes notas de prensa sobre la adquisición de startups  que ofrecen soluciones innovadoras en este área o la contratación de los mejores expertos, académicos o del sector privado, para dirigir los departamentos de I+D de las grandes corporaciones. Por poner sólo dos ejemplos, citar la contratación de Yannn LeCiun por parte de Facebook o la adquisición de DeepMinds por Google..

Son inversiones millonarias para ofrecernos unos servicios cada vez más inteligentes de forma aparentemente gratuita. Sin embargo, tras estos "regalos" se esconden importantes intereses económicos relacionados con la publicidad.

Conseguir que el asistente personal de nuestro móvil acierte cada vez con más frecuencia, no sólo nos facilita la vida, también permite a Google, Apple o Microsoft conocer en detalle nuestras preferencias y, a través de ellas, mostrarnos anuncios que puedan resultar de nuestro interés. No hay que olvidar que estas empresas cobran una pequeña cantidad por poner los banners y otra mucho mayor si pulsamos en ellos para acceder a las páginas de los anunciantes.

Pero, además, trabajamos para estas corporaciones gratuitamente, entrenando a sus Inteligencias Artificiales con nuestras elecciones.

Así, cada vez que pulsamos en un contenido, anuncio o imagen sugerido por Google o Facebook, aceptamos la clasificación de un correo electrónico propuesta por Outlook,com, Inbox.com o IBM Verse  o seguimos las recomendaciones de Google Now, Siri o Kortana estamos ayudando a la Inteligencia Artificial subyacente (Google Brain, Adam, Watson o Wolfram Alpha el polémico agente cognitivo que está detrás de Siri).

Así se establece un modelo de negocio beneficioso para ambas partes. Nosotros recibimos un mejor servicio de forma gratuita y a cambio las empresas disponen de un enorme campo de pruebas para probar sus algoritmos (perdonad la imagen, no he podido resistirme aunque nada más lejos de la realidad ;-).

En algunas ocasiones este intercambio se ha realizado sin respetar unos mínimos principios éticos. No es la primera vez que comento en este blog el caso de Facebook, empresa que osó manipular el panel de entrada de 700.000 usuarios para ofrecerles contenidos negativos y analizar los cambios de su compartimiento en la red (más información...).

En cualquier caso, éste no es el único modelo de negocio posible.

AI as a Service

Como hemos visto, en la actualidad resulta ya prácticamente imposible competir con estas grandes corporaciones, ni en infraestructura ni en masa crítica, por lo que pronto nos veremos obligados a alquilar algún tipo de inteligencia alojada en Cloud si queremos también mejorar nuestros propios servicios.

En realidad, ya lo estamos haciendo si contratamos Google Apps for Work u Office 365 pues sus indexadores de contenidos van incorporando cierta inteligencia de forma progresiva. Lo mismo ocurrirá si optamos por Facebook at Work (saldrá este mismo año) o por IBM Connections (ver "Las grandes Redes Sociales buscan acaparar el mercado empresarial").

La propuesta del gigante americano merece mención aparte. En 2014 anunció la salida al mercado de la familia de productos que se apoyan en Watson. Entre ellos destaca IBM Watson Foundations, un conjunto de aplicaciones que, apoyándose en la Inteligencia Artificial, realiza análisis predictivo sobre ingentes cantidades de datos (BigData) y ayuda al usuario en la toma de decisiones complejas. IBM tiene también planes para conectar su sitema de correo electrónico y trabajo colaborativo con Watson este mismo año lo que supondrá una mejora sustancial en sus capacidades de clasificación, detección de spam y respuesta automática (ver "Watson as a Service").

Por su parte, Amazon ofrece el servicio Amazon Machine Learning (gracias Raúl por la referencia) para crear modelos de aprendizaje automático y explotar los algoritmos diseñados ad-hoc para detectar patrones y realizar predicciones. El servicio no tiene un coste de contratación y sólo se paga por la infraestructura que se utiliza.

Microsoft también ha anunciado recientemente la posibilidad de añadir inteligencia a las aplicaciones a través del Proyecto Oxford, ofreciendo APIs para el reconocimiento facial, síntesis y reconocimiento de voz, análisis de imágenes y OCR (Reconocimiento de escritura a mano alzada) y comprensión del lenguaje natural.

También hay compañías más modestas que ofrecen aplicaciones de inteligencia artificial alojadas en Cloud (ver "Startups luchan por democratizar el Deep Learning") como Nervana Systems, AlchemyApi, Expect Labs, Support.comSkyMindCloudera u Orbit. Esta última ofrece servicios ya clásicos para identificar personas y lugares en documentos, detectar automáticamente el idioma de un texto o extraer de forma automática tags de un contenido, pero también intenta hacer cosas más pintorescas como detectar sentimientos positivos o negativos en un documento.

Dentro de estas pequeñas empresas merece la pena destacar a Sentient quién, recientemente, ha anunciado que es capaz de ensamblar la capacidad de procesamiento de cientos de ordenadores en Internet para ofrecer software de Inteligencia Artificial adecuado para resolver ciertos problemas. Aunque aún no han ofrecido todos los detalles, menciono este ejemplo al ser una aproximación radicalmente diferente.

Me temo, no obstante, que no podrán sobrevivir en su lucha frente a los grandes. De todas formas, apenas consigan hacerles sombra serán absorbidas siguiendo los pasos de cualquier otra que ha despuntado en el área de Deep Learning en los últimos años.

[Por cierto, el dominio ".ai" se extiende por la red poco a poco así que, si queréis localizar este tipo de Startups, podéis hacerlo fácilmente a través de Google introduciendo los términos de búsqueda seguidos de "site:.ai"]

UN SENCILLO EXPERIMENTO

Para terminar os propongo un sencillo experimento para comprobar hasta dónde llega la inteligencia de estos sistemas.

Hasta hace poco si, en el buscador de imágenes, de Google introducías "melocotón", obtenías un buen conjunto de propuestas basadas, todas ellas, en la aparición de dicha palabra en las páginas Web donde aparece la imagen y en su relevancia.

Sin embargo, ahora es posible poner "melocotones" para obtener imágenes en las que aparecen muchos de ellos. También obtendrás buenos resultados introduciendo "personas comiendo melocotones", "beber melocotón" o "plantar melocotón".

Pero el algoritmo fallará estrepitosamente si pruebas con "dos personas comiendo melocotones" o "personas rodeadas de melocotones".

Un resultado más dispar se obtiene poniendo "cortar melocotón". La primera imagen es acertada (una mano con un cuchillo cortando un melocotón) y algunas de las siguientes aceptables (melocotones cortados en gajos, por ejemplo). Puedes probar también a poner "cortar melocotón y tomate" y verás que la segunda imagen es un sorprendente acierto en comparación con las demás al igual que si pruebas con "melocotón y pera" aunque también aparecen cerezas, manzanas.

A saber los intrincados senderos que guían a estas inteligencias en ciernes.

Lo importante es comprender que estas sencillas pruebas muestran que los algoritmos aún necesitan refinarse tanto para comprender mejor nuestras preguntas cómo para analizar con mayor precisión los contenidos de las imágenes.

Pero pronto mejorarán y lo harán muy rápido, Prometo realizar esta mismo experimento dentro de un año y os cuento.


También puede interesarte:

No hay comentarios:

Publicar un comentario en la entrada