[opensarch]RCF 알고리즘을 활용한 센서값 오류 이상탐지

startingfindmistake·2025년 12월 24일

opensearch엔진을 활용한 annomaly detection 플러그인을 사용하여 온도 센서값 이상 탐지를 테스트 해 보았다.

RCF알고리즘 상세한 설명은 아래 링크를 참조하길 바랍니다.

현재 저의 환경은 로컬에서 도커를 활용하여 opensearch를 이미지로 띄우고 opensearch node하나 opensearch dashboard 2개의 이미지를 올렸다.
그리고 python파일을 활용하여 다양한 임시 데이터 패턴으로 opensearch node에 적재할수 있게 코드를 작성하였습니다.



  1. 테스트 현상 분석
    초기 정상 구간(24.5도) 학습 후, 온도 상승 속도에 따른 RCF 모델의 탐지 반응을 테스트하였으며 결과는 다음과 같습니다.
  • 급격한 변화 (1초당 1도 상승): 모델이 학습한 평탄한 패턴과 확연히 다르므로 이상 탐지에 성공하였습니다.
  • 완만한 변화 (1분당 1도 상승): 변화가 서서히 일어나 모델이 이를 '새로운 정상 추세(Trend)'로 인식하면서 이상 탐지에 실패하였습니다.
  • 지속적인 변동 (Fluctuation): 이후 수치가 오르내리는 상황이 반복되자, 모델은 이 '변동성(왔다 갔다 하는 모양)' 자체를 하나의 규칙적인 패턴(Shingle)으로 학습하여 정상으로 판별하였습니다.
  1. 원인: RCF의 빠른 적응성 (Adaptation)
    RCF 알고리즘은 단일 수치값이 아닌 데이터의 흐름(Shape)을 기억합니다.
    초기에는 급격한 변화를 이상으로 감지했으나, 유사한 변동이 반복되자 모델은 [낮음 → 높음]으로 변하는 모양 자체를 "이제부터는 이런 변동이 정상이다"라고 학습(적응)해버린 것입니다.
  • 즉, 변동성 자체가 새로운 정상 패턴(Normal Pattern)으로 고착화되어 알람이 울리지 않게 되었습니다.
  1. 개선 전략: 하이브리드 모니터링 (Hybrid Approach)
    RCF 알고리즘은 '패턴의 변화'를 감지하는 데 특화되어 있으므로, '절대적인 위험 수치'를 놓칠 수 있다는 맹점이 있습니다. 이를 보완하기 위해 두 가지 방식을 결합하여 운영합니다.
  • RCF 알고리즘 (동적 탐지): 평소와 다른 급격한 패턴 변화 감지
  • 정적 임계값 (Static Threshold): 패턴과 무관하게 80도 이상 고온 발생 시 무조건 알람 발생
  1. 구현 방안
    OpenSearch의 Anomaly Detection 플러그인과 Alerting 플러그인을 연동하여 구현합니다.
  • 설정: Alerting Monitor의 Trigger 조건을 복합 구성합니다.
  • 로직: (Anomaly Grade > 0.7) OR (Temperature > 80)
    AI가 놓치더라도(Grade 낮음), 실제 온도가 80도를 넘으면 알람이 발생하도록 안전장치 마련
profile
도움이되었다면 그것으로 충분 합니다.

0개의 댓글