Aprendizaje automático en JavaScript: bibliotecas para Node.js

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Aprendizaje automático en JavaScript: bibliotecas para Node.js



Aunque Python sigue siendo el lenguaje dominante en el ámbito del aprendizaje automático, el ecosistema de JavaScript (especialmente Node.js) se está desarrollando activamente y ofrece potentes herramientas para ML. El uso de JavaScript permite crear soluciones de ML que se integran fácilmente con aplicaciones web, funcionan en tiempo real en el servidor o incluso en el navegador. Si tu proyecto ya usa Node.js, la incorporación de bibliotecas de aprendizaje automático puede ser más orgánica que cambiar a Python.



En este artículo, revisaremos las bibliotecas clave para el aprendizaje automático en JavaScript (Node.js), sus características y ejemplos de uso.



1. TensorFlow.js



TensorFlow.js es la biblioteca más potente y popular para el aprendizaje automático en JavaScript, portada del TensorFlow original. Admite la ejecución de modelos tanto en el navegador como en Node.js, utilizando aceleración por hardware a través de CUDA o WebGL.



Características principales:

  • Ejecución de modelos preentrenados (MobileNet, BERT, YOLO).
  • Entrenamiento de redes neuronales desde cero.
  • Aprendizaje por transferencia (refinamiento de modelos existentes).
  • Soporte para GPU mediante CUDA en Node.js.
  • Conversión de modelos desde Python TensorFlow (formato TFJS).


Ejemplo: regresión lineal con TensorFlow.js

const tf = require('@tensorflow/tfjs-node');

// Datos: x -> y (y = 2x - 1)const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);

// Creación del modeloconst model = tf.sequential();model.add(tf.layers.dense({units: 1, inputShape: [1]}));model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});

// Entrenamientomodel.fit(xs, ys, {epochs: 200}).then(() => { // Predicción para x = 5 model.predict(tf.tensor2d([5], [1, 1])).print();});


2. Brain.js



Brain.js es una biblioteca simple e intuitiva para redes neuronales. Es ideal para principiantes y proyectos pequeños. Admite perceptrones multicapa (MLP), redes recurrentes (RNN) y redes de memoria a largo plazo (LSTM).



Características principales:

  • Barrera de entrada mínima: API de solo unas pocas líneas.
  • Soporte para entrenamiento asíncrono para evitar bloqueos.
  • Guardado y carga de modelos entrenados en JSON.
  • Funciona tanto en Node.js como en el navegador.


Ejemplo: XOR con Brain.js

const brain = require('brain.js');

const net = new brain.NeuralNetwork();

// Datos de entrenamiento para XORnet.train([ {input: [0, 0], output: [0]}, {input: [0, 1], output: [1]}, {input: [1, 0], output: [1]}, {input: [1, 1], output: [0]}]);

// Pruebaconst output = net.run([1, 0]); // ~0.99console.log(output);


3. Synaptic



Synaptic es una biblioteca independiente de arquitectura para redes neuronales. Permite construir prácticamente cualquier tipo de red: perceptrones, redes multicapa, redes con memoria (LSTM), redes de Hopfield y otras. La biblioteca no tiene dependencias externas.



Características principales:

  • Flexibilidad en la construcción de arquitecturas.
  • Soporte para varios algoritmos de entrenamiento (SGD, Momentum, Nesterov).
  • Visualizador de redes (en el navegador).
  • Soporte para guardar/cargar modelos.


Ejemplo: red neuronal simple con Synaptic

const synaptic = require('synaptic');const {Layer, Network, Trainer} = synaptic;

const inputLayer = new Layer(2);const hiddenLayer = new Layer(3);const outputLayer = new Layer(1);

inputLayer.connect(hiddenLayer);hiddenLayer.connect(outputLayer);

const myNetwork = new Network({input: inputLayer, hidden: [hid

Recommendations