ml5.js — это высокоуровневая библиотека на JavaScript, обеспечивающая простой доступ к моделям машинного обучения, построенным на TensorFlow.js. Одной из ключевых возможностей является автоматическое определение архитектуры нейронной сети на основе предоставленных данных. Это позволяет быстро создавать модели без глубокого знания архитектур и гиперпараметров.
Автоматическая архитектура означает, что библиотека
сама подбирает структуру сети: количество слоев, нейронов в слоях,
функции активации и оптимизаторы. В ml5.js это реализовано через
высокоуровневые классы вроде NeuralNetwork. Пользователь
задаёт только тип задачи (классификация, регрессия), а библиотека
анализирует данные и формирует базовую архитектуру.
Типы данных:
Типы задач:
Класс NeuralNetwork автоматически определяет размер
входного слоя по количеству признаков в данных и выбирает оптимальное
количество скрытых слоев в диапазоне 1–3 для большинства задач. Пример
создания модели:
const options = {
task: 'classification', // тип задачи: 'regression' или 'classification'
debug: true // вывод отладочной информации о модели
};
const nn = ml5.neuralNetwork(options);
После создания модели можно добавлять данные с помощью метода
addData:
nn.addData({x1: 5, x2: 3}, {label: 'A'});
nn.addData({x1: 2, x2: 7}, {label: 'B'});
Метод normalizeData() автоматически масштабирует
числовые признаки, что улучшает обучение:
nn.normalizeData();
Метод train запускает процесс обучения. Библиотека
использует оптимальные значения гиперпараметров, подобранные на основе
анализа данных:
const trainingOptions = {
epochs: 50, // количество проходов по данным
batchSize: 12 // размер мини-батча
};
nn.train(trainingOptions, finishedTraining);
function finishedTraining() {
console.log('Обучение завершено');
}
При этом ml5.js автоматически выбирает:
adam).После обучения модель готова к предсказаниям через
classify или predict:
nn.classify({x1: 4, x2: 5}, (err, results) => {
if (err) throw err;
console.log(results); // вывод метки и вероятности
});
Для регрессии используется метод predict:
nn.predict({x1: 1.5, x2: 2.3}, (err, results) => {
console.log(results); // числовой прогноз
});
ml5.js автоматически подбирает архитектуру так, чтобы сеть была достаточно глубокой для сложных закономерностей, но не избыточной для простых данных. Это снижает вероятность переобучения при небольших наборах данных.
Хотя библиотека подбирает базовую структуру автоматически, можно управлять ключевыми параметрами:
Пример:
const options = {
task: 'regression',
hiddenLayers: [16, 16], // два скрытых слоя по 16 нейронов
learningRate: 0.01,
debug: true
};
const nn = ml5.neuralNetwork(options);
Библиотека сочетает автоподбор с возможностью ручной настройки, что обеспечивает баланс между простотой использования и контролем над моделью.
Автоматическое определение архитектуры в ml5.js учитывает тип входных данных:
Автоматическое определение архитектуры в ml5.js делает процесс обучения нейронных сетей интуитивно понятным, ускоряет разработку и обеспечивает базовую оптимизацию гиперпараметров, сохраняя при этом гибкость для ручной настройки при необходимости.