Heim > Web-Frontend > js-Tutorial > Hauptteil

JavaScript Machine Learning: Erstellen Sie ML-Modelle im Browser

王林
Freigeben: 2023-09-10 09:45:02
nach vorne
1218 Leute haben es durchsucht

JavaScript 机器学习:在浏览器中构建 ML 模型

Maschinelles Lernen (ML) hat verschiedene Branchen revolutioniert und es Computern ermöglicht, auf der Grundlage von Mustern und Daten zu lernen und Vorhersagen zu treffen. Traditionell werden Modelle für maschinelles Lernen auf Servern oder Hochleistungsmaschinen erstellt und ausgeführt. Mit der Weiterentwicklung der Webtechnologie ist es nun jedoch möglich, ML-Modelle mithilfe von JavaScript direkt im Browser zu erstellen und bereitzustellen.

In diesem Artikel erkunden wir die spannende Welt des maschinellen Lernens in JavaScript und erfahren, wie man ML-Modelle erstellt, die im Browser ausgeführt werden können.

Erfahren Sie mehr über maschinelles Lernen

Maschinelles Lernen ist eine Teilmenge der künstlichen Intelligenz (KI), die sich auf die Erstellung von Modellen konzentriert, die aus Daten lernen und Vorhersagen oder Entscheidungen treffen können. Es gibt zwei Hauptarten des maschinellen Lernens: überwachtes Lernen und unüberwachtes Lernen.

Überwachtes Lernen beinhaltet das Trainieren eines Modells anhand gekennzeichneter Daten, bei denen die Eingabemerkmale und entsprechenden Ausgabewerte bekannt sind. Das Modell lernt Muster aus gekennzeichneten Daten, um Vorhersagen zu neuen, unsichtbaren Daten zu treffen.

Unüberwachtes Lernen hingegen befasst sich mit unbeschrifteten Daten. Das Modell entdeckt versteckte Muster und Strukturen in Daten ohne vordefinierte Bezeichnungen.

JavaScript-Bibliothek für maschinelles Lernen

Um mit dem maschinellen Lernen von JavaScript zu beginnen, befolgen Sie diese Schritte -

Schritt 1: Node.js installieren

Node.js ist eine JavaScript-Laufzeitumgebung, die es uns ermöglicht, JavaScript-Code außerhalb eines Webbrowsers auszuführen. Es stellt die Tools und Bibliotheken bereit, die für die Verwendung von TensorFlow.js erforderlich sind.

Schritt 2: Richten Sie das Projekt ein

Öffnen Sie nach der Installation von Node.js Ihren bevorzugten Code-Editor und erstellen Sie ein neues Verzeichnis für Ihr ML-Projekt. Navigieren Sie über die Befehlszeile oder das Terminal zum Projektverzeichnis.

Schritt 3: Initialisieren Sie das Node.js-Projekt

Führen Sie in der Befehlszeile oder im Terminal den folgenden Befehl aus, um ein neues Node.js-Projekt zu initialisieren -

npm init -y
Nach dem Login kopieren

Dieser Befehl erstellt eine neue package.json-Datei zum Verwalten von Projektabhängigkeiten und -konfigurationen.

Schritt 4: TensorFlow.js installieren

Um TensorFlow.js zu installieren, führen Sie den folgenden Befehl in der Befehlszeile oder im Terminal aus:

npm install @tensorflow/tfjs
Nach dem Login kopieren

Schritt 5: Beginnen Sie mit dem Aufbau des Modells für maschinelles Lernen

Da Ihr Projekt nun eingerichtet und TensorFlow.js installiert ist, können Sie mit der Erstellung von Modellen für maschinelles Lernen im Browser beginnen. Sie können eine neue JavaScript-Datei erstellen, TensorFlow.js importieren und dessen API verwenden, um ein ML-Modell zu definieren, zu trainieren und Vorhersagen zu treffen.

Lassen Sie uns in einige Codebeispiele eintauchen, um zu lernen, wie Sie TensorFlow.js verwenden und Modelle für maschinelles Lernen in JavaScript erstellen.

Beispiel 1: Lineare Regression

Lineare Regression ist ein überwachter Lernalgorithmus, der zur Vorhersage kontinuierlicher Ausgabewerte basierend auf Eingabemerkmalen verwendet wird.

Sehen wir uns an, wie man eine lineare Regression mit TensorFlow.js implementiert.

// Import TensorFlow.js library
import * as tf from '@tensorflow/tfjs';

// Define input features and output values
const inputFeatures = tf.tensor2d([[1], [2], [3], [4], [5]], [5, 1]);
const outputValues = tf.tensor2d([[2], [4], [6], [8], [10]], [5, 1]);

// Define the model architecture
const model = tf.sequential();
model.add(tf.layers.dense({ units: 1, inputShape: [1] }));

// Compile the model
model.compile({ optimizer: 'sgd', loss: 'meanSquaredError' });

// Train the model
model.fit(inputFeatures, outputValues, { epochs: 100 }).then(() => {
   // Make predictions
   const predictions = model.predict(inputFeatures);

   // Print predictions
   predictions.print();
});
Nach dem Login kopieren

Anleitung

In diesem Beispiel importieren wir zunächst die TensorFlow.js-Bibliothek. Dann definieren wir die Eingabemerkmale und Ausgabewerte als Tensoren. Als nächstes erstellen wir ein sequentielles Modell und fügen eine dichte Schicht mit einer Einheit hinzu. Wir kompilieren das Modell mit dem Optimierer „sgd“ und der Verlustfunktion „meanSquaredError“. Schließlich trainieren wir das Modell für 100 Epochen und treffen Vorhersagen zu den Eingabemerkmalen. Die vorhergesagten Ausgabewerte werden auf der Konsole gedruckt.

Ausgabe

Tensor
   [2.2019906],
   [4.124609 ],
   [6.0472274],
   [7.9698458],
   [9.8924646]]
Nach dem Login kopieren

Beispiel 2: Stimmungsanalyse

Die Stimmungsanalyse ist eine beliebte Anwendung des maschinellen Lernens, bei der Textdaten analysiert werden, um die im Text ausgedrückte Emotion oder den emotionalen Ton zu bestimmen. Wir können TensorFlow.js verwenden, um ein Stimmungsanalysemodell zu erstellen, das vorhersagt, ob ein bestimmter Text eine positive oder negative Stimmung hat.

Beachten Sie den unten gezeigten Code.

// Import TensorFlow.js library
import * as tf from '@tensorflow/tfjs';
import '@tensorflow/tfjs-node'; // Required for Node.js environment

// Define training data
const trainingData = [
   { text: 'I love this product!', sentiment: 'positive' },
   { text: 'This is a terrible experience.', sentiment: 'negative' },
   { text: 'The movie was amazing!', sentiment: 'positive' },
   // Add more training data...
];

// Prepare training data
const texts = trainingData.map(item => item.text);
const labels = trainingData.map(item => (item.sentiment === 'positive' ? 1 : 0));

// Tokenize and preprocess the texts
const tokenizedTexts = texts.map(text => text.toLowerCase().split(' '));
const wordIndex = new Map();
let currentIndex = 1;
const sequences = tokenizedTexts.map(tokens => {
   return tokens.map(token => {
      if (!wordIndex.has(token)) {
         wordIndex.set(token, currentIndex);
         currentIndex++;
      }
      return wordIndex.get(token);
   });
});

// Pad sequences
const maxLength = sequences.reduce((max, seq) => Math.max(max, seq.length), 0);
const paddedSequences = sequences.map(seq => {
   if (seq.length < maxLength) {
      return seq.concat(new Array(maxLength - seq.length).fill(0));
   }
   return seq;
});

// Convert to tensors
const paddedSequencesTensor = tf.tensor2d(paddedSequences);
const labelsTensor = tf.tensor1d(labels);

// Define the model architecture
const model = tf.sequential();
model.add(tf.layers.embedding({ inputDim: currentIndex, outputDim: 16, inputLength: maxLength }));
model.add(tf.layers.flatten());
model.add(tf.layers.dense({ units: 1, activation: 'sigmoid' }));

// Compile the model
model.compile({ optimizer: 'adam', loss: 'binaryCrossentropy', metrics: ['accuracy'] });

// Train the model
model.fit(paddedSequencesTensor, labelsTensor, { epochs: 10 }).then(() => {
   // Make predictions
   const testText = 'This product exceeded my expectations!';
   const testTokens = testText.toLowerCase().split(' ');
   const testSequence = testTokens.map(token => {
      if (wordIndex.has(token)) {
         return wordIndex.get(token);
      }
      return 0;
   });
   const paddedTestSequence = testSequence.length < maxLength ? testSequence.concat(new Array(maxLength - testSequence.length).fill(0)) : testSequence;
   const testSequenceTensor = tf.tensor2d([paddedTestSequence]);
   const prediction = model.predict(testSequenceTensor);
   const sentiment = prediction.dataSync()[0] > 0.5 ?  'positive' : 'negative';

   // Print the sentiment prediction
   console.log(`The sentiment of "${testText}" is ${sentiment}.`);
});
Nach dem Login kopieren

Ausgabe

Epoch 1 / 10
eta=0.0 ========================================================================> 
14ms 4675us/step - acc=0.00 loss=0.708 
Epoch 2 / 10
eta=0.0 ========================================================================> 
4ms 1428us/step - acc=0.667 loss=0.703 
Epoch 3 / 10
eta=0.0 ========================================================================> 
5ms 1733us/step - acc=0.667 loss=0.697 
Epoch 4 / 10
eta=0.0 ========================================================================> 
4ms 1419us/step - acc=0.667 loss=0.692 
Epoch 5 / 10
eta=0.0 ========================================================================> 
6ms 1944us/step - acc=0.667 loss=0.686 
Epoch 6 / 10
eta=0.0 ========================================================================> 
5ms 1558us/step - acc=0.667 loss=0.681 
Epoch 7 / 10
eta=0.0 ========================================================================> 
5ms 1513us/step - acc=0.667 loss=0.675 
Epoch 8 / 10
eta=0.0 ========================================================================> 
3ms 1057us/step - acc=1.00 loss=0.670 
Epoch 9 / 10
eta=0.0 ========================================================================> 
5ms 1745us/step - acc=1.00 loss=0.665 
Epoch 10 / 10
eta=0.0 ========================================================================> 
4ms 1439us/step - acc=1.00 loss=0.659 
The sentiment of "This product exceeded my expectations!" is positive.
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonJavaScript Machine Learning: Erstellen Sie ML-Modelle im Browser. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!