FotoReportaje - Galería de fotos

13 marcos para dominar el aprendizaje automático

¿Aventurarse en el aprendizaje automático? Estas son las herramientas de código abierto que hacen el trabajo pesado.

  • 13 marcos para dominar el aprendizaje automático

    Durante este último año, el aprendizaje automático se ha vuelto muy común. La llegada repentina del aprendizaje automático no está alimentada solo por entornos de nube baratos y hardware de GPU más potentes. Se debe también a una explosión de marcos de código abierto diseñados para abstraer las partes más difíciles del aprendizaje automático y poner sus técnicas a disposición de una mayor cantidad de desarrolladores.

    Aquí hay una docena de marcos de aprendizaje automático, ya sea recién estrenados o revisados recientemente. Estas herramientas llamaron nuestra atención por su procedencia, por su novedosa sencillez a la hora de resolver el problema asociado al aprendizaje automático, o por todo lo anterior.

    Serdar Yegulalp, InfoWorld (EE.UU.), 1/septiembre/2017. Crédito foto: W.Rebel via Wikimedia

  • Apache Spark MLlib

    Puede que Apache Spark sea más conocido por ser parte de la familia Hadoop, pero este marco de procesamiento de datos en la memoria nació fuera de Hadoop y está haciendo nombre por sí solo fuera del ecosistema de éste. Spark se ha convertido en una herramienta de aprendizaje automático a la que muchos recurren, gracias a su creciente librería de algoritmos que puede ser aplicada a datos en la memoria a alta velocidad.

    Las versiones anteriores de Spark reforzaron el apoyo para MLlib, una plataforma importante para los usuarios de matemática y estadística, y permitió suspender los trabajos de Spark ML y reanudarlos a través de la característica persistente de pipeline. Spark 2.0, lanzado en el 2016, mejora el sistema de gestión de memoria de alta velocidad de Tungsten y la nueva API de Streaming de DataFrames, que pueden proporcionar aumentos de rendimiento en las aplicaciones de aprendizaje automático.

    Serdar Yegulalp, InfoWorld (EE.UU.), 1/septiembre/2017. Crédit foto: Fundación Apache, Licencia: IDG Worldwide

  • H2O

    H2O, ahora en su tercera revisión principal, proporciona acceso a los algoritmos de aprendizaje automático a través de entornos de desarrollos comunes (Python, Java, Scala, R), sistemas de big data (Hadoop, Spark), y fuentes de datos (HDFS, S3, SQL, NoSQL). H2O debe ser usado como una solución integral para recopilar datos, construir modelos y servir predicciones. Por ejemplo, los modelos pueden ser exportados como código Java, permitiendo que las predicciones se sirvan en muchas plataformas y entornos.

    H2O puede funcionar como una biblioteca nativa de Python o, por medio de un Jupyter Notebook o del lenguaje R en R Studio. La plataforma también incluye un entorno basado en la web y de código abierto llamado Flow, exclusivo de H2O, que permite interactuar con el conjunto de datos durante el proceso de formación, no antes ni después.

    Serdar Yegulalp, InfoWorld (EE.UU.), 1/septiembre/2017. Crédito foto: H2O.ai, Licencia: IDG Worldwide.

  • Apache Singa

    Los marcos de "aprendizaje profundo" potencian las funciones de aprendizaje automático de alto rendimiento, tales como el procesamiento del lenguaje natural y el reconocimiento de imágenes. Singa, un proyecto de Apache Incubator, es un marco de código abierto creado para facilitar la formación de modelos de aprendizaje profundo en grandes volúmenes de datos.

    Singa proporciona un modelo de programación simple para la formación de redes de aprendizaje profundo en un grupo de máquinas, y soporta muchos tipos comunes de trabajos de formación: redes neuronales convulsionales, máquinas de Boltzmann restringidas, y redes neuronales recurrentes. Los modelos pueden ser formadas de forma síncrona (uno después del otra) o asíncrona (lado a lado), tanto en los grupos de CPU como en los de GPU, próximamente con soporte FPGA. Singa también simplifica la configuración del grupo con Apache Zookeeper.

    Serdar Yegulalp, InfoWorld (EE.UU.), 1/septiembre/2017. Crédito foto: Fundación Apache, Licencia: IDG Worldwide

  • Caffe2

    Caffe, marco de aprendizaje profundo, está "hecho con expresión, velocidad y modularidad en mente". Desarrollado originalmente en el 2013 para proyectos de visión artificial, desde entonces Caffe se ha expandido para incluir otras aplicaciones, tales como el habla y la multimedia.

    La velocidad es la prioridad principal, por lo que Caffe ha sido escrito completamente en C++, con el soporte de aceleración CUDA, aunque puede cambiar entre procesamientos de CPU y GPU cuando sea necesario. La distribución incluye un conjunto de modelos de referencia gratuitos y de código abierto para trabajos comunes de clasificación, con otros modelos creados y donados por la comunidad de usuarios de Caffe.

    Una nueva iteración de Caffe respaldada por Facebook llamada Caffe2, está actualmente en desarrollo para lanzar la versión 1.0. Sus objetivos son facilitar la formación/capacitación distribuida y la implementación móvil, proporcionar soporte para nuevos tipos de FPGAs tipo hardware y hacer uso de las funciones de vanguardia como el entrenamiento/capacitación de coma flotante de 16-bits.

    Serdar Yegulalp, InfoWorld (EE.UU.), 1/septiembre/2017. Crédito foto: Facebook, Licencia: IDG Worldwide.

  • Google TensorFlow

    Al igual que el DMTK de Microsoft, Google TensorFlow es un marco de aprendizaje automático diseñado para escalar a través de múltiples nodos. Así como Kubernetes de Google, fue construida para resolver problemas internamente en Google, y éste finalmente decidió lanzarlo como un producto de código abierto.

    TensorFlow implementa los llamados gráficos de flujos de datos, donde los lotes de datos ("tensores") pueden ser procesados por una serie de algoritmos descritos por un gráfico. Los movimientos de los datos a través del sistema se llaman "flujos" -de ahí el nombre. Los gráficos pueden ser ensamblados con C++ o Python, y pueden ser procesados en CPUs o GPUs.

    La versión 1.0 de TensorFlow amplía la compatibilidad con Python, acelera las operaciones basadas en GPU y abre la puerta a la ejecución de TensorFlow en una gama más amplia de hardware incluyendo FPGAs.

    Serdar Yegulalp, InfoWorld (EE.UU.), 1/septiembre/2017. Crédito foto: Google, Licencia: IDG Worldwide.

  • Amazon Machine Learning

    El enfoque de Amazon para los servicios de la nube ha seguido un patrón. Proporciona lo básico, atrae a una audiencia principal que se preocupa, les permite construir encima de él, luego averigua lo que realmente necesitas y lo entrega.

    Lo mismo podría decirse de la incursión de Amazon en la oferta de aprendizaje automático como un servicio, Amazon Machine Learning. Se conecta a los datos almacenados en Amazon S3, Redshift o RDS y puede ejecutar la clasificación binaria, la categorización multiclase o la regresión en esos datos para crear un modelo. Sin embargo, tenga en cuenta que los modelos resultantes no pueden ser importados o exportados, y los conjuntos de datos para los modelos de formación/entrenamiento/capacitación no pueden ser mayores de 100GB.

    Aún así, Amazon Machine Learning muestra la manera en la que el aprendizaje automático se está convirtiendo en una practicidad en lugar de un lujo. Y para aquellos que quieren ir más lejos, o permanecer menos estrechamente acoplados a la nube de Amazon, la imagen de máquina de Aprendizaje Profundo de Amazon incluye muchos de los marcos principales de aprendizaje profundo, como Caffe2, CNTK, MXNet, y TensorFlow.

    Serdar Yegulalp, InfoWorld (EE.UU.), 1/septiembre/2017. Crédito foto: Amazon, Licencia: IDG Worldwide.

  • Microsoft Azure ML Studio

    Dada la gran cantidad de datos y poder computacional requerido para realizar el aprendizaje automático, la nube es un entorno ideal para aplicaciones de ML. Microsoft ha equipado a Azure con su propio servicio de pago de aprendizaje automático, Azure ML Studio, con versiones de capa gratuita mensuales y horarias. (El proyecto HowOldRobot de la empresa fue creado con este sistema). Ni siquiera necesita una cuenta para probar el servicio, sino que puede iniciar sesión de manera anónima y usar Azure ML Studio hasta por ocho horas.

    Azure ML Studio permite a los usuarios crear y formar modelos, y luego convertirlos en APIs que pueden ser consumidos por otros servicios. Los usuarios de la capa gratuita obtienen hasta 10GB de almacenamiento por cuenta para los datos del modelo, y puede conectar su propio almacenamiento Azure al servicio para modelos más grandes. Una amplia gama de algoritmos está disponible, cortesía de Microsoft y terceros.

    Las mejoras recientes incluyen la gestión de los trabajos de formación por lotes a través del servicio Azure Batch, mejores controles de gestión de implementación y estadísticas detalladas del uso de los servicios web.

    Serdar Yegulalp, InfoWorld (EE.UU.), 1/septiembre/2017. Crédito foto: Microsoft, Licencia: IDG Worldwide.

  • Microsoft Distributed Machine Learning Toolkit

    Mientras más computadoras tenga que dedicar a cualquier problema de aprendizaje automático, mejor -pero desarrollar aplicaciones de ML que operen bien en un gran número de máquinas puede ser complicado. El marco de DMTK de Microsoft (Distributed Machine Learning Toolkit) aborda la cuestión de distribuir varios tipos de trabajos de aprendizaje automático a través de un grupo de sistemas.

    DMTK es catalogado como un marco en lugar de una solución completa y fuera de lo establecido, por lo que el número de algoritmos incluidos es pequeño. Sin embargo, encontrará bibliotecas clave de aprendizaje automático, tal como un marco de impulso gradiente (LightGBM) y soporte para unos pocos marcos como Torch y Theano.

    El diseño de DMTK permite a los usuarios aprovechar los grupos con recursos limitados. Por ejemplo, cada nodo del grupo tiene un caché local, reduciendo la cantidad de tráfico con el nodo del servidor central que proporciona parámetros para el trabajo en cuestión.

    Serdar Yegulalp, InfoWorld (EE.UU.), 1/septiembre/2017. Crédito foto: Microsoft, Licencia: IDG Worldwide.

  • Microsoft Computational Network Toolkit

    En el momento en el que se lanzó DMTK, Microsoft dio a conocer otro kit de herramientas de aprendizaje automático o CNTK.

    CNTK es similar a Google TensorFlow porque permite a los usuarios crear redes neuronales a través de una gráfica dirigida. Microsoft también considera que CNTK es comparable a proyectos cono Caffe, Theano y Torch -excepto por la habilidad de CNTK de lograr una mayor velocidad explotando tanto los múltiples CPUs como GPUs en paralelo. Microsoft afirma que la ejecución de CNTK en los grupos de GPU en Azure le permitieron acelerar la formación/entrenamiento del reconocimiento de voz para Cortana por una orden de magnitud.

    La última edición del marco, CNTK 2.0, presiona a TensorFlow mejorando la precisión, añadiendo una API de Java en aras de la compatibilidad de Spark, y soportando el código del marco de Keras (comúnmente utilizado con TensorFlow).

    Serdar Yegulalp, InfoWorld (EE.UU.), 1/septiembre/2017. Crédito foto: Microsoft, Licencia: IDG Worldwide.

  • Apache Mahout

    Mahout fue originalmente construido para permitir el aprendizaje automático escalable en Hadoop, mucho antes de que Spark usurpara ese trono. Después de un largo periodo de mínima actividad, Mahout ha sido rejuvenecido con nuevas adiciones, tales como un nuevo entorno para matemática, llamado Samsara, que permite que los algoritmos sean ejecutados a través de un grupo distribuido de Spark. Las operaciones de CPU y GPU son apoyadas.

    El marco de Mahout ha estado ligado durante mucho tiempo a Hadoop, pero muchos de los algoritmos dentro de su paraguas también pueden ser ejecutadas fuera de Hadoop. Estos son útiles para aplicaciones independientes que eventualmente podrían ser migradas a Hadoop, o para proyectos de Hadoop que podrían ser convertidos en sus propias aplicaciones independientes.

    Serdar Yegulalp, InfoWorld (EE.UU.), 1/septiembre/2017. Crédito foto: Apache Foundation, Licencia: IDG Worldwide.

  • Veles (Samsung)

    Veles es una plataforma distribuida para aplicaciones de aprendizaje profundo y, así como TensorFlow y DMTK, está escrito en C++, a pesar de que usa Python para realizar la automatización y coordinación entre nodos. Los conjuntos de datos pueden analizarse y automáticamente normalizados antes de ser suministrados al grupo, y una API de REST permite que el modelo formado sea usado inmediatamente en la producción (asumiendo que su hardware esté a la altura de la tarea).

    Veles va más allá de simplemente implementar Python como código de integración, así como el Jupyter Notebook basado en Python puede ser usado para visualizar y publicar resultados de un grupo de Veles. Samsung espera que lanzar Veles como un código abierto estimule un mayor desarrollo, tales como puertos a Windows y a MacOS.

    Serdar Yegulalp, InfoWorld (EE.UU.), 1/septiembre/2017. Crédito foto: Samsung, Licencia: IDG Worldwide.

  • mlpack 2

    mlpack, una biblioteca de aprendizaje automático basada en C++ y lanzada en el 2011, está diseñada para "escalabilidad, velocidad y facilidad de uso", según los creadores de la biblioteca. La implementación de mlpack puede realizarse a través de un caché de ejecutables de línea de comandos para operaciones rápidas de "black box" o con una API C++ para un trabajo más sofisticado.

    La versión 2 del mlpack incluye muchos tipos nuevos de algoritmos, junto con refactorizaciones de algoritmos existentes para acelerarlos o hacerlos menos poderosos. Por ejemplo, abre el generador de números aleatorios de la biblioteca Boost a favor de las once funciones aleatorias nativas de C++.

    Una desventaja antigua de mlpack es la falta de vínculos para cualquier idioma que no sea C++. Eso significa que los usuarios de otros idiomas necesitarán una biblioteca de terceros, como la de Python. Se ha trabajado para añadir Soporte de MATLAB, pero proyectos como mlpack tienden a disfrutar de mayor aceptación cuando son directamente útiles en los entornos principales donde se desarrolla el trabajo de aprendizaje automático.

    Serdar Yegulalp, InfoWorld (EE.UU.), 1/septiembre/2017. Crédito foto: mlpack contributors, Licencia: IDG Worldwide.

  • Neon

    Nervana, una empresa que construye su propia plataforma de hardware y software de aprendizaje profundo (ahora parte de Intel), ha ofrecido un marco de aprendizaje profundo llamado Neon como un proyecto de código abierto. Neon usa módulos conectables para permitir que se realice el trabajo pesado en los CPUs, GPUs o el propio silicio de Nervana.

    Neon está escrito principalmente en Python, con unas pocas piezas en C++ y el montaje para la velocidad. Esto hace que el marco esté inmediatamente disponible para otros que hacen el trabajo de ciencia de datos en Python o en cualquier otro marco relacionado con Python.

    Muchos modelos estándar de aprendizaje profundo, tales como LSTM, AlexNet y GoogLeNet, están disponibles como modelos formados con anterioridad para Neon. El último lanzamiento, Neon 2.0, añade la Biblioteca Math Kernel de Intel para acelerar el rendimiento en los CPUs.

    Serdar Yegulalp, InfoWorld (EE.UU.), 1/septiembre/2017. Crédito foto: Intel, Licencia: IDG Worldwide.

  • Marvin

    Otra producción relativamente reciente, el marco de red neural Marvin, es un producto del Princeton Vision Group. Marvin "nació para ser hackeado", así como sus creadores explican en la documentación del proyecto, que se basa solo en unos pocos archivos escritos en C++ y en el marco de GPU de CUDA. A pesar del código deliberadamente mínimo, el proyecto viene con un número de modelos formados con anterioridad que pueden ser reutilizados con la citación apropiada y que han contribuido con los pull requests, tales como el propio código del proyecto.

    Serdar Yegulalp, InfoWorld (EE.UU.), 1/septiembre/2017. Crédito foto: Princeton Vision Group, Licencia: IDG Worldwide.

Llegamos a ustedes gracias a:

FOTO REPORTAJES

Más »
Échele un vistazo al smartphone del futuro

Échele un vistazo al smartphone del futuro

¿Cómo se verá su teléfono en diez años? Visitamos las escuelas de diseño y los laboratorios de investigación para descubrir las innovaciones que llegarán a nuestros dispositivos móviles.
25 sencillas herramientas para crear apps móviles rápidamente

25 sencillas herramientas para crear apps móviles rápidamente

Una vía rápida para el éxito de las apps móviles.
6 apps para Android que le permiten ser más productivo

6 apps para Android que le permiten ser más productivo

A continuación, seis apps con las que incrementar su productividad.
10 aplicaciones de colaboración que vale la pena probar

10 aplicaciones de colaboración que vale la pena probar

Estas 10 aplicaciones le permiten usar chat de video, enviar mensajes, compartir pantallas y colaborar con sus compañeros de trabajo en tiempo real.