Параметр learningRate является ключевым элементом
настройки нейронных сетей в библиотеке Brain.js. Он определяет
скорость, с которой сеть обновляет свои веса при
обучении. От корректного выбора этого параметра зависит
стабильность обучения и способность сети к обобщению.
learningRateНейронные сети обучаются методом обратного распространения ошибки (backpropagation). На каждом шаге вычисляется градиент функции потерь по отношению к весам сети, после чего веса корректируются. Формула изменения весов выглядит следующим образом:
w_new = w_old + learningRate * gradient
Где:
w_old — текущее значение веса,gradient — частная производная функции потерь по
весу,learningRate — коэффициент, определяющий величину
изменения веса.Таким образом, learningRate контролирует, насколько сильно сеть реагирует на ошибку.
learningRateСлишком маленькое значение (например, 0.001)
Слишком большое значение (например, 0.5 или выше)
Оптимальное значение
learningRate в Brain.jsВ Brain.js параметр learningRate задается при создании
экземпляра сети. Например, для NeuralNetwork:
const brain = require('brain.js');
const net = new brain.NeuralNetwork({
learningRate: 0.1, // стандартное значение
hiddenLayers: [3] // пример скрытого слоя
});
Если параметр не задан, Brain.js использует значение 0.3 по
умолчанию. Для сетей типа LSTM и
recurrent принцип тот же, но влияние learningRate
проявляется сильнее при больших последовательностях данных.
learningRateBrain.js позволяет изменять learningRate во время
обучения через опции метода train. Это полезно для
адаптивного обучения:
net.train(trainingData, {
iterations: 20000,
log: true,
logPeriod: 100,
learningRate: 0.05
});
Также можно экспериментировать с постепенным уменьшением learningRate, чтобы сеть сначала быстро приближалась к оптимуму, а затем аккуратно уточняла веса:
let rate = 0.2;
for (let i = 0; i < 10000; i++) {
net.train(trainingData, { iterations: 1, learningRate: rate });
rate *= 0.995; // постепенное уменьшение
}
learningRate на разные типы задачlogPeriod) для мониторинга влияния learningRate.LearningRate — это основной регулятор скорости и стабильности обучения в Brain.js. Правильная настройка позволяет достичь высокой точности при оптимальном времени обучения и минимизировать риск расходимости сети.