Apprentissage automatique en JavaScript (Node.js) : bibliothèques pour le ML

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 en JavaScript (Node.js) : bibliothèques et outils



Bien que Python reste le langage dominant pour l'apprentissage automatique, JavaScript (en particulier la plateforme Node.js) gagne rapidement en popularité dans ce domaine. Cela est dû à la possibilité d'exécuter des modèles directement dans le navigateur, à l'unification des piles technologiques (full-stack JS) et à l'émergence de bibliothèques puissantes pour travailler avec les réseaux de neurones, l'algèbre linéaire et les statistiques. Dans cet article, nous examinerons les bibliothèques clés d'apprentissage automatique pour Node.js, leurs capacités et des exemples d'utilisation.



1. TensorFlow.js — le fleuron du machine learning en JS



TensorFlow.js est un portage du framework populaire de Google, adapté pour JavaScript. Il permet d'entraîner des modèles à partir de zéro, d'exécuter des modèles pré-entraînés et d'effectuer de l'inférence à la fois dans Node.js et dans le navigateur. La bibliothèque prend en charge l'accélération GPU via WebGL (dans le navigateur) ou CUDA (via un addon Node.js).



Installation :

npm install @tensorflow/tfjs @tensorflow/tfjs-node


Exemple : régression linéaire

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

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

// Création du modèleconst model = tf.sequential();model.add(tf.layers.dense({units: 1, inputShape: [1]}));

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

// Entraînementmodel.fit(xs, ys, {epochs: 200}).then(() => { // Prédiction model.predict(tf.tensor2d([5], [1, 1])).print();});


Fonctionnalités clés :

  • Prise en charge complète des réseaux de neurones (convolutionnels, récurrents, transformeurs)
  • Chargement de modèles depuis Keras (Python) et TensorFlow Hub
  • Travail avec des graphes de calcul et différenciation automatique
  • Outils intégrés pour la visualisation (tfjs-vis)


2. Brain.js — simplicité et commodité



Brain.js est l'une des bibliothèques les plus simples pour créer des réseaux de neurones en JavaScript. Elle est idéale pour les débutants et les petits projets. Elle prend en charge les réseaux directs et récurrents (LSTM, GRU), ainsi que le travail avec les séries temporelles.



Installation :

npm install brain.js


Exemple : classification XOR

const brain = require('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.98console.log(output);


Caractéristiques :

  • Seuil d'entrée minimal — seulement quelques lignes de code
  • Prise en charge intégrée de la normalisation des données
  • Possibilité de sauvegarder et de charger des modèles entraînés en JSON
  • Prise en charge des réseaux récurrents (LSTMTimeStep, GRUTimeStep)


3. Synaptic — architecture modulaire



Synaptic est une bibliothèque open source qui offre une architecture flexible pour la construction de réseaux de neurones. Elle ne dépend d'aucune bibliothèque externe (à part du JS pur) et permet de créer des topologies de réseaux arbitraires, y compris des perceptrons multicouches, des réseaux à mémoire à long et court terme (LSTM) et même des réseaux capsules.



Installation :

npm install synaptic


Exemple : création d'un perceptron

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.project(hiddenLayer);hiddenLayer.project(outputLayer);

const myNetwork = new Network({ input: inputLayer, hidden: [hiddenLayer], output: outputLayer});

const t

Recommendations