- Anomaly Detection 설명 – 정의, 특성, 활용 방안, 연구 흐름
- [One Class Classification 방식의 Anomaly Detection]
- [18′ ICML] Deep SVDD : Deep One-Class Classification
- [20′ ICLR] DEEP SEMI-SUPERVISED ANOMALY DETECTION (Deep SAD) 핵심 리뷰
- [20′ ACCV] Patch SVDD : Patch-level SVDD for Anomaly Detection and Segmentation
- [21′ ICLR] EXPLAINABLE DEEP ONE-CLASS CLASSIFICATION (FCDD) 핵심 리뷰
- [Reconstruction 방식의 Anomaly Detection]
- [17′ IPMI] AnoGAN : Unsupervised Anomaly Detection with Generative Adversarial Networks to Guide Marker Discovery
- [18′ ACCV] GANomaly : Semi-Supervised Anomaly Detection via Adversarial Training
- [20′ ECCV] Attention Guided Anomaly Localization in Images (CAVGA) 핵심 리뷰
- [21′ ICCV] Devide and Assemble : Learning Block-wise Memory for Unsupervised Anomaly Detection 핵심 리뷰
- [21′ ICCV] Learning Unsupervised Metaformer for Anomaly detection 핵심 리뷰
- [22′ CVPR] SSPCAB : Self-Supervised Predictive Convolutional Attentive Block for Anomaly Detection 핵심 리뷰
- [Pretrained Feature Matching 방식의 Anomaly Detection]
- [20′ Arxiv] SPADE : Sub-Image Anomaly Detection with Deep Pyramid Correspondences
- [20′ ICPR] Mahalanobis AD : Modeling the Distribution of Normal Data in Pre-Trained Deep Features for Anomaly Detection
- [21′ ICPR] PaDiM : a Patch Distribution Modeling Framework for Anomaly Detection and Localization
- [22′ CVPR] PatchCore : Towards Total Recall in Industrial Anomaly Detection
- [Normalizing Flow 방식의 Anomaly Detection]
- [20′ NIPS] Why Normalizing Flows Fail to Detect Out-of-Distribution Data 핵심 리뷰
- [21′ WACV] Same Same But DifferNet: Semi-Supervised Defect Detection with Normalizing Flows 핵심 리뷰
- [22′ WACV] CFLOW-AD: Real-Time Unsupervised Anomaly Detection with Localization via Conditional Normalizing Flows 핵심 리뷰
- [22′ WACV] Fully Convolutional Cross-Scale-Flows for Image-based Defect Detection (CS-Flow) 핵심 리뷰
- [21′ arxiv] FastFlow: Unsupervised Anomaly Detection and Localization via 2D Normalizing Flows 핵심 리뷰
- [Self Supervised Learning 방식의 Anomaly Detection]
- [18′ NIPS] Deep Anomaly Detection Using Geometric Transformations (GEOM) 핵심 리뷰
- [19′ NIPS] SSL-AD : Using Self-Supervised Learning Can Improve Model Robustness and Uncertainty 핵심 리뷰
- [20′ ICLR] CLASSIFICATION-BASED ANOMALY DETECTION FOR GENERAL DATA (GEOD) 핵심 리뷰
- [20′ NIPS] CSI: Novelty Detection via Contrastive Learning on Distributionally Shifted Instances
- [21′ ICLR] SSL-OCC : Learning and evaluating representations for deep one class classification 핵심 리뷰
- [21′ ICCV] Hierarchical Transformation AD : A Hierarchical Transformation-Discriminating Generative Model for Few Shot Anomaly Detection 핵심 리뷰
- [21′ ICLR] SSD: A UNIFIED FRAMEWORK FOR SELFSUPERVISED OUTLIER DETECTION 핵심 리뷰
- [Knowledge Distillation 방식의 Anomaly Detection]
- [20′ CVPR] Uninformed Students: Student–Teacher Anomaly Detection with Discriminative Latent Embeddings
- [21′ Arxiv] Student Teacher AD : Student-Teacher Feature Pyramid Matching for Unsupervised Anomaly Detection
- [21′ CVPR] Multiresolution Knowledge Distillation for Anomaly Detection
- [22′ CVPR] Reverse Distillation AD : Anomaly Detection via Reverse Distillation from One-Class Embedding
- [Synthetic Anomaly 방식의 Anomaly Detection]
- [21′ ICCV] DRAEM : A discriminatively trained reconstruction embedding for surface anomaly detection
- [21′ CVPR] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization
1. 들어가며
이상 탐지(Anomaly Detection)는 머신러닝과 데이터 과학의 중요한 분야 중 하나입니다. 이 분야는 다양한 산업과 분야에서 중요한 역할을 하고 있으며, 이를 통해 우리는 비정상적인 패턴, 행동, 또는 이상치를 식별할 수 있습니다. 본 글에서는 이상 탐지의 기본적인 개념부터 시작하여, 이 분야의 어려움, 활용 방안, 대표적인 데이터셋, 그리고 최신 연구 흐름까지 깊이 있는 이해를 제공할 것입니다.
첫 번째로, 이상 탐지의 정의와 이와 관련된 다른 개념들에 대해 알아보겠습니다. 이상 탐지와 분류의 차이를 명확히 이해하는 것은 이 분야를 탐구하는 데 있어 기본적이면서도 중요한 단계입니다. 또한, 이상 탐지와 이상치 탐지, OOD 탐지의 차이점도 함께 살펴보며, 각각의 개념을 데이터 분포의 관점에서 그림을 통해 쉽게 이해할 수 있도록 설명하겠습니다.
두 번째로, 이상 탐지의 어려움에 대해 깊이 있게 탐구합니다. 일반적인 데이터 분포의 넓은 범위와 이상 데이터의 부족이나 다양성 등, 이상 탐지를 어렵게 만드는 여러 요인들에 대해 상세히 알아보겠습니다.
세 번째로, 이상 탐지의 다양한 활용 방안을 소개합니다. 제조 품질 검사에서부터 사이버 보안, 결제 시스템 사기 감지, 의료 진단에 이르기까지, 이상 탐지는 다양한 분야에서 중요한 역할을 합니다. 각 분야에서의 구체적인 활용 사례를 통해 이상 탐지의 중요성과 효용성을 더욱 명확하게 이해할 수 있을 것입니다.
네 번째로, 본 글에서는 이상 탐지 연구에서 주로 사용되는 대표적인 데이터셋들을 소개합니다. MVTec, BTAD, LAG, STC 등의 데이터셋에 대한 상세한 정보와 특징을 제공함으로써, 이상 탐지 연구를 위한 기반을 더욱 탄탄하게 할 수 있습니다.
마지막으로, 이상 탐지의 연구 흐름과 최신 연구 동향에 대해 깊이 있게 알아보겠습니다. 본 글에서는 다양한 이상 탐지 방법론을 카테고리별로 정리하고, 각 카테고리에 대한 상세한 논문 리뷰글 링크를 제공합니다. 이 부분이 본 글의 가장 큰 특징이자 차별점입니다. 각 카테고리별 상세 설명 페이지에는 개별 논문 리뷰 페이지들이 많이 링크되어 있어, 독자분들은 이를 통해 이상 탐지 분야의 광범위한 연구 동향과 최신 기법을 한 눈에 파악할 수 있습니다. 이는 다른 이상 탐지 설명 글에서 찾아볼 수 없는 부분이며, 독자분들이 이 부분을 통해 이상 감지에 대한 폭넓은 이해를 얻을 수 있기를 바랍니다.
이상 탐지는 계속해서 발전하고 있는 분야이며, 이 분야의 연구와 기술 발전은 우리 사회의 많은 분야에서 중요한 영향을 미치고 있습니다. 본 글을 통해 이상 탐지의 전반적인 이해를 높이고, 이 분야의 최신 연구 동향과 기법에 대해 알아보시기 바랍니다. 시작하겠습니다!
2. 정의
먼저 Anomaly Detection 이란 무엇인지 살펴보겠습니다.
2-1. Anomaly Detection 이란
Anomaly Detection 을 알아보기 위해 먼저 Anomaly 란 무엇인지 정의를 살펴보겠습니다. Anomaly 란 다음과 같이 정의합니다. “An anomaly is an observation that deviates considerably from some concept of normality” 즉 정상의 범주에서 벗어나 있는 모든 것들을 Anomaly 라고 정의합니다. 따라서 Anomaly Detection 이란 불량 검출, 이상 감지 등 정상 상태가 아닌 모든 상태, 물체 등을 감지하는 기술을 말합니다. Test Instance 에 대해 Normal 또는 Anomaly 로 구분해야 하기에 One Class Classification 이라고도 불립니다. 일반적인 Classification 과는 아래와 같은 차이점이 있습니다.
Classification 은 다양한 클래스의 데이터를 학습 단계에서 사용하며 Test Instance 에 대해 학습 단계의 클래스별 Distribution 중 어디에 가장 가까운지를 찾는 문제입니다. 하지만 Anomaly Detection 은 ‘학습 단계에서는 Anomal Data 를 볼 수 없다’는 가장 결정적인 차이점이 있습니다. 따라서 Normal Data 만을 학습 단계에서 사용하여 Dormal Data Distribution 을 추정하여 Test Instance 에 대해 Normal Data Distribution 과 얼마나 멀리 떨어져 있는지 계산합니다.
2-2. Anomaly Detection / Outlier Detection / OOD Detection
Anomaly Detection 의 실험 방법을 Inter / Intra Class Variance 에 따라 구분하면 크게 세 가지로 구분할 수 있습니다.
먼저 Inter / Intra Class Variance 가 상대적으로 작은 경우입니다. 대체로 mvtec, chestX, BTAD 등 실제 환경 데이터를 사용하는 경우에 해당합니다. 정상 데이터는 ‘bottle’ 또는 ‘흉부 x-ray 사진’ 등 하나의 Instance 에 해당하며 따라서 Intra Class Variance 가 작습니다. 테스트 단계에서 마주하는 Anomal Data 또한 ‘흠집난 bottle’ 또는 ‘병변 증상 있는 흉부 x-ray 사진’ 등으로 Inter Class Variance 가 작은 특징을 갖고 있습니다. 대부분 실제 불량을 찾는 문제에 해당하므로 불량 부위를 Segmentation 할 수 있다는 특징도 있습니다. 이러한 문제를 Anomaly Detection 이라고 부릅니다.
다음은 Inter / Intra Class Variance 가 상대적으로 중간 정도에 해당하는 경우입니다. 보통 CIFAR10, ImageNet 등의 Image Classification 데이터셋을 사용하여 클래스를 구분하는 경우입니다. 예를 들면, 정상 데이터로는 ‘개’ 클래스가 주어지며, Test 단계에서는 ‘개’, ‘고양이’, ‘자동차’, ‘비행기’ 등이 주어지는 경우입니다. 이러한 문제를 Outlier Detection 이라고 부릅니다.
다음은 Inter / Intra Class Variance 가 상대적으로 큰 정도에 해당하는 경우입니다. Outlier Detection 과 유사하게 Image Classification 데이터셋을 사용합니다. 차이점은 클래스를 구분하는 것이 아닌, 데이터셋을 통째로 구분한다는 것입니다. 예를 들어 ImageNet 의 모든 클래스에 대해 정상이라고 학습하고, Test 단계에서는 ImageNet + Places 등 다른 데이터셋이 추가됩니다. ImageNet 에 속하는 데이터는 Normal 로, 다른 데이터셋에 속하는 데이터에는 Anomal 로 대답해야 합니다. 이러한 문제를 OOD (Out-Of-Distribution) Detection 이라고 부릅니다.
실제 논문 들에서 실험에 사용하는 세팅에 따라 위와 같이 Anomaly Detection / Outlier Detection / OOD Detection 세 가지 용어로 분류했지만, 명확한 기준 없이 혼재되어 사용되고 있으며, Anomaly Detection 이라는 문제의 본질은 모두 동일합니다.
2. Anomaly Detection 의 어려움
그런데 문제는 이 Anomaly Detection이 말처럼 쉽지 않다는 겁니다. 사실 위 설명까지 들었을때는 Anomaly Detection이 어렵다는 말이 전혀 와닿지 않는데요. 정상과 다른 부분을 찾아내는 것이 딥러닝 입장에서는 왜 어려울까요? 세 가지 원인으로 나누어 살펴보겠습니다.
2-1. 넓은 Normal Data Distribution
첫 번째 이유는 정상 데이터 분포가 너무 넓기 때문입니다. 이게 무슨 말일까요? 먼저 반대로 정상 데이터 분포가 아주 좁은 경우를 생각해 볼게요.
위 그림은 가상의 정상 데이터 분포를 표현한 그림입니다. 데이터 공간상의 점들이 한 부분에 모두 모여 있죠? 만약 데이터가 이미지라면 동일한 크기, 동일한 색상, 동일한 모양, 동일한 각도, 동일한 조명 등등 모든 조건이 거의 동일한 데이터들이라고 할 수 있습니다. 하지만 실제로 이게 가능할까요? 실제 상황에서는 이러한 데이터는 거의 존재하지 않습니다. 이미지 데이터를 생각해 볼게요. 불량 검출을 위한 데이터라면 제품을 사진으로 찍어 Anomaly Detection 알고리즘을 적용할 텐데요. 이때 제품의 각도, 위치 등을 완벽하게 고정할 수는 없습니다. 또한 조명도 중요한 변수죠. 아주 미세한 조명 차이에도 데이터 분포는 크게 달라집니다. 뿐만 아니라 동일한 크기, 모양, 색상의 제품을 검사하는 경우도 드뭅니다.
따라서 실제 정상 데이터는 아래 그림과 같이 분포하는데요.
물론 위 그림도 아주 단순화해서 표현한 겁니다. 실제로는 정상 데이터 분포는 훨씬 넓은 공간에 퍼져 분포합니다. 이제 문제는 딥러닝 알고리즘은 이렇게 넓은 정상 데이터 분포를 모두 하나의 ‘정상’ 이라는 범주로 학습해야 한다는 겁니다. 이 과정에서 다양한 연산을 통해 공간이 변형되면서 저 정상 분포의 점들을 하나의 공간으로 모아주겠죠? 이 과정에서 필연적으로 공간상의 분포가 꼬이게 되고 불량이 정상이라고 판별되고, 정상이 불량으로 판별되는 상황이 발생합니다.
2-2. 드문 Anomal Data
두 번째 Anomaly Detection 문제의 특징이자 어려움은 적은 Anomal Data 입니다. 제조 현장 상황을 상상해보겠습니다. 스마트폰 제조현장에서 최종 품질 검사 장비로 사용하기 위한 Anomaly Detection 알고리즘을 연구한다고 가정하겠습니다. 먼저 Normal Data Distribution 을 학습하기 위해 정상 품질의 스마트폰 데이터를 모아야 합니다. 대부분의 완성된 스마트폰은 정상이므로 정상 데이터를 수집하기는 비교적 수월합니다.
반면 불량 스마트폰은 거의 발생하지 않습니다. 결국 Anomaly Detection 알고리즘의 입장에서 봤을 때 스마트폰 품질 검사 데이터는 Anomal 데이터에 비해 Normal 데이터가 지나치게 많은 Class Imbalance 문제를 포함한 데이터가 됩니다. 예를 들어 다음 표와 같은 상황이 발생하는 것이죠.
OK | NG | |
Classification / Object Detection | 10,000 | 10,000 |
Anomaly Detection | 10,000 | 10 |
Anomaly Detection 연구는 이러한 실제 적용 환경을 고려하여 진행되기에 대부분의 문제에는 학습 데이터로서 Anomal Data 가 전혀, 또는 거의 주어지지 않습니다. 따라서 대부분의 Anomaly Detection 연구는 Unsupervised Learning 또는 Semi-Supervised Learning 세팅을 가져갑니다.
2-3. 다양한 특성의 Anomal Data
세 번째 이유는 Anomal Data의 특성이 다양하기 때문입니다. 일단 Anomal Data를 학습 단계에서 볼 수 없다는것 자체가 어려운 이유라고 설명했는데요. 심지어 Anomal Data의 특성이 너무 다양하다는것이 이 어려움을 더욱 증폭시킵니다. 예를 들어 과일 농장에 Anomaly Detection 알고리즘을 적용했다고 가정해볼게요.
위 그림은 과일 농장의 생산물인 사과, 배, 딸기의 데이터 분포를 표현한 그림입니다. 검정색 점은 정상 데이터 분포를 표현하고 있고요, 빨간색 점은 우리가 판별해야 하는 데이터를 표현하고 있습니다. 예를 들어 흠집난 사과는 정상 사과 분포에 아주 가깝게 분포하겠죠. 파란 사과는 정상 사과와 배의 중간 즈음에 분포할 겁니다. 반면 바나나는 정상 데이터 분포와 아주 멀리 분포하겠죠.
무엇이 불량일까요? 흠집난 사과는 불량일까요? 파란 사과는 불량일까요? 정의하기 나름이겠죠? 문제는 실제 상황에서 발생할 수 있는 모든 불량 특성을 알지 못한다는 겁니다. 따라서 적절한 기준을 정해주는것이 중요하죠. 실제로 아래에서 살펴볼 다양한 Anomaly Detection 알고리즘들에서는 이러한 이유로 Architecture의 몇 번째 Layer를 사용하는지에 따라 성능이 크게 차이가 납니다. 이는 결국 테스트 데이터셋에 있는 실제 Anomal Data를 봐야만 Layer Level을 결정해줄 수 있다는 것을 의미합니다.
3. 활용 방안
지금까지 Anomaly Detection이 무엇이고 왜 어려운지를 살펴봤는데요. 제일 중요한건, 그래서 이걸 어떻게 써먹을 수 있는지 아니겠어요? 이번 챕터에서는 다양한 Anomaly Detection 활용 방안을 간략하게 요약해서 살펴보겠습니다.
3-1. 제조 품질 검사
첫 번째 활용 방안은 제조 품질 검사입니다. 제조 공장에서는 다양한 제품을 만듭니다. 제품 조립이 끝난 뒤에는 반드시 품질 검사 공정이 이어지는데요. 현재는 사람이 모든 제품을 일일이 검사하고 있죠. 이때 Anomaly Detection 알고리즘을 활용하면 이러한 품질 검사 공정을 자동화할 수 있습니다. 스마트폰, 자동차, 배터리 등등 생산하고 있는 제품의 정상 데이터를 학습한 뒤 정상에서 벗어난 제품, 또는 부분을 찾도록 만드는 것이죠.
3-2. 사이버 보안
두 번째 활용 방안은 사이버 보안입니다. 네트워크에서는 다양한 데이터가 오고 갑니다. 이러한 데이터 이동에는 특정 패턴이 있을 텐데요. 이렇게 평상시의 네트워크 패턴을 정상으로 학습한 뒤 평소와 다른 패턴을 찾도록 Anomaly Detection 알고리즘을 학습하면 어떨까요? 그렇다면 평소와 다른 네트워크 상태를 찾아낼 수 있겠죠? 예를 들어 외부 해킹이나, 회사 내부 정보를 유출하는 등의 사건을 찾아낼 수 있습니다.
3-3. 결제 시스템 사기 감지
세 번째 활용 방안은 결제 시스템 사기 감지입니다. 개인의 신용카드 또는 온라인 쇼핑몰 등 결제 시스템에는 일정한 사용 패턴이 있습니다. 만약 평소 결제 시스템과 다른 패턴이 감지되면 이건 무엇을 의미할까요? 신용카드 도용이거나 해킹 등 이상 상황에 해당하겠죠. 이러한 경우에도 평소 결제 시스템 패턴을 정상 데이터로 학습한 뒤 이와 다른 패턴을 찾아내도록 Anomaly Detection 알고리즘을 활용할 수 있습니다.
3-4. CCTV 이상 감지
네 번째 활용 방안은 CCTV 에서의 이상 감지입니다. 예를 들어 방범용 CCTV 라면 평소의 화면을 정상 데이터로 학습한 뒤, 이와는 다른 화면이 들어올 때 알람을 울려주는 알고리즘으로 사용할 수 있습니다. 또는 놀이공원 CCTV 에서 평소 화면을 정상 데이터로 학습한 뒤, 쓰러진 사람 등을 찾는 이상 감지 알고리즘으로 사용할 수 있습니다.
3-5. 주식 시장 이상 감지
다섯 번째 활용 방안은 주식 시장에서의 이상 감지입니다. 이는 AI 알고리즘 매매 프로그램에서 아주 중요한 부분인데요. 보통 AI 알고리즘 매매 프로그램 하면 앞으로 가격이 오르는 종목을 예측하는 알고리즘이 가장 중요하다고 생각하죠. 하지만 실제 프로그램을 제작해보면 가장 중요한 부분은 시장이 무너질 때 이를 감지하고 대피하는 알고리즘이 가장 중요합니다. 한번의 위기만으로도 그동안 쌓아온 공든탑이 한번에 무너질 수 있기 때문이죠. 바로 이 부분에 Anomaly Detection 알고리즘을 사용할 수 있습니다. 평소의 시장 패턴을 정상 데이터로 학습하는거죠. 그리고 지금 시장 상태가 얼마나 정상적인 상황인지 판단하는거죠. 그리고 나서 이 정상 점수가 threshold보다 낮다면 자산을 축소하는 형태로 응용할 수 있습니다.
3-6. 의료 진단
여섯 번째 활용 방안은 의료 진단 시스템입니다. 의료 진단 시스템에서는 Anomaly Detection 뿐만 아니라 다양한 알고리즘을 사용할 수 있습니다. 특히 가장 대표적으로는 Object Detection이 많이 사용됩니다. 왜냐하면 Object Detection은 찾고자 하는 유형이 특정될때 가장 적합한 알고리즘이기 때문인데요. 의료 진단 시스템에서 대부분은 찾고자 하는 유형이 정해져 있죠. 예를 들어 CT 사진을 통해 특정 암을 찾는다 하는 식으로요. 하지만 때때로 데이터상에 없는 문제가 발생할 수 있습니다. 이때 유용한 알고리즘이 Anomaly Detection입니다. 불량 유형을 특정하지 않고, 학습한 정상 분포와 다른 모든 특징을 잡아낼 수 있기 때문이죠. 이때도 마찬가지로 정상 환자의 CT, X-ray 사진 등을 정상으로 학습하고, 이와 다른 모든 특징을 찾아내는 방법을 사용합니다.
3-7. 지구 과학 이상 감지
일곱 번째 활용 방안은 지구 과학에서의 이상 감지입니다. 최근 들어 이슈가 되고 있는 것 중 하나가 바로 이상 기후인데요. 예상치 못한 강한 태풍, 많은 양의 비 등이 갑자기 쏟아져 많은 피해를 주곤 합니다. 이때 이러한 이상 기후를 조금이라도 일찍 예측할 수 있다면 미리 대비하여 많은 피해를 예방할 수 있겠죠. 이때 Anomaly Detection 알고리즘을 사용할 수 있스빈다. 평소의 온도, 습도, 진동 등의 데이터를 정상 데이터로 학습하여 매우 드물게 발생하는 태풍, 화산 폭발 등의 이상 현상을 감지하는 것이죠.
3-8. 스마트홈
여덟 번째 활용 방안은 스마트홈입니다. 스마트홈이란 집안 곳곳의 전자제품에 ioT가 설치되고 원격 제어가 가능한 집을 말하죠. 이러한 스마트홈은 온도, 습도, 가스량을 감지할 수 있습니다. 뿐만 아니라 집에 CCTV가 있다면 영상 정보까지 확보할 수 있죠. 이러한 데이터를 정상 상태로 Anomaly Detection 알고리즘을 학습한다면 가스 누출, 외부인 침입 등 이상 상태를 감지하는 방법으로 활용할 수 있습니다.
3-9. SNS 모니터링
아홉 번째 활용 방안은 SNS 모니터링입니다. AI 계에서 SNS는 갈수록 그 중요성이 커지고 있는데요. 왜냐하면 ChatGPT와 같은 초거대 언어 모델 (LLM)에게 SNS는 가장 양질의 데이터를 제공해주는 원천이기 때문이죠. 문제는 이 SNS 데이터의 질입니다. SNS에는 다양한 사람들이 제제 없이 글을 올릴 수 있죠. 따라서 허위 정보나 혐오 발언이 포함되어 있습니다. 이러한 데이터를 걸러내지 않고 바로 LLM을 학습하면 이러한 편견(Bias)가 그대로 LLM에 주입되게 되죠. 따라서 정상적인 데이터만을 학습한 Anomaly Detection 알고리즘이 이러한 비정상적인 데이터를 걸러내도록 활용할 수 있습니다.
3-10. 에너지 관리
열 번째 활용 방안은 에너지 관리입니다. 요즘 난방비가 갈수록 비싸지고 있는데요. 난방비를 줄이기 위해 AI를 사용하여 열 흐름을 최적화하는 방법이 있습니다. 또한 드물게 기기 이상으로 과도한 에너지를 소모하는 경우가 있는데요. 이때 Anomaly Detection을 활용할 수 있습니다. 평소 상태를 정상으로 학습한 뒤 에너지를 지나치게 많이 소모하고 있는 비정상 상태를 감지하는 것이죠.
3-11. 산업 안전
열 한번째 활용 방안은 산업 안전입니다. 에너지 관리와 비슷한 개념인데요. 예를 들어 공장 환경을 생각해볼게요. 공장에는 다양한 설비들이 존재합니다. 이러한 설비의 고장은 기업 입장에서 큰 손실을 초래합니다. 생산량이 적어지기 때문이죠. 때문에 기업에서는 이러한 설비 고장에 대처하기 위해 많은 비용을 투입하고 있습니다. 전문 대응팀도 존재하죠. 그런데 만약 이러한 설비 고장 징후를 사전에 파악할 수 있다면 어떨까요? 미리 손을 써서 무고장 설비를 구현할 수 있겠죠? 실제로 많은 제조기업에서는 이러한 스마트팩토리를 만들기 위해 설비 고장 징후를 찾는 Anomaly Detection 알고리즘을 연구하고 있습니다.
3-12. 자율주행
열 두번째 활용 방안은 자율 주행입니다. 자율 주행 차량이 제대로 동작하기 위해서는 정말 다양한 AI 알고리즘이 필요합니다. 기본적으로 물체를 감지해야 하니 Object Detection과 Semantic Segmentation 알고리즘이 필요하죠. 또한 운전을 해야하니 Planning 알고리즘이 필요하고, 다양한 센서 데이터를 통합하여 연산하기 위한 Sensor Fusion 알고리즘도 필요하죠. 뿐만 아니라 가장 중요한 알고리즘 중 하나가 Anomaly Detection 입니다. 이는 차량 내부와 외부 모두에 적용해야 하는 알고리즘인데요. 차량 내부를 보는 카메라는 운전자를 위함입니다. 아주 드문 경우이지만 운전자가 심장 마비 등으로 쓰러지는 경우가 있죠. 이럴때 바로 이를 인지하고 병원으로 이송하거나 병원으로 연락하도록 프로그램을 구성해야 합니다. 또한 차량 외부를 보는 카메라는 외부 주행 환경을 판단하기 위함인데요. 예를 들어 고장난 신호등이라던가, 도로가 파손되었다던가, 공사중 등의 상황을 인식하는 것이죠. 이러한 모든 비정상 상황을 정의할 수 없기에 자율 주행 차량에도 반드시 Anomaly Detection 알고리즘이 포함되어야 합니다.
4. 데이터셋
다음은 Anomaly Detection 에 사용되는 데이터셋에 대해 살펴보겠습니다. 실제 환경에서 제작된 대표적인 데이터셋 네 가지를 살펴봅니다.
4-1. mvTec
먼저 mvTec 데이터셋입니다.
제조 환경에서의 불량 검출을 위한 데이터셋으로 총 15가지의 카테고리로 분류되어 있습니다. 3,629장의 Train 데이터와 1,725장의 Test 데이터로 구성되어 있습니다. Train 데이터는 Normal 데이터만으로, Test 데이터는 Normal / Anomal 데이터로 구성되어 있습니다. 15가지의 카테고리 중 Bottle, Cable 등의 10가지는 Object 의 특징을 갖고 있고, Carpet, Grid 등 5가지는 Texture 의 특징을 갖고 있습니다. Segmentation 을 위한 Label 로 갖고 있어 Detection / Segmentation 성능 측정이 가능합니다.
4-2. BTAD
다음은 BTAD(BeanTech Anomaly Detection) 데이터셋입니다.
mvTec 과 마찬가지로 제조 환경에서의 불량 검출을 위한 데이터셋입니다. Product 1/2/3으로 구분되어 있으며 각각 400개, 1000개, 399개의 학습 데이터를 포함하고 있습니다. Segmentation 을 위한 Label 로 갖고 있어 Detection / Segmentation 성능 측정이 가능합니다.
4-3. LAG
다음은 LAG(Large-scale Attention based Glaucoma) 데이터셋 입니다.
녹내장 (Glaucoma) 검출을 위한 데이터셋으로, 의료 진단 시스템 데이터셋에 해당합니다.
4-4. STC
다음은 STC(ShanghaiTech Campus) 데이터셋입니다.
학교 캠퍼스의 CCTV 영상 데이터로서 27만 프레임의 학습 데이터와 4만 프레임의 테스트 데이터로 구성되어 있습니다. 데이터셋이 영상으로 이루어져 있으므로 Time-Series 데이터셋에 해당합니다.
5. 연구 흐름
다음은 딥러닝을 사용한 Image Anomaly Detection 의 연구 흐름에 대해 살펴보겠습니다.
5-1. One Class Classification 방식
가장 최초로 시도된 방식은 One Class Classification 입니다. Anomaly Detection 은 정상 클래스 데이터만을 학습에 사용할 수 있죠. 따라서 One Class 로 학습하자는 아이디어가 가장 자연스러웠을 겁니다. 일단 정상 데이터를 한 점에 모이도록 학습하는 것이죠. 그럼 이런 형태가 될 겁니다.
일단 정상 클래스는 한 점에 모아 놨으니 Classification 방식 등으로 쉽게 구분할 수 있을 것이고요. 비정상 클래스에 대해서는 따로 모이도록 학습하지 않았으니 정상 클래스 분포로부터 얼마나 멀리 떨어져 있는지를 기준으로 구분해 줄 수 있을 겁니다. 자세한 내용은 One Class Classification 방식의 Anomaly Detection 글을 참고해 주세요.
5-2. Reconstruction 방식
다음은 Reconstruction 방식을 살펴보겠습니다. Reconstruction 방식도 초창기부터 활발하게 연구가 시작된 방법입니다. Reconstruction 은 ‘복원’ 이라는 의미를 갖고 있는데요. 정상 데이터에 대해서만 Reconstruction 네트워크를 학습하는 겁니다. 그럼 이 네트워크는 비정상 데이터는 학습하지 않았으니 비정상 부분은 잘 Reconstruction 하지 못하겠죠?
따라서 위의 그림과 같이 원본 이미지와 Reconstruction 된 이미지의 차이를 바탕으로 정상과 비정상을 구분하겠다는 아이디어입니다. 자세한 내용은 Reconstruction 방식의 Anomaly Detection 글을 참고해 주세요.
5-3. Pretrained Feature Matching 방식
다음으로 살펴볼 방법은 Pretrained Feature Matching 방식인데요. 말 그대로 ImageNet 등을 학습한 Pretrained Network 로부터 추출한 Feature 를 비교하는 방법입니다.
이는 비교적 나중인 2020년 부터 시도된 방법인데요. 아주 간단한 아이디어지만 좋은 성능을 보인 모델들이 많습니다. 또한 학습 과정 없이 바로 사용할 수 있다는 강력한 장점 때문에 실제 기업 현장에서는 가장 많이 사용되고 있는 방법이기도 합니다. 자세한 내용은 Pretrained Feature Matching 방식의 Anomaly Detection 글을 참고해 주세요.
5-4. Normalizing Flow 방식
다음으로 살펴볼 방법은 Normalizing Flow 방식입니다. Normalizing Flow 는 생성 모델의 일종인데요. 정상 데이터를 Normalizing Flow 로 학습한 뒤 입력 이미지에 대한 확률 값을 바탕으로 정상과 비정상을 구분하는 방법입니다.
이 또한 간단한 아이디어를 바탕으로 하고 있지만 아주 강력한 성능을 보여 한동안 Normalizing Flow 붐이 일 정도였죠. 자세한 내용은 Normalizing Flow 방식의 Anomaly Detection 글을 참고해 주세요.
5-5. Self Supervised Learning 방식
다음은 Self Supervised Learning 방식을 살펴보겠습니다. Anomaly Detection Task 의 어려움 중 하나는 정상 데이터만 사용할 수 있기에 학습 방법이 마땅치 않다는 점인데요. Self Supervised Learning 을 사용하면 이 문제를 해결할 수 있습니다. Self Supervised Learning 은 한 개 클래스의 데이터도 다양한 방식으로 학습할 수 있으니까요. 예를 들어 이렇게 Transformation 종류를 맞추는 방법도 있고요.
또는 Contrastive Learning 을 활용하는 방법도 있습니다.
이렇게 정상 클래스 데이터를 학습한다면 기존 Anomaly Detection 의 Classification 방법을 사용했을 때 더 좋은 성능을 낼 수 있지 않을까요? 자세한 내용은 Self Supervised Learning 방식의 Anomaly Detection 글을 참고해 주세요.
5-6. Knowledge Distillation 방식
다음은 Knowledge Distillation 방식을 살펴 볼게요. Knowledge Distillation 에서는 Teacher 네트워크와 Student 네트워크가 사용됩니다. Student 네트워크는 Teacher 네트워크에 비해 적은 지식을 갖고 있죠. Anomaly Detection 에서의 Student 네트워크는 보통 Anomaly Detection Task 데이터셋 만을 학습한 네트워크를 의미합니다. Teacher 네트워크는 일반적인 대용량 데이터셋을 학습한 모델이고요. 따라서 특히 비정상 부분에 대한 반응이 다를 겁니다. Knowledge Distillation 방식은 이 차이를 이용하는 방법 인거죠.
자세한 내용은 Knowledge Distillation 방식의 Anomaly Detection 글을 참고해 주세요.
5-7. Synthetic Anomaly 방식
다음으로 살펴볼 방식은 Synthetic Anomaly 방식입니다. Anomaly 를 합성해준다는 의미인데요. Anomaly Detection 은 정상 데이터만 학습할 수 있어서 너무 어려우니 Anomaly 를 합성해서라도 같이 학습해주자는 아이디어입니다.
아주 간단하고 직관적인 아이디어인데요. 실제로 아주 효과적이기도 합니다. 특히 실제 Anomaly 와 유사하게 Anomaly 이미지를 합성해줄 수 있다면 아주 높은 성능을 보장해주는 방법이기도 하죠. 자세한 내용은 Synthetic Anomaly 방식의 Anomaly Detection 글을 참고해 주세요.
6. 마치며
이상 탐지의 세계를 함께 탐험해주셔서 감사합니다. 본 글에서는 이상 탐지의 기본 개념부터 어려움, 활용 방안, 대표적인 데이터셋, 그리고 연구 흐름까지 광범위하게 살펴보았습니다. 특히 연구 흐름 부분에서는 다양한 카테고리별 이상 탐지 방법론을 상세하게 분류하고, 각 카테고리에 대한 깊이 있는 논문 리뷰와 링크를 제공함으로써, 이상 탐지 분야의 최신 동향과 기법을 한 눈에 파악할 수 있도록 도움을 제공하였습니다.
이 부분은 본 글의 가장 큰 특징이자 차별점이며, 독자분들께 이상 탐지 분야의 광범위한 연구를 손쉽게 탐색할 수 있는 기회를 제공합니다. 이를 통해 독자분들은 이상 탐지 분야의 다양한 방법론과 기법, 그리고 이에 대한 최신 연구 동향을 깊이 있게 이해하고, 자신의 연구나 업무에 적용할 수 있는 통찰력을 얻으실 수 있을 것입니다.
이상 탐지는 지속적으로 발전하고 있는 분야이며, 이 분야의 연구와 기술 발전은 앞으로도 계속될 것입니다. 이에 따라, 본 글은 지속적으로 업데이트되어, 독자분들에게 항상 최신의 정보와 동향을 제공할 것입니다. 이상 탐지 분야의 미래는 무한한 가능성을 품고 있으며, 이 분야의 연구와 기술 발전은 우리 사회와 산업의 많은 분야에서 중요한 변화와 혁신을 가져올 것입니다.
마지막으로, 본 글을 통해 독자분들이 이상 탐지 분야에 대한 깊이 있는 이해와 통찰력을 얻으셨기를 바랍니다. 이상 탐지의 세계는 광대하고 신비로운데, 이를 탐험하고 이해하는 과정은 매우 흥미롭고 보람찬 여정이 될 것입니다. 계속해서 새로운 정보와 지식을 탐구하며, 이상 탐지 분야에서의 여러분의 성공을 기원합니다!
7. 출처
- Ruff, Lukas, et al. “A unifying review of deep and shallow anomaly detection.” Proceedings of the IEEE 109.5 (2021): 756-795.
- One Class Classification 방식의 Anomaly Detection
- Reconstruction 방식의 Anomaly Detection
- Pretrained Feature Matching 방식의 Anomaly Detection
- Normalizing Flow 방식의 Anomaly Detection
- Self Supervised Learning 방식의 Anomaly Detection
- Knowledge Distillation 방식의 Anomaly Detection
- Synthetic Anomaly 방식의 Anomaly Detection