Aprendizado de Máquina em TypeScript: visão geral das 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 das bibliotecas para ML em 2024



O TypeScript ocupa com confiança um nicho não apenas no desenvolvimento web, mas também na Ciência de Dados. Graças à tipagem estática e compatibilidade com JavaScript, ele se torna uma ferramenta conveniente para construir modelos de aprendizado de máquina (ML) que funcionam diretamente no navegador ou no servidor (Node.js). Neste artigo, analisaremos as principais bibliotecas para aprendizado de máquina em TypeScript, suas características, exemplos de código e cenários de aplicação.



1. TensorFlow.js — o principal framework para ML no navegador



TensorFlow.js é uma porta do popular framework TensorFlow para JavaScript/TypeScript. Ele permite executar treinamento e inferência de modelos tanto no navegador quanto no Node.js. A biblioteca suporta aceleração GPU via WebGL e WebGPU, proporcionando ganhos de desempenho.



Principais recursos:

  • Criação de redes neurais usando API de alto nível (tf.sequential, tf.model).
  • Carregamento de modelos pré-treinados do TensorFlow Hub.
  • Conversão de modelos da versão Python do TensorFlow para o formato .json.
  • Trabalho com tensores, otimizadores e camadas.


Exemplo: regressão linear em TypeScript

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

// Dados: relação y = 2x - 1const xs = tf.tensor2d([-1, 0, 1, 2, 3, 4], [6, 1]);const ys = tf.tensor2d([-3, -1, 1, 3, 5, 7], [6, 1]);

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

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

// Treinamentomodel.fit(xs, ys, {epochs: 250}).then(() => { model.predict(tf.tensor2d([10], [1, 1])).print(); // Saída: ~19 (próximo de 2*10 - 1 = 19)});


2. ML5.js — biblioteca para ML criativo



ML5.js é construída sobre o TensorFlow.js e é focada na simplicidade de uso. Ela fornece modelos prontos para reconhecimento de imagens, áudio, texto e gestos. É ideal para projetos educacionais e prototipagem.



Exemplo: classificação de imagens

import * as ml5 from 'ml5';

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

// Classificação da imagemconst img = document.getElementById('myImage') as HTMLImageElement;classifier.classify(img, (err: Error | null, results: any[]) => { if (err) console.error(err); else console.log('Resultado:', results[0].label);});


3. Brain.js — redes neurais para Node.js e navegador



Brain.js é uma biblioteca leve para construir redes neurais em JavaScript/TypeScript. Suporta várias arquiteturas: LSTM, RNN, GRU. É excelente para tarefas de previsão de séries temporais e processamento de texto.



Exemplo: rede neural simples para XOR

import 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] }]);

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


4. Synaptic — biblioteca com arquitetura flexível



Synaptic permite criar redes neurais de qualquer arquitetura, incluindo perceptrons multicamadas, redes recorrentes e mapas auto-organizáveis de Kohonen. Não requer dependências e funciona no navegador.



Exemplo: criação de um perceptron

import { Architect, Trainer } from 'synaptic';

const network = new Architect.Perceptron(2, 3, 1);const trainer = new Trainer(network);

trainer.train([ { input: [0, 0], output: [0] }, { input: [0, 1], output: [1] }, { input: [1, 0], output: [1] }, { input: [1, 1], output: [0] }], { iterations: 1000 });

console.log(network.activate([1, 0])); // ~0.98


5

Recommendations