10 Librerías Para Machine Learning En Javascript

by Luigi Nori Date: 16-06-2020 javascript ai deeplearning tensorflow


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.

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.

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.

Estas otras bibliotecas también son muy interesantes:

11. FlappyLearning

FlappyLearning es un proyecto de JavaScript que en unas 800 líneas de código sin pulir consigue crear una biblioteca de aprendizaje automático e implementarla en una divertida demostración que aprende a tocar Flappy Bird como un virtuoso. La técnica de IA utilizada en esta biblioteca se llama Neuroevolución y aplica algoritmos inspirados en los sistemas nerviosos que se encuentran en la naturaleza, aprendiendo dinámicamente del éxito o fracaso de cada iteración. La demostración es súper fácil de ejecutar - sólo hay que abrir index.html en el navegador.

12. ConvNetJS

Aunque ya no se mantiene activamente, ConvNetJS es una de las bibliotecas de aprendizaje profundo más avanzadas para JavaScript. Originalmente desarrollada en la Universidad de Stanford, ConvNetJS se hizo bastante popular en GitHub, resultando en muchas características y tutoriales impulsados por la comunidad. Funciona directamente en el navegador, soporta múltiples técnicas de aprendizaje, y es más bien de bajo nivel, lo que la hace adecuada para personas con mayor experiencia en redes neuronales.

13. Land Lines

Land Lines es un interesante experimento de Chrome Web que encuentra imágenes satelitales de la Tierra, similares a los garabatos hechos por el usuario. La aplicación no hace llamadas al servidor: funciona completamente en el navegador y gracias al uso inteligente de la máquina de aprendizaje y WebGL tiene un gran rendimiento incluso en los dispositivos móviles. Puedes comprobar el código fuente en GitHub o leer el caso de estudio completo.

14. Neurojs

Framework para la construcción de sistemas de IA basados en el aprendizaje de refuerzo. Lamentablemente el proyecto de código abierto no tiene una documentación adecuada, pero una de las demostraciones, un experimento de auto-conducción, tiene una gran descripción de las diferentes partes que componen una red neuronal. La biblioteca está en JavaScript puro y está hecha con herramientas modernas como webpack y babel.

 

Conclusión

En esta entrada hemos visto una colección de bibliotecas para el aprendizaje automático en JavaScript. Estas bibliotecas pueden ser utilizadas tanto para la producción de modelos como para su entrenamiento. Es importante señalar que la mayoría de las bibliotecas se centran en el aprendizaje profundo.

Como muestran los experimentos del artículo, hay muchas cosas divertidas que se pueden hacer usando sólo el navegador y algún código JavaScript familiar.

 
by Luigi Nori Date: 16-06-2020 javascript ai deeplearning tensorflow visitas : 4864  
 
Luigi Nori

Luigi Nori

He has been working on the Internet since 1994 (practically a mummy), specializing in Web technologies makes his customers happy by juggling large scale and high availability applications, php and js frameworks, web design, data exchange, security, e-commerce, database and server administration, ethical hacking. He happily lives with @salvietta150x40, in his (little) free time he tries to tame a little wild dwarf with a passion for stars.

 
 
 

Artículos relacionados

Modo oscuro en el sitio web usando CSS y JavaScript

En el artículo de hoy vamos a aprender a construir más o menos estándar en estos días en las páginas web y que es el modo de color alternativo y…

Javascript: los operadores Spread y Rest

En el artículo de hoy vamos a hablar de una de las características de la versión ES6 (ECMAScript 2015) de JavaScript que es el operador Spreadasí como el operador Rest. Estas…

Guia: Como escribir los enlaces mailto en puro HTML

¿Qué es el enlace mailto El enlace Mailto es un tipo de enlace HTML que activa el cliente de correo predeterminado en el ordenador para enviar un correo electrónico. El navegador web…

Cookies HTTP: cómo funcionan y cómo usarlas

Hoy vamos a escribir sobre la forma de almacenar datos en un navegador, por qué los sitios web utilizan cookies y cómo funcionan en detalle. Continúa leyendo para averiguar cómo implementarlas…

Todas las funciones de javascript y los métodos para manipular los arrays

Este artículo mostrará las funciones prominentes de las arrays de JavaScript, entre ellas .map() , .filter() , y .reduce() , y luego pasará a través de ejemplos de casos en los que .every() …

Como construir mejores componentes de alto nivel (Higher-order components) con el Vue 3

El Vue 3 será lanzado pronto con la introducción del API de composición (Composition API). Viene con muchos cambios y mejoras en el rendimiento. Los componentes de orden superior (HOC…

Node.js: herramientas de código abierto para los desarrolladores

De la amplia gama de herramientas disponibles para simplificar el desarrollo de Node.js, aquí están las mejores. Una encuesta en StackOverflow afirma que el 49% de los desarrolladores usan Node.js para…

Renderización lado servidor de Vue.js on Php

¿Intentas que el renderizado del lado del servidor funcione con PHP para renderizar tu aplicación Vue.js pero se atasca? Hay un montón de grandes recursos por ahí, pero hasta ahra no…

Como configurar de forma correcta SPF y DKIM en DNS para que los mails de tu servidor no acaben en SPAM

Cómo establecer el Marco de Políticas de Remitentes (SPF) Sobre el registro de SPF Un registro SPF es un tipo de registro de Servicio de Nombres de Dominio (DNS) que identifica qué…

Como configurar de forma correcta DMARC en DNS para enviar emails desde tu servidor

Para activar la política de autenticación de mensajes, registro y conformidad basado en dominio (DMARC), añade una política DMARC a los registros DNS de tu dominio. Esta política funciona con…

Integración de Bootstrap 4 con Vue.js usando Bootstrap-Vue

React y Vue.js son dos marcos de trabajo líderes y modernos de JavaScript para el desarrollo del front-end. Mientras que React tiene una curva de aprendizaje considerable, y un proceso…

Cómo crear un aplicación Vue.js en 5 minutos

Vue.js se está volviendo cada vez más popular, convirtiéndose en un competidor significativo de frameworks como Angular o React.js. Como front-end framework para principiantes, conquista con éxito los corazones de…

Utilizamos cookies propias y de terceros para mejorar nuestros servicios, elaborar información estadística y analizar tus hábitos de navegación. Esto nos permite personalizar el contenido que ofrecemos y mostrarte publicidad relacionada con tus preferencias. Clicando en ‘Acepta todas’ aceptas el almacenamiento de cookies en tu dispositivo para mejorar la navegación en el sitio web, analizar el tráfico y ayudar en nuestras actividades de marketing. También puedes seleccionar ‘Sólo cookies de sistema’ para aceptar sólo las cookies necesarias para que la web funcione, o puedes seleccionar las cookies que quieres activar clicando en ‘Configuración’

Acepta todas Sólo cookies de sistema Configuración