Los 10 mejores marcos de aprendizaje automático

Publicado: 2017-03-11
Mostrar tabla de contenido
1. Flujo de tensor
2. Café
3. Aprendizaje automático de Amazon
4. Apache Singa
5. Microsoft CNTK
6. Antorcha
7. Acuerdo.NET
8. Mahout Apache
9. Teano
10. Lluvia de ideas

Al profundizar en el mundo del aprendizaje automático (ML), elegir un marco entre muchas alternativas puede ser una tarea intimidante. Es posible que ya esté familiarizado con los nombres, pero es útil evaluar las opciones durante el proceso de toma de decisiones. Hay diferentes marcos, bibliotecas, aplicaciones, juegos de herramientas y conjuntos de datos en el mundo del aprendizaje automático que pueden resultar muy confusos, especialmente si es un principiante. Es necesario estar acostumbrado a los marcos populares de ML cuando se trata de elegir uno para construir su aplicación. Es por eso que compilamos una lista de los 10 mejores marcos de aprendizaje automático.

1. Flujo de tensor

Tensorflow fue desarrollado por Google Brain Team para diferentes tareas de percepción y comprensión del lenguaje. Este marco de código abierto se está utilizando para una amplia investigación sobre redes neuronales profundas y aprendizaje automático. Al ser el segundo marco de aprendizaje automático de Google Brain, es compatible con la mayoría de las CPU y GPU nuevas. Muchos de los servicios populares de Google que usamos a diario, como Gmail, reconocimiento de voz, Google Photos e incluso Google Search, están equipados con Tensorflow.

Tensorflow utiliza gráficos de flujo de datos para realizar tareas numéricas complicadas. Los cálculos matemáticos se elaboran utilizando un gráfico dirigido que contiene aristas y nodos. Estos nodos se utilizan para implementar las operaciones y también pueden actuar como puntos finales donde se alimentan los datos. Los bordes también representan las asociaciones de entrada/salida entre diferentes nodos.

2. Café

Caffe es un marco de aprendizaje automático que se diseñó con una mejor expresión, velocidad y modularidad como puntos de enfoque. Fue desarrollado para la visión artificial/clasificación de imágenes aprovechando las redes neuronales convolucionales (CNN). Caffe es popular por su Model Zoo, que es un conjunto de modelos preentrenados que no requieren ningún código para implementar.

Es más adecuado para crear aplicaciones en comparación con Tensorflow, que funciona mejor en investigación y desarrollo. Si se trata de aplicaciones con datos de texto, sonido o series temporales, tenga en cuenta que Caffe no está diseñado para otra cosa que no sea la visión artificial. Sin embargo, puede ejecutarse dinámicamente en una gran cantidad de hardware y hace un buen trabajo al cambiar entre CPU y GPU usando solo una bandera.

3. Aprendizaje automático de Amazon

Amazon ha desarrollado su propio servicio de aprendizaje automático para desarrolladores llamado AML. Es una colección de herramientas y asistentes que se pueden usar para desarrollar modelos de aprendizaje sofisticados, de alto nivel e inteligentes sin tener que modificar el código. Con AML, las predicciones necesarias para sus aplicaciones se pueden derivar a través de API que son más fáciles de usar. La tecnología detrás de AML es utilizada por los científicos de datos internos de Amazon para potenciar sus Amazon Cloud Services y es altamente escalable, dinámica y flexible. AML puede conectarse a los datos almacenados en Amazon S3, RDS o Redshift y realizar operaciones como clasificación binaria, regresión o categorización multiclase para crear nuevos modelos.

4. Apache Singa

Apache Singa se centra principalmente en el aprendizaje profundo distribuido mediante la partición de modelos y la paralelización del proceso de entrenamiento. Proporciona un modelo de programación simple y robusto que puede funcionar en un grupo de nodos. Las principales aplicaciones se encuentran en el reconocimiento de imágenes y el procesamiento del lenguaje natural (NLP).

Singa se desarrolló con un modelo de programación intuitivo basado en la abstracción de capas y es compatible con una variedad de modelos de aprendizaje profundo. Dado que se basa en una arquitectura muy flexible, puede ejecutar métodos de entrenamiento tanto síncronos como asíncronos e incluso híbridos. La pila tecnológica de Singa se compone de tres componentes importantes: IO, Model y Core. El componente IO contiene clases utilizadas para leer/escribir datos en la red y el disco. El componente central maneja las operaciones de tensor y las funciones de administración de memoria. El modelo alberga algoritmos y estructuras de datos utilizados para modelos de aprendizaje automático.

5. Microsoft CNTK

CNTK (Cognitive Toolkit) es el marco de aprendizaje automático de código abierto de Microsoft. Aunque es más popular en el campo del reconocimiento de voz, CNTK también se puede usar para entrenamiento de texto e imágenes. Al tener soporte para una amplia variedad de algoritmos de aprendizaje automático como CNN, LSTM, RNN, Sequence-to-Sequence y Feed Forward, es uno de los marcos de aprendizaje automático más dinámicos que existen. CNTK admite múltiples tipos de hardware, incluidas varias CPU y GPU.

La compatibilidad es uno de los aspectos más destacados de CNTK. También es elogiada como la arquitectura de aprendizaje automático más expresiva y fácil de usar que existe. En CNTK, puede trabajar con lenguajes como C++ y python y usar los modelos de capacitación integrados o crear los suyos propios.

6. Antorcha

Podría decirse que Torch es el marco de aprendizaje automático más simple para configurar y poner en marcha rápida y fácilmente, especialmente si está utilizando Ubuntu. Desarrollado en 2002 en NYU, Torch se usa ampliamente en grandes empresas tecnológicas como Twitter y Facebook. Torch está codificado en un idioma llamado Lua, que es poco común pero fácil de leer y entender. Algunas de las ventajas de Torch se pueden atribuir a este lenguaje de programación amigable con mensajes de error útiles, un gran depósito de código de muestra, guías y una comunidad útil.

7. Acco rd.NET

Accord.NET es un marco de aprendizaje automático de código abierto basado en .NET y es ideal para la computación científica. Consta de diferentes bibliotecas que se pueden usar para aplicaciones como reconocimiento de patrones, redes neuronales artificiales, procesamiento de datos estadísticos, álgebra lineal, procesamiento de imágenes, etc. El marco se compone de bibliotecas que están disponibles como instaladores, paquetes NuGet y código fuente. Accord.NET tiene una biblioteca de matrices que facilita la reutilización del código y los cambios algorítmicos graduales.

8. Mahout Apache

Al ser un proyecto gratuito y de código abierto de Apache Software Foundation, Apache Mahout se creó con el objetivo de desarrollar marcos de aprendizaje automático escalables o distribuidos gratuitos para aplicaciones como agrupación en clústeres, clasificación y filtrado colaborativo. Las colecciones de Java para diferentes operaciones computacionales y las bibliotecas de Java también están disponibles en Mahout.

Apache Mahout se implementa sobre Hadoop utilizando el paradigma MapReduce. Una gran aplicación es convertir instantáneamente los datos en información. Una vez que se conecta el Big Data almacenado en Hadoop, Mahout puede ayudar a las herramientas de ciencia de datos a encontrar patrones significativos a partir de los conjuntos de datos.

9. Teano

Theano se desarrolló en 2007 en la Universidad de Montreal, que es mundialmente conocida por sus algoritmos de aprendizaje automático. Aunque se considera un marco de aprendizaje automático de gama baja, es flexible y ultrarrápido. Los mensajes de error lanzados por el marco son infames por ser inútiles y crípticos. Dejando esto de lado, Theano es una plataforma más adecuada para tareas de investigación y puede ser extremadamente útil en eso.

Se utiliza principalmente como plataforma base para sistemas de abstracción de alta gama que enviarían contenedores de API a Theano. Ejemplos de algunas bibliotecas populares son Lasagne, Blocks y Keras. Una desventaja de usar Theano es que tendrá que jugar con alguna solución para tener soporte multi-GPU.

10. Lluvia de ideas

Brainstorm es uno de los marcos de aprendizaje automático más fáciles de dominar considerando su simplicidad y flexibilidad. Hace que trabajar con redes neuronales sea más rápido y divertido al mismo tiempo. Al estar escrito completamente en Python, Brainstorm fue creado para funcionar sin problemas en múltiples sistemas de back-end.

Brainstorm proporciona dos 'manipuladores' o API de datos que utilizan Python: uno para CPU mediante la biblioteca Numpy y el otro para aprovechar las GPU mediante CUDA. La mayor parte del trabajo pesado se realiza mediante secuencias de comandos de Python, lo que significa que casi no existe una interfaz de usuario rica.