Параметр learning rate (скорость обучения) является одним из ключевых элементов при работе с нейронными сетями в библиотеке Synaptic. Он определяет, насколько сильно будут изменяться веса сети при каждом шаге обратного распространения ошибки. Неправильный выбор этого параметра может привести к медленной сходимости, нестабильному обучению или к полной неспособности сети обучаться.
В Synaptic скорость обучения задаётся в процессе вызова метода
train сети. Простейший пример:
const trainer = new synaptic.Trainer(network);
trainer.train(trainingSet, {
rate: 0.1,
iterations: 20000,
error: 0.005,
shuffle: true
});
Здесь ключевой параметр rate указывает на скорость
обучения. При каждой итерации веса корректируются по формуле:
[ w_{new} = w_{old} - ]
где ( ) — learning rate, а ( ) — градиент ошибки по весу.
Важные моменты:
1. Фиксированная скорость обучения
Наиболее простой вариант. rate остаётся постоянной на
протяжении всего обучения. Обычно выбирается значение от 0.01 до
0.3, в зависимости от сложности сети и качества данных.
Пример:
trainer.train(trainingSet, {
rate: 0.05,
iterations: 10000
});
Фиксированный подход удобен для небольших сетей и простых задач, но может замедлять обучение на сложных функциях ошибки.
2. Адаптивное снижение learning rate
Позволяет постепенно уменьшать скорость обучения по мере приближения к минимуму ошибки. Такая стратегия снижает риск «перескакивания» через минимум.
Пример в Synaptic:
let rate = 0.2;
for (let i = 0; i < 10000; i++) {
trainer.train(trainingSet, { rate: rate, iterations: 1 });
rate *= 0.999; // постепенное снижение
}
3. Импульс (momentum) в сочетании с learning rate
Хотя Synaptic напрямую не поддерживает momentum в методе
train, его можно реализовать вручную, корректируя веса с
учётом предыдущих изменений. Это помогает ускорить обучение и
стабилизировать его при высокой скорости обучения.
Learning rate тесно связан с кривой ошибки:
При выборе стратегии обучения обычно используют
экспериментальный подход: сначала выбирают среднее
значение rate, затем корректируют его по поведению графика
ошибки.
train поддерживает объект конфигурации с
параметрами rate, iterations,
error, shuffle.Эффективное использование learning rate требует не только правильного выбора значения, но и понимания динамики ошибки, структуры сети и характера данных. Опытным путём выявляются оптимальные стратегии, сочетая начальный rate с динамическим снижением и внимательным мониторингом обучения.