При работе с нейронными сетями на JavaScript с использованием библиотеки Brain.js крайне важно правильно оценивать качество модели. Метрики позволяют количественно определить, насколько хорошо сеть предсказывает значения и выявить необходимость дальнейшей оптимизации. Наиболее часто применяются три ключевые метрики: MAE (Mean Absolute Error), MSE (Mean Squared Error) и RMSE (Root Mean Squared Error).
MAE вычисляет среднее значение абсолютных ошибок между предсказанными значениями и фактическими. Она измеряет, на сколько в среднем прогноз отличается от реальных данных без учета направления ошибки.
Формула:
[ = _{i=1}^{n} |y_i - _i|]
где:
Особенности MAE:
Пример использования в Brain.js:
const brain = require('brain.js');
const net = new brain.NeuralNetwork();
// Обучающие данные
const trainingData = [
{ input: [0], output: [0] },
{ input: [1], output: [1] }
];
net.train(trainingData);
// Предсказания
const predictions = trainingData.map(d => net.run(d.input)[0]);
// Вычисление MAE
const mae = predictions.reduce((sum, pred, idx) => sum + Math.abs(pred - trainingData[idx].output[0]), 0) / predictions.length;
console.log('MAE:', mae);
MSE вычисляет среднее значение квадратов ошибок между предсказанными и фактическими значениями. Эта метрика более чувствительна к крупным отклонениям, поскольку возводит ошибки в квадрат.
Формула:
[ = _{i=1}^{n} (y_i - _i)^2]
Особенности MSE:
Пример расчета MSE в Brain.js:
const mse = predictions.reduce((sum, pred, idx) => {
const error = pred - trainingData[idx].output[0];
return sum + error * error;
}, 0) / predictions.length;
console.log('MSE:', mse);
RMSE является квадратным корнем из MSE. Это позволяет вернуть метрику в исходные единицы измерения, что делает её более интерпретируемой по сравнению с MSE.
Формула:
[ = ]
Особенности RMSE:
Пример расчета RMSE:
const rmse = Math.sqrt(predictions.reduce((sum, pred, idx) => {
const error = pred - trainingData[idx].output[0];
return sum + error * error;
}, 0) / predictions.length);
console.log('RMSE:', rmse);
Использование этих метрик в Brain.js позволяет объективно оценивать эффективность нейронных сетей и сравнивать различные архитектуры или параметры обучения. Комбинирование MAE и RMSE часто даёт наиболее полное представление о точности модели.