Aprendizado de Máquina em TypeScript: principais bibliotecas para ML em 2024

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 TypeScript: visão geral de bibliotecas e ferramentas



TypeScript não é apenas tipagem estrita para JavaScript. Graças ao seu ecossistema e compatibilidade com JS, ele se torna uma plataforma poderosa para aprendizado de máquina (ML) diretamente no navegador ou no servidor (Node.js). Neste artigo, analisaremos quatro bibliotecas principais que permitem desenvolver, treinar e executar modelos de ML em TypeScript.



1. TensorFlow.js — o carro-chefe do ML em TypeScript

TensorFlow.js é uma versão do popular framework TensorFlow para JavaScript/TypeScript. Ele suporta tanto o navegador quanto o Node.js. A principal vantagem é a capacidade de realizar treinamento e inferência diretamente no lado do cliente, sem enviar dados para o servidor.



Instalação

npm install @tensorflow/tfjsnpm install @tensorflow/tfjs-node  // para Node.js com aceleração de CPUnpm install @tensorflow/tfjs-node-gpu // para GPU


Exemplo: regressão linear em TypeScript

import * as tf from '@tensorflow/tfjs';

// Criando um modelo simples: y = 2x - 1const model = tf.sequential();model.add(tf.layers.dense({ units: 1, inputShape: [1] }));

// Compilaçãomodel.compile({ optimizer: 'sgd', loss: 'meanSquaredError' });

// Dados de treinamentoconst xs = tf.tensor2d([0, 1, 2, 3, 4], [5, 1]);const ys = tf.tensor2d([-1, 1, 3, 5, 7], [5, 1]);

// Treinamentomodel.fit(xs, ys, { epochs: 250 }).then(() => { // Previsão para x=5 const output = model.predict(tf.tensor2d([5], [1, 1])) as tf.Tensor; output.print(); // ≈ 9 (2*5 - 1)});


TensorFlow.js também suporta o carregamento de modelos pré-treinados (por exemplo, MobileNet para classificação de imagens) e trabalho com grafos computacionais.



2. ML5.js — ML para projetos criativos

ML5.js é construído sobre o TensorFlow.js e é focado na simplicidade de uso. Ideal para artistas, designers e iniciantes em ML. A biblioteca fornece APIs de alto nível para tarefas de classificação, geração de texto, reconhecimento de gestos, etc.



Instalação

npm install ml5


Exemplo: classificação de imagens (MobileNet)

import * as ml5 from 'ml5';

// Carregando o modelo pré-treinado MobileNetconst classifier = ml5.imageClassifier('MobileNet');

// Classificando uma imagem por URLconst img = new Image();img.crossOrigin = 'anonymous';img.src = 'https://example.com/cat.jpg';

img.onload = () => { classifier.classify(img, (err: Error | null, results: any[]) => { if (err) { console.error(err); return; } console.log('Resultados:', results); // [{ label: 'tabby cat', confidence: 0.98 }, ...] });};


ML5.js carrega automaticamente os pesos do modelo e fornece um callback simples. É excelente para protótipos rápidos e instalações interativas.



3. Brain.js — redes neurais sem complicações

Brain.js é uma biblioteca para criar redes neurais com o mínimo de código. Suporta redes feedforward, LSTM e RNN. Funciona tanto no navegador quanto no Node.js.



Instalação

npm install brain.js


Exemplo: função XOR (OU exclusivo lógico)

import * as brain from 'brain.js';

const net = new brain.NeuralNetwork();

net.train([ { input: [0, 0], output: [0] }, { input: [0, 1], output: [1] }, { input: [1, 0], output: [1] }, { input: [1, 1], output: [0] }], { iterations: 10000, errorThresh: 0.005});

const output = net.run([1, 0]); // ≈ 0.98 (próximo de 1)console.log(`Resultado: ${output}`);


Brain.js normaliza automaticamente os dados e suporta salvar/carregar o modelo treinado em JSON.



4. Synaptic — flexibilidade arquitetural

Synaptic é uma biblioteca para criar arquiteturas complexas de redes neurais: perceptrons, redes multicamadas

Recommendations