Anomlay Detection
AI가 스마트팩토리 등의 산업에 적용될때, 정상 데이터와 결함 데이터를 학습(Supervised Learning)하여, 결함의 유무를 판단하는 방법을 많이 사용하고 있지만, 실제 생산과정에서 결함이 있는 데이터를 구하는 것은 쉽지 않고, 그 데이터셋은 불균형(Class Imbalance)와 같은 흠이 있을 것이다. 이 문제를 보완하기 위한 방법으로 제시된것이 Anomaly Detection이다.
Semi-supervised (1-class) Anomaly Detection
- 정상 sample들의 discriminative boundary를 설정하고, 그 boundary를 최대한으로 좁혀, boundary안에 속한 sample은 정상, 밖에 위치한 sample은 결함으로 분류
- 하지만, 정상/결함 데이터로 학습하는 supervised learning보다는 성능이 떨어진다.
Unsupervised Anomaly Detection
- label이 없는 데이터에 대해서 학습 가능
- PCA(Principal Component Analysis)를 이용하여 차원축소 및 복원
- Autoencoder 이용.
- 판단 기준:정상 입력 정상 출력, 입출력 차이 없음. 결함 입력 정상 출력, 입출력 차이 있음.
- 문제 1: Autoencoder의 압축정도같은 hyperparameter에 따라서 복원 성능이 달라지기 때문에 불안정
- 문제 2: 입출력의 차이에 대한 정의 방법
- 문제 3: loss function의 선택
정상/결함(비정상)의 정의
- normal sample: 정상 샘플 (강아지)
- novelty sample(=unseen sample): 정상이지만, normal sample들과는 약간 다른 특징을 가진 샘플 (혀를 내민 강아지,...)
- outlier sample(=abnormal sample): 비정상, 결함이 있는 데이터 (호랑이, 말,...)
- Indistribution sample = normal sample + novelty sample
- novelty sample을 새로운 class로 구분하여 학습하는 방법으로 incremental learning도 있다.
Out-of-distribution(OOD)
- In-idstribution 데이터에 대해 정확히 예측하고, Out-of-distribution은 걸러내는 것을 목표로
- 하지만, 일반적인 classfication은 softmax의 exponential계산으로 예측 확률이 1에 근접하는 high-confidence결과가 많이 나옴.
- 예를들어서, out-of-distribution 데이터를 Mnist로 학습된 모델에 넣으면 어떠한 클라스로도 예측이 되면 안되지만, 특정 클래스로 예측 되는 경우가 생김.
- Unknown class 추가? => 다양한 unknown 클래스 데이터를 추가로 수집해야함.
OOD 방법론
....to be continued