В библиотеке Brain.js параметр
errorThresh является одним из ключевых элементов,
определяющих процесс обучения нейронной сети. Он задаёт порог допустимой
ошибки, при достижении которого обучение считается завершённым. Этот
параметр используется в основном при обучении с учителем (supervised
learning), например, при использовании метода train() для
Feedforward Neural Network или Recurrent Neural
Network.
errorThresherrorThresh указывает на максимально допустимое
значение функции ошибки, при котором сеть считается обученной.
Функция ошибки оценивает, насколько предсказания сети отличаются от
ожидаемых значений на обучающих данных. Чем меньше значение ошибки, тем
точнее сеть воспроизводит зависимость между входными и выходными
данными.
Если точность сети достигает или превышает значение, установленное в
errorThresh, дальнейшее обучение останавливается даже если
максимальное число итераций не достигнуто. Это позволяет экономить
ресурсы и предотвращает излишнюю подгонку модели к обучающим данным.
Параметр передаётся в объект конфигурации при вызове метода
train(). Пример:
const brain = require('brain.js');
const net = new brain.NeuralNetwork();
const trainingData = [
{ input: [0, 0], output: [0] },
{ input: [0, 1], output: [1] },
{ input: [1, 0], output: [1] },
{ input: [1, 1], output: [0] }
];
const options = {
iterations: 20000, // максимальное количество итераций обучения
errorThresh: 0.005, // порог ошибки
learningRate: 0.3 // скорость обучения
};
net.train(trainingData, options);
В этом примере обучение завершится либо при достижении
0.005 ошибки, либо после 20 000 итераций, в зависимости от
того, что произойдет раньше.
Во время обучения нейронная сеть рассчитывает сумму квадратов
ошибок для всех обучающих примеров (Mean Squared Error — MSE)
или другой выбранной функции ошибки. Brain.js на каждой итерации
корректирует веса сети с целью минимизации этой ошибки. Порог
errorThresh сравнивается с текущей ошибкой на каждом
шаге:
errorThresh, обучение
продолжается.errorThresh, обучение прекращается
автоматически.Это делает errorThresh механизмом контроля
точности модели.
Значение errorThresh напрямую влияет на баланс между
точностью сети и временем обучения:
Рекомендуется подбирать errorThresh экспериментально,
учитывая размер и сложность данных. Часто используют значения в
диапазоне 0.001–0.01 для небольших задач и 0.01–0.05 для крупных наборов
данных.
errorThresh тесно связан с параметрами:
iterations меньше, чем необходимо для достижения
errorThresh, обучение завершится раньше.errorThresh, но повышает риск нестабильного обучения.errorThresh.const result = net.train(trainingData, {
iterations: 10000,
errorThresh: 0.01,
learningRate: 0.2,
log: true,
logPeriod: 100
});
console.log(result);
Вывод result содержит информацию о достигнутой ошибке,
числе итераций и времени обучения:
{
"error": 0.0098,
"iterations": 4320,
"time": 120
}
Ошибка (error) показывает фактическое значение функции ошибки на
момент завершения обучения, которое не превышает установленный
errorThresh. Это позволяет точно контролировать качество
сети без ручного перебора количества итераций.
errorThresh около 0.005–0.01.Использование errorThresh позволяет точно
контролировать момент остановки обучения, обеспечивая баланс
между скоростью обучения и качеством предсказаний. Этот параметр
является одним из важнейших при настройке нейронной сети в Brain.js.