정상 데이터로만 결함을 검출하는 Anomaly Detection

eric9687·2022년 1월 19일
0
post-custom-banner

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

profile
그러나 먼저 된 자로서 나중되고 나중 된 자로서 먼저될 자가 많으니라(마:19:30)
post-custom-banner

0개의 댓글