Apprentissage automatique sur TypeScript : top bibliothèques ML en 2024

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Apprentissage automatique sur TypeScript : aperçu des bibliothèques et outils



TypeScript n'est pas qu'un typage strict pour JavaScript. Grâce à son écosystème et sa compatibilité avec JS, il devient une plateforme puissante pour l'apprentissage automatique (ML) directement dans le navigateur ou sur le serveur (Node.js). Dans cet article, nous analyserons quatre bibliothèques clés qui permettent de développer, entraîner et exécuter des modèles ML en TypeScript.



1. TensorFlow.js — le fleuron du ML en TypeScript

TensorFlow.js est un portage du célèbre framework TensorFlow en JavaScript/TypeScript. Il prend en charge à la fois le navigateur et Node.js. Le principal avantage est la possibilité d'effectuer l'entraînement et l'inférence directement côté client sans envoyer de données au serveur.



Installation

npm install @tensorflow/tfjsnpm install @tensorflow/tfjs-node  // pour Node.js avec accélération CPUnpm install @tensorflow/tfjs-node-gpu // pour GPU


Exemple : régression linéaire en TypeScript

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

// Création d'un modèle simple : y = 2x - 1const model = tf.sequential();model.add(tf.layers.dense({ units: 1, inputShape: [1] }));

// Compilationmodel.compile({ optimizer: 'sgd', loss: 'meanSquaredError' });

// Données d'entraînementconst xs = tf.tensor2d([0, 1, 2, 3, 4], [5, 1]);const ys = tf.tensor2d([-1, 1, 3, 5, 7], [5, 1]);

// Entraînementmodel.fit(xs, ys, { epochs: 250 }).then(() => { // Prédiction pour x=5 const output = model.predict(tf.tensor2d([5], [1, 1])) as tf.Tensor; output.print(); // ≈ 9 (2*5 - 1)});


TensorFlow.js prend également en charge le chargement de modèles pré-entraînés (par exemple, MobileNet pour la classification d'images) et le travail avec des graphes de calcul.



2. ML5.js — ML pour les projets créatifs

ML5.js est construit au-dessus de TensorFlow.js et est axé sur la simplicité d'utilisation. Idéal pour les artistes, designers et débutants en ML. La bibliothèque fournit des API de haut niveau pour les tâches de classification, génération de texte, reconnaissance gestuelle, etc.



Installation

npm install ml5


Exemple : classification d'images (MobileNet)

import * as ml5 from 'ml5';

// Chargement du modèle pré-entraîné MobileNetconst classifier = ml5.imageClassifier('MobileNet');

// Classification d'une image par 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('Résultats :', results); // [{ label: 'tabby cat', confidence: 0.98 }, ...] });};


ML5.js charge automatiquement les poids du modèle et fournit un simple callback. Parfait pour les prototypes rapides et les installations interactives.



3. Brain.js — réseaux de neurones sans complexité

Brain.js est une bibliothèque pour créer des réseaux de neurones avec un minimum de code. Prend en charge les réseaux feedforward, LSTM et RNN. Fonctionne à la fois dans le navigateur et dans Node.js.



Installation

npm install brain.js


Exemple : fonction XOR (OU exclusif logique)

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 (proche de 1)console.log(`Résultat : ${output}`);


Brain.js normalise automatiquement les données et prend en charge la sauvegarde/chargement du modèle entraîné en JSON.



4. Synaptic — flexibilité architecturale

Synaptic est une bibliothèque pour créer des architectures de réseaux de neurones complexes : perceptrons, réseaux multicouches

Recommendations