Esta semana se ha celebrado Google Cloud Next en Madrid, uno de los pocos lugares que ha tenido el privilegio de recibir información de primera mano de los avances de la empresa de Mountain View sobre las tecnologías y servicios de Cloud, Big Data, machine learning, deep learning, G-suite, así como las distintas APIs y utilidades de desarrollo que están permitiendo desarrollar soluciones avanzadas y globales de alto rendimiento y bajo coste. Si algo ha dejado claro esta jornada es el extraordinario avance, que en apenas 20 meses ha logrado imprimir Google.
A finales de 2015 Google liberaba TensorFlow, «Usamos TensorFlow para todo, desde el reconocimiento de voz en la aplicación de Google, hasta SmartReply en Inbox y la búsqueda en Google Fotos», decía Sundar Pichai, CEO de Alphabet. si este recurso destacaba por algo era por la capacidad para generar etiquetas, categorías y reconocer textos en Google Imágenes. TensorFlow es la librería de redes neuronales libre más avanzada que existe, y ha sido desarrollada por una división llamada Google Brain (literalmente, el cerebro de Google). Destaca especialmente por su capacidad para generar sistemas de redes neuronales convolucionales, capaces de realizar tareas avanzadas de visión artificial, desde el reconocimiento, etiquetado y clasificación de imágenes a sistemas enormemente precisos de reconocimiento de escritura.
El Machine Learning no trata sólo de algoritmos de aprendizaje y redes neuronales sino de procesos de aprendizaje a partir de extensos repositorios de datos y experiencias que hacen que esos sistemas alcancen la máxima optimización y resuelvan problemas de forma rápida y, en muchos casos, mejor que los humanos. Es ahí donde Google ha avanzado más en los últimos meses, poniendo a disposición de la comunidad de desarrolladores un conjunto de APIs que han sido entrenadas con las inmensas fuentes de recursos audiovisuales de Google Imágenes y de Youtube. Hablamos de Google Vision API y de Google Video API.
¿Qué es Google Vision API?
Google Vision API presta la inteligencia y el aprendizaje que Google ha logrado tras el análisis de más de 1.000 millones de imágenes del servicio Google Images. Este tipo de apis dan acceso a soluciones de machine learning que utilizan recursos como TensorFlow pero que han pasado el proceso de aprendizaje con enormes cantidades de datos y resultan muy precisas. Vision API se ofreció al público en abril de 2016 y desde entonces su uso está siendo imparable. Lo que hace en un primer paso es descomponer la imagen en los distintos elementos que la componen, o al menos en los que es capaz de reconocer.
Esta API tiene muchas posibilidades interesantes y útiles, entre otras:
- Categorías y etiquetas, capaz de reconocer desde medios de transporte a especies animales, contextos, lugares, etcétera.
- Reconocimiento facial, que permite no sólo reconocer las caras, sino expresiones como una sonrisa, si un ojo está abierto o cerrado, etcétera y por tanto dar feedback sobre estados de ánimo, entre otras cosas.
- Atributos de la imagen, como el color, o el tipo de imagen (un dibujo, una fotografía, etcétera).
- Reconocimiento de sitios conocidos («landmarks»).
- Reconocimiento óptico de caracteres (OCR), por esta funcionalidad Google cobra un poco más que por el resto, en la jornada de Google Next nos hicieron una demostración de seguridad: si se escanean documentos es capaz de reconocer por ejemplo una tarjeta de crédito y ocultar sus números al almacenar esa imagen para evitar problemas posteriores. La capacidad de reconocer letras manuscritas es realmente elevada, mucho mejor que la de otros sistemas conocidos anteriormente.
- Reconocimiento de códigos de barras.
- Detección de logotipos.
- Reconocimiento de imágenes explícitas.
- Búsqueda en Internet de imágenes similares.
Cualquier persona que haya usado la búsqueda avanzada de imágenes en Google, reconocerá estas funciones: son prácticamente las mismas. Es posible utilizar estas funciones desde una versión particular de esta API pensada para móviles:
Un paso más allá: Cloud Video Intelligence
Si contamos con un sistema capaz de reconocer todos estos atributos en una imagen estática, y de reconocer la voz, era de esperar que Google pudiera ofrecer en algún momento un sistema de AI capaz de enriquecer la información de los videos. Eso ya ha llegado, se llama Cloud Video Intelligence es capaz de establecer una etiqueta o categoría para un conjunto de fotogramas, reconocer texto sobreimpreso en la pantalla, etcétera. Quizá lo mejor sea ejecutar alguna demo de las incluidas en su página. Por ejemplo, la dedicada a Jane Goodall (sección try the api) o quizá ver el siguiente video:
La ventaja de productividad e inteligencia que aporta es inmensa ya que tradicionalmente una persona tendría que visualizar y etiquetar los videos, cosa que ahora puede hacer un programa. Con esto se pueden procesar videotecas enteras y clasificarlas con programas bastante sencillos de codificar. La juventud de esta API no le permite haber tenido aún el éxito de la anterior, pero está claro que tiene un futuro muy prometedor.
Cloud Video Inteligence es uno de los ready to use models (modelos listos para usar) más recientes de Google, un tipo de recursos que parece que este año están teniendo un enorme impulso.
Ya estamos en la era de la Inteligencia Artificial
Nos han comentado hasta ahora que estábamos en la era de los smartphones, Sandor Pichai, nos deja clara una cosa, no estamos en la era de los smartphones, sino en la era de la AI, de las smart machines, de los datacenters inteligentes, de los sistemas inteligentes. Cosa que dice tras haber logrado instalar ya 2.000 millones de veces su sistema Android, el sistema operativo más popular de la historia (adiós al reino de Windows).
Google ha introducido la inteligencia artificial en casi todo, en sus mapas, en Street View, en los teclados predictivos de los móviles… o en la reciente Smart Reply para Gmail, el reconocimiento de voz, que en Google Home permite reconocer a diversos usuarios de la casa. Actualmente el reconocimiento de imágenes por parte de Google, cuestión con la que abría este artículo, es ya mejor que el reconocimiento por humanos. El procesamiento de imágenes es tan avanzado, que Pichai es capaz de mostrarnos como una imagen antigua, extraña y muy pixelada, puede mejorar espectacularmente gracias a los algoritmos de AI. Digamos que ya estamos usando piezas de la inteligencia artificial en muchos aspectos de nuestra experiencia de uso con Google (y lo cierto es que también con muchas otras compañías, e incluso en servicios de los que no somos conscientes).
La capacidad de corregir imágenes con la AI de Google va mucho más allá de corregir nuestras imágenes viejas: Airbus lo utiliza para corregir las anomalías o aberraciones de las imágenes captadas vía satélite, mejorando enormemente su calidad y capacidad de servicio.
¿Y todo esto cómo lo uso? Llega Google Lens
Una app como cualquier otra salvo que…
- Puede reconocer al enfocar a una flor de qué especie se trata.
- Puede reconocer los datos de conexión de un router wifi y conectarnos a él de inmediato.
- Darte datos de los establecimientos de una calle con sólo enfocarlos ¿qué valoración tiene un restaurante?
Entrenamiento e Inferencia
La AI moderna se basa en dos elementos fundamentales: el entrenamiento y la inferencia. Si habláramos de un emérito sistema de inteligencia muy familiar a todos, el personaje de Sherlock Holmes: análisis y deducción, o si habláramos de una persona: formación y aplicación de los conocimientos y habilidades. Es algo que conocemos, pero ¿cómo lo hacen las máquinas?
Lo hacen usando aprendizaje sobre cantidades masivas de datos, por ejemplo 3.000 millones de verbos a la semana para aprender a procesar un idioma (y esto todavía no lo hacen perfecto). Google ha comenzado a usar un hardware innovador y disruptivo que denomina Cloud TPU y que constituye parte de la actual infraestructura Cloud de Google.
Google.ai
Llegamos a lo que en España llamaríamos la madre del cordero: todo esto que estamos viendo no es fruto de la casualidad, sino de la apuesta estratégica de una de las compañías más poderosas del mundo por la Inteligencia Artificial (AI). Una actividad que se mueve en tres ejes fundamentales:
- Investigación: actualmente Google es la entidad pública o privada que más publicaciones científicas está haciendo sobre inteligencia artificial.
- Herramientas: TPUs, TensorFlow, Cloud Machine Learning (Cloud ML).
- AI aplicada.
Pichai se detiene en algunas de esas aplicaciones, desde el análisis de imágenes digitales para ayudar a los patólogos, a la secuenciación de ADN, a la predicción de propiedades de sustancias químicas, incluidos posibles fármacos, o de nuevos materiales. También nos permite cosas más lúdicas, como hacer un boceto a mano y que una app lo convierta en un bonito dibujo de inmediato.
Google juega en serio: Google Search y Google Assistant
Google no está desperdiciando dinero de forma desquiciada en aplicaciones o datacenters, es muy consciente de donde está la base de su negocio, por un lado lo que en la matriz de BCG sería su gran «vaca», Google Search, pero también en lo que constituye el siguiente paso lógico tras triunfar de forma rotunda con Android: Google Assistant, que no solo se manifiesta en su reluciente nuevo hardware: Google Pixel y Google Home, sino que también ha dado el salto a la plataforma del «enemigo»: el iPhone.
Otras API ofrecidas por Google
Dentro de toda esta estrategia Google no ha dejado de innovar y evolucionar su ecosistema de AI, fruto de ello hay varias API que también resultan de enorme interés para diversas aplicaciones:
- Del lenguaje:
- Cloud Natural Language API. Lo podemos usar, entre otras cosas, para extraer los adjetivos más frecuentes en los cuestionarios de opinión de clientes, empleados, tweets que nos citan… Uno de los idiomas que soporta es el español.
- Cloud Speech API.
- Cloud Translation API. La tecnología usada por Google en sus sistemas de traducción, que actualmente utiliza AirBnb para facilitar la interacción entre sus usuarios.
- Aplicadas:
- De momento en beta: Cloud Jobs API, predestinado a cambiar el modo en el que se busca empleo o se encuentran y seleccionan candidatos por parte de las empresas.
Uso de datos propios para machine learning
Google provee actualmente de dos herramientas fundamentales para analizar datos propios:
- TensorFlow.
- Cloud Machine Learning
Esta última herramienta probablemente evolucione mucho en el corto plazo, pero es tremendamente avanzada, permitiendo realizar análisis predictivo a gran escala, probar distintos modelos de aprendizaje para dar con el que lo haga mejor, y contar con una estructura de alta capacidad.
Respecto de TensorFlow, que actualmente es OpenSource, está también teniendo una rápida evolución, ha ganado eficiencia para utilizarse en dispositivos móviles y está extendiendo su utilidad a diversos campos de conocimiento:
En los ejemplos que vimos los modelos entrenados se empaquetan y se pueden usar para ejecución local en un dispositivo o para su integración en sistemas móviles, como los que explotan datos de geolocalización.
Ejemplos de uso de Cloud ML Engine
Google ha publicado diversos ejemplos de código que demuestran determinadas capacidades del ML en su aplicación a problemas empresariales e industriales.
- Criteo. Por empezar por uno que nos interesa especialmente a quienes trabajamos en puestos relacionados con el marketing digital, ¿cómo predecir el CTR? Usando un dataset de 1TB Criteo lo ha logrado y ha dejado el código en Github. No son los únicos en usar la AI de Google para optimizar publicidad digital, MainAd lo usa con el criterio de decidir qué anuncio muestra a cada usuario en función de su comportamiento, para anuncios, fundamentalmente de remarketing que compra a través de RTB para sus clientes.
- Inferencias sobre los datos del censo, Google muestra un ejemplo de uso de los datos del censo para hacer predicciones sobre niveles de ingresos, es ahí donde da explicaciones más detalladas, partiendo de un ejemplo introductorio y llegando a un sistema de estimación de alto nivel que permite llegar a una solución a través del entrenamiento basado en Tensorflow.
Ejemplos mostrados en Google Next:
- Aprendizaje profundo sobre la base de datos MNIST de números manuscritos.
- Wolters Kluwer: durante las sesiones de Google Next José Medina nos presentó Jurimetría. ¿Qué posibilidades hay de ganar un juicio? A través de Tensorflow y de la API de Lenguaje Natural de Google es posible hacer aprender a un sistema a partir de los cientos de miles de sentencias almacenados por esta empresa de información jurídica. Como resultado, se puede indicar aproximadamente no sólo la posibilidad, sino la duración de un proceso, o si se debe o no recurrir una sentencia. La abogacía no está tan lejos del aprendizaje profundo.
Las empresas que se introducen en estos proyectos cuentan con el apoyo de una unidad llamada Machine Learning Advanced Solutions LAB (ASL), que ofrece formación y asistencia, así como acceso a sus expertos.
Aplicaciones prácticas del Machine Learning en el ámbito empresarial
- Recomendaciones de productos: Google muestra en su site sobre ML un ejemplo avanzado muy interesante en el que utiliza tecnologías de Big Data, que se basa tanto en el comportamiento implícito del usuario como en inputs explícitos, asimismo hace un análisis en tiempo real con Fluentd y BigQuery, las recomendaciones se basan en el contenido, en clusters de productos que a priori «casan» entre sí, y en cuestiones colaborativas (productos que les gusta a otros usuarios, que ven otros usuarios o que han comprado otros usuarios afines).
- Análisis de series financieras temporales. El sueño de cualquier day trader: predecir el futuro con más acierto que los demás.
- Feedback de clientes. En el blog de Google Cloud sobre ML descubrimos Wootric, una aplicación que usa machine learning y que puede dejar los dientes largos a cualquiera que guste de indicadores Lean (NPS), de segmentaciones avanzadas, de buenos gráficos y de interfaces sencillas.
Conceptos avanzados: optimización de hiperparámetros
Una cuestión que vimos con el entrenamiento para OCR es que a menos que los dioses de la computación nos hayan tocado con su varita mágica las predicciones que hace nuestro primer modelo de redes neuronales, de una o de varias capas, pueden no ser de la suficiente precisión o calidad. Un acierto del 95% para un número nos puede parecer preciso, pero si debemos reconocer un código postal o una dirección completa el error combinado nos impedirá obtener un resultado útil para su aplicación en la empresa. Los hiperparámetros son variables de contorno que definen nuestro modelo de aprendizaje, por ejemplo, el número de redes neuronales que necesitamos. Cloud ML Engine nos permite, entre otras cosas, lanzar procesos de aprendizaje en paralelo con distintos hiperparámetros y comprobar la efectividad de cada modelo, una especie de «selección natural» que nos ayudará a obtener los modelos más precisos.
Pero ¿Qué es una red neuronal?
Es un sistema computacional que se inspira en el sistema de sinapsis que conforman las neuronas, las células que conforman nuestros cerebros. En este caso no se compone de Neuronas, sino de nodos, los nodos pueden ser de entrada (los que reciben de datos), de salida (los que entregan la información resultante o disparan acciones o decisiones) y los ocultos.
Aunque la comunidad de admiradores de Alan Turing señala su concepto de «máquina no organizada» como contenedor de un tipo de red neuronal, los pioneros fueron Warren McCulloch y Walter Pitts en un artículo titulado A logical calculus of the ideas immanent in nervous activity.
¿Qué pinta aquí el álgebra?
Si piensas que las matemáticas sólo sirven para tener una aburrida materia en el bachillerato y te interesa la inteligencia artificial, más te vale que le tengas cierto afecto al álgebra. ¿De qué hablamos cuando hablamos de álgebra? De vectores, de matrices, y de operaciones con este tipo de elementos, en especial, la multiplicación.
¿Qué es una red convolucional?
Es una arquitectura compleja que analiza los datos recibidos en múltiples capas, es lo que hace la API de Imágenes de Google: hay capas que reconocen colores, bordes, formas, que recorren una imagen de un tamaño importante considerando grupos de pocos pixeles, o de más píxeles. Las salidas de unas capas son las entradas de otras. Conceptualmente nos pueden parecer extrañas pero la experiencia nos dice que están siendo las más efectivas al analizar imágenes o al trabajar con la voz.
Las redes neuronales fueron un concepto poco transitado durante la mayor parte del siglo XX, hasta que en 1986 se publicó un artículo titulado Learning representations by back-propagating errors, de David E. Rumelhart, Geoffrey E. Hinton y Ronald J.Williams. Los siguientes años supusieron una expansión del interés en el ámbito universitario y de la I+D hacia las redes neuronales y los algoritmos genéticos, y en general sobre la Inteligencia Artificial, si bien su aplicación práctica siguió siendo limitada.
El Deep Learning es un avance reciente del uso de redes neuronales y del machine learning, fue introducido por uno de los artículos más citados en este siglo XXI: A fast learning algorithm for deep belief nets, obra, desde Toronto de Hinton, Osindero y Teh. Fue en el año 2006. Proponían el uso de decenas de capas de neuronas, para evitar las limitaciones de los algoritmos usados desde finales de los 80.
¿Cuándo empezó a utilizar Google el Deep Learning?
En 2012 lo aplicó en el reconocimiento de voz y obtuvo una espectacular reducción de los errores: el 25 %, era una competencia que necesitaba desarrollar si quería seguir ostentando el liderazgo en plataformas móviles. En marzo de 2013 compraba la empresa de Toronto DNN Research y Hinton pasaba a trabajar para Google, siguiendo una filosofía muy característica de Silicon Valley: más valen 8 superestrellas que 16 ingenieros mediocres.
El pionero en reconocimiento de caras sin embargo fue Facebook (2014), Google introdujo esa función en marzo de 2016 y actualmente forma parte de una de su api de imágenes. Google ha dado un giro estratégico y actualmente ostenta el liderazgo mundial en I+D sobre inteligencia artificial, y muy especialmente sobre Deep Learning.
NOTA: Google Cloud Next 2017 se celebró en Madrid el 8 de junio de 2017. En materia de Machine Learning y Deep Learning fueron ponentes Andres Leonardo Martinez Ortiz e Israel Olalla de Google, Ismael García de Devoteam, y José Medina de Wolters Kluwer España.
José Antonio Redondo Martín
Últimos posts de José Antonio Redondo Martín (ver todo)
- Proyecto ENIAC: la historia de un gigante del hardware - 11/02/2023
- Glosario de Procesamiento de Lenguaje Natural (NLP) - 09/02/2023
- Llega Bard: la respuesta de Google Search a ChatGPT-3 - 07/02/2023