Что такое autoencoder для anomaly detection и как считать reconstruction error?
Answer from AI
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%, это вероятностный сигнал.