logoCoderhouse.png
Nahuel Lema By Nahuel Lema • mayo 22, 2019

Aplicando Machine Learning con Javascript

La comunidad de ML (Machine Learning) adoptó a Python por diversas ventajas, pero también existen alternativas en Javascript. Tal como es el caso de Brain.js, el cual provee los métodos necesarios para entrenar con información y retornarlos un resultado.

En la siguiente práctica utilizaremos el ejemplo provisto por Brain.js para cambiar el color de un texto en base a su color de fondo, los tonos más oscuros tendrán un color de texto blanco y los más claros un color de texto negro.

Preparando nuestro entorno

Necesitaremos Node, si no lo tienes instalado te dejo acá el link para descargarlo: https://nodejs.org/en/

Opcional: Voy a estar usando Visual Studio Code, pero podés usar el que te resulte más cómodo https://code.visualstudio.com/

Una vez instalado creamos una carpeta donde estará nuestro proyecto, ej ml-demo, y abrimos la terminal en esa carpeta.

Ya en la terminal ejecutamos, npm init.

Seguimos los pasos para completar el package.json, una vez concluido instalaremos brainjs

Screenshot 2019-05-21 at 09.33.26

Crearemos un index.html y un script.js:

Dentro del index.html utilizaremos un estructura básica y dentro del body agregaremos, un input de tipo “color”, será nuestro color-picker, y 3 cajas, las dos primeras serán las alternativas (color blanco y color negro) y la tercera será la predicción que irá cambiando de color dependiendo de los datos que vayamos entrenando.

Incluiremos brain.js antes de nuestro script.js:

 
Opcional: Para agilizar el maquetado podés utilizar bootstrap.css desde su cdn. https://getbootstrap.com/

 

Entrenando nuestras redes neuronales

Dentro de nuestro script.js tendríamos que darle datos a nuestra red neuronal para que pueda realizar predicciones.

Estos datos estarán divididos en dos propiedades, datos de entrada (input) y de salida (output). Para los datos de entrada ingresamos colores, en rgb, que utilizaremos para cambiar el color de fondo de las cajas y un dato de salida del color que hace referencia al color del texto, siendo este blanco (white) o negro (black).

* Los números ingresados oscilaran entre 0 y 1.

A continuación agregaremos algunos eventos para capturar el valor del colorPicker y la selección del texto que más nos quede cómoda para leer.

 

Probando nuestra inteligencia artificial

Entrenada nuestra pequeña red neuronal podemos ir escogiendo colores y luego seleccionando entre la alternativa A y la alternativa B, cuanto mayor sean los casos que proveemos más acertada sería la predicción.

Para estos casos que están aprendiendo constantemente brain.js, se necesitan ser “re entrenados” con cada nueva información para que las operaciones que se realicen tengan mayor probabilidad de acierto.

Conclusiones

Es un ejemplo sencillo que demuestra el poder de los datos y un resultado aproximado. Otros casos prácticos serían clasificadores de patrones, por ejemplo para predecir las ventas, el consumo o la demanda de un servicio y para poder tomar decisiones más acertadas.

También podés utilizar otras librerías de ML como TensorFlow.js: https://www.tensorflow.org/js

Te dejo acá el repo con todo el ejemplo: https://github.com/lemanahuel/ml-demo