10 ejemplos de aprendizaje automático en JavaScript

Las bibliotecas de aprendizaje automático son cada vez más rápidas y accesibles con cada año que pasa y no muestran signos de desaceleración. Aunque tradicionalmente Python ha sido el lenguaje de referencia para el aprendizaje automático, hoy en día las redes neuronales pueden ejecutarse en cualquier lenguaje, ¡incluido JavaScript!

El ecosistema web ha progresado mucho en los últimos tiempos y, aunque JavaScript y Node.js aún tienen menos rendimiento que Python y Java, ahora son lo suficientemente potentes como para manejar muchos problemas de aprendizaje automático. Los lenguajes web también tienen la ventaja de ser súper accesibles:todo lo que necesita para ejecutar un proyecto de aprendizaje automático de JavaScript es su navegador web.

La mayoría de las bibliotecas de aprendizaje automático de JavaScript son bastante nuevas y todavía están en desarrollo, pero existen y están listas para que las pruebe. En este artículo, veremos algunas de estas bibliotecas, así como varios ejemplos geniales de aplicaciones web de IA para que comiences.

1. Cerebro

Brain es una biblioteca que le permite crear fácilmente redes neuronales y luego entrenarlas en función de los datos de entrada/salida. Dado que la capacitación requiere muchos recursos, se prefiere ejecutar la biblioteca en un entorno Node.js, aunque también se puede cargar una versión del navegador CDN directamente en una página web. Hay una pequeña demostración en su sitio web que puede ser entrenada para reconocer el contraste de color.

Patio profundo

Aplicación web educativa que te permite jugar con las redes neuronales y explorar sus diferentes componentes. Tiene una interfaz de usuario agradable que le permite controlar los datos de entrada, la cantidad de neuronas, qué algoritmo usar y varias otras métricas que se reflejarán en el resultado final. También hay mucho que aprender de la aplicación entre bastidores:el código es de código abierto y utiliza una biblioteca de aprendizaje automático personalizada que está escrita en TypeScript y bien documentada.

Aprendizaje Flappy

FlappyLearning es un proyecto de JavaScript que en aproximadamente 800 líneas de código sin minimizar logra crear una biblioteca de aprendizaje automático e implementarla en una demostración divertida 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 muy fácil de ejecutar:simplemente abra index.html en el navegador.

Sináptico

Probablemente el proyecto mantenido más activamente en esta lista, Synaptic es una biblioteca de navegador y Node.js que es independiente de la arquitectura, lo que permite a los desarrolladores construir cualquier tipo de red neuronal que deseen. Tiene algunas arquitecturas integradas, lo que permite probar y comparar rápidamente diferentes algoritmos de aprendizaje automático. También incluye una introducción bien escrita a las redes neuronales, varias demostraciones prácticas y muchos otros excelentes tutoriales que desmitifican cómo funciona el aprendizaje automático.

Líneas Fijas

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 del aprendizaje automático y WebGL, tiene un gran rendimiento incluso en dispositivos móviles. Puede consultar el código fuente en GitHub o leer el estudio de caso completo aquí.

ConvNetJS

Aunque ya no se mantiene activamente, ConvNetJS es una de las bibliotecas de aprendizaje profundo más avanzadas para JavaScript. Originalmente desarrollado en la Universidad de Stanford, ConvNetJS se hizo bastante popular en GitHub, lo que resultó en muchas funciones y tutoriales impulsados ​​por la comunidad. Funciona directamente en el navegador, admite múltiples técnicas de aprendizaje y es de bajo nivel, lo que lo hace adecuado para personas con mayor experiencia en redes neuronales.

Traductor de cosas

Thing Translator es un experimento web que le permite a su teléfono reconocer objetos de la vida real 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 de lenguaje natural.

Neurojs

Framework para la construcción de sistemas de IA basados ​​en aprendizaje por refuerzo. Lamentablemente, el proyecto de código abierto no tiene una documentación adecuada, pero una de las demostraciones, un experimento de automóvil autónomo, tiene una excelente 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.

Aprendizaje automático

Otra biblioteca que nos permite configurar y entrenar redes neuronales usando solo JavaScript. Es muy fácil de instalar tanto en Node.js como en el lado del cliente, y tiene una API muy limpia que será cómoda para los desarrolladores de todos los niveles. La biblioteca proporciona una gran cantidad de ejemplos que implementan algoritmos populares, lo que lo ayuda a comprender los principios básicos del aprendizaje automático.

Forja Profunda

DeepForge es un entorno de desarrollo fácil de usar para trabajar con aprendizaje profundo. Le permite diseñar redes neuronales utilizando una interfaz gráfica simple, admite modelos de entrenamiento en máquinas remotas y tiene un control de versiones incorporado. El proyecto se ejecuta en el navegador y se basa en Node.js y MongoDB, lo que hace que el proceso de instalación sea muy familiar para la mayoría de los desarrolladores web.

Bonificación:aprendizaje automático en Javascript

Una excelente serie de publicaciones de blog de Burak Kanber que repasa algunos de los fundamentos del aprendizaje automático. Los tutoriales están bien escritos, son claros y están dirigidos específicamente a los desarrolladores de JavaScript. Un gran recurso si desea comprender más a fondo el aprendizaje automático.

Conclusión

Aunque el ecosistema de aprendizaje automático de JavaScript aún no está completamente desarrollado, recomendamos utilizar los recursos de esta lista para dar sus primeros pasos en ML y familiarizarse con las técnicas principales. Como muestran los experimentos en el artículo, hay un montón de cosas divertidas que puedes hacer usando solo el navegador y un código JavaScript familiar.


No