Aprendizaje automático de código abierto: TensorFlow, Theano, Torch, scikit-learn, Caffe

Desde el cuidado de la salud y la seguridad hasta la personalización del marketing, a pesar de estar en las primeras etapas de desarrollo el aprendizaje automático ha estado cambiando la forma en que usamos la tecnología para resolver los desafíos empresariales y las tareas cotidianas.

Este potencial ha llevado a las empresas a comenzar a considerar el aprendizaje automático como una oportunidad relevante en lugar de una virtud distante e inalcanzable.

Ya hemos discutido el aprendizaje automático como herramientas de servicio para sus proyectos de LD.

Pero ahora veamos un software gratuito y open source que permite a todos abordar el tren de aprendizaje automático sin tener que gastar tiempo y recursos en soporte de infraestructura.

¿Por qué Open Source Machine Learning?

El término software open source se refiere a una herramienta con un código fuente disponible a través de Internet de forma gratuita. El código de software propietario (código cerrado) es privado y se distribuye a través de derechos de licencia.

Para una empresa que está comenzando su iniciativa ML, el uso de herramientas open source Machine Learning puede ser una excelente manera de practicar la ciencia de los datos de forma gratuita antes de decidir sobre herramientas de nivel empresarial como Microsoft Azure o Amazon Machine Learning.

Los beneficios de usar herramientas open source Machine Learning no se limitan a su disponibilidad. En general, tales proyectos tienen una vasta comunidad de ingenieros de datos y científicos de datos deseosos de compartir conjuntos de datos y modelos pre-entrenados.

Por ejemplo, en lugar de crear un reconocimiento de imagen desde cero, puede usar modelos de clasificación entrenados en los datos de ImageNet , o crear uno propio utilizando este conjunto de datos.

Las herramientas open source Machine Learning también le permiten aprovechar el aprendizaje por transferencia , lo que  significa resolver problemas de aprendizaje automático aplicando los conocimientos adquiridos después de trabajar con un problema de un dominio relacionado o incluso distante.

Por lo tanto, puede transferir algunas capacidades del modelo que ha aprendido a reconocer los automóviles al modelo destinado al reconocimiento de camiones.

Dependiendo de la tarea con la que esté trabajando, es posible que los modelos pre-entrenados y los conjuntos de datos abiertos no sean tan precisos como los personalizados, pero le ahorrarán una gran cantidad de esfuerzo y tiempo, y no requieren que  recopile conjuntos de datos .

Según Andrew Ng , ex científico en jefe de Baidu y profesor en Stanford, el concepto de reutilización de modelos y conjuntos de datos open source será el segundo mayor impulsor del éxito comercial de ML después del aprendizaje supervisado.

 

 

 

 

Comparando los compromisos y colaboradores de GitHub para diferentes herramientas open source Machine Learning

Entre muchas herramientas open source Machine Learning activas y menos populares, hemos seleccionado cinco para explorar en profundidad para ayudarlo a encontrar el que le permita iniciar el camino hacia la experimentación de la ciencia de datos. Vamos a empezar.

TensorFlow: Herramienta Open source Machine Learning Favorecida de Google

Originalmente creado por Google para uso interno, TensorFlow se lanzó bajo una licencia open source Apache 2.0 en 2015. La corporación aún utiliza la biblioteca para varios servicios, como reconocimiento de voz, búsqueda de fotos y respuestas automáticas para la Bandeja de entrada de Gmail .

La reputación de Google y los útiles diagramas de flujo para construir modelos han atraído a un gran número de colaboradores a TensorFlow.

Esto dio lugar al acceso público a documentación exhaustiva y tutoriales que permiten un punto de entrada fácil al mundo de las aplicaciones de redes neuronales.

TensorFlow es una excelente herramienta de Python tanto para la investigación de redes neuronales profundas como para cálculos matemáticos complejos, e incluso puede respaldar el aprendizaje por refuerzo.

La singularidad de TensorFlow también se encuentra en los gráficos de flujo de datos: estructuras que consisten en nodos (operaciones matemáticas) y bordes (matrices numéricas o tensores).

 

Los gráficos de flujo de datos le permiten crear una representación visual del flujo de datos entre operaciones y luego ejecutar cálculos
Fuente: TensorFlow

Conjuntos de datos y modelos

La flexibilidad de TensorFlow se basa en la posibilidad de utilizarlo tanto para tareas de investigación como de aprendizaje automático recurrente.

Por lo tanto, puede utilizar la API de bajo nivel llamada TensorFlow Core. Le permite tener control total sobre los modelos y entrenarlos usando su propio conjunto de datos.

Pero también hay modelospúblicos y oficiales pre-entrenados para construir API de nivel superior sobre TensorFlow Core.

Algunos de los modelos populares que puede aplicar son MNIST , un conjunto de datos tradicional que ayuda a identificar dígitos escritos a mano en una imagen, o Datos de Medicare , un conjunto de datos de Google utilizado para predecir los cargos por servicios médicos, entre otros.

Audiencia y curva de aprendizaje.

Para alguien que está explorando el aprendizaje automático por primera vez, la variedad de funciones de TensorFlow puede ser un poco difícil.

Algunos incluso argumentan que la biblioteca no intenta acelerar una curva de aprendizaje automático, sino que la hace incluso más inclinada.

TensorFlow es una biblioteca de bajo nivel que requiere una amplia escritura de código y una buena comprensión de los datos específicos de la ciencia de datos para comenzar a trabajar con éxito con el producto.

Por lo tanto, es posible que no sea su primera opción si su equipo de ciencia de datos se centra en TI y ahí: hay alternativas más simples que discutiremos.

Casos de uso

Teniendo en cuenta su complejidad, los casos de uso de TensorFlow incluyen principalmente soluciones de grandes empresas con acceso a especialistas en aprendizaje automático .

Por ejemplo, el supermercado en línea británico Ocado aplicó TensorFlow para priorizar los correos electrónicos que llegan a su centro de contacto y mejorar el pronóstico de la demanda.

Además, la compañía de seguros global Axa usóla biblioteca para predecir incidentes de automóviles con grandes pérdidas que involucraban a sus clientes.

Theano: biblioteca madura con posibilidades extendidas

Theano es una biblioteca de bajo nivel para computación científica basada en Python, que se utiliza para dirigir tareas de aprendizaje profundo relacionadas con la definición, optimización y evaluación de expresiones matemáticas.

Si bien tiene un rendimiento informático impresionante, los usuarios se quejan de una interfaz inaccesible y mensajes de error poco útiles.

Por estas razones, Theano se aplica principalmente en combinación con envoltorios más fáciles de usar, como Keras , Lasagne y Blocks , tres marcos de alto nivel destinados a la creación rápida de prototipos y pruebas de modelos.

Conjuntos de datos y modelos

Hay modelos públicos para Theano, pero cada marco utilizado en la parte superior también tiene un montón de tutoriales y conjuntos de datos pre-entrenados para elegir. Keras, por ejemplo, almacena modelos disponibles y tutoriales de uso detallados en su documentación .

Audiencia y curva de aprendizaje.

Si usa Lasagne o Keras como envoltorios de alto nivel sobre Theano, nuevamente tendrá una gran cantidad de tutoriales y conjuntos de datos pre-entrenados a su alcance.

Además, Keras es considerada una de las bibliotecas más fáciles de comenzar en las etapas iniciales de la exploración de aprendizaje profundo.

Dado que TensorFlow fue diseñado para reemplazar a Theano, queda una gran parte de su base de fans.

Pero todavía hay muchas ventajas que muchos científicos de datos consideran lo suficientemente convincentes como para mantenerlas con una versión obsoleta.

La simplicidad y maduración de Theano son puntos serios a considerar cuando se hace esta elección.

Casos de uso

Considerado como un estándar de la industria para la investigación y el desarrollo del aprendizaje profundo, Theano fue diseñado originalmente para implementar algoritmos de aprendizaje profundo de vanguardia.

Sin embargo, considerando que probablemente no usará Theano directamente, sus numerosos usos se expanden a medida que lo usa como base para otras bibliotecas: reconocimiento de dígitos e imágenes, localización de objetos e incluso chatbots.

Torch: marco respaldado por Facebook impulsado por Lua Scripting Language

Torch es a menudo llamada la herramienta de aprendizaje profundo más fácil para los principiantes.

Tiene un lenguaje de scripting simple, Lua, y una comunidad útil que comparte una impresionante variedad de tutoriales y paquetes para casi cualquier propósito de aprendizaje profundo.

A pesar de usar un lenguaje menos común que Python, es ampliamente adoptado: Facebook, Google y Twitter son conocidos por usarlo en sus proyectos de inteligencia artificial.

Conjuntos de datos y modelos

Puede encontrar una lista de conjuntos de datos populares para cargar en Torch en su página de hoja de trucos de GitHub .

Además, Facebook lanzó un código oficial para la implementación de Redes Residuales Profundas (ResNets) con modelos pre-entrenados con instrucciones para afinar sus propios conjuntos de datos.

Audiencia y curva de aprendizaje.

Independientemente de las diferencias y similitudes, la elección siempre dependerá del idioma. La población del mercado de ingenieros experimentados de Lua siempre será menor que la de Python.

Sin embargo, Lua es mucho más fácil de leer, lo que se refleja en la sintaxis simple de Torch.

Los colaboradores activos de Torch confían en Lua, por lo que es un marco de elección tanto para los novatos como para aquellos que deseen ampliar su conjunto de herramientas.

Casos de uso

Facebook usó Torch para crear DeepText , una herramienta que categoriza las publicaciones de texto minuto a minuto compartidas en el sitio y que proporciona una segmentación de contenido más personalizada.

Twitter ha podido recomendar publicaciones basadas en la línea de tiempo algorítmica (en lugar de un orden cronológico inverso) con la ayuda de Torch.

scikit-learn: Marco accesible y robusto del ecosistema de Python

En noviembre de 2016, scikit-learn se  convirtió en un proyecto de aprendizaje automático open source número uno para Python , según KDNuggets.

scikit-learn es un marco de alto nivel diseñado para algoritmos de aprendizaje automático supervisados ​​y no supervisados.

Al ser uno de los componentes del ecosistema científico de Python, está construido sobre las bibliotecas NumPy y SciPy, cada una responsable de las tareas de ciencia de datos de nivel inferior.

Mientras NumPy se sienta en Python y se ocupa de la computación numérica, la biblioteca SciPy cubre rutinas numéricas más específicas, como la optimización y la interpolación.

Posteriormente, scikit-learn fue construido precisamente para el aprendizaje automático.

La relación entre las tres junto con otras herramientas en el ecosistema de Python refleja diferentes niveles en el campo de la ciencia de datos:

cuanto más alto vaya, más específicos serán los problemas que pueda resolver.

El ecosistema basado en Python NumPy incluye herramientas para la computación orientada a matrices

Conjuntos de datos y modelos

La biblioteca ya incluye algunos conjuntos de datos estándar para clasificación y regresión, a pesar de que son demasiado pequeños para representar situaciones de la vida real.

Sin embargo, el conjunto de datos de la diabetes para medir la progresión de la enfermedad o el conjunto de datos de las plantas del iris para el reconocimiento de patrones son buenos para ilustrar cómo se comportan los algoritmos de aprendizaje automático en scikit.

Además, la biblioteca proporciona información sobre la carga de conjuntos de datos de fuentes externas, incluye generadores de muestra para tareas como clasificación y descomposición multiclase, y ofrece recomendaciones sobre el uso de conjuntos de datos populares.

Audiencia y curva de aprendizaje.

A pesar de ser una biblioteca robusta, scikit-learn se centra en la facilidad de uso y la documentación.

Teniendo en cuenta su simplicidad y los numerosos ejemplos bien descritos, es una herramienta accesible para no expertos e ingenieros neófitos, que permite la rápida aplicación de algoritmos de aprendizaje automático a los datos.

De acuerdo con los testimonios de las tiendas de software AWeber y Yhat, scikit es muy adecuado para la producción caracterizada por un tiempo limitado y recursos humanos.

Casos de uso

scikit-learn ha sido adoptado por una  gran cantidad de marcas exitosas como Spotify, Evernote, el gigante del comercio electrónico Birchbox y Booking.com, para recomendaciones de productos y servicio al cliente.

Sin embargo, no tiene que ser un experto para explorar la ciencia de datos con la biblioteca.

Por lo tanto, una escuela de tecnología e ingeniería Télécom ParisTech utiliza la biblioteca para sus cursos de aprendizaje automático para permitir a los estudiantes resolver rápidamente problemas interesantes.

Caffe / Caffe2: herramienta fácil de aprender con abundancia de modelos pre-entrenados

Si bien Theano y Torch están diseñados para investigación, Caffe no es apto para datos de texto, sonido o series de tiempo. Es una biblioteca de aprendizaje automático de propósito especial para la clasificación de imágenes.

El soporte de Facebook y el recientemente abierto Caffe2 han hecho de la biblioteca una herramienta popular con 248 colaboradores de GitHub.

A pesar de ser criticado por su lento desarrollo, el sucesor de Caffe, Caffe2, ha eliminado los problemas existentes de la tecnología original al agregar flexibilidad, ingravidez y soporte para la implementación móvil.

Conjuntos de datos y modelos

Caffe alienta a los usuarios a familiarizarse con los conjuntos de datos proporcionados por la industria y otros usuarios.

El equipo fomenta la colaboración y los enlaces a los conjuntos de datos más populares que ya se han capacitado con Caffe.

Uno de los mayores beneficios del marco es Model Zoo , un vasto depósito de modelos pre-entrenados creados por desarrolladores e investigadores, que le permiten usar, combinar un modelo o simplemente aprender a entrenar un modelo propio.

Audiencia y curva de aprendizaje.

El equipo de Caffe afirma que puede omitir la parte de aprendizaje y comenzar a explorar el aprendizaje profundo utilizando los modelos existentes de inmediato.

La biblioteca está dirigida a desarrolladores que desean experimentar de primera mano el aprendizaje profundo y ofrece recursos que prometen expandirse a medida que la comunidad se desarrolla.

Casos de uso

Mediante el uso de las redes neuronales convolucionales (CNN, por sus siglas en inglés) de vanguardia: las redes neuronales profundas se aplicaron con éxito para el análisis de imágenes visuales e incluso para potenciar la visión en los autos que conducen automóviles.

Caffe permitió a Facebook desarrollar su herramienta de filtrado de video en tiempo real para la aplicación. Famosos estilos artísticos en videos .

Pinterest también usó Caffe para expandir una función de búsqueda visual y permitir a los usuarios descubrir objetos específicos en una imagen.

Cuando la demanda coincide con la propuesta

La cantidad de herramientas open source Machine Learning que aparecen en el mercado y la cantidad de proyectos aplicados por empresas de todos los tamaños y campos crean un ciclo continuo y autosuficiente.

Cuantos más esfuerzos de LD inicie, más herramientas y servicios se crearán y, por lo tanto, más económicos y accesibles serán.

Incluso en nuestra época en los albores del aprendizaje automático, tenemos una gama tan amplia de oportunidades que es difícil elegir.

Lo más importante es que cada uno de estos proyectos se ha creado para una serie de escenarios y su tarea es encontrar los que mejor se adapten a su enfoque.

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *