Метрики качества MAE, MSE, RMSE

При работе с нейронными сетями на JavaScript с использованием библиотеки Brain.js крайне важно правильно оценивать качество модели. Метрики позволяют количественно определить, насколько хорошо сеть предсказывает значения и выявить необходимость дальнейшей оптимизации. Наиболее часто применяются три ключевые метрики: MAE (Mean Absolute Error), MSE (Mean Squared Error) и RMSE (Root Mean Squared Error).


Mean Absolute Error (MAE)

MAE вычисляет среднее значение абсолютных ошибок между предсказанными значениями и фактическими. Она измеряет, на сколько в среднем прогноз отличается от реальных данных без учета направления ошибки.

Формула:

[ = _{i=1}^{n} |y_i - _i|]

где:

  • (y_i) — фактическое значение,
  • (_i) — предсказанное значение,
    1. — количество наблюдений.

Особенности 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);

Mean Squared Error (MSE)

MSE вычисляет среднее значение квадратов ошибок между предсказанными и фактическими значениями. Эта метрика более чувствительна к крупным отклонениям, поскольку возводит ошибки в квадрат.

Формула:

[ = _{i=1}^{n} (y_i - _i)^2]

Особенности MSE:

  • Подчеркивает большие ошибки, что делает её полезной для задач, где важны точные прогнозы.
  • Менее интерпретируема в исходных единицах, так как результат выражается в квадрате единиц исходных данных.
  • Часто используется в процессе обучения, так как 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);

Root Mean Squared Error (RMSE)

RMSE является квадратным корнем из MSE. Это позволяет вернуть метрику в исходные единицы измерения, что делает её более интерпретируемой по сравнению с MSE.

Формула:

[ = ]

Особенности RMSE:

  • Сочетает чувствительность к большим ошибкам (как у 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);

Сравнение и выбор метрик

  • MAE: выбирается, когда важна средняя абсолютная ошибка и требуется устойчивая метрика к выбросам.
  • MSE: подходит для задач, где критичны крупные ошибки и нужно усиленное наказание за сильные отклонения.
  • RMSE: универсальная метрика для интерпретации в исходных единицах, сохраняющая чувствительность к крупным ошибкам.

Использование этих метрик в Brain.js позволяет объективно оценивать эффективность нейронных сетей и сравнивать различные архитектуры или параметры обучения. Комбинирование MAE и RMSE часто даёт наиболее полное представление о точности модели.