Mind.js — это библиотека для создания и обучения нейронных сетей на JavaScript. Основной способ установки — использование пакетного менеджера npm. В командной строке необходимо выполнить команду:
npm install mindjs
Эта команда скачивает последнюю стабильную версию библиотеки и
добавляет её в зависимости проекта. После успешной установки можно
проверить наличие пакета в package.json, где он будет
отображаться в разделе dependencies:
"dependencies": {
"mindjs": "^1.1.0"
}
Для использования Mind.js в проекте на Node.js необходимо импортировать библиотеку:
const { Mind } = require('mindjs');
Для работы в браузере подключение возможно через тег
<script> с ссылкой на CDN:
<script src="https://cdn.jsdelivr.net/npm/mindjs/dist/mind.min.js"></script>
<script>
const mind = new Mind();
</script>
Использование через модульный подход позволяет работать с отдельными компонентами библиотеки, что облегчает организацию кода и его поддержку.
Mind.js использует объектную модель для создания и настройки
нейронных сетей. Основной объект для работы — Mind.
Инициализация происходит следующим образом:
const mind = new Mind({
learningRate: 0.3, // скорость обучения
hiddenLayers: [10, 10] // количество нейронов в скрытых слоях
});
Параметры конфигурации:
learningRate — задает скорость корректировки весов сети
при обучении. Значения обычно находятся в диапазоне от 0.1 до 0.5.hiddenLayers — массив, определяющий количество скрытых
слоев и нейронов в каждом слое. Например, [5, 5] создаст
два скрытых слоя с 5 нейронами каждый.activation — функция активации нейронов. Поддерживаются
sigmoid, relu, tanh.Перед обучением необходимо структурировать данные в формате объектов
с ключами input и output. Mind.js поддерживает
числовые и категориальные значения. Пример подготовки данных для
классификации:
const trainingData = [
{ input: { temperature: 30, humidity: 70 }, output: { fan: 1 } },
{ input: { temperature: 20, humidity: 40 }, output: { fan: 0 } }
];
Особенности формата данных:
input — объект с признаками, каждый из которых должен
быть нормализован в диапазоне [0, 1] или
[-1, 1].output — объект с ожидаемым результатом. Для задач
классификации значения часто бинарные (0 или
1), для регрессии могут быть числовыми.Для запуска обучения используется метод train объекта
Mind. Метод принимает массив обучающих примеров и параметры:
mind.train(trainingData, {
iterations: 20000,
errorThresh: 0.005,
log: true,
logPeriod: 1000
});
Ключевые параметры:
iterations — максимальное количество итераций
обучения.errorThresh — порог допустимой ошибки. Если средняя
ошибка сети опускается ниже этого значения, обучение
останавливается.log — вывод прогресса обучения в консоль.logPeriod — интервал логирования прогресса (например,
каждые 1000 итераций).Mind.js позволяет сохранять состояние обученной сети для последующего
использования без повторного обучения. Для этого применяется метод
toJSON:
const modelJSON = mind.toJSON();
Сохраненный JSON можно записать в файл:
const fs = require('fs');
fs.writeFileSync('mind_model.json', JSON.stringify(modelJSON));
Для загрузки ранее сохраненной модели используется метод
fromJSON:
const savedModel = JSON.parse(fs.readFileSync('mind_model.json'));
mind.fromJSON(savedModel);
После обучения можно протестировать сеть с новыми входными данными:
const output = mind.run({ temperature: 25, humidity: 50 });
console.log(output); // { fan: 0.7 }
Выходное значение представляет собой оценку вероятности или числовую
предсказанную величину. Для бинарной классификации можно применить
пороговое значение (0.5), чтобы преобразовать результат в
0 или 1.
Mind.js предоставляет базовую, но мощную платформу для построения нейронных сетей в JavaScript, обеспечивая гибкую настройку и удобный формат работы с данными.