Sobes.tech
Назад к вопросам
Middle — Senior
10

Что такое autoencoder для anomaly detection и как считать reconstruction error?

Компании, где спрашивали
филиппинский банк Salmon

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

Autoencoder обучают восстанавливать «нормальные» данные через узкое скрытое представление. На аномалиях он обычно реконструирует хуже, поэтому ошибка восстановления становится сигналом для детекции. Reconstruction error считают как расстояние между входом и выходом модели, а порог выбирают по нормальным данным или валидации.

Определение:

Autoencoder — это нейросеть, которая учится сжимать вход в latent representation и затем восстанавливать его обратно. Для anomaly detection её обучают в основном на нормальных объектах, чтобы модель хорошо выучила структуру обычных данных. Если на новом объекте ошибка восстановления высокая, это признак возможной аномалии.

Reconstruction error — это мера отличия исходного объекта x от восстановленного x_hat. Чаще всего используют MSE, MAE или норму разности. Чем больше ошибка, тем менее похож объект на данные, на которых автоэнкодер обучался.

Пример использования:

Например, есть телеметрия оборудования, где 99% измерений — нормальный режим работы. Автоэнкодер обучают только на нормальных данных, после чего прогоняют новые записи и считают reconstruction error.

import numpy as np

# x: исходные данные, x_hat: реконструкция автоэнкодера
x = np.array([[1.0, 2.0, 3.0],
              [1.1, 2.0, 2.9]])

x_hat = np.array([[0.9, 2.1, 3.0],
                  [1.8, 1.2, 2.0]])

# MSE по объектам
reconstruction_error = np.mean((x - x_hat) ** 2, axis=1)

print(reconstruction_error)
# [0.00666667 0.60333333]

threshold = 0.1
anomalies = reconstruction_error > threshold
print(anomalies)
# [False  True]

Пояснение кода:

Код показывает типичный способ вычисления reconstruction error по каждому объекту.

Сначала берутся исходные значения x и восстановленные значения x_hat.
Затем считается квадрат разницы по каждому признаку: (x - x_hat) ** 2.
После этого значения усредняются по признакам через mean(axis=1), и получается ошибка для каждого объекта отдельно.
Дальше ошибка сравнивается с порогом threshold: если она выше порога, объект помечается как аномалия.

Ключевые моменты:

  • Autoencoder для anomaly detection обычно обучают на нормальных данных, а не на всех подряд.
  • Идея в том, что модель хорошо восстанавливает привычные паттерны и плохо — редкие, необычные.
  • Reconstruction error — это численная мера того, насколько плохо модель восстановила вход.
  • Для расчёта часто используют MSE, MAE или L2-норму; выбор зависит от типа данных и чувствительности к выбросам.
  • Порог аномальности обычно подбирают по распределению ошибок на валидации или по допустимому уровню false positives.
  • Важно помнить, что высокий reconstruction error не гарантирует аномалию на 100%, это вероятностный сигнал.