KR102420994B1 - 딥러닝을 이용한 제어 시스템의 이상 탐지 장치 및 방법 - Google Patents

딥러닝을 이용한 제어 시스템의 이상 탐지 장치 및 방법 Download PDF

Info

Publication number
KR102420994B1
KR102420994B1 KR1020200132881A KR20200132881A KR102420994B1 KR 102420994 B1 KR102420994 B1 KR 102420994B1 KR 1020200132881 A KR1020200132881 A KR 1020200132881A KR 20200132881 A KR20200132881 A KR 20200132881A KR 102420994 B1 KR102420994 B1 KR 102420994B1
Authority
KR
South Korea
Prior art keywords
tag
tags
control system
deep learning
data
Prior art date
Application number
KR1020200132881A
Other languages
English (en)
Other versions
KR20220049674A (ko
Inventor
김종욱
황원석
신혁기
이우묘
윤정한
김형천
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020200132881A priority Critical patent/KR102420994B1/ko
Publication of KR20220049674A publication Critical patent/KR20220049674A/ko
Application granted granted Critical
Publication of KR102420994B1 publication Critical patent/KR102420994B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B21/00Alarms responsive to a single specified undesired or abnormal condition and not otherwise provided for
    • G08B21/18Status alarms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Business, Economics & Management (AREA)
  • Emergency Management (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

딥러닝을 이용한 제어 시스템의 이상 탐지 장치 및 방법이 개시된다. 본 발명의 실시예에 따른 딥러닝을 이용한 제어 시스템의 이상 탐지 방법은, 제어 시스템의 운전 데이터인 태그들을 제어 루프별로 그룹핑하는 단계, 태그 그룹들 각각에 상응하는 딥러닝 네트워크 탐지 모델들을 기반으로 태그 그룹들 각각에 대한 예측값을 산출하는 단계, 태그 그룹별 예측값과 실측값 간의 차이인 예측 오차를 기반으로 제어 시스템의 이상 징후를 판단하는 단계 및 이상 징후 판단 결과에 따른 경보를 생성하는 단계를 포함하되, 딥러닝 네트워크 탐지 모델들은, 정상 동작하는 제어 시스템으로부터 획득된 태그들을 그룹핑된 태그 그룹들 각각을 학습 데이터로 하여 미리 학습된 것일 수 있다.

Description

딥러닝을 이용한 제어 시스템의 이상 탐지 장치 및 방법{Apparatus and Method for Detecting Abnormal of Control System using Deep-Learning}
기재된 실시예는 제어 시스템의 운전 데이터에 대한 이상을 탐지하는 기술에 관한 것이다.
제어 시스템을 타겟으로 하는 사이버 공격이 증가하고 있다. 그런데, 다음과 같은 이유에서 제어 시스템에 대한 사이버 공격을 탐지하는 것이 용이하지 않다.
우선, 다양한 제어기기들에 대한 공격 시그너처 확보가 어렵다. 그리고, 제어 시스템이 공격을 받아 이상동작하는 상황을 탐지하기 위해서는 제어 시스템의 구동 원리 및 산업 현장의 운영 특성을 알아야 하는데, 제어 시스템이 복잡하고 거대해지면서 운영자가 제어 시스템의 특성을 모두 파악하여 공격 여부를 탐지하는 데에는 한계가 있다. 또한, 안전 또는 계약 등의 이유로 제어 시스템이 공격을 받거나 이상 동작하는 상황에서의 운전 데이터를 확보하거나 관련 실험을 하는 것이 어렵다.
이러한 문제들을 극복하기 위해 최근에는 제어 시스템이 정상적으로 구동되는 상황에 수집한 운전 데이터의 특성을 머신 러닝을 통해 학습하고, 학습된 모델을 기반으로 제어 시스템의 이상 징후를 탐지하는 접근이 많이 시도되고 있다. 하지만 대상이 되는 운전 데이터의 특성을 잘 파악하여 그에 적합한 머신 러닝 또는 딥러닝 기법을 적절히 적용하지 않으면 양호한 이상 징후 탐지 성능을 얻을 수 없다.
한국등록특허 10-1585342호
기재된 실시예는 제어 시스템에서 탐지 대상이 되는 운전 데이터의 특성을 잘 파악하여 그에 적합한 머신 러닝 또는 딥러닝 기법을 적절히 적용하여 제어 시스템의 이상 징후 탐지 성능을 향상시키는 데 그 목적이 있다.
실시예에 따른 딥러닝을 이용한 제어 시스템의 이상 탐지 방법은, 제어 시스템의 운전 데이터인 태그들을 제어 루프별로 그룹핑하는 단계, 태그 그룹들 각각에 상응하는 딥러닝 네트워크 탐지 모델들을 기반으로 태그 그룹들 각각에 대한 예측값을 산출하는 단계, 태그 그룹별 예측값과 실측값 간의 차이인 예측 오차를 기반으로 제어 시스템의 이상 징후를 판단하는 단계 및 이상 징후 판단 결과에 따른 경보를 생성하는 단계를 포함하되, 딥러닝 네트워크 탐지 모델들은, 정상 동작하는 제어 시스템으로부터 획득된 태그들이 그룹핑된 태그 그룹들 각각을 학습 데이터로 하여 미리 학습된 것일 수 있다.
실시예에 따른 딥러닝을 이용한 제어 시스템의 이상 탐지 방법은, 예측값을 산출하는 단계 이전에 그룹핑된 태그 그룹을 전처리하는 단계를 더 포함하되, 태그 그룹별로 FNN(False Nearest Neighbor)을 기반으로 최적의 학습 시간 윈도우 길이를 결정하는 단계, 그룹별로 태그를 정규화하는 단계, 일정 주기 또는 데이터 변화 시점에 시간 윈도우를 샘플링하는 단계 및 디지털 태그의 변화 데이터와 변하지 않는 데이터의 비율을 조절하는 단계를 더 포함할 수 있다.
이때, 그룹핑하는 단계는, 태그들 간의 상관 계수를 산출하는 단계 및 산출된 상관 계수를 기반으로 태그들을 그룹핑하는 단계를 포함할 수 있다.
이때, 상관 계수를 산출하는 단계는, 모든 태그들 중에서 선택된 두 개의 태그들 간의 상관 계수를 산출하되, 두 개의 태그들은 모든 태그들 중에서 번갈아 선택되고, 두 개의 태그들 중 적어도 하나가 아날로그일 경우, 피어슨 상관 계수를 산출하고, 두 개의 태그들이 디지털일 경우, 이벤트 기반 상관 계수를 산출할 수 있다.
이때, 그룹핑하는 단계는, 상관 관계를 산출하기 이전에, 태그들로부터 노이즈 필터링하는 단계를 더 포함할 수 있다.
이때, 상관 계수를 산출하는 단계는, 두 태그들 간의 시간차를 반영하여 상관 계수를 산출할 수 있다.
이때, 상관 계수를 산출하는 단계는, 태그들을 소정 시간 단위로 분할하여 상관 계수를 산출할 수 있다.
이때, 상관 계수를 기반으로 태그들을 그룹핑하는 단계는, 상관 계수들 중 그 값이 소정 임계치 이상인 상관 계수를 선별하는 단계, 선별된 상관 계수들 각각에 상응하는 태그 피처 집합들을 생성하는 단계 및 태그 피처 집합들 간의 상관 계수 평균을 기반으로 집합들을 그룹핑하는 단계를 포함할 수 있다.
이때, 탐지 모델들은, 태그가 아날로그 데이터일 경우, 시간 윈도우의 길이에 따라 RNN(Recurrent Neural Network) 또는 Transformer 중 하나로 학습되고, 태그가 디지털 데이터일 경우, MDN(Mixture Density Network)으로 학습될 수 있다.
이때, 이상 징후를 판단하는 단계는, 예측 오차를 정규화하는 단계, 예측 오차가 소정 임계치 이상인 태그 그룹을 선별하는 단계, 선별된 태그 그룹을 이상 징후 원인으로 판단하는 단계를 포함할 수 있다.
실시예에 따른 제어 시스템의 태그 그룹핑 방법은, 제어 시스템의 운전 데이터인 태그들 간의 상관 계수를 산출하는 단계, 상관 계수들 중 그 값이 소정 임계치 이상인 상관 계수를 선별하는 단계, 선별된 상관 계수들 각각에 상응하는 태그 피처 집합들을 생성하는 단계 및 태그 피처 집합들 간의 상관 계수 평균을 기반으로 집합들을 그룹핑하는 단계를 포함할 수 있다.
이때, 상관 계수를 산출하는 단계는, 모든 태그들 중에서 선택된 두 개의 태그들 간의 상관 계수를 산출하되, 두 개의 태그들은 모든 태그들 중에서 번갈아 선택되고, 두 개의 태그들 중 적어도 하나가 아날로그일 경우, 피어슨 상관 계수를 산출하고, 두 개의 태그들이 디지털일 경우, 이벤트 기반 상관 계수를 산출할 수 있다.
실시예에 따른 제어 시스템의 태그 그룹핑 방법은, 상관 관계를 산출하기 이전에, 태그들로부터 노이즈 필터링하는 단계를 더 포함할 수 있다.
이때, 상관 계수를 산출하는 단계는, 두 태그들 간의 시간차를 반영하여 상관 계수를 산출할 수 있다.
이때, 상관 계수를 산출하는 단계는, 태그들을 소정 시간 단위로 분할하여 상관 계수를 산출할 수 있다.
실시예에 따른 제어 시스템의 이상 탐지 모델 학습 방법은, 정상 동작되는 제어 시스템의 운전 데이터인 태그들을 획득하는 단계, 태그들을 제어 루프별로 그룹핑하는 단계 및 태그 그룹들 각각에 상응하는 딥러닝 네트워크 탐지 모델들 생성하는 단계를 포함하되, 생성하는 단계는, 태그를 딥러닝 네트워크에 학습 데이터로 입력하고, 태그에 상응하는 실측값과 딥러인 네트워크가 출력한 예측값과의 차이인 예측 오차가 소정 임계치 이하가 되도록 딥러닝 네트워크의 파라미터를 반복 조정할 수 있다.
실시예에 따른 제어 시스템의 이상 탐지 모델 학습 방법은, 딥러닝 네트워크 탐지 모델들 생성하는 단계 이전에 그룹핑된 태그 그룹을 전처리하는 단계를 더 포함하되, 태그 그룹별로 FNN(False Nearest Neighbor)을 기반으로 최적의 학습 시간 윈도우 길이를 결정하는 단계, 그룹별로 태그를 정규화하는 단계, 일정 주기 또는 데이터 변화 시점에 시간 윈도우를 샘플링하는 단계 및 디지털 태그의 변화 데이터와 변하지 않는 데이터의 비율을 조절하는 단계를 더 포함할 수 있다.
이때, 탐지 모델들은, 태그가 아날로그 데이터일 경우, 시간 윈도우의 길이에 따라 RNN(Recurrent Neural Network) 또는 Transformer 중 하나로 구성되어 학습될 수 있다.
이때, 탐지 모델들은, 태그가 디지털 데이터일 경우, MDN(Mixture Density Network)으로 학습될 수 있다.
이때, 예측 오차가 소정 임계치 이상일 경우, 전처리 단계를 조정하여 재수행하는 단계를 더 포함할 수 있다.
실시예에 따라, 제어 시스템에서 탐지 대상이 되는 운전 데이터의 특성을 잘 파악하여 그에 적합한 머신러닝 또는 딥러닝 기법을 적절히 적용하여 제어 시스템의 이상 징후 탐지 성능을 향상시킬 수 있다.
도 1은 실시예에 따른 딥러닝을 이용한 제어 시스템의 이상 탐지 방법을 설명하기 위한 순서도이다.
도 2는 실시예에 따른 딥러닝을 이용한 제어 시스템의 이상 탐지 장치의 개략적인 블록 구성도이다.
도 3은 실시예에 따른 탐지 대상인 제어 시스템의 예시도이다.
도 4는 실시예에 따른 전처리 단계를 설명하기 위한 순서도이다.
도 5는 실시예에 따른 태그 그룹핑 단계를 설명하기 위한 순서도이다.
도 6은 도 5의 태그들 간의 상관 계수 산출 단계를 상세히 설명하기 위한 순서도이다.
도 7은 노이즈 필터링이 적용되지 않은 태그 피쳐들의 예시도이다.
도 8은 실시예에 따라 노이즈 필터링이 적용된 태그 피쳐들 예시도이다.
도 9는 시간차 반응을 보이는 태그 피쳐들의 예시도이다.
도 10 및 도 11은 도 5의 상관 계수 기반 그룹핑 단계를 상세히 설명하기 위한 순서도이다.
도 12는 실시예에 따른 탐지 모델 학습 방법을 설명하기 위한 순서도이다.
도 13은 도 1의 이상 징후 판단 단계를 상세히 설명하기 위한 순서도이다.
도 14는 실시예에 따른 컴퓨터 시스템 구성을 나타낸 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
비록 "제1" 또는 "제2" 등이 다양한 구성요소를 서술하기 위해서 사용되나, 이러한 구성요소는 상기와 같은 용어에 의해 제한되지 않는다. 상기와 같은 용어는 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용될 수 있다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.
본 명세서에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소 또는 단계가 하나 이상의 다른 구성요소 또는 단계의 존재 또는 추가를 배제하지 않는다는 의미를 내포한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 해석될 수 있다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하에서는, 도 1 내지 도 14를 참조하여 실시예에 따른 딥러닝을 이용한 제어 시스템의 이상 탐지 장치 및 방법이 상세히 설명된다.
도 1은 실시예에 따른 딥러닝을 이용한 제어 시스템의 이상 탐지 방법을 설명하기 위한 순서도이고, 도 2는 실시예에 따른 딥러닝을 이용한 제어 시스템의 이상 탐지 장치의 개략적인 블록 구성도이고, 도 3은 실시예에 따른 탐지 대상인 제어 시스템의 예시도이다.
도 1 및 도 2를 참조하면, 태그 그룹핑부(211)는, 제어 시스템의 운전 데이터인 태그들을 제어 루프별로 그룹핑한다(S110).
도 3을 참조하면, 제어 시스템(300)은 공정(PROCESS)을 통해 투입물(자원)을 산출물(제품/서비스)로 변환시키는 일련의 작업이 자동화해주는 시스템으로, 적어도 하나의 제어 루프(310, 320, ....)로 구성되어 현재 공정값이 목표값을 추종하도록 제어 출력을 조절하는 기능을 수행한다.
이때, 적어도 하나의 제어 루프(310, 320, ....) 각각은 다양한 센서(311) 또는 액츄에이터(312)로 구성될 수 있는데, 이러한 센서(311) 또는 액츄에이터(312)의 시계열 운전 데이터 각각이 태그일 수 있다.
이러한 태그는 동일한 제어 루프에 속한 센서(311) 또는 액츄에이터(312)로부터 획득된 것일 경우, 유사한 패턴을 보일 수 있다.
따라서, 실시예에 따른 태그 그룹핑부(211)는, 제어 루프별로 태그를 그룹핑한 후, 학습 데이터 또는 탐지 대상 데이터로 예측부(220)에 입력시킨다.
한편, 실시예에 따라, 태그 그룹핑부(211)를 포함하는 전처리부(210)는, 태그 그룹핑 외에도 태그에 대한 다른 부가적인 전처리 단계를 수행할 수 있다. 이에 대한 상세한 설명은 도 4를 참조하여 후술하기로 한다.
예측부(220)는, 태그 그룹 각각에 상응하는 딥러닝 네트워크 탐지 모델들(220-1, 220-2,...., 220-N)을 포함하여 구성된다.
이때, 딥러닝 네트워크 탐지 모델들(220-1, 220-2,...., 220-N) 각각은 상응하는 태그 그룹을 입력으로 하여 제어 시스템의 현재 상태에 대한 예측값을 출력한다(S120).
이때, 딥러닝 네트워큰 탐지 모델들(220-1, 220-2, ...., 220-N) 각각은, 정상 동작하는 제어 시스템으로부터 획득된 태그들이 그룹핑된 태그 그룹들 각각을 학습 데이터로 하여 미리 학습된 것일 수 있다.
그런데, 상이한 제어 루프로부터 획득된 태그들은 상이한 패턴을 보일 수 있으므로, 하나의 탐지 모델의 입력되기는 용이하지 않다. 즉, 너무 복잡한 패턴을 지닌 데이터를 완벽하게 학습하기 어렵기 때문이다.
반면, 태그를 분류하여 제어루프 별로 모델을 학습하면 모델의 예측 정확도를 향상할 수 있다. 이는 동일한 제어 루프에 속한 태그들은 비슷한 패턴을 보이므로 학습의 복잡도가 감소할 수 있기 때문이다.
따라서, 실시예에 따라, 딥러닝 네트워큰 탐지 모델들(220-1, 220-2, ...., 220-N) 각각은, 태그 그룹들 각각의 특성에 따라 상이한 딥러닝 네트워크 및 학습 방식으로 미리 학습될 수 있다. 탐지 모델들(220-1, 220-2, ...., 220-N)의 학습 방법에 대한 상세한 설명은 도 12를 참조하여 후술하기로 한다.
이때, 동일한 제어루프에 포함되지 않지만 동일한 패턴을 보이는 태그도 함께 포함할 수 있도록 하여 더 많은 태그들을 학습하면 탐지 모델의 성능 향상에 유리할 수 있다.
이상 징후 판단부(230)는, 예측부(220)를 통해 출력된 예측값과 탐지 시점의 실측값 간의 차이, 즉, 예측 오차를 기반으로 이상 징후를 판단한다(S130). 실시예에 따라, 이상 징후 판단부(230)는 태그 그룹별 예측 오차를 기반으로 이상 징후의 원인이 되는 태그 그룹을 판단할 수 있다. 이에 대한 상세한 설명은 도 13을 참조하여 후술하기로 한다.
경보 발생부(240)는, 이상 징후 판단부(230)의 최종 판단 결과를 기반으로 경보를 생성한다(S140).
하나의 제어 시스템에는 다수의 보안 기기들이 적용되어 있으며, 이를 중앙의 제어 시스템 통합 보안 관제 시스템(미도시)에서 통합 관리한다.
실시예에 따른 딥러닝을 이용한 제어 시스템의 이상 탐지 장치는, 제어 시스템 통합 보안 관제 시스템이 활용할 수 있는 경보 정보를 제공해야 한다.
그런데, 딥러닝을 이용한 제어 시스템의 이상 탐지 장치는 공격 시그너처 기반의 보안 기기가 제공하는 경보 정보의 상이한 형태의 경보 정보를 제공할 수 있다.
따라서, 경보 발생부(240)는, 다양한 보안 정보들을 통합 분석하여 신속한 대응할 수 있도록, 경보 정보로 이상 징후 발생 대상, 이상 징후로 인해 영향을 받을 수 있는 대상, 이상 징후 발생 시점, 이상 징후 위험도 및 이상 징후 경보 정확도를 포함할 수 있다.
이때, 이상 징후 경보 정확도는, 이상 징후가 실제로 이상일 확률일 수 있다.
도 4는 실시예에 따른 태그 그룹 전처리 단계를 설명하기 위한 순서도이다.
도 4를 참조하면, 전처리부(210)는, 제어 시스템으로부터 획득된 아날로그 데이터로부터 아날로그 노이즈를 필터링(Analog data smoothing)한다(S410).
아날로그 데이터에는 센싱 과정에서 노이즈 및 측정 오차에 의한 피크(peak)가 포함될 수 있다. 이러한 노이즈 및 측정 오차는 태그 그룹핑을 위한 태그들 간의 상관 관계 분석에 악영향을 미칠 수 있다. 또한, 데이터 값이 급격히 변화하는 경우, 딥러닝 네트워크 탐지 모델이 데이터 값의 변화 시점을 정확히 학습하기 어려울 수 있다.
따라서, 실시예에 따라, 전처리부(210)는 디지털 저역 통과 필터를 사용하여 태그 데이터에 대한 노이즈 필터링을 수행한다.
이때, 일 실시예에 따라, 시간 영역에 대한 분석만을 수행하는 경우, 디지털 저역 통과 필터로 Exponential moving average 필터가 사용될 수 있다. Exponential moving average는 저역통과필터(LPF)로 다음의 <수학식 1>과 같이 고주파 노이즈를 제거한다.
Figure 112020108640397-pat00001
<수학식 1>에서
Figure 112020108640397-pat00002
는 시각 t에서의 값이고,
Figure 112020108640397-pat00003
는 시각 t에서의 exponential moving average 값이다. 기존 값에
Figure 112020108640397-pat00004
를 곱한 값을 유지하고, 새로운 값에
Figure 112020108640397-pat00005
를 곱한 값을 더해서 다음 값을 결정한다.
데이터 샘플링 주파수가
Figure 112020108640397-pat00006
일 때,
Figure 112020108640397-pat00007
는 차단주파수
Figure 112020108640397-pat00008
를 결정하는 인자로 고주파 노이즈를 차단 정도를 조절한다.
이때,
Figure 112020108640397-pat00009
는 0 내지 1 사이의 범위 내에서 결정될 수 있다. 즉, 값의 변화 속도가 느린 아날로그 태그인 경우,
Figure 112020108640397-pat00010
가 '0.9' 정도로 결정하는 것이 바람직하면, 값의 변화 속도가 큰 아날로그 태그인 경우,
Figure 112020108640397-pat00011
를 그 특성에 적합한 작은 값으로 결정한다.
다른 실시예에 따라, 주파수 영역에 대한 분석을 포함하는 경우, 디지털 저역 통과 필터로 고주파 성분 차단이 확실한 FIR 또는 IIR 저역 통과 필터를 사용한다.
이때, 진폭 및 위상 응답 특성의 중요도에 따라 적절한 필터가 선정될 수 있다.
즉, 위상 응답 특성이 중요하지 않은 경우, 계산이 효율적인 체비쇼프(Chebychev) 또는 버터워스(Butterworth) IIR 필터가 선정될 수 있다. 이때, 데이터 샘플링 주파수
Figure 112020108640397-pat00012
에 대해서 차단 주파수를
Figure 112020108640397-pat00013
를 이용하여 고주파 노이즈의 차단 정도를 조절한다.
다음으로, 전처리부(210)는, 전술한 바와 같이 태그들을 제어 루프별로 그룹핑한다(S420). 이에 대한 상세한 설명은 도 5 내지 도 11을 참조하여 후술하기로 한다.
다음으로, 전처리부(210)는, 태그 그룹별로 최적의 FNN을 기반으로 최적의 학습 시간 윈도우 길이를 결정한다(S430).
일반적으로, 딥러닝 모델에서는 시계열 데이터를 시간 윈도우(Time Window) 단위로 분할하여 학습한다. 그런데, 시간 윈도우가 너무 짧으면 시스템의 상태를 정확히 파악하기 어렵고, 너무 길면 모델의 학습이 부정확해지므로 데이터의 특성에 적합한 시간 윈도우 길이가 결정될 필요가 있다.
따라서, 실시예에 따라, 전처리부(210)는, 태그 그룹별로 최적의 시간 윈도우의 길이를 설정한다.
이때, 실시예에 따라, 시간 윈도우를 설정 방법으로 False Nearest Neighbor(FNN)가 이용될 수 있다.
FNN은 시간 윈도우의 길이가 연장됨에 따라, 최인접 이웃의 변화 여부를 관찰하여 최적의 시간 윈도우를 찾아내는 방법이다.
예컨대, 시간 윈도우가 d일 때 각 시간 윈도우의 최인접 이웃을 찾는다. 즉, 시간 윈도우 길이를 d+1로 늘였을 때의 이웃과의 거리와 시간 윈도우가 d일 때의 이웃과의 거리 간의 차이값이 소정 임계치 이상이 되면, 이 이웃은 false nearest neighbor로 정의될 수 있다.
반면, 모든 시간 윈도우 중 false nearest neighbor가 발생하는 비중이 시간 윈도우 길이를 늘임에도 변하지 않을 경우, 이때의 시간 윈도우 길이가 최적값일 수 있다. 이때, 윈도우와 인접한 이웃을 찾을 때는 유클리드 거리를 계산한다.
다음으로, 전처리부(120)는 태그 그룹 각각에 대한 데이터 정규화(Data normalization)를 수행한다(S440).
이는 태그 별로 값이 변화하는 범위가 서로 매우 상이할 수 있는데, 변화 범위의 차이가 태그별로 커질 경우, 딥러닝 학습이 잘 이루어지지 않을 수 있기 때문이다.
따라서, 실시예에 따라, 태그별 값의 변화 범위를 유사하게 만들어주기 위해 데이터 정규화를 수행한다.
이때, 태그값이 정규 분포와 유사한 경우, 전처리부(120)는 태그값을 Z(0, 1)로 변환해주어 학습 데이터를 기준으로 변화 범위를 0 내지 1 사이로 변환한다. 이때 해당 태그에 대한 스펙(ex. 센서 측정범위, 모터 가동 범위)을 참고하여 0과 1에 해당하는 태그의 최소/최대값을 조절할 수 있다.
반면, 태그값이 정규 분포와 유사하지 않은 경우, 태그의 값이 정규분포와 다르게(ex. 분포 상 여러 개의 peak를 보이는 경우) 나타나는 경우 해당 태그의 특성을 살리기 위해서는 0 내지 1 사이로 바로 투영(projection)할 수 있다. 이와 같은 태그의 분포 특성은 후술되는 MDN의 학습 과정에서 활용될 수 있다.
다음으로, 전처리부(120)는 태그들에 대한 샘플링(sampling)을 수행한다(S450).
시계열 데이터의 특정 시점의 값은 이전 시점의 값에 의해 결정되므로, 대부분의 경우 연속된 두 시점에서의 값은 큰 차이를 보이지 않는다.
이러한 특징으로 인해 슬라이딩 윈도우(sliding window) 방식으로 데이터가 학습될 경우, 탐지 모델은 유사한 데이터를 여러 번 학습하게 되어 특정한 패턴만을 강하게 학습하게 된다. 특히, 제어 시스템은 값이 변화하지 않는 안정화 상태를 장시간 유지하여, 탐지 모델은 안정화 상태의 패턴만 학습하게 될 가능성이 높다.
따라서, 실시예에 따라, 전처리부(210)는 일정한 간격으로 시간 윈도우를 추출하거나, 변화 지점에서 시간 윈도우를 추출할 수 있다. 그 결과, 제어 시스템의 안정화 상태의 패턴 뿐만 아니라 변화 상태의 패턴도 학습할 가능성을 크게 하여, 정확도 향상에 도움이 될 수 있다. 또한, 더 적은 수의 시간 윈도우를 학습하기 때문에 더 빠른 시간에 학습이 완료되도록 수 있다. 이때, 샘플링 방법들에서 시간 윈도우의 길이는 전술한 S430에서 설정된 값이 동일하게 이용될 수 있다.
우선, 일 실시예에 따라, 일정한 간격으로 시간 윈도우를 추출하는 경우, 전처리부(210)는 학습에 이용할 시간 윈도우를 하나 선택한 후 10초 후에 수집된 시간 윈도우를 학습에 이용한다.
예컨대, 10초 단위로 샘플링하는 경우, 처음 선택된 시간 윈도우가
Figure 112020108640397-pat00014
이면, 그 다음 시간 윈도우는
Figure 112020108640397-pat00015
이다.
다음으로, 다른 실시예에 따라, 변화 지점에서 시간 윈도우를 추출할 수 있다. 이는 선택된 시간 윈도우와 그 다음 선택될 시간 윈도우가 일정 이하의 유사도를 가지도록 하는 방법이다.
이를 위해 전처리부(210)는 시드가 되는 시간 윈도우를 설정하고, 시드와 다음 시간 윈도우 간의 유사도를 계산한다. 유사도가 일정 임계치 이상인 경우 다음 시간 윈도우와 유사도를 계산한다. 반대로 유사도가 일정 임계치 이하인 경우, 현 시드 시간 윈도우를 샘플링하고, 새로운 시간 윈도우를 시드로 설정하여 전술한 유사도 계산을 반복한다. 이 과정에서 유사도는 유클리드 거리 등을 통해 계산할 수 있다.
다음으로, 전처리부(120)는 태그에 대한 데이터 밸런싱(Data balancing)을 수행한다(S460).
도 2에 도시된 바와 같이, 태그값은 아날로그(연속값) 또는 디지털(이산값)로 구분되는데, 시계열 상에서 아날로그의 경우 지속적으로 그 값이 변한다. 그에 비해 디지털 값은 변화가 빈번하지 않다.
이로 인해 아날로그 태그와 디지털 태그 간에 S450에서와 유사한 문제가 발생한다. 아날로그 태그는 값이 변화하는 데이터가 학습 데이터에 많은 반면 디지털 태그는 그 비율이 적어서 이를 그대로 학습데이터로 사용할 경우 디지털 태그의 변화 시점에 대한 학습이 제대로 이루어지지 않을 수 있다.
이러한 문제는 아날로그 값에 대해서도 급격히 변화하는 구간과 변화가 크지 않은 구간에 의해 유사하게 발생할 수 있다.
학습 데이터 내 디지털 태그의 값이 변화하는 시점의 데이터를 추출하여 학습 데이터에 중복으로 추가해 주어 디지털 태그가 변하는 데이터와 변하지 않는 데이터의 비율을 비슷하게(ex. 1:1) 맞춰준다. 디지털 예측 학습 정도를 보면서 추가해 주는 데이터의 비율을 조절해야 한다. 또한 디지털이 변화하는 이벤트들(ex. 0->1, 1->0) 간의 데이터 비율도 유사하게 맞춰주는 것이 개별 이벤트 예측의 정확도를 올리기에 유리하다.
동일한 방법을 아날로그 값이 급격히 변화하는 구간에 대해 적용하여 해당 태그의 변화구간에 대한 학습/예측 정확도를 향상시킬 수 있다.
다음으로, 전처리부(120)는 디지털 데이터 노이즈 필터링(Digital data smoothing)한다(S470).
시계열 데이터에서 디지털 값은 한순간 변하는데 이 시점을 정확히 예측하지 못하면 아날로그에 비해 상대적으로 너무 큰 예측오차를 발생시킨다. 이와 같은 큰 예측오차가 여러 번 반복되어 발생할 경우 이상 탐지 판단에 방해가 될 수 있다.
따라서, 실시예에 따라, 아날로그 데이터 평활(smoothing)과 같이 exponential moving average를 이용한다. 디지털 태그는 값의 변화가 있을 때는 언제나 급격한 변화를 발생시키기 때문에
Figure 112020108640397-pat00016
를 '0.1' 또는 '0.01'과 같이 작게 설정할 수 있다.
도 5는 도 1 및 도 4의 태그 그룹핑 단계를 설명하기 위한 순서도이고, 도 6은 도 5의 태그들 간의 상관 계수 산출 단계를 상세히 설명하기 위한 순서도이고, 도 7은 노이즈 필터링이 적용되지 않은 태그 피쳐들의 예시도이고, 도 8은 실시예에 따라 노이즈 필터링이 적용된 태그 피쳐들 예시도이고, 도 9는 시간차 반응을 보이는 태그 피쳐들의 예시도이고, 도 10 및 도 11은 도 5의 상관 계수 기반 그룹핑 단계를 상세히 설명하기 위한 순서도이다.
도 5를 참조하면, 태그 그룹핑부(211)는 모든 태그들 중에서 선택된 두 개의 태그들 간의 상관 계수를 산출하되, 두 개의 태그들은 모든 태그들 중에서 번갈아 선택될 수 있다(S510).
상세하게는, 도 6을 참조하면, 태그 그룹핑부(211)는 모든 태그들 중에서 두 개의 태그들을 선택한다(S511).
이때, 태그는 연속형(continuous)과 이산형(discrete)으로 나눌 수 있다.
따라서, 태그 그룹핑부(211)는, 선택된 두 개의 태그들이 모두 디지털 데이터인지를 판단한다(S512).
S512의 판단 결과 선택된 두 개의 태그들 중 하나가 아날로그 데이터일 경우, 태그 그룹핑부(211)는, 피어슨 상관 계수를 산출한다(S513).
이때, 피어슨 상관 계수는 다음의 <수학식 2>와 같이 계산될 수 있다.
Figure 112020108640397-pat00017
<수학식 2>에서
Figure 112020108640397-pat00018
Figure 112020108640397-pat00019
는 각각 시각
Figure 112020108640397-pat00020
에 수집된
Figure 112020108640397-pat00021
Figure 112020108640397-pat00022
값을 의미하며,
Figure 112020108640397-pat00023
Figure 112020108640397-pat00024
는 각각의 태그에서 수집된 값들의 평균을 의미한다. 그 결과로 값이 0에 가까울수록 무관한 태그들이며, 1에 가까울수록 양의 상관관계를, -1에 가까울수록 음의 상관관계를 의미한다. 실시예에서는 상관계수의 절대값을 이용한다.
반면, S512의 판단 결과 선택된 두 개의 태그들이 모두 디지털 데이터일 경우, 태그 그룹핑부(211)는 이벤트 기반 상관 계수를 산출한다(S514).
이때, 이벤트 기반 상관계수는 "이벤트 기반 상관계수 발표 논문: 황원석, 김형관, 김예솔, 김형천, “제어 시스템 범주형 특징 분석을 위한 이벤트 기반 상관계수,” KSC 2019)를 사용할 수 있다. 이 경우는 피어슨 상관계수를 통해 상관관계를 분석하지 않는 경우가 있기 때문이다. 이벤트 기반 상관계수는 두 태그의 값이 동시에 변하는 횟수가 많을수록 더 높은 상관관계가 있다고 보는 방법이며, 다음의 <수학식 3>과 같이 계산될 수 있다.
Figure 112020108640397-pat00025
<수학식 3>에서
Figure 112020108640397-pat00026
는 피처
Figure 112020108640397-pat00027
의 값 중 변화가 발생한 시각의 정보를 담고 있는 집합이다. 일반적인 교집합과 달리 집합의 인자를 비교할 때, 두 값의 차이가 일정한 범위 안에 있으면 동일하게 취급한다. 이는 제어 시스템에서 값을 수집할 때 발생할 수 있는 수집 시각의 오차를 줄이기 위함이다.
그런 후, 태그 그룹핑부(211)는, 모든 태그들에 대해 상관 계수 산출이 완료될 때까지 S511 내지 S515 단계를 반복한다.
한편, 제어 시스템 태그의 특징을 반영하여 상관 관계 계산의 정확도 향상시키기 위해 다음과 같은 세 가지 다양한 동작들이 수행될 수 있다.
일 실시예에 따라, 태그 그룹핑부(211)는 상관 관계 계산 이전에 수집된 데이터의 노이즈를 제거하기 위하여 moving average를 수행한다.
시각 t에서 태그의 값은
Figure 112020108640397-pat00028
로 정의될 수 있고,
Figure 112020108640397-pat00029
에 Moving average를 이용하여 노이즈가 제거된 결과
Figure 112020108640397-pat00030
는 다음의 <수학식 4>와 같이 정의될 수 있다.
Figure 112020108640397-pat00031
도 7을 참조하면, moving average를 적용하지 않아 두 태그 피쳐들 AIT402와 AIT502는 서로 상관관계가 없는 피처들처럼 보인다. 반면, 도 8을 참조하면, 실시예에 따라 moving average가 적용되어 두 태그 피쳐들 AIT402와 AIT502 간에 약한 상관 관계가 있음을 확인할 수 있다.
다른 실시예에 따라, 태그 그룹핑부(211)는 상관 관계 계산 시, 두 태그들 간의 시간차를 반영하여 계산할 수 있다.
제어 시스템에서는 특정 태그의 동작이 다른 태그에 반영되는데 시간차가 발생하는 경우가 있다. 예컨대, 펌프를 가동할 경우, 펌프 가동 시점 보다 탱크의 수위는 늦게 차오르게 된다.
도 9를 참조하면, 태그 x와 y를 비교할 때, 두 태그의 시간차를 고려하기 위해서 태그 y를 s초 이동하여 비교할 수 있다. 그 결과 태그 x의 1~n초의 값
Figure 112020108640397-pat00032
과 태그 y의 1+s~n+s초의 값
Figure 112020108640397-pat00033
을 비교한다. 이때, 최적의 s값을 알기 어렵기 때문에 가장 높은 상관 계수를 보이는 s를 최적의 s로 가정한다.
이와 같은 계산 과정은 다음의 <수학식 5>와 같이 표현될 수 있다.
Figure 112020108640397-pat00034
Figure 112020108640397-pat00035
<수학식 5>에서
Figure 112020108640397-pat00036
는 주어진 집합의 인자 중 가장 큰 인자를 반환하는 함수이다.
Figure 112020108640397-pat00037
또는
Figure 112020108640397-pat00038
는 피처 x를 s만큼의 시간차를 고려한 피처 y와 비교하였을 때의 상관계수이다. s는
Figure 112020108640397-pat00039
범위 내의 정수이며,
Figure 112020108640397-pat00040
는 사람이 부여하는 파라미터이다.
또한, 전체적인 경향 뿐만 아니라, 부분적인 변화 패턴의 상관관계를 비교하기 위해서 전체 수집 구간을 일정한 시간 간격으로 분할한 후 상관계수를 비교한다. 학습 데이터를
Figure 112020108640397-pat00041
등분하여 분할된 부분의 상관관계의 평균을 이용한다. 이는 다음과 같은 <수학식 6>과 같이 표현될 수 있다.
Figure 112020108640397-pat00042
이때, 이벤트 상관계수
Figure 112020108640397-pat00043
에도 동일한 식이 적용된다. 최종적으로 두 피처의 상관계수는 전체 데이터를 비교한 값
Figure 112020108640397-pat00044
와 부분을 비교한 값
Figure 112020108640397-pat00045
중 큰 값으로 결정한다.
다시 도 5를 참조하면, 태그 그룹핑부(211)는 계산된 상관관계를 기반으로 태그들을 그룹핑한다(S520).
즉, 상관관계 분석을 기반으로 높은 상관관계를 가지는 태그 피처를 묶어준다. 이렇게 묶인 피처들은 동일한 제어루프 또는 밀접한 관련이 있는 제어루프들에서 수집된 피쳐일 가능성이 높다.
이를 위해, 태그 그룹핑부(211)는, 우선 전체 상관 계수 값들 중에서 상관 계수가 소정 임계치 이상인 상관 계수를 선별하고, 선별된 상관 계수별 각각에 상응하는 두 개의 태그들을 포함하는 집합들을 생성한다.
이때, 상관 계수 행렬
Figure 112020108640397-pat00046
에서
Figure 112020108640397-pat00047
Figure 112020108640397-pat00048
열의 값은
Figure 112020108640397-pat00049
번째와
Figure 112020108640397-pat00050
번째 피처들의 상관계수를 나타낸다.
이때, 상관 계수 행렬
Figure 112020108640397-pat00051
에서 행과 열이 동일한 경우에는 상관 계수는 계산되지 않는다. 따라서, 도 10을 참조하면, 태그 그룹핑부(211)는
Figure 112020108640397-pat00052
를 1로,
Figure 112020108640397-pat00053
Figure 112020108640397-pat00054
+1로 초기화한다(S521).
그런 후, 태그 그룹핑부(211)는 상관 계수 행렬
Figure 112020108640397-pat00055
에서
Figure 112020108640397-pat00056
Figure 112020108640397-pat00057
열의 값이 소정 임게치
Figure 112020108640397-pat00058
이상인지를 판단한다(S522).
S522의 판단 결과 상관 계수 행렬
Figure 112020108640397-pat00059
에서
Figure 112020108640397-pat00060
Figure 112020108640397-pat00061
열의 값이 소정 임계치
Figure 112020108640397-pat00062
이상일 경우, 태그 그룹핑부(211)는
Figure 112020108640397-pat00063
번째와
Figure 112020108640397-pat00064
번째 피처들의 하나의 집합으로 묶고, 해당 집합을 집합
Figure 112020108640397-pat00065
의 원소로 포함시킨다(S523).
이때, 집합
Figure 112020108640397-pat00066
는 상관 계수가 임계값 이상인 두 피처의 집합으로 구성된 집합이다.
반면, S522의 판단 결과 상관 계수 행렬
Figure 112020108640397-pat00067
에서
Figure 112020108640397-pat00068
Figure 112020108640397-pat00069
열의 값이 소정 임계치
Figure 112020108640397-pat00070
이상이 아니거나 S523이 수행된 이후에, 태그 그룹핑부(211)는 S524 내지 S527을 통해 상관 계수 행렬
Figure 112020108640397-pat00071
에 포함된 모든 상관 계수 값들에 대해 S522 내지 S523이 반복 수행한다.
다음으로, 태그 그룹핑부(211)는, 도 10에 도시된 바와 같이 생성된 집합
Figure 112020108640397-pat00072
의 구성 요소 집합들 간의 상관 계수 평균이 소정 임계치 이상인 집합들의 합집합을 구하면서 그룹핑해간다.
도 11을 참조하면, 태그 그룹핑부(211)는, 집합
Figure 112020108640397-pat00073
에서 하나의 구성 요소인 집합
Figure 112020108640397-pat00074
를 선택한다(S528).
그런 후, 태그 그룹핑부(211)는, 집합
Figure 112020108640397-pat00075
에서 집합
Figure 112020108640397-pat00076
를 제외한 다른 구성 요소인 집합
Figure 112020108640397-pat00077
를 선택한다(S529).
그런 후, 태그 그룹핑부(211)는, 선택된 두 집합들 각각에 속한 모든 피처들의 상관 계수 평균
Figure 112020108640397-pat00078
이 소정 임계치
Figure 112020108640397-pat00079
이상인지를 판단한다(S530).
S530의 판단 결과 상관 계수 평균
Figure 112020108640397-pat00080
이 소정 임계치
Figure 112020108640397-pat00081
이상일 경우, 태그 그룹핑부(211)는, 집합
Figure 112020108640397-pat00082
에 집합
Figure 112020108640397-pat00083
의 구성 요소들을 합하고, 집합
Figure 112020108640397-pat00084
에서 집합
Figure 112020108640397-pat00085
를 제거한다(S531).
그런 후, 태그 그룹핑부(211)는, 집합
Figure 112020108640397-pat00086
에서 집합
Figure 112020108640397-pat00087
를 제외한 다른 구성 요소인 집합
Figure 112020108640397-pat00088
가 존재하는지의 여부를 판단(S532)하여 S529 내지 S531을 반복 수행한다. 즉, 집합
Figure 112020108640397-pat00089
로 그룹핑될 다른 집합
Figure 112020108640397-pat00090
를 찾아내는 것이다.
S532에서 집합
Figure 112020108640397-pat00091
를 제외한 다른 구성 요소인 집합
Figure 112020108640397-pat00092
가 존재하지 않을 경우, 태그 그룹핑부(211)는 최종 집합
Figure 112020108640397-pat00093
을 하나의 태그 그룹으로 하여 집합
Figure 112020108640397-pat00094
에 넣어둔다(S533).
이때, 집합
Figure 112020108640397-pat00095
는 태그 그룹을 원소로 하는 집합일 수 있다.
또한, 태그 그룹핑부(211)는 집합
Figure 112020108640397-pat00096
에 그룹핑되지 않은 집합이 존재하는지의 여부를 판단(S534)하여 S528 내지 S533을 반복 수행하여 집합
Figure 112020108640397-pat00097
에 포함된 집합들을 모두 그룹핑해간다.
도 12는 실시예에 따른 제어 시스템의 이상 탐지 모델 학습 방법을 설명하기 위한 순서도이다.
도 12를 참조하면, 실시예에 따른 제어 시스템의 이상 탐지 모델 학습 방법은, 정상 동작되는 제어 시스템의 운전 데이터인 태그들을 획득하는 단계(S610), 태그들을 제어 루프별로 그룹핑하는 단계(S620) 및 태그 그룹들 각각에 상응하는 딥러닝 네트워크 탐지 모델들 생성하는 단계(S630~S670)를 포함할 수 있다.
이때, 생성하는 단계(S630~S670)는, 태그를 딥러닝 네트워크에 학습 데이터로 입력하고, 태그에 상응하는 실측값과 딥러인 네트워크가 출력한 예측값과의 차이인 예측 오차가 소정 임계치 이하가 되도록 딥러닝 네트워크의 파라미터를 반복 조정할 수 있다.
S620은 도 5 내지 도 11을 참조하여 설명한 바와 동일하므로 그 상세한 설명을 생략하기로 한다.
또한, 실시예에 따른 제어 시스템의 이상 탐지 모델 학습 방법은, 딥러닝 네트워크 탐지 모델들 생성하는 단계 이전에 그룹핑된 태그 그룹을 전처리하는 단계를 더 포함할 수 있다. 이에 대한 상세한 설명은 도 4를 참조하여 전술한 바와 동일하므로 여기서는 생략하기로 한다.
한편, S620 및 전처리 단계는 S630 내지 S670의 학습 단계 이후에 학습 데이터에 대한 예측 오차가 크게 나올 경우, 조정되어 재수행될 수 있다. 즉, S630 내지 S670의 학습 단계를 통해 생성된 탐지 모델은 디지털 태그와 아날로그 태그가 섞인 데이터를 학습할 수 있어야 하고, 하나의 태그 값이 정규분포를 따르지 않고 복합적인 분포를 보일 때에도 이 특성을 잘 학습/예측할 수 있어야 한다. 또한 시간 흐름에 따라 변화하는 운전 데이터 특성을 잘 학습할 수 있어야 하기 때문이다.
한편, 태그 그룹별 예측 오차를 산출하는 딥러닝 네트워크 기반 탐지 모델을 학습시키는 단계(S630~S670)는 태그 그룹별로 반복 또는 병렬적으로 수행되어, 태그 그룹 각각에 상응하는 탐지 모델들을 생성할 수 있다.
구체적으로, 태그 그룹이 아날로그 태그 또는 디지털 태그인지에 따라(S630), 상이한 학습 네트워크로 학습될 수 있다.
또한, 태그 그룹이 아날로그 태그일 경우, 시간 윈도우의 길이에 따라(S640) 상이한 학습 네트워크로 학습될 수 있다.
우선, 길지 않은 시간 윈도우 학습은 RNN/biRNN으로 학습될 수 있다(S650).
시계열 데이터를 학습할 때는 재귀적 신경망(Recurrent Neural Network, RNN)를 사용하면 시간의 흐름을 학습에 반영하기 좋다. 정해진 시간 윈도우의 크기를 W라고 할 때 W-1 만큼을 RNN의 입력으로 준다. 안정적인 학습과 추론을 위해서는 RNN cell으로 GRU(gated recurrent unit)나 LSTM(long short term memory)를 이용하는 것이 바람직할 수 있다.
이때, RNN 네트워크를 다층으로 구성하면 성능이 더 좋아질 수 있으므로, 2~4층으로 구성하는 것이 적절할 수 있다. 그런데, 너무 많은 층을 쌓으면 학습시 불안정한 결과(not a number나 infinite 산출)를 보일 수도 있다. RNN 네트워크의 마지막 층에서 산출된 결과 전체 또는 일부(예를 들어, 가장 마지막 시각의 값(W-1번째 값))를 이용하여 그 다음 시각의 값(W번째 값)을 예측한다.
이때, 디지털 태그 또한 아날로그 값으로 변환, 정규화하여 사용하므로 평균제곱오차(Mean Squared Error, MSE)를 손실함수(loss function)로 사용한다.
반면, 아주 긴 시간 윈도우 학습은 transformer를 활용한다(S660).
시퀀스의 길이가 긴 경우에는 RNN의 성능이 양호하지 않으므로, 시간 윈도우가 길다면 Transformer 네트워크를 이용할 수 있다. Transformer 네트워크는 입력과 출력의 형태는 RNN과 동일한 방식이므로, 마지막 시각의 값만 예측하므로 디코더 부분은 필요하지 않다. 인코더의 출력을 통해 마지막 시각의 값을 예측하도록 한다. 손실함수는 평균제곱오차(Mean Squared Error, MSE)를 사용한다.
한편, S630의 판단 결과 디지털 태그일 경우, Mixture Density Network (MDN)이 활용된다(S670).
현재 시간 윈도우를 보고 다음 값을 예측할 때 산술적으로 거리가 큰 여러 값 중 하나를 선택해야 하는 경우가 많은 데이터가 있다. 예컨대, 디지털 값이 그렇다.
디지털 값은 특정 시점에 급격히 변화하므로, 탐지 모델은 시간 윈도우 내의 데이터 변화를 확률적으로 알아내야 정확한 예측이 가능하다. 이럴 경우, S650 및 S660에서와 같이 직접 값을 직접 예측한 것과 달리 S670에서는 확률 분포를 예측하도록 한다.
확률분포를 만들기 위한 이전 네트워크는 RNN이나 Transformer를 이용할 수 있으며 일반적인 완전 연결망(Fully Connected Network, FCN)나 콘볼루셔널 신경망(Convolutional Neural Network, CNN)을 이용할 수도 있다.
이때, 네트워크의 출력은 각 태그마다 α, μ, σ로 구성된다.
예컨대, 2-1, 2-2 방법과 같은 네트워크가 5개의 태그로 구성된 그룹을 학습한다고 하면 출력값의 개수는 5개가 되지만, MDN에서는 5 * 3 = 15개가 된다.
여기서, α는 정규분포 중 어떤 것을 선택할지에 대한 비율이다. 따라서 합이 1이 되어야 한다. 또한, 네트워크에서는 소프트맥스 함수(softmax function)를 통해 구현할 수 있다. 그리고, μ와 σ는 정규분포의 평균과 표준편차를 표현한다.
이때, 표준편차는 항상 양수여야 하므로
Figure 112020108640397-pat00098
와 같은 함수를 통과시켜 항상 양수로 출력되도록 해야 한다.
탐지 모델은 최대한 정확히 값을 예측하도록 학습되기 때문에 값의 예측이 쉬운 모델의 경우 학습이 진행되면서 표준편차가 0으로 수렴하게 되고, 불안정한 결과(not a number 또는 infinite)를 만들어낼 수 있다. 따라서 최소한의 표준편차(예를 들면 0.01)를 주면 안정적인 학습이 가능하다.
도 13은 도 1의 이상 징후 판단 단계를 상세히 설명하기 위한 순서도이다.
도 13을 참조하면, 이상 징후 판단부(230)는, 예측 오차 정규화(normalization)한다(S710).
각 태그마다 학습/예측 정확도가 서로 달라 예측 오차 간의 크기가 다를 수 있다. 이를 그대로 사용할 경우 이상판단이 예측오차가 큰 태그의 결과에 너무 큰 영향을 받을 수 있다. 학습데이터에 대해 예측오차가 크게 나오는 태그(학습/예측이 정확하지 않은 태그)의 경우 정상 상황에서도 예측오차가 크기 때문에 상대적으로 학습데이터에 대해 작은 예측오차를 보이는 태그(학습/예측이 정확한 태그)의 예측오차 결과가 이상판단에 잘 활용되지 못 할 수 있다.
따라서, 실시예에 따라, 개별 태그 예측오차의 절대값에 1을 더하여 log를 적용한 값을 사용한다. log를 적용하면 해당 예측오차가 2배 증가할 경우 그 크기에 관계없이 log 2만큼 동일하게 증가하게 되는 효과, 즉 증가 비율에 따라 동일한 정도로 결과값이 증가하게 되는 normalize 효과가 있다. 즉, log 안의 값이 0이 아니게 할 수 있도록 절대값 적용 후 1을 더하는 것이다.
다음으로, 이상 징후 판단부(230)는, 예측 오차를 이용한 이상을 판단한다(S720).
보통 예측오차의 크기가 사전에 정의한 임계치보다 큰 경우 해당 시점에 이상징후가 발생했다고 판단한다. 하지만 공격자의 정교한 공격은 해당 임계치보다 작은 범위 안에서도 대상 시스템이 심각한 피해를 입힐 수 있다. 또한 예측모델이 학습데이터 부족 등으로 인해 정확한 예측을 하지 못 할 경우 예측오차의 크기만으로는 이상징후 발생을 판단하기 어렵다.
따라서, 실시예에 따라, 정상상황(학습데이터)에 예측모델이 발생하는 예측오차와 유사한 형태의 예측오차가 발생하면 그 값이 크더라도 해당 상황은 정상일 확률이 높다.
탐지 모델은 동일한 입력(시간 윈도우 안의 운전 데이터)을 보고 동일한 예측(현재의 운전 데이터)을 하기 때문이다. 즉, 정상 데이터(학습데이터)에 대한 예측오차와의 유사도를 기준으로 이상판단을 수행하면 좀 더 정확한 이상 판단이 가능하다. 이 단계는 “머신러닝을 이용한 이상징후 탐지 방법 및 시스템(출원: 2018-0160051)”과 “복수개의 머신 러닝 학습 모델을 이용한 이상 상황 탐지 방법 및 이를 위한 장치(출원: 2020-0070140)”를 활용한다.
다음으로, 이상 징후 판단부(230)는, 이상징후 원인을 분석한다(S730).
이상징후 발생 판단시 신속하고 정확한 현장 대응을 위해서는 전체 제어 시스템에서 해당 문제가 발생한 위치와 대상을 확인할 수 있는 정보가 필요하다. 태그 그룹별로 이상판단을 수행하여 이상판단된 태그 그룹을 이상징후의 원인으로 제시한다. 태그 그룹 내에서 예측오차의 크기가 큰 태그들을 이상징후의 원인으로 제시한다.
한편, 학습데이터에 포함되어 있지 않던 정상 행위에 발생할 경우 유사한 원인에 의해 동일한 오 경보(false alarm)가 계속 발생할 수 있다. 해당 정상 행위를 표현하는 데이터를 수집하여 재학습하여야 하는데 이 과정이 완료될 때까지 반복적으로 발생하는 오 경보로 인해 다른 경보들도 구분하기 어려워질 수 있다.
따라서, 사용자가 오 경보 기간에 대해 피드백을 제공하면, 해당 오 경보 기간에 해당하는 예측오차 데이터와 유사한 예측오차가 발생할 경우 이상징후라고 판단하지 않는다. 이는 반복되는 정상 행위에 의해 유사한 형태로 예측오차가 발생하는 특성을 이용하여 동일/유사한 원인의 오 경보를 제거하는 효과가 있다. 이는 “머신 러닝을 이용한 이상 상황 탐지 시스템의 탐지 이상 처리 방법 및 이를 위한 장치(출원: 2020-0070139)”를 활용할 수 있다.
도 14는 실시예에 따른 컴퓨터 시스템 구성을 나타낸 도면이다.
실시예에 따른 딥러닝을 이용한 제어 시스템의 이상 탐지 장치는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1000)에서 구현될 수 있다.
컴퓨터 시스템(1000)은 버스(1020)를 통하여 서로 통신하는 하나 이상의 프로세서(1010), 메모리(1030), 사용자 인터페이스 입력 장치(1040), 사용자 인터페이스 출력 장치(1050) 및 스토리지(1060)를 포함할 수 있다. 또한, 컴퓨터 시스템(1000)은 네트워크(1080)에 연결되는 네트워크 인터페이스(1070)를 더 포함할 수 있다. 프로세서(1010)는 중앙 처리 장치 또는 메모리(1030)나 스토리지(1060)에 저장된 프로그램 또는 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1030) 및 스토리지(1060)는 휘발성 매체, 비휘발성 매체, 분리형 매체, 비분리형 매체, 통신 매체, 또는 정보 전달 매체 중에서 적어도 하나 이상을 포함하는 저장 매체일 수 있다. 예를 들어, 메모리(1030)는 ROM(1031)이나 RAM(1032)을 포함할 수 있다.
이상에서 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
210 : 전처리부 211 : 태그 그룹핑부
220 : 예측부
220-1, 220-2, ..., 220-N : 탐지 모델
230 : 이상 징후 판단부 240 : 경보 생성부

Claims (20)

  1. 딥러닝을 이용한 제어 시스템의 이상 탐지 장치가,
    제어 시스템의 운전 데이터인 태그들을 제어 루프별로 그룹핑하는 단계;
    그룹핑된 태그 그룹들을 각각 전처리하는 단계;
    상기 태그 그룹들 각각에 상응하는 딥러닝 네트워크 탐지 모델들을 기반으로 태그 그룹들 각각에 대한 예측값을 산출하는 단계;
    태그 그룹별 예측값과 실측값 간의 차이인 예측 오차를 기반으로 제어 시스템의 이상 징후를 판단하는 단계; 및
    이상 징후 판단 결과에 따른 경보를 생성하는 단계를 포함하되,
    딥러닝 네트워크 탐지 모델들은,
    정상 동작하는 제어 시스템으로부터 획득된 태그들이 그룹핑된 태그 그룹들 각각을 학습 데이터로 하여 미리 학습된 것에 상응하고,
    상기 전처리하는 단계는
    태그 그룹별로 FNN(False Nearest Neighbor)을 기반으로 최적의 학습 시간 윈도우 길이를 결정하는 단계;
    그룹별로 태그를 정규화하는 단계;
    일정 주기 또는 데이터 변화 시점에 시간 윈도우를 샘플링하는 단계; 및
    디지털 태그의 변화 데이터와 변하지 않는 데이터의 비율을 조절하는 단계를 더 포함하는, 딥러닝을 이용한 제어 시스템의 이상 탐지 방법.
  2. 삭제
  3. 제1 항에 있어서, 그룹핑하는 단계는,
    태그들 간의 상관 계수를 산출하는 단계; 및
    산출된 상관 계수를 기반으로 태그들을 그룹핑하는 단계를 포함하는, 딥러닝을 이용한 제어 시스템의 이상 탐지 방법.
  4. 제3 항에 있어서, 상관 계수를 산출하는 단계는,
    모든 태그들 중에서 선택된 두 개의 태그들 간의 상관 계수를 산출하되,
    두 개의 태그들은 모든 태그들 중에서 번갈아 선택되고,
    두 개의 태그들 중 적어도 하나가 아날로그일 경우, 피어슨 상관 계수를 산출하고,
    두 개의 태그들이 디지털일 경우, 이벤트 기반 상관 계수를 산출하는, 딥러닝을 이용한 제어 시스템의 이상 탐지 방법.
  5. 제3 항에 있어서, 그룹핑하는 단계는,
    상관 관계를 산출하기 이전에, 태그들로부터 노이즈 필터링하는 단계를 더 포함하는, 딥러닝을 이용한 제어 시스템의 이상 탐지 방법.
  6. 제3 항에 있어서, 상관 계수를 산출하는 단계는,
    두 태그들 간의 시간차를 반영하여 상관 계수를 산출하는, 딥러닝을 이용한 제어 시스템의 이상 탐지 방법.
  7. 제3 항에 있어서, 상관 계수를 산출하는 단계는,
    태그들을 소정 시간 단위로 분할하여 상관 계수를 산출하는, 딥러닝을 이용한 제어 시스템의 이상 탐지 방법.
  8. 제3 항에 있어서, 상관 계수를 기반으로 태그들을 그룹핑하는 단계는,
    상관 계수들 중 그 값이 소정 임계치 이상인 상관 계수를 선별하는 단계;
    선별된 상관 계수들 각각에 상응하는 태그 피처 집합들을 생성하는 단계; 및
    태그 피처 집합들 간의 상관 계수 평균을 기반으로 집합들을 그룹핑하는 단계를 포함하는, 딥러닝을 이용한 제어 시스템의 이상 탐지 방법.
  9. 제1 항에 있어서, 탐지 모델들은,
    태그가 아날로그 데이터일 경우, 시간 윈도우의 길이에 따라 RNN(Recurrent Neural Network) 또는 Transformer 중 하나로 학습되고,
    태그가 디지털 데이터일 경우, MDN(Mixture Density Network)으로 학습되는, 딥러닝을 이용한 제어 시스템의 이상 탐지 방법.
  10. 제1 항에 있어서, 이상 징후를 판단하는 단계,
    예측 오차를 정규화하는 단계;
    예측 오차가 소정 임계치 이상인 태그 그룹을 선별하는 단계;
    선별된 태그 그룹을 이상 징후 원인으로 판단하는 단계를 포함하는, 딥러닝을 이용한 제어 시스템의 이상 탐지 방법.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 딥러닝을 이용한 제어 시스템의 이상 탐지 장치가,
    정상 동작되는 제어 시스템의 운전 데이터인 태그들을 획득하는 단계;
    태그들을 제어 루프별로 그룹핑하는 단계;
    그룹핑된 태그 그룹들을 각각 전처리하는 단계; 및
    태그 그룹들 각각에 상응하는 딥러닝 네트워크 탐지 모델들 생성하는 단계를 포함하되,
    생성하는 단계는,
    태그를 딥러닝 네트워크에 학습 데이터로 입력하고, 태그에 상응하는 실측값과 딥러닝 네트워크가 출력한 예측값과의 차이인 예측 오차가 소정 임계치 이하가 되도록 딥러닝 네트워크의 파라미터를 반복 조정하고,
    상기 전처리하는 단계는
    태그 그룹별로 FNN(False Nearest Neighbor)을 기반으로 최적의 학습 시간 윈도우 길이를 결정하는 단계;
    그룹별로 태그를 정규화하는 단계;
    일정 주기 또는 데이터 변화 시점에 시간 윈도우를 샘플링하는 단계; 및
    디지털 태그의 변화 데이터와 변하지 않는 데이터의 비율을 조절하는 단계를 더 포함하는, 제어 시스템의 이상 탐지 모델 학습 방법.
  17. 삭제
  18. 제16 항에 있어서, 탐지 모델들은,
    태그가 아날로그 데이터일 경우, 시간 윈도우의 길이에 따라 RNN(Recurrent Neural Network) 또는 Transformer 중 하나로 구성되어 학습되는, 제어 시스템의 이상 탐지 모델 학습 방법.
  19. 제16 항에 있어서, 탐지 모델들은,
    태그가 디지털 데이터일 경우, MDN(Mixture Density Network)으로 학습되는, 제어 시스템의 이상 탐지 모델 학습 방법.
  20. 제16 항에 있어서,
    예측 오차가 소정 임계치 이상일 경우, 전처리 단계를 조정하여 재수행하는 단계를 더 포함하는, 제어 시스템의 이상 탐지 모델 학습 방법.
KR1020200132881A 2020-10-14 2020-10-14 딥러닝을 이용한 제어 시스템의 이상 탐지 장치 및 방법 KR102420994B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200132881A KR102420994B1 (ko) 2020-10-14 2020-10-14 딥러닝을 이용한 제어 시스템의 이상 탐지 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200132881A KR102420994B1 (ko) 2020-10-14 2020-10-14 딥러닝을 이용한 제어 시스템의 이상 탐지 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20220049674A KR20220049674A (ko) 2022-04-22
KR102420994B1 true KR102420994B1 (ko) 2022-07-18

Family

ID=81452400

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200132881A KR102420994B1 (ko) 2020-10-14 2020-10-14 딥러닝을 이용한 제어 시스템의 이상 탐지 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102420994B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118038642B (zh) * 2024-04-11 2024-06-14 南京科力赛克安全设备有限公司 一种基于气体分析的矿用数字化气体参数预警系统及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200012270A1 (en) * 2017-03-24 2020-01-09 Abb Schweiz Ag Computer system and method for monitoring the technical state of industrial process systems

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101585342B1 (ko) 2014-09-30 2016-01-14 한국전력공사 이상행위 탐지 장치 및 방법
KR102047815B1 (ko) * 2018-03-23 2019-11-22 두산중공업 주식회사 플랜트 이상 예측 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200012270A1 (en) * 2017-03-24 2020-01-09 Abb Schweiz Ag Computer system and method for monitoring the technical state of industrial process systems

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
황원석 외, "제어시스템 범주형 특징 분석을 위한 이벤트 기반 상관계수", 한국정보과학회 학술발표논문집, pp. 812-814(2019.12.)*

Also Published As

Publication number Publication date
KR20220049674A (ko) 2022-04-22

Similar Documents

Publication Publication Date Title
CN108881196B (zh) 基于深度生成模型的半监督入侵检测方法
US10999247B2 (en) Density estimation network for unsupervised anomaly detection
US11120127B2 (en) Reconstruction-based anomaly detection
US10819725B2 (en) Reliable cyber-threat detection in rapidly changing environments
US9386030B2 (en) System and method for correlating historical attacks with diverse indicators to generate indicator profiles for detecting and predicting future network attacks
CN111585948B (zh) 一种基于电网大数据的网络安全态势智能预测方法
Ghafouri et al. Adversarial regression for detecting attacks in cyber-physical systems
CN111107102A (zh) 基于大数据实时网络流量异常检测方法
CN110933031A (zh) 一种基于lstm的智能电网配电终端单元入侵检测方法
CN109728939B (zh) 一种网络流量检测方法及装置
KR100795227B1 (ko) 센서 어레이 신호 패턴 분석 방법 및 장치
EP4075724A1 (en) Attack detection and localization with adaptive thresholding
WO2021169361A1 (zh) 时间序列数据的检测方法、装置、计算机设备及存储介质
CN112800600B (zh) 一种基于多尺度样本熵和贝叶斯网络的隐蔽性攻击检测方法
KR102420994B1 (ko) 딥러닝을 이용한 제어 시스템의 이상 탐지 장치 및 방법
CN114004331A (zh) 一种基于关键指标和深度学习的故障分析方法
CN116915582A (zh) 一种通信终端故障根因诊断分析方法及装置
Jiang et al. RBF-based real-time hierarchical intrusion detection systems
Linda et al. Anomaly detection for resilient control systems using fuzzy-neural data fusion engine
CN117458955A (zh) 电机的运行控制方法及系统
CN114397842A (zh) 电力监控网络安全智能巡检加固方法
KR102665327B1 (ko) 건물 내의 환경을 제어하는 서버, 방법 및 컴퓨터 프로그램
JP2004272879A (ja) 物理学をベースにしたニューラルネットワーク
CN112738136A (zh) 一种基于hss算法的慢速拒绝服务攻击检测方法
Weng Detection and characterization of actuator attacks using kalman filter estimation

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant