Библиотека ml5.js предоставляет высокоуровневый
интерфейс для работы с машинным обучением в браузере на языке
JavaScript. Одним из ключевых компонентов является возможность
обучения модели на пользовательских данных. Для этого
используются методы train и набор параметров обучения,
которые позволяют контролировать процесс оптимизации и точность
модели.
trainМетод train является основным инструментом для запуска
процесса обучения модели. Он вызывается для объектов моделей,
поддерживающих обучение, таких как NeuralNetwork. Вызов
train инициирует итеративный процесс, в ходе которого
модель обновляет свои веса на основе предоставленных данных.
Пример базового использования:
const options = {
epochs: 50,
batchSize: 32
};
neuralNetwork.train(options, whileTraining, finishedTraining);
function whileTraining(epoch, loss) {
console.log(`Эпоха: ${epoch}, Потери: ${loss}`);
}
function finishedTraining() {
console.log('Обучение завершено');
}
Ключевые моменты:
options — объект с параметрами обучения.whileTraining — колбэк, вызывающийся на каждой эпохе,
позволяет отслеживать прогресс.finishedTraining — колбэк, вызывающийся по завершении
всех эпох.Количество проходов по всему набору данных. Увеличение этого значения повышает шансы на достижение минимальных потерь, но увеличивает время обучения.
Размер мини-батча, который используется для одной итерации обновления весов. Меньший размер батча делает обучение более шумным, что иногда помогает выйти из локальных минимумов, но увеличивает время обучения.
Темп обучения модели. Определяет, насколько сильно веса изменяются на каждом шаге оптимизации. Слишком высокий темп может привести к нестабильности, слишком низкий — замедлит обучение.
Используется для ускорения градиентного спуска и сглаживания колебаний. Значение обычно задаётся в диапазоне от 0 до 1.
Колбэки whileTraining и finishedTraining
позволяют динамически получать информацию о процессе обучения,
визуализировать потери, а также запускать постобработку после
завершения.
Подготовка данных Данные должны быть
преобразованы в формат, подходящий для модели. Например, для
NeuralNetwork необходимо определить входные и выходные
признаки с помощью методов addData или
normalizeData.
Инициализация модели Создание экземпляра модели с указанием архитектуры и параметров оптимизации.
Запуск обучения Вызов метода train
с настройками обучения.
Мониторинг прогресса Колбэк
whileTraining позволяет отслеживать метрику потерь
(loss) после каждой эпохи и корректировать стратегию
обучения при необходимости.
Сохранение и использование модели После
завершения обучения модель можно сохранить через save, либо
использовать для предсказаний с помощью predict.
epochs: 20–50 и batchSize: 16–32.batchSize
ускоряет обучение без значительной потери качества.learningRate обычно задают в диапазоне
0.01–0.001, с возможностью уменьшения по мере приближения к
оптимуму.momentum около 0.9 помогает
сгладить обновления весов.const options = {
epochs: 100,
batchSize: 16,
learningRate: 0.005,
momentum: 0.9
};
const neuralNetwork = ml5.neuralNetwork({ task: 'classification', debug: true });
// Добавление данных
neuralNetwork.addData({ x: 0 }, { label: 'A' });
neuralNetwork.addData({ x: 1 }, { label: 'B' });
// Нормализация
neuralNetwork.normalizeData();
// Обучение с колбэками
neuralNetwork.train(options,
(epoch, loss) => console.log(`Эпоха: ${epoch}, Потери: ${loss}`),
() => console.log('Модель готова к использованию')
);
Этот пример демонстрирует полный цикл обучения: от подготовки данных до отслеживания потерь и завершения процесса.
loss) позволяет определить, когда
модель переобучается или обучение недостаточно эффективно.