AD Features
기능 개요
AD의 pipeline
AI Contents의 pipeline은 기능 단위인 asset의 조합으로 이루어져 있습니다. AD는 총 6가지 asset의 조합으로 pipeline이 구성되어 있습니다.
Train pipeline
Input - Readiness - Preprocess - Train
Inference pipeline
Input - Readiness - Preprocess - Inference - Output
각 단계는 asset으로 구분됩니다.
Input asset
Anomaly Detection은 학습할 때 이상탐지를 하고자 하는 x 컬럼이 포함된 tabular 형태의 데이터로 동작합니다. 따라서 input asset에서는 해당 csv 데이터를 읽고 다음 asset으로 전달하는 역할을 수행합니다. 위 도표에서 보듯 다음 asset인 Preprocess asset으로 전달됩니다.
Readiness asset
Readniess asset에서는 전처리와 학습 및 추론을 진행하기 전 데이터 입력과 설정 등이 조건에 맞게 되어 있는지를 체크하게 됩니다.
Preprocess asset
Anomaly Detection은 학습 혹은 추론이 진행되기 전 데이터를 전처리하는 과정을 먼저 거치게 되며 이 과정이 process asset에서 진행됩니다. 해당 과정에서는 각 포인트마다 빈 값 혹은 NaN과 같이 정상적이지 않은 포인트를 제거하거나 scaling을 하는 등을 과정이 진행됩니다.
Train asset
Anomaly Detection에서 train asset은 이상 탐지를 위한 최적의 파라미터를 찾아내는 과정을 수행합니다. 우선 preprocess asset을 거쳐서 전처리가 완료된 데이터를 전달 받습니다.그 후 실험계획서에 미리 작성한 설정에 맞게 데이터를 그룹별, 컬럼별로 나누게 됩니다. 나누어진 데이터마다 모델별로 인스턴스를 생성하고 bayesian optimization을 통해 모델 별로 최적을 파라미터들 찾아내는 과정을 진행합니다. 이 과정이 완료되고 나면 모델 별 성능과 학습 과정에서의 추론 결과를 저장합니다.만약 x 컬럼 별로 레이블이 존재하는 경우 unsupervised 기반의 metric이 아닌, f1 score, precision, recall을 직접 maximize 하도록 설정할 수 있습니다. 이 경우 모델 별 성능이 output csv에 같이 저장되고, 모델 별 성능을 비교한 plot 또한 저장됩니다.
Inference asset
inference asset에서는 input asset, preprocess asset을 거쳐 전달받은 inference 데이터를 읽고, 다시 그룹 별, 데이터 컬럼별로 나누게 됩니다. 나누어진 데이터마다 이전 학습 단계에서 저장한 모델들 중 선택된 모델들을 불러와서 이상 탐지를 진행하고 결과를 저장합니다.만약 레이블 컬럼이 존재하는 경우 모델 별 성능이 output csv에 같이 저장되고, 모델 별 성능을 비교한 plot 또한 저장됩니다. 운영을 위한 파일은 inference_summary.yaml도 저장됩니다.
사용 팁
데이터 csv 파일 준비하기
좀 더 효과적인 이상 탐지를 위해선 데이터 내에 빈 값 혹은 NaN 값 등이 존재해선 안됩니다. 만약 존재하는 경우 AD가 자동으로 해당 row를 제거하게 되지만 성능이 영향을 미칠 수 있으니 사전에 해당 데이터들을 적절히 조치한 후 데이터를 준비해주셔야 합니다.
그룹별 데이터 준비
AD는 포인트들을 그룹별로 묶어서 이상 탐지를 진행하는 기능을 지원합니다. 그러나 AD 알고리즘 특성 상 그룹마다 너무 적은 데이터가 존재하는 경우 성능이 저하될 수 있습니다. 이를 방지하기 위해선 그룹 별로 충분한 데이터가 있어야 합니다.
레이블이 존재하는 데이터 train
AD는 만약 레이블이 존재하는 경우 unsupervised 기반의 metric이 아닌, 레이블을 이용하여 f1 score, precision, recall을 직접 maximize 하도록 bayesian optimization을 진행하게 할 수 있습니다. 그러나 만약 이 경우 train 데이터에 abnormal 레이블에 속하는 데이터가 존재하지 않는 경우 bayesian optimization이 제대로 진행되지 않을 수 있습니다. 이를 방지 하기 위해선 unsupervised 기반의 metric을 사용하도록 설정하거나, train 시 정상, 비정상 레이블에 속하는 데이터가 모두 존재해야 합니다.
적절한 포인트간 시간 간격
AD는 point가 계측된 시간 간격이 불규칙하더라도 anomaly detection을 수행할 수 있습니다. 그러나 point 간 계측된 시간 간격이 불규칙한 경우 사용자가 추구하는 수준의 성능은 보장할 수 없습니다. 그러므로 사전에 규칙적인 시간 간격으로 계측된 데이터를 사용하는 경우 성능 향상이 이뤄질 가능성이 있습니다.