Llegamos a ustedes gracias a:



Reportajes y análisis

6 nubes de aprendizaje automático

[31/05/2016] Lo que llamamos aprendizaje automático puede tomar muchas formas. La forma más pura le ofrece al analista un conjunto de herramientas de exploración de datos, una selección de modelos ML, algoritmos de solución robusta, y una manera de utilizar las soluciones para las predicciones. Las nubes de Amazon, Microsoft, Databricks, Google e IBM ofrecen todas las APIs de predicción que le dan al analista varios niveles de control. HPE Haven OnDemand ofrece una API de predicción limitada para problemas de clasificación binaria.

Sin embargo, no todos los problemas de aprendizaje automático tienen que ser resueltos a partir de cero. Algunos problemas pueden ser probados en una muestra lo suficientemente grande como para ser más ampliamente aplicable. Por ejemplo, de voz a texto, texto a voz, análisis de texto, y el reconocimiento de rostros son problemas para los cuales las soluciones "enlatadas" trabajan a menudo. No es de extrañar que una serie de proveedores de aprendizaje automático en la nube ofrezcan estas capacidades a través de una API, lo que permite a los desarrolladores incorporarlas en sus aplicaciones.

Estos servicios reconocerán el Inglés Americano hablado (y algunos otros idiomas) y lo transcribirán. Sin embargo, la eficacia de un determinado servicio para un hablante dado dependerá del dialecto y el acento del orador y el grado en que la solución haya sido entrenada en dialectos y acentos similares. Microsoft Azure, IBM, Google y Haven OnDemand poseen los servicios de voz a texto.

Hay muchos tipos de problemas de aprendizaje automático. Por ejemplo, los problemas de regresión tratan de predecir una variable continua (por ejemplo, ventas) de otras observaciones, y los problemas de clasificación intentan predecir en dónde caerá un determinado conjunto de observaciones (por ejemplo, el correo electrónico no deseado). Amazon, Microsoft, Databricks, Google, HPE, e IBM proporcionan herramientas para resolver una serie de problemas de aprendizaje automático, aunque algunos kits de herramientas son mucho más completos que otros.

En este artículo, vamos a discutir brevemente estas seis soluciones comerciales de aprendizaje automático. El anuncio de Google sobre herramientas y aplicaciones de aprendizaje automático basado en la nube en marzo estuvo, por desgracia, muy por delante de la disponibilidad pública del aprendizaje automático de Google Cloud.

Una breve historia de la IA

La inteligencia artificial (IA) tiene una historia accidentada. Los primeros trabajos estuvieron dirigidos a jugar juegos (damas y ajedrez) y a la demostración de teoremas; luego se trasladó al procesamiento del lenguaje natural, el encadenamiento hacia atrás, encadenamiento hacia adelante, y redes neuronales. Después del "invierno de la IA" en la década de 1970, los sistemas expertos se hicieron comercialmente viables en la década de 1980, aunque las compañías que estuvieron detrás de ellos no duraron mucho.

En la década de 1990, la aplicación de programación DART -desplegada en la primera Guerra del Golfo- devolvió la inversión en IA de DARPA, 30 años después; y Deep Blue de IBM derrotó al gran maestro de ajedrez Garry Kasparov. En la década del 2000, los robots autónomos se volvieron viables para la exploración remota (Nomad, Spirit y Opportunity) y para la limpieza del hogar (Roomba). En la década del 2010 vimos un sistema de juego basado en la visión viable (Microsoft Kinect), vehículos que se manejan solos (Google), IBM Watson derrotó a dos campeones de "Jeopardy", y una victoria contra un rankeado Go Champion (Google AlphaGo).

El lenguaje natural ha llegado al punto en que tomamos a Siri de Apple, Google Now, y Cortana de Microsoft por sentado cuando le hablamos (o escribimos) a nuestros teléfonos. Por último, años de investigación en la teoría de formación de algoritmos de aprendizaje computacional y el reconocimiento de patrones y la optimización con datos históricos, han dado sus frutos en el campo del aprendizaje automático.

Amazon Machine Learning

Amazon ha tratado de poner la máquina de aprendizaje al alcance de los simples mortales. Está pensado para los analistas que entienden que el problema del negocio se está resolviendo, entiendan o no los algoritmos de ciencias de datos y aprendizaje automático.

En general, usted se aproxima al enfoque de aprendizaje automático de Amazon, al limpiar y subir sus datos en formato CSV en S3; a continuación, con la creación, la formación y la evaluación de un modelo ML; y, finalmente, mediante la creación de predicciones por lotes o en tiempo real. Cada paso es iterativo, como todo el proceso. El aprendizaje automático no es una bala mágica estática, incluso si se deja la selección del algoritmo en manos de Amazon.

Después de la formación y evaluación de un modelo de clasificación binaria en Amazon Machine Learning, puede elegir su propio umbral de puntuación para alcanzar sus tasas de error deseadas. Aquí incrementamos el valor predeterminado del umbral, 0,5 para que podamos generar un conjunto más fuerte de clientes potenciales para fines de marketing y ventas.
Amazon Machine Learning

El aprendizaje automático de Amazon soporta tres tipos de modelos -clasificación binaria, clasificación multiclase, y regresión- y un algoritmo para cada tipo. Para la optimización, Amazon Machine Learning utiliza Stochastic Gradient Descend (SGD), que realiza varios pasos secuenciales sobre los datos de entrenamiento y actualización de funciones para tratar de minimizar la pérdida de funciones. La pérdida de funciones refleja la diferencia entre el valor real y el valor predicho. La optimización de Gradient Descent funciona bien solo para las funciones continuas y diferenciables, tales como las funciones de pérdida de logística.

Para la clasificación binaria, Amazon Machine Learning utiliza la regresión logística (función de pérdida logística más SGD).

Para la clasificación múltiple, Amazon Machine Learning utiliza la regresión logística multinomial (pérdida de logística multinomial más SGD).

Para la regresión, Amazon Machine Learning utiliza la regresión lineal (función de pérdida ajustada más SGD).

Amazon Machine Learning determina el tipo de tarea de aprendizaje automático de acuerdo al tipo de datos de destino. Por ejemplo, los problemas de predicción con las variables objetivo numéricas implican regresión; los problemas de predicción con las variables objetivo no numéricas son clasificadas como binarias si solo hay dos estados de destino, y como multiclase si hay más de dos.

La elección de las características en Amazon Machine Learning se llevan a cabo en las recetas. Una vez que se han calculado las estadísticas descriptivas para una fuente de datos, Amazon creará una receta predeterminada, que puede utilizar o anular en sus modelos de aprendizaje automático sobre esos datos.

Una vez que tenga un modelo que se ajuste a sus requisitos de evaluación, se puede utilizar para configurar un servicio Web en tiempo real o para generar un lote de predicciones. Tenga en cuenta sin embargo que, a diferencia de las constantes físicas, el comportamiento de las personas varía con el tiempo. Tendrá que comprobar las métricas de precisión de la predicción que salen de sus modelos y reciclar periódicamente según sea necesario.

Azure Machine Learning

En contraste con Amazon, Microsoft intenta proporcionar una gama completa de algoritmos y herramientas para los científicos de datos con experiencia. Por lo tanto, Azure Machine Learning es parte de la vasta oferta dentro de Cortana Analytics Suite de Microsoft. Azure Machine Learning también cuenta con una interfaz de arrastrar y soltar para la construcción de la formación del modelo y de los módulos de evaluación de flujo de datos.

El Azure Machine Learning Studio hace el trabajo rápido de generar un servicio Web para la publicación de un modelo entrenado. Este sencillo modelo proviene de uno de los cinco pasos de la introducción interactiva al aprendizaje automático Azure.
Azure Machine Learning Studio

El Azure Machine Learning Studio contiene facilidades para la importación de conjuntos de datos, la formación y la publicación de los modelos experimentales, el procesamiento de datos en Notebooks Jupyter, y el ahorro de los modelos de formación. Machine Learning Studio contiene docenas de conjuntos de datos de muestra, cinco conversiones de formato de datos, varias formas de leer y escribir datos, decenas de transformaciones de datos, y tres opciones para seleccionar características. En el Azure Machine Learning apropiado encontrará múltiples modelos para la detección de anomalías, clasificación, agrupación, y regresión; cuatro métodos para marcar los modelos; tres estrategias para evaluar los modelos; y seis procesos para entrenar los modelos. También puede utilizar un par de módulos de OpenCV (Open Source Computer Vision), funciones estadísticas y análisis de texto.

Son muchas cosas, teóricamente suficientes para procesar cualquier tipo de datos en cualquier tipo de modelo, siempre y cuando entienda el negocio, los datos y los modelos. Cuando los módulos Azure Machine Learning Studio enlatados no hacen lo que usted quiere, puede desarrollar módulos de Python o R.

Puede desarrollar y probar los módulos de lenguaje Python 2 y Python 3 utilizando Jupyter Notebooks, ampliados con el cliente Python de la biblioteca de AzureMachine Learning (para trabajar con los datos almacenados en Azure), scikit-learn, matplotlib, y NumPy. Las Jupyter Netbooks de Azure soportarán R eventualmente. Por ahora, puede utilizar RStudio a nivel local, y cambiar la entrada y salida de Azure si es necesario, o instalar RStudio en una máquina virtual Data Science de Microsoft.

Cuando se crea un nuevo experimento en Azure Machine Learning Studio, puede empezar desde cero o elegir entre cerca de 70 muestras de Microsoft, que cubren la mayor parte de los modelos comunes. No hay contenido adicional de la comunidad en la Galería de Cortana.

El Cortana Analytics Process (PAC) se inicia con algunos pasos de planificación y configuración, que son críticos a menos que usted sea un científico de datos capacitado que ya está familiarizado con el problema de la empresa, los datos, y con Azure Machine Learning, y que ya ha creado los entornos PAC necesarios para el proyecto. Los posibles entornos PAC incluyen una cuenta de almacenamiento Azure, una VM de Microsoft Data Science, un clúster de HDInsight (Hadoop), y un espacio de trabajo de aprendizaje automático con Azure Machine Learning Studio. Si las opciones lo confunden, Microsoft le documenta por qué debe elegir cada uno. PAC continúa con cinco etapas de procesamiento: Ingestión, análisis exploratorio de datos y pre-procesamiento, creación de la operación, la creación del modelo, y despliegue y consumo del modelo.

Microsoft recientemente lanzó un conjunto de servicios cognitivos que se han "graduado" de Project Oxford para una vista previa en Azure. Estos vienen pre entrenados para el habla, análisis de texto, reconocimiento de rostros, reconocimiento de emociones y capacidades similares, y complementan lo que puede hacer usted en la formación de sus propios modelos.

Databricks

Databricks es un servicio comercial en la nube basado en Apache Spark, un marco de clúster informático de código abierto que incluye una biblioteca de aprendizaje automático, un gestor de clústeres, notebooks interactivas tipo Jupyter, tableros de control, y trabajos programados. Databricks (la empresa) fue fundada por la gente que creó Spark, y con Databricks (el servicio), casi no se necesita esfuerzo para girar y escalar los clusters de Spark.

La biblioteca, MLlib, incluye una amplia gama de algoritmos estadísticos y de aprendizaje automático, adaptados para la arquitectura de memoria distribuida basada en Spark. Mllib implementa, entre otras, las estadísticas de resumen, correlaciones, muestreo, pruebas de hipótesis, la clasificación y la regresión, el filtrado colaborativo, análisis de conglomerados, reducción de dimensionalidad, funciones de extracción de características y de transformación, y los algoritmos de optimización. En otras palabras, es un paquete bastante completo para los científicos de datos con experiencia.

Esta notebook de Databricks, con el código en Python, muestra una forma de analizar un conjunto de datos de un servicio público de alquiler de bicicletas muy conocido. En esta sección de la notebook, capacitamos los conductos, utilizando un dispositivo de validación cruzada para ejecutar muchas regresiones potenciadas.
Databricks

Databricks está diseñado para ser una plataforma de ciencia de datos escalable relativamente fácil de usar para las personas que ya conocen estadísticas y saben cómo hacer algo de programación. Para utilizarla de manera eficaz, debe conocer alguno de SQL y, o bien Scala, R o Python. Es aún mejor si es fluido en el lenguaje de programación elegido, para que pueda concentrarse en el aprendizaje de Spark, cuando se moje los pies usando una notebook Databricks de muestra que se ejecuta en un clúster libre Databricks Community Edition.

Google Cloud Machine Learning

Google ha anunciado recientemente una serie de productos relacionados con el aprendizaje automático. Los más interesantes son Cloud Machine Learningl y la API de voz en la nube, ambas en la vista previa limitada. La API de Google Translate, que puede identificar y traducir más de 80 idiomas y variantes; y la API Cloud Vision, que puede identificar diversos tipos de características de imágenes, están disponibles para su uso -y se ven bien en base a demostraciones de Google.

a API de predicción de Google, evalúa y predice los problemas de regresión y clasificación, sin opciones que pueda utilizar el algoritmo. Data del año 2013.

La tecnología de aprendizaje automático actual de Google, la plataforma de aprendizaje automático en la nube, utiliza la librería de código abierto de Google, TensorFlow, para el entrenamiento y la evaluación. Desarrollado por Google Brain Team, TensorFlow es una biblioteca generalizada para el cálculo numérico usando diagramas de flujo de datos. Se integra con Google Cloud Dataflow, Google BigQuery, Google Cloud Dataproc, Google Cloud Storage, y Google Cloud Datalab.

He comprobado el código TensorFlow desde su repositorio GitHub; lee algunos de los códigos C, C ++ y Python; y he estudiado minuciosamente el sitio TensorFlow.org y el papel blanco TensorFlow. TensorFlow le permite implementar los cálculos a una o más CPU o GPU en una computadora de escritorio, servidor o dispositivo móvil, y tiene todo tipo de formación y algoritmos de red neuronal integrados. En una escala de 'geekiness' probablemente califique 9 sobre 10. No solo está mucho más allá de las capacidades de los analistas de negocios, sino que probablemente sea difícil para muchos científicos de datos.

La API del traductor de Google, Cloud Vision API, y la nueva API de voz en la nube de Google son modelos pre entrenados de ML. Según Google, su API de voz en la nube utiliza la misma tecnología de redes neuronales que alimenta la búsqueda por voz en la Google app y el tipeado por voz en el teclado de Google.

HPE Haven OnDemand

Haven OnDemand es la entrada de HPE al mundo del aprendizaje automático en la nube. La búsqueda empresarial y las conversiones de formato de Haven OnDemand son sus servicios más fuertes. Eso no es sorprendente ya que el servicio se basa en IDOL, motor de búsqueda privado de HPE. Sin embargo, las capacidades más interesantes de Haven OnDemand no están completamente terminadas.

La API de reconocimiento de código de barras de Haven OnDemand puede aislar el código de barras de un archivo de imagen (ver el recuadro rojo) y convertirlo en un número, incluso si el código de barras está sobre una superficie curva, en un ángulo de hasta unos 20 grados, o borrosa. La API no realiza el paso adicional de buscar el número de código de barras e identificación del producto.
Haven OnDemand

Haven OnDemand actualmente tiene APIs clasificadas como análisis de audio-video, conectores, conversión de formato, análisis de gráficos, HP Labs Sandbox (API experimental), análisis de imágenes, política, predicción, perfil de consulta y manipulación, búsqueda, análisis de textos, e indexación de texto no estructurado. Probé un conjunto aleatorio y exploré cómo se llaman y se utilizan las APIs.

El reconocimiento de voz de Haven solo es compatible con una media docena de idiomas, además de sus variantes. La precisión de reconocimiento para mi archivo de prueba en inglés americano fue muy buena, pero no perfecta.

Los conectores de Haven OnDemand, que le permiten recuperar información desde sistemas externos y actualizarlos a través de APIs Haven OnDemand, son ya bastante maduros, básicamente porque son conectores IDOL. La API de extracción de texto utiliza KeyView de HPE para extraer los metadatos y el texto del contenido de un archivo que usted proporciona; la API puede manejar más de 500 formatos diferentes de archivo, basándose en la madurez de KeyView.

El análisis de gráficos, un conjunto de servicios de vista previa, solo funciona en un índice entrenados en la versión de Wikipedia en inglés. No puede entrenar en sus propios datos.

Desde el grupo de Análisis de Imágenes, probé el reconocimiento de códigos de barras, que funcionó bastante bien, y el reconocimiento de rostro, que lo que lo hizo mejor con muestras de HPE que en mis imágenes de prueba. El reconocimiento de imágenes se limita actualmente a una selección fija de logotipos de empresas, lo que ha limitado su utilidad.

Me decepcionó descubrir que el análisis predictivo de HPE solo se ocupa de los problemas de clasificación binaria: no hay clasificaciones múltiples y ninguna regresión, no importa el aprendizaje sin guía. Esto limita severamente su aplicabilidad.

En el lado positivo, la API Train Prediction valida automáticamente, explora, divide, y prepara los datos CSV o JSON; luego entrena Decisions Tree, Logistic Regression, Naive Bayes, y soporta modelos de clasificación binaria de máquina de vectores (SVM) con múltiples parámetros. Entonces pone a prueba los clasificadores en contra de la división de evaluación de los datos y publica el mejor modelo como servicio.

Haven OnDemand utiliza el motor IDOL para realizar búsquedas avanzadas en contra de ambos índices de texto públicos y privados. Las APIs de análisis de texto van desde autocompletar y expansión a largo plazo, hasta identificación del idioma, extracción de conceptos y análisis de los sentimientos.

IBM Watson y análisis predictivo

IBM ofrece servicios de aprendizaje automático basado en su tecnología ganadora del "Jeopardy" y el de IBM SPSS Modeler. En realidad, tiene conjuntos de servicios de aprendizaje automático en la nube para tres públicos diferentes: los desarrolladores, científicos de datos y los usuarios de negocios.

SPSS Modeler es una aplicación de Windows, que recientemente también se ha puesto a disposición de la nube. La edición personal de Modeler incluye acceso a datos y su exportación; preparación automática de datos, discusiones, y ETL; más 30 algoritmos básicos de aprendizaje automático y AutoModeling; extensibilidad R; y secuencias de comandos de Python. Las ediciones más caras tienen acceso a big data a través de un servidor de IBM SPSS analítico para Hadoop/Spark, funcionalidad champion/challenger, pruebas A/B, análisis de texto y de las entidades, y análisis de redes sociales.

Utilicé Watson para analizar un set de datos familiar de un servicio de alquiler de bicicletas suministrado como uno de los ejemplos. Watson se acercó con un modelo de árbol de decisión con el 48% de fuerza predictiva.
IBM Watson

Los algoritmos de aprendizaje automático en SPSS Modeler son comparables a los que se encuentran en Azure Machine Learning y Spark.ml de Databricks, al igual que los métodos de selección y la selección de los formatos soportados. Incluso el automodelado (entrenar y desplegar varios modelos y escoger el mejor) es comparable, aunque es más evidente cómo usarlo en SPSS Modeler que en los otros.

IBM Bluemix hospeda servicios web de Predictive Analytics que aplican los modelos SPSS para exponer una API a la que puede llamar desde sus aplicaciones. Además de los servicios Web, Predictive Analytics es compatible con los trabajos por lotes para reciclar y volver a evaluar los modelos en los datos adicionales.

Hay 18 servicios Bluemix enumerados en Watson, separados de Predictive Analytics. La AlchemyAPI ofrece un conjunto de tres servicios (AlchemyLanguage, AlchemyVision, y AlchemyData) que permiten a las empresas y a los desarrolladores crear aplicaciones cognitivas que comprenden el contenido y el contexto en el texto y las imágenes.

Concept Expansion analiza el concepto de texto y aprende palabras o frases similares en función del contexto. Concept Insights enlaza documentos que le proporcionan un gráfico preexistente de conceptos basados en temas de Wikipedia.

El Servicio de diálogo le permite diseñar la forma en que una aplicación interactúa con el usuario a través de una interfaz conversacional, utilizando un lenguaje natural y la información del perfil del usuario. El servicio de conversión de documentos convierte un documento único HTML, PDF o Microsoft Word en HTML normalizado, texto plano, o un conjunto de unidades de respuesta con formato JSON que se puede combinar con otros servicios de Watson.

Language Translation trabaja en varias áreas del conocimiento y sus pares de idiomas. En los dominios de noticias y conversación, los pares son inglés y portugués brasileño, francés, árabe estándar moderno, o español. En las patentes, los pares son inglés y portugués brasileño, chino, coreano o español. El servicio de traducción puede identificar el texto sin formato como está escrito en unos 62 idiomas.

El servicio Natural Language Classifier aplica técnicas de computación cognitiva para devolver las mejores clases de concordancia de una oración, pregunta, o una frase, después de entrenarse en su conjunto de clases y frases. Personality Insights deriva puntos de vista de los medios sociales y transaccionales (por lo menos mil palabras escritas por una sola persona) para identificar los rasgos psicológicos, que se devuelven como un árbol de características en formato JSON. Relationship Extraction analiza frases en sus componentes y detecta las relaciones entre los componentes (partes del discurso y de las funciones) a través de un análisis contextual.

Los servicios adicionales de Bluemix mejoran la relevancia de los resultados de búsqueda, convierten texto desde y hacia el habla en una media docena de idiomas, identifican las emociones del texto, y analiza escenas visuales y objetos.

Watson Analytics utiliza el lenguaje de procesamiento natural propio de IBM para hacer que el aprendizaje automático sea más fácil de usar para los analistas de negocios y otros roles comerciales que no sean de científico de datos.

Curva de aprendizaje automático

El conjunto de servicios de aprendizaje automático se debe evaluar dependiendo de sus propias habilidades y las de su equipo. Para los científicos de datos y los equipos que incluyen científicos de datos, las opciones están abiertas. Los científicos de datos que son buenos en la programación pueden hacer aún más: Google, Azure, y Databricks requieren más experiencia en programación que Amazon y SPSS Modeler, pero son más flexibles.

Los servicios Watson que se ejecutan en Bluemix dan a los desarrolladores capacidades de pre entrenamiento adicionales para aplicaciones en la nube, al igual que varios servicios de Azure, tres APIs de Google Cloud, y algunas APIs de Haven OnDemand para el contenido basado en documentos.

La nueva biblioteca TensorFlow de Google es para programadores de aprendizaje automático de gama alta que tienen fluidez en Python, C ++, o C. La plataforma de aprendizaje automático en la nube de Google parece ser para los científicos de datos de gama alta que conocen Python y procesos de datos de la nube de aprendizaje.

Mientras que Amazon Machine Learning y Watson Analytics afirman estar dirigidos a los analistas de negocios o "cualquier función de negocio" (sea lo que sea), soy escéptico acerca de lo bien que puedan cumplir con esas demandas. Si usted necesita desarrollar aplicaciones de aprendizaje automático y tienen pocos o ningún antecedente estadístico en programación matemática, yo sostengo que lo que realmente necesita es hacer equipo con alguien que conozca esas cosas.