Aprendizado de Máquina em JavaScript: bibliotecas para Node.js

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Aprendizado de Máquina em JavaScript: bibliotecas para Node.js



Embora o Python continue sendo a linguagem dominante na área de aprendizado de máquina, o ecossistema JavaScript (especialmente Node.js) está se desenvolvendo ativamente e oferece ferramentas poderosas para ML. O uso de JavaScript permite criar soluções de ML que se integram facilmente com aplicações web, funcionam em tempo real no servidor ou até mesmo no navegador. Se o seu projeto já utiliza Node.js, a implementação de bibliotecas de aprendizado de máquina pode ser mais orgânica do que mudar para Python.



Neste artigo, vamos analisar as principais bibliotecas para aprendizado de máquina em JavaScript (Node.js), suas características e exemplos de uso.



1. TensorFlow.js



TensorFlow.js é a biblioteca mais poderosa e popular para aprendizado de máquina em JavaScript, portada do TensorFlow original. Ela suporta a execução de modelos tanto no navegador quanto no Node.js, utilizando aceleração de hardware via CUDA ou WebGL.



Principais recursos:

  • Execução de modelos pré-treinados (MobileNet, BERT, YOLO).
  • Treinamento de redes neurais do zero.
  • Aprendizado por transferência (fine-tuning de modelos existentes).
  • Suporte a GPU via CUDA no Node.js.
  • Conversão de modelos do Python TensorFlow (formato TFJS).


Exemplo: regressão linear com TensorFlow.js

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

// Dados: 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]);

// Criação do modeloconst model = tf.sequential();model.add(tf.layers.dense({units: 1, inputShape: [1]}));model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});

// Treinamentomodel.fit(xs, ys, {epochs: 200}).then(() => { // Predição para x = 5 model.predict(tf.tensor2d([5], [1, 1])).print();});


2. Brain.js



Brain.js é uma biblioteca simples e intuitiva para redes neurais. É ideal para iniciantes e projetos pequenos. Suporta perceptrons multicamadas (MLP), redes recorrentes (RNN) e redes de memória de longo prazo (LSTM).



Principais recursos:

  • Curva de aprendizado mínima — API com poucas linhas.
  • Suporte a treinamento assíncrono para evitar bloqueios.
  • Salvamento e carregamento de modelos treinados em JSON.
  • Funciona tanto no Node.js quanto no navegador.


Exemplo: XOR com Brain.js

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

const net = new brain.NeuralNetwork();

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

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


3. Synaptic



Synaptic é uma biblioteca independente de arquitetura para redes neurais. Ela permite construir praticamente qualquer tipo de rede: perceptrons, redes multicamadas, redes com memória (LSTM), redes de Hopfield e outras. A biblioteca não possui dependências externas.



Principais recursos:

  • Flexibilidade na construção de arquiteturas.
  • Suporte a diversos algoritmos de treinamento (SGD, Momentum, Nesterov).
  • Visualizador de rede (no navegador).
  • Suporte para salvar/carregar modelos.


Exemplo: rede neural simples com 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