Ідея: стиснути, а потім оцінити, наскільки добре ви можете відновити
Більшість алгоритмів виявлення аномалій запитують «Чи виглядає цей пункт далеко від своїх сусідів?» Autoencoder ставить інше питання: «Якщо я стискаю цю точку даних до невеликої репрезентації, а потім намагаюся розширити її назад, наскільки близько я отримую до оригінала?». Нейронна мережа, побудована як autoencoder, має дві частини — encoder, який стискає вхідні дані до невеликого вузла, і decoder, який намагається відновити повний вхід з цієї стиснутої форми. Мережа навчається лише за допомогою нормальних даних, тому вона стає дуже хорошою у відновленні шаблонів, які бачила багато разів.
Після навчання мережу показують нові дані, включаючи дані, якими вона не зустрічала. Нормальні приклади, які нагадують розподіл навчання, точно відтворюються: вихід близький до входу, і помилка реконструкції — зазвичай середньоквадратична різниця між входом і виходом — залишається низькою. Аномальні приклади, які не відповідають шаблонам, якими навчилася мережа, погано відтворюються, оскільки вузол ніколи не оптимізувався для збереження того, що робить їх незвичайними. Велику помилку реконструкції вважають як доказ аномалії.
Будівництво мережі та вибір вузького місця
Простий автокодер для табличних даних датчиків – це просто стовп від стовпчика щільних шарів, який звужується до вузького місця і потім розширюється назад симетрично, наприклад, вхідний шар, прихований шар з 32 одиницями, вузьке місце з 8 одиницями, ще один прихований шар з 32 одиницями та вихідний шар, що відповідає початковій розмірності входу. Мережа навчається за допомогою функції втрат реконструкції, такої як середньоквадратична помилка, використовуючи оптимізатор Adam, точно так само, як і регресійну модель – тільки ціль це сам вхід.
Розмір вузького місця є ключовим дизайнерським рішенням. Якщо він занадто великий, мережа має достатньо обчислювальної потужності, щоб запам’ятати незвичайні входи разом із нормальними, що суперечить меті – все реконструюється добре, включаючи аномалії, тому модель втрачає здатність розрізняти. Якщо він занадто малий, навіть нормальна варіація не може бути точно відтворена, створюючи високу базову помилку, яка заглушає сигнал аномалії. У практиці вузьке місце обирається емпірично, часто як частка кількості вхідних ознак, і перевіряється на предмет того, чи розділяє реконструювальна помилка відомі нормальні та аномальні приклади чисто.
Встановлення порогу аномалії
Помилка реконструкції сама по собі є просто числом; перетворення її на рішення «нормальне чи аномальне» потребує порогу, і тут знаходиться більшість практичних рішень. Поширений підхід полягає в тому, щоб обчислювати помилку реконструкції для валідаційного набору даних, що складається переважно з нормальних прикладів, а потім позначати все, що перевищує 95-й або 99-й процентиль, як аномалію. Інша опція – статистична: моделювати помилку як приблизно нормально розподілену та позначати все, що знаходиться за межами середнього значення плюс три стандартних відхилення. Третя, коли доступно невеликий обсяг розмічених аномальних даних, полягає у виконанні пошуку порогу та виборі значення, яке максимізує F1-оцінку або інший обраний показник на валідаційному наборі даних.
Жоден з цих варіантів не є безкоштовним. Більш жорсткий поріг зменшує кількість хибно позитивних результатів – інженерам не надсилають повідомлення про нормальні коливання, але збільшує ризик пропуску справді аномальних подій, що має значення, якщо аномалії представляють собою проблеми з безпекою або відмови обладнання. Більш м’який поріг виявляє більше справжніх аномалій, але ризикує викликати перевтому сигналів, коли оператори починають ігнорувати попередження, оскільки занадто багато з них виявляються безневинними. Порогу слід встановлювати, враховуючи кінцеву вартість кожного типу помилок, а не лише статистичного правила великого пальця.”]}صالحين
None of these choices is free of trade-offs. A stricter threshold reduces false positives — engineers are not paged for normal fluctuation — but raises the risk of missing genuinely anomalous events, which matters if the anomalies represent safety issues or equipment failures. A looser threshold catches more true anomalies but risks alert fatigue, where operators start ignoring alerts because too many turn out to be benign. The threshold should ultimately be set with the downstream cost of each error type in mind, not purely by a statistical rule of thumb.
Density-based альтернативи: DBSCAN та Local Outlier Factor
Автокодери не єдиний безперешкодний шлях до виявлення аномалій, і простіші методи часто намагаються першими, оскільки їм не потрібне навчання нейронної мережі. DBSCAN, алгоритм кластеризації, побудований навколо локальної щільності точок, природним чином генерує мітки аномалій як побічний ефект: він групує точки, які щільно упаковані разом, і будь-яка точка, яка не має достатньо сусідів у межах заданого радіуса, щоб приєднатися до кластера, позначена як шум. Ці шумові точки є аномаліями. DBSCAN потребує двох параметрів — радіус сусіда (eps) та мінімальну кількість точок, необхідну для формування щільної області (min_samples), і вимагає масштабування ознак заздалегідь, оскільки він безпосередньо працює з геометрією даних, і ознаки дуже різних масштабів спотворюють обчислення відстаней.
Local Outlier Factor (LOF) використовує пов’язаний, але більш нюансований підхід: замість жорсткого ліміту щільності він порівнює локальну щільність навколо точки з локальною щільністю навколо її сусідів. Точка, чия сусідова область значно більш розріджена, ніж у сусідів, отримує високий бал аномалії, навіть якщо точка знаходиться в області даних, яка має помірно щільну щільність в абсолютних термінах. Це робить LOF краще пристосованим до даних, де природно різні регіони мають різну щільність — наприклад, показники датчиків, які щільно згруповані під час спокійних періодів, але розповсюджуються більше під час інтенсивних періодів, де жорсткий метод радіуса, такий як DBSCAN, неправильно оцінить, які точки насправді є аномаліями.
Одна-класова SVM та коли вона виправдовує витрати
One-Class SVM використовує ще один підхід: він намагається навчитися межі — у трансформованому, часто вищому розмірності просторі ознак за допомогою функції ядра — яка щільно оточує область, що займає нормальні дані, а потім позначає все, що падає поза цією межею, як аномальне. Він може захоплювати нелінійні, складні форми нормальних областей, які проста правило-орієнтована система не помітить, і добре працює на менших наборах даних. Його недоліки — обчислювальна вартість, яка погано масштабується зі збільшенням розміру набору даних, і складність точно зрозуміти, чому межа виключила певний пункт, оскільки межа знаходиться у трансформованому просторі ознак, а не в оригінальному.
Вибір між цими чотирма методами — автокодери, DBSCAN, LOF та One-Class SVM — переважно питання форми та масштабу даних. Автокодери добре справляються з багатовимірними даними зі складною, нелінійною структурою і масштабуються до великих наборів даних після навчання, але потребують достатньо навчальних даних та обчислювальних ресурсів для вивчення хорошої репрезентації bottleneck і пропонують найменшу інтерпретованість серед групи. DBSCAN швидкий і зрозумілий, коли дані мають справжню структуру кластерів. LOF краще справляється з областями змінної щільності, ніж DBSCAN, за певну додаткову обчислювальну вартість. One-Class SVM підходить для менших наборів даних із чітко визначеною нормальною областю, але не масштабується добре до великих або дуже багатовимірних даних.
Виявлення аномалій у виробництві
Який алгоритм обрано, розгортання виявлення аномалій не є одноразовою навчальною вправою. Визначення «нормального» схиляється до змін з віком систем, змінами шаблонів використання або зміною сезонів, тому моделі потребують періодичного перенавчання на нещодавніх даних замість того, щоб їх заморожувати після первинного розгортання. Будь-яка виявлена аномалія повинна бути задокументована з достатньою кількістю контексту — необробленими значеннями, помилкою реконструкції або оцінкою щільності, відміткою часу — для підтримки подальшого розгляду, і, бажано, існує цикл зворотного зв’язку, де люди, які розглядають виявлені події, підтверджують чи відхиляють їх, створюючи зростаючий пул прикладів, позначених як такі, що можна використовувати для валідації майбутніх виборів порогу або навіть для навчання супроводжуваного класифікатора пізніше. Оцінка повинна йти далі однієї цифри. Точність вимірює частку аномалій, які були справжніми, що має значення для підтримки довіри оператора; чутливість вимірює частку реальних аномалій, які були спіймані, що має значення для безпеки та надійності; і коли є доступний позначений тестовий набір, AUC-ROC надає погляди безпосередньо пов’язані з порогами щодо того, як добре оцінка аномалії відокремлює нормальне від ненормального в цілому. Різні рівні серйозності попереджень — незначна відхилення записується тихо, а значна викликає негайне відкриття сторінки — дозволяють одному й тому ж основному оцінці аномалій керувати пропорційними відповідями замість єдиного непомірного рішення на/від.
Часті запитання
Чому я б мав використовувати автокоду замість Isolation Forest?
Isolation Forest швидкий, потребує мінімального налаштування та добре працює з табличними даними помірної розмірності. Автокоди отримують додаткові витрати на навчання, коли дані мають високу розмірність і нелінійну структуру, яку використовувальний деревоподібний підхід розділення не може ефективно ізолювати — наприклад, необроблені сигнали датчиків, зображення або широкі набори ознак із складними кореляціями між змінними.
Чи потребує автокод розмічений аномальний даних для навчання?
Ні. Йому потрібен лише навчальний набір, що переважно складається з нормальних даних — він ніколи не бачить прикладів, позначених як аномалії, під час навчання. Він вчиться добре відтворювати нормальні закономірності, а аномалії виявляються пізніше виключно на основі високої помилки реконструкції, що робить його справді безконтрольним методом.
Як LOF відрізняється від DBSCAN, якщо обидва є кластеризаційними методами на основі щільності?
DBSCAN використовує один глобальний пороговий рівень щільності: будь-яка точка без достатньої кількості сусідів у заданому радіусі вважається шумом. LOF порівнює локальну щільність кожної точки з локальною щільністю її сусідів, щоб виділяти викиди в рідких областях навіть тоді, коли загальний набір даних має дуже різні щільності від однієї області до іншої, що не може адаптуватися один пороговий радіус.
Який прийнятний поріг помилки реконструкції для початку?
Зазвичай це 95-й або 99-й процентиль помилки реконструкції, виміряний на навчальному наборі даних переважно з нормальних даних — позначте все, що перевищує цей поріг, як аномалію. Розглядайте це як першу оцінку, а не остаточну відповідь; коригуйте її відповідно до того, скільки хибнопозитивних результатів можуть витримати оператори, проти того, скільки пропущених аномалій буде коштувати.
Чи можуть ці безконтрольні методи повністю замінити контрольовані класифікатори?
Зазвичай ні повністю. Безконтрольні методи є важливими, коли розмічені приклади аномалій рідкісні або аномалії занадто рідкісні та різноманітні, щоб їх було побачено раніше. Коли достатньо підтверджених аномалій накопичується на основі відгуків операторів, багато команд додають контрольований класифікатор зверху, використовуючи безконтрольний бал як одну з ознак у поєднанні з вихідними даними.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте the simulation і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію the simulation