Aprendizaje automático en TypeScript: mejores bibliotecas para ML en 2024

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 TypeScript: reseña de bibliotecas y herramientas



TypeScript no es solo un tipado estricto para JavaScript. Gracias a su ecosistema y compatibilidad con JS, se convierte en una plataforma potente para el aprendizaje automático (ML) directamente en el navegador o en el servidor (Node.js). En este artículo, analizaremos cuatro bibliotecas clave que permiten desarrollar, entrenar y ejecutar modelos de ML en TypeScript.



1. TensorFlow.js — el buque insignia del ML en TypeScript

TensorFlow.js es un puerto del popular framework TensorFlow a JavaScript/TypeScript. Es compatible tanto con el navegador como con Node.js. La principal ventaja es la capacidad de realizar entrenamiento e inferencia directamente en el lado del cliente sin enviar datos al servidor.



Instalación

npm install @tensorflow/tfjsnpm install @tensorflow/tfjs-node  // para Node.js con aceleración de CPUnpm install @tensorflow/tfjs-node-gpu // para GPU


Ejemplo: regresión lineal en TypeScript

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

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

// Compilaciónmodel.compile({ optimizer: 'sgd', loss: 'meanSquaredError' });

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

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


TensorFlow.js también admite la carga de modelos preentrenados (por ejemplo, MobileNet para clasificación de imágenes) y el trabajo con gráficos de computación.



2. ML5.js — ML para proyectos creativos

ML5.js está construido sobre TensorFlow.js y está orientado a la simplicidad de uso. Es ideal para artistas, diseñadores y principiantes en ML. La biblioteca proporciona APIs de alto nivel para tareas de clasificación, generación de texto, reconocimiento de gestos, etc.



Instalación

npm install ml5


Ejemplo: clasificación de imágenes (MobileNet)

import * as ml5 from 'ml5';

// Cargamos el modelo preentrenado MobileNetconst classifier = ml5.imageClassifier('MobileNet');

// Clasificamos una imagen 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 carga automáticamente los pesos del modelo y proporciona un callback simple. Es perfecto para prototipos rápidos e instalaciones interactivas.



3. Brain.js — redes neuronales sin complicaciones

Brain.js es una biblioteca para crear redes neuronales con una cantidad mínima de código. Admite redes feedforward, LSTM y RNN. Funciona tanto en el navegador como en Node.js.



Instalación

npm install brain.js


Ejemplo: función XOR (O 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 (cercano a 1)console.log(`Resultado: ${output}`);


Brain.js normaliza automáticamente los datos y admite guardar/cargar el modelo entrenado en JSON.



4. Synaptic — flexibilidad arquitectónica

Synaptic es una biblioteca para crear arquitecturas de redes neuronales complejas: perceptrones, redes multicapa

Recommendations