JavaScript es actualmente uno de los lenguajes de programación más populares. Su principal aplicación se encuentra en las aplicaciones web, utilizándose para dar funcionalidad a las páginas web dinámicas. Otro campo en el que está tomando fuerza es para la creación de aplicaciones móviles. Siendo el lenguaje utilizado en diferentes plataformas de desarrollo híbrido como es el caso de Apache Cordova. Por otro lado, también se puede verse en aplicaciones de lado servidor gracias a Node.js. A pesar de su popularidad no es habitual que se utilice en entornos de aprendizaje automático, principalmente por la falta de librerías. En esta entrada se van a enumerar un conjunto de librerías para machine learning en JavaScript que se pueden utilizar para entrenar y evaluar modelos.
1 Brain
Brain es una librería JavaScript que permite la creación y el entrenamiento de redes neuronales. Se puede utilizar tanto en entorno Node.js como dentro de un navegador. Aunque, debido a los recursos computacionales necesario para el entrenamiento de las redes es aconsejable realizar este en el lado servidor.
Existe un screencast en el que se explica cómo entrenar una red neuronal con Brain.js.
2 Synaptic
En esta librería se pueden encontrar los algoritmos necesarios para la creación de redes neuronales independientes de la arquitectura. Gracias a ello se puede utilizar para la implementación de cualquier tipo de red neuronal. A pesar de ello, también se incluyen diferentes arquitecturas ya implementadas. Entre estas se pueden encontrar perceptrones multicapa, redes de memoria a largo y corto plazo de múltiples capas (multilayer long-short term memory networks, LSTM), máquinas de estado líquido o redes Hopfield. Posibilitando así probar y evaluar rápidamente diferentes algoritmos de aprendizaje automático. Al igual que Brain, es posible utilizar la librería tanto en Node.js como en el navegador.
En el proyecto también se incluye una introducción a las redes neuronales junto a una serie de demostraciones prácticas y otros tutoriales.
3 TensorFlow.js
Esta es la versión para la web de la popular librería con la que se pueden entrenar redes neuronales en un navegador. También se puede utilizar para la ejecución de modelos pre-entrenados.
4 Neataptic
Esta librería permite implementar rápidamente redes neuronales tanto en el navegador como en Node.js. En la misma se incluyen diferentes arquitecturas como perceptrones, LSTM, GRU, Nark y otras.
5 Webdnn
Webdnn es una librería diseñada para ejecutar modelos de redes neuronales profundas pre-entrenadas en el navegador de forma rápida y eficiente. Debido a que las redes neuronales profundas requieren una gran capacidad computacional la librería se encarga de su optimización. Para ellos comprimiendo los datos del modelo acelerando la ejecución mediante la utilización de API de JavaScript como WebAssembly y WebGPU.
6 Deep playground
Deep playground es una aplicación web con la que se pueden construir y visualizar redes neuronales. Dispone de una interfaz elegante con la que es posible controlar los datos de entrada, el número de neuronas, el algoritmo a utilizar y otros parámetros con los que afectar a los resultados.
El código de la aplicación se puede descargar y estudiar desde su repositorio público.
7 DeepForge
DeepForge es un entorno de desarrollo visual para aprendizaje profundo. Permite diseñar redes neuronales utilizando una interfaz gráfica simple tipo Notebook, en el que los usuarios pueden obtener un feedback en tiempo real sobre las ejecuciones y compartirlos en tiempo real. Los modelos se pueden entrenar en máquinas remotas e incorpora la posibilidad de utilizar un control de versiones.
8 Thing Translator
Esta es una aplicación web que se puede utilizar en el teléfono móvil para identificar objetos y nombrarlos en diferentes idiomas. La aplicación se basa completamente en tecnologías web y utiliza dos API de aprendizaje automático de Google: Cloud Vision para el reconocimiento de imágenes y la API de traducción para traducciones en lenguaje natural.
El código se puede consultar en el su repositorio web.
9 Compromise
Esta es una librería con la que se pueden implementar modelos de procesamiento de lenguaje natural (natural-language processing, NPL) en JavaScript. Utiliza un enfoque básico y directo, pero lo suficientemente bueno, que lo convierte en la primera opción a considerar cuando se desea crear una aplicación NPL básica en el navegador.
10 ml.js
Es un conjunto de librerías que proporcionan las herramientas básicas de aprendizaje automático para JavaScript. En ella se pueden encontrar modelo tanto de aprendizaje supervisado como no supervisado, redes neuronales, algoritmos de regresión, algoritmos de optimización y funciones estadísticas y matemáticas.
Esta es la librería más completa de las vistas, permitiendo implementar en JavaScript básicamente cualquier modelo de aprendizaje automático.
Conclusiones
En esta entrada se ha visto una colección de librerías para machine learning en JavaScript. Estas librerías se pueden utilizar tanto para la puesta en producción de modelos como para su entrenamiento. Es importante destacar que la mayoría de las librerías son están enfocadas en aprendizaje profundo o Deep Learning.
0 comentarios:
Publicar un comentario