Научитесь создавать модели машинного обучения в своем браузере с помощью TensorFlow.js и JavaScript.

Машинное обучение — это быстро развивающаяся область, которая позволяет компьютерам учиться и делать прогнозы без явного программирования. Одним из ключевых преимуществ машинного обучения является его способность автоматически учиться на данных и улучшаться с течением времени. Это делает его мощным инструментом для широкого спектра приложений, от распознавания изображений и обработки естественного языка до обнаружения мошенничества и прогнозной аналитики.

JavaScript — это универсальный язык программирования, который широко используется для создания веб-приложений. С появлением библиотек JavaScript, таких как TensorFlow.js, теперь можно создавать модели машинного обучения в браузере. Это открывает новые возможности для машинного обучения в экосистеме веб-разработки, позволяя разработчикам обучать и развертывать модели прямо в браузере.

В этой статье я расскажу об основах машинного обучения и покажу, как построить простую модель машинного обучения с помощью TensorFlow.js. Для начала вам потребуется базовое понимание JavaScript и веб-разработки.

Во-первых, давайте взглянем на основные строительные блоки машинного обучения. Три основных компонента машинного обучения — это модель, данные и алгоритм обучения.

Модель – это алгоритм, который вы будете использовать для прогнозирования. TensorFlow.js предоставляет множество предварительно обученных моделей, таких как распознавание изображений и генерация текста, которые вы можете использовать из коробки. Кроме того, вы также можете создать свою собственную модель с помощью API TensorFlow.js.

Данные — это входные данные, которые вы будете использовать для обучения модели. В TensorFlow.js вы можете загружать данные из различных источников, включая локальные файлы и внешние API.

Алгоритм обучения — это метод, который модель использует для обучения на основе данных. Наиболее распространенными алгоритмами обучения являются контролируемое и неконтролируемое обучение. Обучение с учителем используется, когда результат известен, а обучение без учителя используется, когда результат неизвестен. TensorFlow.js поддерживает как контролируемое, так и неконтролируемое обучение.

Теперь, когда у нас есть общее представление о компонентах машинного обучения, давайте создадим простую модель машинного обучения с помощью TensorFlow.js. В этом примере мы будем использовать набор данных MNIST, который представляет собой набор данных рукописных цифр, который обычно используется для машинного обучения.

Вы можете использовать код ниже, чтобы загрузить набор данных MNIST и обучить простую модель с помощью TensorFlow.js.

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

async function run() {
  // Load the data
  const mnistData = await tf.data.mnist('https://storage.googleapis.com/tfjs-examples/mnist.json');

  // Split the data into training and testing sets
  const [trainData, testData] = tf.tidy(() => {
    const trainData = mnistData.train.shuffle(60000).slice(0, 5000);
    const testData = mnistData.test.slice(0, 1000);
    return [trainData, testData];
  });

  // Create the model
  const model = tf.sequential();
  model.add(tf.layers.dense({ units: 10, inputShape: [784], activation: 'softmax' }));

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

  // Train the model
  const history = await model.fit(trainData.xs, trainData.ys, {
    batchSize: 32,
    validationData: [testData.xs, testData.ys],
    epochs: 10
    });

  console.log(history.history.acc);
}

run();

Давайте пройдемся по коду вместе. Сначала мы загружаем набор данных MNIST, используя функцию tf.data.mnist(). Затем мы разделяем данные на обучающий набор и тестовый набор с помощью функции `tf.tidy()`, которая помогает поддерживать низкий уровень использования памяти.

Затем мы создаем простую модель с помощью функции tf.sequential() и добавляем к ней плотный слой с 10 единицами и входной формой 784 (количество пикселей в изображении MNIST). Затем мы компилируем модель с помощью функции model.compile(), указав оптимизатор, функцию потерь и используемые метрики.

Наконец, мы обучаем модель с помощью функции model.fit(), указав обучающие данные, размер пакета и количество эпох. Функция model.fit() возвращает объект истории, который содержит точность модели в каждую эпоху.

Это базовый пример использования TensorFlow.js для создания моделей машинного обучения в браузере. Возможности TensorFlow.js практически безграничны, и вы можете использовать его для обучения моделей на различных наборах данных и применять их к широкому спектру вариантов использования.

Дополнительный совет

При работе с TensorFlow.js есть производительность. Обучение моделей машинного обучения может потребовать больших вычислительных ресурсов, а их запуск в браузере может потребовать больших ресурсов. Чтобы добиться наилучшей производительности, важно оптимизировать модели и данные. TensorFlow.js предоставляет множество инструментов, помогающих в этом, включая ускорение графического процессора и методы управления памятью.

Например, вы можете использовать функцию tf.data.DataLoader() для загрузки данных более экономичным способом, а функцию tf.train.Asynchronous — для асинхронного обучения модели, что поможет снизить нагрузку на основной поток браузера.

Помимо TensorFlow.js, для построения моделей машинного обучения доступны и другие библиотеки JavaScript, такие как Brain.js, ML.js и Synaptic.js. Каждая из этих библиотек имеет свои сильные и слабые стороны и может лучше подходить для определенных типов проектов.

Это все люди! Следите за новостями.

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord.

Повысьте узнаваемость и признание вашего технического стартапа с помощью Circuit.