Con esta entrada, quiero iniciar un ciclo de ejercicios de Machine Learning donde pondremos ejemplos de distintos algoritmos de Inteligencia artificial, y lo haremos con JAVASCRIPT.
Efectivamente, una de las librerías más potentes de Machine Learning TensorFlow, ya se puede escribir con Javascript, y ejecutarlos directamente desde el navegador.
En este caso, vamos con la regresión lineal. Hay millones de artículos definiendo y explicando la regresión lineal. Personalmente recomiendo esta entrada en Medium
Empezamos con la regresión.
Vamos a entrenar un modelo que sea capaz de aprender la función y = 3x-3.
Matemáticamente hablado podemos coger 8 valores de x, clacular el valor de y, y dibujar la función:
La gráfica confirma que es una función lineal, ya que podemos trazar una línea sobre la cual se dibujan los puntos.
Ahora vamos a construir un modelo que sea capaz de dandole cualquier valor de x, me diga cuanto vale la y.
CONFIGURANDO MI ENTORNO DE TENSORFLOW CON JAVASCRIPT
Hay varias maneras de usar tensorflow en Javascript, como es la primera vez, lo haremos de la manera mas sencilla.
Creamos una simple página .html:
Ahora vamos a añadir tensorflow, añadiendo un script en el head:
y así ya tenemos instalado tensorflow en nuestra web. Sencillo verdad???.
Ahora vamos configurar nuestro modelo.
Creamos una función asíncrona ya que su ejecución demorará y no queremos interrumpir el funcionamiento de la página. Usaremos un modelo sequential que es uno de los más sencillos:
Luego añadimos solo una capa densa y en este caso la más simple:
De esta manera, ya tenemos nuestro modelo configurado. Ahora tenemos que compilarlo para configurar como será el aprendizaje de este modelo:
En este caso hemos configurado la función de pérdida como el ERROR CUADRÁTICO MEDIO que es uno de los más utilizados en regresiones lineales, y el optimizador lo que nos configura es la metodología utilizada para el aprendizaje, en este caso usaremos el DESCENSO DEL GRADIENTE ESTOCÁSTICO (SGD).
Ahora ya sí vamos a definir los valores para x (entradas) y para y (salidas).
Una vez definidos los datos a entrenador, procedemos al entrenamiento del modelo:
En este caso al método fit le pasamos tres parámetros, los datos de entrada, los datos de salida, y cuantas iteraciones quiero que haga (cuantas veces repito el entrenamiento).
Y para finalizar, una vez tengo el modelo entrenado solamente me falta comprobar que funciona.
Vamos a hacer que nuestro modelo prediga que valor obtendríamos para un valor de entrada 43.:
En este caso en la variable predict se almacenará el resultado que ha dado mi modelo, que debería ser 43*3-3 = 126.
Solo nos
falta sacar ese valor, por ejemplo con un alert().
Como vemos se aproxima muchisimo al valor real esperado.
Y esto es todo. Hemos construido un modelo de regresión lineal con tensorflow y javascript, ya solo queda dar rienda suelta a la imaginación, obtener datos de un archivo y buscar que modelo se ajusta más.
En las próximas entradas abordaremos más de este tema!!
Chao!!