KR20230159953A - Apparatus and method of anomaly detection using neural network - Google Patents

Apparatus and method of anomaly detection using neural network Download PDF

Info

Publication number
KR20230159953A
KR20230159953A KR1020220059373A KR20220059373A KR20230159953A KR 20230159953 A KR20230159953 A KR 20230159953A KR 1020220059373 A KR1020220059373 A KR 1020220059373A KR 20220059373 A KR20220059373 A KR 20220059373A KR 20230159953 A KR20230159953 A KR 20230159953A
Authority
KR
South Korea
Prior art keywords
data
ood
processor
normal
scores
Prior art date
Application number
KR1020220059373A
Other languages
Korean (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 KR1020220059373A priority Critical patent/KR20230159953A/en
Publication of KR20230159953A publication Critical patent/KR20230159953A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

뉴럴 네트워크를 이용한 이상 검출(anomaly detection) 장치 및 방법이 개시된다.
일 실시예에 따른 이상 검출(anomaly detection) 장치는, 데이터를 수신하는 수신기, 및 정상 데이터에 대해 미리 설정된 그룹과 상기 데이터 사이의 거리에 기초하여 상기 데이터에 대응하는 복수의 특징을 추출하고, 상기 복수의 특징에 기초하여 상기 복수의 그룹에 대응하는 복수의 OOD(Out Of Distribution) 점수를 계산하고, 상기 복수의 OOD 점수에 기초하여 상기 데이터의 정상 여부를 검출하는 프로세서를 포함할 수 있다.
An anomaly detection device and method using a neural network are disclosed.
An anomaly detection device according to an embodiment includes a receiver that receives data, and extracts a plurality of features corresponding to the data based on a distance between the data and a preset group for normal data, It may include a processor that calculates a plurality of Out Of Distribution (OOD) scores corresponding to the plurality of groups based on a plurality of characteristics, and detects whether the data is normal based on the plurality of OOD scores.

Description

뉴럴 네트워크를 이용한 이상 검출 장치 및 방법{APPARATUS AND METHOD OF ANOMALY DETECTION USING NEURAL NETWORK}Anomaly detection device and method using neural network {APPARATUS AND METHOD OF ANOMALY DETECTION USING NEURAL NETWORK}

아래 실시예들은 뉴럴 네트워크를 이용한 이상 검출 장치 및 방법에 관한 것이다.The following embodiments relate to an anomaly detection device and method using a neural network.

이상 검출(anomaly detection)(또는, 이상 탐지)는 일반적인 값과 다른 특이한 값(outlier)이나 드문 사건을 탐지하는 기술을 의미한다. 이상 검출은 어떤 특정한 도메인에서 일반적으로 예상되는 특성을 따르지 않는 데이터나, 정상(normal)으로 규정된 데이터와 다른 특징을 가지는 데이터를 찾아내는 것을 의미한다.Anomaly detection (or, anomaly detection) refers to a technology that detects outliers or rare events that are different from normal values. Anomaly detection means finding data that does not follow generally expected characteristics in a specific domain or data that has characteristics different from data defined as normal.

종래의 이상 검출 방식은 정상 샘플로만 학습된 뉴럴 네트워크를 이용하기 때문에 정상 샘플에 대해서는 오차(error)가 적고 비정상 샘플에 대한 오차는 크다고 가정을 한다. 따라서, 종래의 이상 검출 방식은 비정상 샘플에 대한 오차를 최대화하지 못한다는 문제를 갖는다.Since the conventional anomaly detection method uses a neural network trained only on normal samples, it is assumed that the error for normal samples is small and the error for abnormal samples is large. Therefore, the conventional abnormality detection method has the problem of not maximizing the error for abnormal samples.

실시예들은 뉴럴 네트워크를 이용한 이상 검출 기술을 제공할 수 있다. Embodiments may provide anomaly detection technology using a neural network.

다만, 기술적 과제는 상술한 기술적 과제들로 한정되는 것은 아니며, 또 다른 기술적 과제들이 존재할 수 있다.However, technical challenges are not limited to the above-mentioned technical challenges, and other technical challenges may exist.

일 실시예에 따른 뉴럴 네트워크를 이용한 이상 검출(anomaly detection) 장치는, 데이터를 수신하는 수신기; 및 정상 데이터에 대해 미리 설정된 그룹과 상기 데이터 사이의 거리에 기초하여 상기 데이터에 대응하는 복수의 특징을 추출하고, 상기 복수의 특징에 기초하여 상기 복수의 그룹에 대응하는 복수의 OOD(Out Of Distribution) 점수를 계산하고, 상기 복수의 OOD 점수에 기초하여 상기 데이터의 정상 여부를 검출하는 프로세서를 포함할 수 있다.An anomaly detection device using a neural network according to an embodiment includes a receiver for receiving data; and extracting a plurality of features corresponding to the data based on a distance between the data and a group preset for normal data, and extracting a plurality of Out Of Distribution (OOD) corresponding to the plurality of groups based on the plurality of features. ) It may include a processor that calculates a score and detects whether the data is normal based on the plurality of OOD scores.

상기 프로세서는, 상기 복수의 OOD 점수에 기초하여 어텐션(attention) 연산을 수행하고, 상기 데이터를 오토 인코더(auto encoder)에 입력함으로써 오토 인코딩 출력을 생성하고, 상기 어텐션 연산의 결과 및 상기 오토 인코딩 출력에 기초하여 상기 데이터의 정상 여부를 검출할 수 있다.The processor performs an attention operation based on the plurality of OOD scores, generates an auto-encoding output by inputting the data to an auto encoder, and generates the result of the attention operation and the auto-encoding output. Based on this, it is possible to detect whether the data is normal.

상기 프로세서는, 상기 복수의 특징을 정규(normal) 클래스 및 기타(others) 클래스로 분류하고, 상기 기타 클래스의 비율에 기초하여 상기 OOD 점수를 계산할 수 있다.The processor may classify the plurality of features into normal classes and others classes, and calculate the OOD score based on the ratio of the other classes.

상기 프로세서는, 상기 어텐션 연산의 결과와 상기 오토 인코딩 출력을 곱함으로써 곱셈 결과를 생성하고, 상기 데이터와 상기 곱셈 결과의 차이에 기초하여 평균 제곱 오차 손실(mean squared error loss)을 계산하고, 상기 평균 제곱 오차 손실에 기초하여 상기 데이터의 정상 여부를 검출할 수 있다.The processor generates a multiplication result by multiplying the result of the attention operation and the auto-encoding output, calculates a mean squared error loss based on the difference between the data and the multiplication result, and calculates the mean squared error loss. It is possible to detect whether the data is normal based on square error loss.

일 실시예에 따른 뉴럴 네트워크를 이용한 이상 검출(anomaly detection) 방법은 데이터를 수신하는 단계; 정상 데이터에 대해 미리 설정된 그룹과 상기 데이터 사이의 거리에 기초하여 상기 데이터에 대응하는 복수의 특징을 추출하는 단계; 상기 복수의 특징에 기초하여 상기 복수의 그룹에 대응하는 복수의 OOD(Out Of Distribution) 점수를 계산하는 단계; 및 상기 복수의 OOD 점수에 기초하여 상기 데이터의 정상 여부를 검출하는 단계를 포함할 수 있다.An anomaly detection method using a neural network according to an embodiment includes receiving data; extracting a plurality of features corresponding to the data based on a distance between the data and a preset group for normal data; calculating a plurality of OOD (Out Of Distribution) scores corresponding to the plurality of groups based on the plurality of characteristics; and detecting whether the data is normal based on the plurality of OOD scores.

실시예들은 OOD(Out Of Distribution) 점수를 이용하여 뉴럴 네트워크에 입력되는 모든 샘플들에 가중치를 부여함으로써 정상 샘플에 대응하는 오차를 최소화하고, 비정상 샘플에 대응하는 오차를 최대화할 수 있다.Embodiments may minimize errors corresponding to normal samples and maximize errors corresponding to abnormal samples by assigning weights to all samples input to the neural network using Out Of Distribution (OOD) scores.

실시예들은 비정상 샘플에 대한 오차를 최대화함으로써 이상 검출의 성능을 향상시킬 수 있다.Embodiments may improve the performance of abnormality detection by maximizing the error for abnormal samples.

도 1은 일 실시예에 따른 이상 검출 장치의 개략적인 블록도를 나타낸다.
도 2는 도 1에 도시된 이상 검출 장치의 구현의 예를 나타낸다.
도 3은 데이터로부터 특징을 추출하는 과정을 나타낸다.
도 4는 OOD 점수를 계산하는 과정을 나타낸다.
도 5는 학습 및 검출 과정을 설명하기 위한 도면이다.
도 6은 도 1에 도시된 이상 검출 장치의 동작의 흐름도를 나타낸다.
1 shows a schematic block diagram of an abnormality detection device according to an embodiment.
Figure 2 shows an example of implementation of the anomaly detection device shown in Figure 1.
Figure 3 shows the process of extracting features from data.
Figure 4 shows the process of calculating OOD scores.
Figure 5 is a diagram for explaining the learning and detection process.
FIG. 6 shows a flowchart of the operation of the abnormality detection device shown in FIG. 1.

본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.Specific structural or functional descriptions of the embodiments according to the concept of the present invention disclosed in this specification are merely illustrative for the purpose of explaining the embodiments according to the concept of the present invention. They may be implemented in various forms and are not limited to the embodiments described herein.

본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Since the embodiments according to the concept of the present invention can make various changes and have various forms, the embodiments will be illustrated in the drawings and described in detail in this specification. However, this is not intended to limit the embodiments according to the concept of the present invention to specific disclosed forms, and includes changes, equivalents, or substitutes included in the spirit and technical scope of the present invention.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Terms such as first or second may be used to describe various components, but the components should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another component, for example, a first component may be named a second component, without departing from the scope of rights according to the concept of the present invention, Similarly, the second component may also be referred to as the first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~사이에"와 "바로~사이에" 또는 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is said to be "connected" or "connected" to another component, it is understood that it may be directly connected to or connected to the other component, but that other components may exist in between. It should be. On the other hand, when it is mentioned that a component is “directly connected” or “directly connected” to another component, it should be understood that there are no other components in between. Expressions that describe the relationship between components, such as “between”, “immediately between” or “directly adjacent to”, should be interpreted similarly.

본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is only used to describe specific embodiments and is not intended to limit the invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, terms such as "include" or "have" are intended to designate the presence of a described feature, number, step, operation, component, part, or combination thereof, and one or more other features or numbers, It should be understood that this does not exclude in advance the possibility of the presence or addition of steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the technical field to which the present invention pertains. Terms as defined in commonly used dictionaries should be interpreted as having meanings consistent with the meanings they have in the context of the related technology, and unless clearly defined in this specification, should not be interpreted in an idealized or overly formal sense. No.

본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.A module in this specification may mean hardware that can perform functions and operations according to each name described in this specification, or it may mean computer program code that can perform specific functions and operations. , or it may mean an electronic recording medium loaded with computer program code that can perform specific functions and operations, for example, a processor or microprocessor.

다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.In other words, a module may mean a functional and/or structural combination of hardware for carrying out the technical idea of the present invention and/or software for driving the hardware.

이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the attached drawings. However, the scope of the patent application is not limited or limited by these examples. The same reference numerals in each drawing indicate the same members.

도 1은 일 실시예에 따른 이상 검출 장치의 개략적인 블록도를 나타낸다.1 shows a schematic block diagram of an abnormality detection device according to an embodiment.

도 1을 참조하면, 이상 검출 장치(10)는 데이터의 이상을 검출할 수 있다. 이상 검출 장치(10)는 데이터의 정상 및/또는 비정상 여부를 검출할 수 있다.Referring to FIG. 1, the anomaly detection device 10 can detect anomalies in data. The abnormality detection device 10 can detect whether data is normal and/or abnormal.

데이터는 컴퓨터가 처리할 수 있는 형태로 된 정보로 이루어질 수 있다. 데이터는 컴퓨터가 처리할 수 있는 문자, 숫자, 소리, 그림 등의 형태로 이루어질 수 있다. 예를 들어, 데이터는 이미지를 포함할 수 있다. 이미지는 빛의 굴절이나 반사 등에 의하여 이루어진 물체의 상을 포함하는 것으로, 선이나 색채를 이용하여 사물의 형상을 나타낸 것을 의미할 수 있다. 예시적으로, 데이터는 초분광 이미지(Hyperspectral Images; HSIs)가 사용될 수 있으나, 사용되는 데이터가 이에 한정되는 것이 아님은 통상의 기술자가 이해할 것이다.Data may consist of information in a form that can be processed by a computer. Data can be in the form of letters, numbers, sounds, pictures, etc. that a computer can process. For example, data may include images. An image includes an image of an object created by refraction or reflection of light, and may mean representing the shape of the object using lines or colors. As an example, hyperspectral images (HSIs) may be used as the data, but those skilled in the art will understand that the data used is not limited thereto.

이상 검출 장치(10)는 뉴럴 네트워크를 이용하여 데이터의 이상을 검출할 수 있다. 이상 검출 장치(10)는 학습 데이터에 기초하여 뉴럴 네트워크를 학습시키고, 학습된 뉴럴 네트워크에 기초하여 데이터를 처리함으로써 데이터의 이상을 검출할 수 있다.The anomaly detection device 10 can detect anomalies in data using a neural network. The anomaly detection device 10 can detect anomalies in data by training a neural network based on learning data and processing the data based on the learned neural network.

뉴럴 네트워크(또는 인공 신경망)는 기계학습과 인지과학에서 생물학의 신경을 모방한 통계학적 학습 알고리즘을 포함할 수 있다. 뉴럴 네트워크는 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다.Neural networks (or artificial neural networks) can include statistical learning algorithms that mimic neurons in biology in machine learning and cognitive science. A neural network can refer to an overall model in which artificial neurons (nodes), which form a network through the combination of synapses, change the strength of the synapse connection through learning and have problem-solving capabilities.

뉴럴 네트워크의 뉴런은 가중치 또는 바이어스의 조합을 포함할 수 있다. 뉴럴 네트워크는 하나 이상의 뉴런 또는 노드로 구성된 하나 이상의 레이어(layer)를 포함할 수 있다. 뉴럴 네트워크는 뉴런의 가중치를 학습을 통해 변화시킴으로써 임의의 입력으로부터 예측하고자 하는 결과를 추론할 수 있다.Neurons in a neural network can contain combinations of weights or biases. A neural network may include one or more layers consisting of one or more neurons or nodes. Neural networks can infer the results they want to predict from arbitrary inputs by changing the weights of neurons through learning.

뉴럴 네트워크는 심층 뉴럴 네트워크 (Deep Neural Network)를 포함할 수 있다. 뉴럴 네트워크는 CNN(Convolutional Neural Network), RNN(Recurrent Neural Network), 퍼셉트론(perceptron), 다층 퍼셉트론(multilayer perceptron), FF(Feed Forward), RBF(Radial Basis Network), DFF(Deep Feed Forward), LSTM(Long Short Term Memory), GRU(Gated Recurrent Unit), AE(Auto Encoder), VAE(Variational Auto Encoder), DAE(Denoising Auto Encoder), SAE(Sparse Auto Encoder), MC(Markov Chain), HN(Hopfield Network), BM(Boltzmann Machine), RBM(Restricted Boltzmann Machine), DBN(Depp Belief Network), DCN(Deep Convolutional Network), DN(Deconvolutional Network), DCIGN(Deep Convolutional Inverse Graphics Network), GAN(Generative Adversarial Network), LSM(Liquid State Machine), ELM(Extreme Learning Machine), ESN(Echo State Network), DRN(Deep Residual Network), DNC(Differentiable Neural Computer), NTM(Neural Turning Machine), CN(Capsule Network), KN(Kohonen Network) 및 AN(Attention Network)를 포함할 수 있다.Neural networks may include deep neural networks. Neural networks include CNN (Convolutional Neural Network), RNN (Recurrent Neural Network), perceptron, multilayer perceptron, FF (Feed Forward), RBF (Radial Basis Network), DFF (Deep Feed Forward), and LSTM. (Long Short Term Memory), GRU (Gated Recurrent Unit), AE (Auto Encoder), VAE (Variational Auto Encoder), DAE (Denoising Auto Encoder), SAE (Sparse Auto Encoder), MC (Markov Chain), HN (Hopfield) Network), BM (Boltzmann Machine), RBM (Restricted Boltzmann Machine), DBN (Depp Belief Network), DCN (Deep Convolutional Network), DN (Deconvolutional Network), DCIGN (Deep Convolutional Inverse Graphics Network), GAN (Generative Adversarial Network) ), Liquid State Machine (LSM), Extreme Learning Machine (ELM), Echo State Network (ESN), Deep Residual Network (DRN), Differential Neural Computer (DNC), Neural Turning Machine (NTM), Capsule Network (CN), It may include Kohonen Network (KN) and Attention Network (AN).

이상 검출 장치(10)는 마더보드(motherboard)와 같은 인쇄 회로 기판(printed circuit board(PCB)), 집적 회로(integrated circuit(IC)), 또는 SoC(system on chip)로 구현될 수 있다. 예를 들어, 이상 검출 장치(10)는 애플리케이션 프로세서(application processor)로 구현될 수 있다.The abnormality detection device 10 may be implemented with a printed circuit board (PCB) such as a motherboard, an integrated circuit (IC), or a system on chip (SoC). For example, the abnormality detection device 10 may be implemented as an application processor.

또한, 이상 검출 장치(10)는 PC(personal computer), 데이터 서버, 또는 휴대용 장치 내에 구현될 수 있다.Additionally, the abnormality detection device 10 may be implemented in a personal computer (PC), a data server, or a portable device.

휴대용 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), e-북(e-book), 또는 스마트 디바이스(smart device)로 구현될 수 있다. 스마트 디바이스는 스마트 와치(smart watch), 스마트 밴드(smart band), 또는 스마트 링(smart ring)으로 구현될 수 있다.Portable devices include laptop computers, mobile phones, smart phones, tablet PCs, mobile internet devices (MIDs), personal digital assistants (PDAs), and enterprise digital assistants (EDAs). , digital still camera, digital video camera, portable multimedia player (PMP), personal navigation device or portable navigation device (PND), handheld game console, e-book ( It can be implemented as an e-book) or a smart device. A smart device may be implemented as a smart watch, smart band, or smart ring.

이상 검출 장치(10)는 수신기(100) 및 프로세서(200)를 포함한다. 이상 검출 장치(10)는 메모리(300)를 더 포함할 수 있다.The abnormality detection device 10 includes a receiver 100 and a processor 200. The abnormality detection device 10 may further include a memory 300.

수신기(100)는 데이터를 수신할 수 있다. 수신기(100)는 외부 또는 메모리(300)로부터 데이터를 수신할 수 있다. 수신기(100)는 수신 인터페이스를 포함할 수 있다. 수신기(100)는 수신한 이미지를 프로세서(200)로 출력할 수 있다.Receiver 100 can receive data. The receiver 100 may receive data from the outside or the memory 300. Receiver 100 may include a receiving interface. The receiver 100 may output the received image to the processor 200.

프로세서(200)는 메모리(300)에 저장된 데이터를 처리할 수 있다. 프로세서(200)는 메모리(300)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(200)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.The processor 200 may process data stored in the memory 300. The processor 200 may execute computer-readable code (eg, software) stored in the memory 300 and instructions triggered by the processor 200 .

"프로세서(200)"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.The “processor 200” may be a data processing device implemented in hardware that has a circuit with a physical structure for executing desired operations. For example, the intended operations may include code or instructions included in the program.

예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.For example, data processing devices implemented in hardware include microprocessors, central processing units, processor cores, multi-core processors, and multiprocessors. , ASIC (Application-Specific Integrated Circuit), and FPGA (Field Programmable Gate Array).

프로세서(200)는 데이터의 분포에 기초하여 데이터를 복수의 그룹(group) 중어느 하나로 분류함으로써 데이터에 대응하는 그룹 레이블(label)을 획득할 수 있다. 그룹 레이블을 획득하는 과정은 도 3을 참조하여 자세하게 설명한다.The processor 200 may obtain a group label corresponding to the data by classifying the data into one of a plurality of groups based on the distribution of the data. The process of obtaining a group label will be described in detail with reference to FIG. 3.

프로세서(200)는 각각의 그룹에 할당된 데이터들을 저차원(low dimension) 데이터로 변환함으로써 복수의 특징을 추출할 수 있다.The processor 200 can extract a plurality of features by converting data assigned to each group into low-dimensional data.

프로세서(200)는 복수의 특징들에 기초하여 복수의 OOD(Out Of Distribution) 점수를 계산할 수 있다.The processor 200 may calculate a plurality of Out Of Distribution (OOD) scores based on a plurality of characteristics.

프로세서(200)는 복수의 그룹 각각에 할당된 특징을 정규(normal) 클래스 및 기타(others) 클래스로 분류할 수 있다. 프로세서(200)는 클래스 분류 결과에서, 기타 클래스의 비율에 기초하여 OOD 점수를 계산할 수 있다.The processor 200 may classify features assigned to each of the plurality of groups into normal classes and others classes. The processor 200 may calculate the OOD score based on the ratio of other classes in the class classification results.

프로세서(200)는 복수의 OOD 점수에 기초하여 데이터의 정상 여부를 검출할 수 있다. 프로세서(200)는 복수의 OOD 점수에 기초하여 어텐션(attention) 연산을 수행할 수 있다.The processor 200 may detect whether data is normal based on a plurality of OOD scores. The processor 200 may perform an attention operation based on a plurality of OOD scores.

프로세서(200)는 복수의 OOD 점수를 연결(concatenate)함으로써 OOD 벡터를 생성할 수 있다. 프로세서(200)는 OOD 벡터에 어텐션 연산을 수행할 수 있다.The processor 200 may generate an OOD vector by concatenating a plurality of OOD scores. The processor 200 may perform an attention operation on the OOD vector.

프로세서(200)는 데이터를 오토 인코더(auto encoder)에 입력함으로써 오토 인코딩 출력을 생성할 수 있다. 프로세서(200)는 데이터에 인코딩(encoding)을 수행함으로써 인코딩된 데이터를 생성할 수 있다. 프로세서(200)는 인코딩된 데이터로부터 잠재 특징(latent feature)를 추출할 수 있다. 프로세서(200)는 잠재 특징에 디코딩(decoding)을 수행함으로써 오토 인코딩 출력을 생성할 수 있다.The processor 200 may generate an auto-encoding output by inputting data into an auto encoder. Processor 200 is Encoded data can be created by performing encoding on the data. The processor 200 may extract latent features from encoded data. The processor 200 may generate an auto-encoding output by performing decoding on latent features.

프로세서(200)는 어텐션 연산의 결과 및 오토 인코딩 출력에 기초하여 데이터의 정상 여부를 검출할 수 있다. 프로세서(200)는 어텐션 연산의 결과와 오토 인코딩 출력을 곱함으로써 곱셈 결과를 생성할 수 있다. 프로세서(200)는 입력 데이터와 곱셈 결과의 차이에 기초하여 평균 제곱 오차 손실(mean squared error loss)을 계산할 수 있다. 프로세서(200)는 평균 제곱 오차 손실에 기초하여 데이터의 정상 여부를 검출할 수 있다.The processor 200 can detect whether the data is normal based on the result of the attention operation and the auto-encoding output. The processor 200 may generate a multiplication result by multiplying the result of the attention operation and the auto-encoding output. The processor 200 may calculate a mean squared error loss based on the difference between the input data and the multiplication result. The processor 200 may detect whether the data is normal based on the mean square error loss.

메모리(300)는 프로세서(200)에 의해 실행가능한 인스트럭션들(또는 프로그램)을 저장할 수 있다. 예를 들어, 인스트럭션들은 프로세서의 동작 및/또는 프로세서의 각 구성의 동작을 실행하기 위한 인스트럭션들을 포함할 수 있다.The memory 300 may store instructions (or programs) executable by the processor 200. For example, the instructions may include instructions for executing the operation of the processor and/or the operation of each component of the processor.

메모리(300)는 휘발성 메모리 장치 또는 비휘발성 메모리 장치로 구현될 수 있다.The memory 300 may be implemented as a volatile memory device or a non-volatile memory device.

휘발성 메모리 장치는 DRAM(dynamic random access memory), SRAM(static random access memory), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)으로 구현될 수 있다.Volatile memory devices may be implemented as dynamic random access memory (DRAM), static random access memory (SRAM), thyristor RAM (T-RAM), zero capacitor RAM (Z-RAM), or twin transistor RAM (TTRAM).

비휘발성 메모리 장치는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque(STT)-MRAM), Conductive Bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM(RRAM)), 나노 튜브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM(PoRAM)), 나노 부유 게이트 메모리(Nano Floating Gate Memory(NFGM)), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자(Molecular Electronic Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.Non-volatile memory devices include EEPROM (Electrically Erasable Programmable Read-Only Memory), flash memory, MRAM (Magnetic RAM), Spin-Transfer Torque (STT)-MRAM (MRAM), and Conductive Bridging RAM (CBRAM). , FeRAM (Ferroelectric RAM), PRAM (Phase change RAM), Resistive RAM (RRAM), Nanotube RRAM (Nanotube RRAM), Polymer RAM (PoRAM), Nano Floating Gate Memory (NFGM), holographic memory, molecular electronic memory device, or insulation resistance change memory.

도 2는 도 1에 도시된 이상 검출 장치의 구현의 예를 나타낸다.Figure 2 shows an example of implementation of the anomaly detection device shown in Figure 1.

도 2를 참조하면, 프로세서(예: 도 1의 프로세서(200))는 클래스 OOD 모듈(220), 오토 인코더(230), 어텐션 연산기(240), 곱셈기(250) 및 MSE 연산기(260)를 포함할 수 있다.Referring to Figure 2, the processor (e.g., processor 200 in Figure 1) includes a class OOD module 220, an auto encoder 230, an attention operator 240, a multiplier 250, and an MSE operator 260. can do.

클래스 OOD 모듈(220)은 K 평균 클러스터링 연산기(221), 복수의 PCA(Principal Component Analysis) 연산기(222-1, 222-2, 222-3), 복수의 인코더(223-1, 223-2, 223-3), OOD 검출기(226) 및 연결기(concatenator)(227)를 포함할 수 있다.The class OOD module 220 includes a K-means clustering operator 221, a plurality of PCA (Principal Component Analysis) operators (222-1, 222-2, 222-3), and a plurality of encoders (223-1, 223-2, 223-3), an OOD detector 226, and a concatenator 227.

도 2의 예시는 클러스터링을 통한 그룹이 3 개인 경우를 예로 들어 설명하고 있지만, 입력 데이터(210)의 분포에 따라 그룹의 수는 3개 보다 작거나 클 수 있다. 마찬가지로, PCA 연산기의 수 및 인코더의 수도 그룹에 수에 대응되도록 감소하거나 증가할 수 있다.The example in FIG. 2 illustrates the case where there are three groups through clustering, but the number of groups may be smaller or larger than three depending on the distribution of the input data 210. Likewise, the number of PCA operators and the number of encoders can be decreased or increased to correspond to the number of groups.

프로세서(200)는 클래스 OOD 모듈(220)을 통해 입력되는 입력 데이터(210)의 모든 샘플의 OOD 점수를 계산할 수 있다. 프로세서(200)는 계산한 OOD 점수를 오토 인코더(230)를 통해 복원한 데이터(예: x')에 가중치로 부여함으로써 정상 샘플의 오차를 최소화하고 비정상 샘플의 오차는 최대화할 수 있다.The processor 200 may calculate OOD scores of all samples of the input data 210 input through the class OOD module 220. The processor 200 can minimize the error of normal samples and maximize the error of abnormal samples by assigning the calculated OOD score as a weight to the data (e.g., x') restored through the auto encoder 230.

K 평균 클러스터링 연산기(221)는 입력 데이터(210)에 대하여 클러스터링을 수행할 수 있다. K 평균 클러스터링 연산기(221) 복수의 클러스터 각각과 데이터와의 거리 차이의 분산을 최소화하도록 클러스터링을 수행할 수 있다. K 평균 클러스터링 연산기(221)는 반복적으로 각각의 클러스터의 중심(centroid)를 무작위로 지정하고, 중심과 데이터와의 거리 차이를 계산한 후에 데이터를 특정 클러스터에 할당할 수 있다. K 평균 클러스터링 연산기(221)는 모든 데이터의 클러스터가 변하지 않을 때까지 클러스터링 동작을 반복 수행할 수 있다.The K-means clustering operator 221 may perform clustering on the input data 210. K-means clustering operator 221 can perform clustering to minimize the variance of the distance difference between each of the plurality of clusters and the data. The K-means clustering operator 221 can repeatedly randomly designate the centroid of each cluster, calculate the distance difference between the centroid and the data, and then assign the data to a specific cluster. The K-means clustering operator 221 can repeatedly perform the clustering operation until the clusters of all data remain unchanged.

K 평균 클러스터링 연산기(221)는 정상 데이터에 기반한 사전 클러스터링 학습을 통해 정상 데이터에 대응하는 복수의 그룹을 생성할 수 있다. K 평균 클러스터링 연산기(221)는 정상 데이터의 분포에 기초하여 결정된 복수의 그룹 중 입력 데이터에 대응되는 그룹에 해당하는 그룹 레이블(label)을 획득할 수 있다. 예를 들어, K 평균 클러스터링 연산기(221)는 정상 데이터에 기초하여 생성된 3개의 그룹 중 입력된 데이터 xi 에 가장 가까운 그룹(예를 들어, 2번째 그룹)을 예측함으로써, 입력 데이터에 대응되는 그룹 레이블(예를 들어, yi = 2)을 획득할 수 있다.The K-means clustering operator 221 can generate a plurality of groups corresponding to normal data through pre-clustering learning based on normal data. The K-means clustering operator 221 may obtain a group label corresponding to the group corresponding to the input data among the plurality of groups determined based on the distribution of normal data. For example, the K-means clustering operator 221 predicts the group (e.g., the second group) closest to the input data x i among the three groups generated based on normal data, thereby predicting the group corresponding to the input data. A group label (e.g., y i = 2) can be obtained.

복수의 PCA 연산기(222-1, 222-2, 222-3)는 입력된 데이터들을 저차원(low dimension) 데이터로 변환함으로써 복수의 특징을 추출할 수 있다. K 평균 클러스터링 연산기(221)의 출력은 고차원 데이터(예를 들어, HSIs의 경우 약 200여개의 파장 밴드에 대응되는 200여개의 특징 데이터)로 구성될 수 있다. 복수의 PCA 연산기(222-1, 222-2, 222-3)는 입력된 데이터를 저차원 데이터로 변환(예를 들어, 200여개의 특징 데이터를 100여개의 특징 데이터로 변환)할 수 있다. 복수의 PCA 연산기(222-1, 222-2, 222-3)는 데이터의 분산이 최대화되는 성분을 획득하여 표본의 차이를 잘 드러낼 수 있는 성분으로 분해할 수 있다. 예를 들어, 복수의 PCA 연산기(222-1, 222-2, 222-3)는 각각의 그룹에 포함된 HSIs 파장 밴드에 대응되는 224 차원 데이터의 분산이 최대화되는 성분을 획득하여 112 차원으로 축소시킬 수 있다.The plurality of PCA operators 222-1, 222-2, and 222-3 can extract a plurality of features by converting the input data into low-dimensional data. The output of the K-means clustering operator 221 may consist of high-dimensional data (for example, in the case of HSIs, about 200 feature data corresponding to about 200 wavelength bands). A plurality of PCA operators 222-1, 222-2, and 222-3 may convert input data into low-dimensional data (for example, convert about 200 feature data into about 100 feature data). A plurality of PCA operators 222-1, 222-2, and 222-3 can obtain components that maximize the variance of the data and decompose them into components that can well reveal sample differences. For example, the plurality of PCA operators 222-1, 222-2, and 222-3 acquire the component that maximizes the variance of the 224-dimensional data corresponding to the HSIs wavelength band included in each group and reduce it to 112 dimensions. You can do it.

복수의 인코더(223-1, 223-2, 223-3)는 할당된 복수의 특징에 기초하여 복수의 그룹에 대응하는 복수의 OOD(Out Of Distribution) 점수를 계산할 수 있다.A plurality of encoders 223-1, 223-2, and 223-3 may calculate a plurality of Out Of Distribution (OOD) scores corresponding to a plurality of groups based on a plurality of assigned features.

복수의 인코더(223-1, 223-2, 223-3)는 복수의 그룹에 할당된 각각의 특징을 정규(normal) 클래스(225-1, 225-2, 225-3) 및 기타(others) 클래스(224-1, 224-2, 224-3)로 분류하도록 미리 학습될 수 있다.A plurality of encoders (223-1, 223-2, 223-3) classify each feature assigned to a plurality of groups into normal classes (225-1, 225-2, 225-3) and others. It can be learned in advance to classify into classes (224-1, 224-2, 224-3).

OOD 데이터는 학습 데이터에 포함되지 않은 클래스를 갖는 데이터를 의미할 수 있다. 복수의 인코더(223-1, 223-2, 223-3)는 대응되는 그룹에 할당된 특징을 정규 클래스(225-1, 225-2, 225-3) 및 기타 클래스(224-1, 224-2, 224-3)로 분류할 수 있으며, 분류 결과를 통해 뉴럴 네트워크 학습에 사용되지 않는 데이터가 OOD 데이터로 결정될 수 있다. 복수의 인코더(223-1, 223-2, 223-3)의 동작을 통해 뉴럴 네트워크를 학습하는데 사용한 학습 데이터와 상이한 분포를 갖는 데이터를 OOD 데이터로 정의될 수 있고, 학습 데이터는 분포 내(in-distribution) 데이터로 정의할 수 있다.OOD data may refer to data having classes that are not included in the training data. A plurality of encoders (223-1, 223-2, 223-3) divide features assigned to corresponding groups into regular classes (225-1, 225-2, 225-3) and other classes (224-1, 224- 2, 224-3), and through the classification results, data not used for neural network learning can be determined as OOD data. Data having a different distribution from the training data used to learn the neural network through the operation of a plurality of encoders 223-1, 223-2, and 223-3 may be defined as OOD data, and the training data is within the distribution (in -distribution) can be defined as data.

OOD 검출기(226)는 기타 클래스의 비율에 기초하여 OOD 점수를 계산할 수 있다.OOD detector 226 may calculate the OOD score based on the proportion of other classes.

연결기(227)는 복수의 OOD 점수를 연결(concatenate)함으로써 OOD 벡터를 생성할 수 있다. 어텐션 연산기(240)는 OOD 벡터에 어텐션 연산을 수행할 수 있다.The connector 227 can generate an OOD vector by concatenating a plurality of OOD scores. The attention operator 240 can perform attention calculation on the OOD vector.

프로세서(200)는 복수의 OOD 점수에 기초하여 데이터의 정상 여부를 검출할 수 있다. 어텐션 연산기(240)는 복수의 OOD 점수에 기초하여 어텐션(attention) 연산을 수행할 수 있다.The processor 200 may detect whether data is normal based on a plurality of OOD scores. The attention calculator 240 may perform attention calculation based on a plurality of OOD scores.

오토 인코더(230)는 입력 데이터(210)(또는, 데이터)에 인코딩 및 디코딩을 수행함으로써 오토 인코딩 출력을 생성할 수 있다. 인코더(231)는 데이터에 인코딩(encoding)을 수행함으로써 인코딩된 데이터를 생성할 수 있다. 인코더(231)는 인코딩된 데이터로부터 잠재 특징(latent feature)를 추출할 수 있다. 디코더(233)는 잠재 특징에 디코딩(decoding)을 수행함으로써 오토 인코딩 출력을 생성할 수 있다.The auto encoder 230 may generate an auto encoding output by performing encoding and decoding on the input data 210 (or data). The encoder 231 may generate encoded data by performing encoding on the data. The encoder 231 may extract latent features from encoded data. The decoder 233 may generate an auto-encoding output by performing decoding on the latent features.

MSE 연산기(260)는 어텐션 연산의 결과 및 오토 인코딩 출력에 기초하여 데이터의 정상 여부를 검출할 수 있다. 곱셈기(250)는 어텐션 연산의 결과와 오토 인코딩 출력을 곱함으로써 곱셈 결과를 생성할 수 있다. The MSE operator 260 can detect whether the data is normal based on the result of the attention operation and the auto-encoding output. The multiplier 250 may generate a multiplication result by multiplying the result of the attention operation and the auto-encoding output.

MSE 연산기(260)는 데이터(x)와 곱셈 결과(x'')의 차이에 기초하여 평균 제곱 오차 손실(mean squared error loss)을 계산할 수 있다. MSE 연산기(260)는 평균 제곱 오차 손실에 기초하여 데이터의 정상 여부를 검출할 수 있다.The MSE operator 260 may calculate the mean squared error loss based on the difference between the data (x) and the multiplication result (x''). The MSE operator 260 can detect whether the data is normal based on the mean square error loss.

도 3은 데이터로부터 특징을 추출하는 과정을 나타낸다.Figure 3 shows the process of extracting features from data.

도 3을 참조하면, k 평균 클러스터링 연산기(310)(예: 도 2의 k 평균 클러스터링 연산기(221))는 k 평균 클러스터링을 수행할 수 있다. 상술한 바와 같이 도 3의 예시는 정상 데이터를 통해 결정된 클러스터가 3개인 경우를 예로 들어 설명하지만, 클러스터의 수는 실시예에 따라 상이할 수 있다.Referring to FIG. 3, the k-means clustering operator 310 (e.g., the k-means clustering operator 221 in FIG. 2) can perform k-means clustering. As described above, the example of FIG. 3 illustrates the case where there are three clusters determined through normal data, but the number of clusters may vary depending on the embodiment.

k 평균 클러스터링 연산기(310)는 데이터의 분포에 기초하여 입력데이터를 복수의 그룹(group) 중 어느 하나로 분류함으로써, 입력 데이터 xi(i는 입력 데이터 식별 번호)에 대응하는 그룹 레이블(label) yi을 획득할 수 있다. k 평균 클러스터링 연산기(310)는 정상 데이터를 이용하여 클러스터링 학습을 통해 스도 레이블링(pseudo labeling)을 수행함으로써, 입력 데이터에 대응하는 그룹 레이블을 추출할 수 있다. 예를 들어, 클러스터링의 수가 3인 경우, k 평균 클러스터링 연산기(310)는 정상 데이터를 3 개의 그룹으로 분류할 수 있다. 복수의 그룹 레이블은 k 평균 클러스터링 연산기(310)의 입력 데이터에 대한 출력으로, yi={1,2,3}와 같이 나타낼 수 있다. 예를 들어, 입력 데이터 xi가 3번째 그룹에 대응하는 것으로 예측되는 경우, 그룹 레이블 yi는 3으로 출력될 수 있다.The k-mean clustering operator 310 classifies the input data into one of a plurality of groups based on the distribution of the data, thereby creating a group label y corresponding to the input data x i (i is the input data identification number). i can be obtained. The k-means clustering operator 310 can extract group labels corresponding to input data by performing pseudo labeling through clustering learning using normal data. For example, if the number of clustering is 3, the k-mean clustering operator 310 can classify normal data into 3 groups. A plurality of group labels are the output of the input data of the k-means clustering operator 310 and can be expressed as yi={1,2,3}. For example, if input data x i is predicted to correspond to the 3rd group, the group label y i may be output as 3.

k 평균 클러스터링 연산기(310)는 입력 데이터 xi와 각각의 클러스터의 중심(c1, c2, c3)과의 거리를 계산하여 xi에 가중치를 할당할 수 있다. k 평균 클러스터링 연산기(310)는 예시적으로 입력 데이터 xi가 HSIs 데이터인 경우, 수학식 1을 이용하여 거리를 계산할 수 있다.The k-mean clustering operator 310 may assign a weight to x i by calculating the distance between the input data x i and the center (c1, c2, c3) of each cluster. For example, when input data x i is HSIs data, the k-mean clustering operator 310 may calculate the distance using Equation 1.

는 입력 데이터 xi와 클러스터 그룹의 중심 ck 사이의 거리, xi,band는 데이터 xi 중 band에 해당하는 파장에 대응되는 데이터, ck,band는 중심 ck에 해당하는 데이터 중 band에 해당하는 파장에 대응되는 데이터일 수 있다. 수학식 1을 이용하여 계산된 도 3의 d1, d2, d3, dk는 각각 d1 = (xi , c1), d2 = (xi , c2), d3 = (xi , c3), dk = (xi , ck)와 같을 수 있다. is the distance between the input data x i and the center c k of the cluster group , x i,band is the data corresponding to the wavelength corresponding to the band among the data It may be data corresponding to the corresponding wavelength. d1, d2, d3, and dk in FIG. 3 calculated using Equation 1 are respectively d 1 = (x i , c 1 ), d 2 = (x i , c 2 ), d 3 = (x i , c 3 ), d k = (x i , c k ).

복수의 PCA 연산기(330, 350, 370)(예: 도 2의 복수의 PCA 연산기(222-1, 222-2, 222-3))는 입력된 데이터들을 저차원(low dimension) 데이터로 변환함으로써 복수의 특징을 추출할 수 있다.The plurality of PCA operators 330, 350, and 370 (e.g., the plurality of PCA operators 222-1, 222-2, and 222-3 in FIG. 2) convert the input data into low dimension data. Multiple features can be extracted.

복수의 PCA 연산기(330, 350, 370)는 수학식 1을 이용하여 계산한 거리와 데이터의 곱에 대한 저차원 변환을 통해 복수의 특징들(xi pca_1, xi pca_2 , xi pca_3 을 수학식 2에 기초하여 추출할 수 있다. A plurality of PCA operators 330, 350, and 370 calculate a plurality of features (x i pca_1 , x i pca_2 , x i pca_3 ) through low-dimensional transformation of the product of the distance and data calculated using Equation 1. Can be extracted based on Equation 2.

xi pca_k는 입력 xi로부터 k번째 그룹과 관련하여 추출된 특징이고, PCAk는 k번째 그룹에 대응하는 PCA 연산기의 연산 결과를 의미할 수 있다. x i pca_k is a feature extracted from input x i in relation to the kth group, and PCA k may mean the operation result of the PCA operator corresponding to the kth group.

도 3의 예시에서, 복수의 PCA 연산기(330, 350, 370)는 PCA를 통해 224개(Hyperspectral Image에 포함되는 파장 밴드의 개수)의 특징들로부터 112개의 특징을 추출할 수 있다.In the example of FIG. 3, the plurality of PCA operators 330, 350, and 370 can extract 112 features from 224 features (the number of wavelength bands included in the hyperspectral image) through PCA.

도 4는 OOD 점수를 계산하는 과정을 나타낸다.Figure 4 shows the process of calculating OOD scores.

도 4를 참조하면, 프로세서(예: 도 1의 프로세서(200))는 복수의 특징에 기초하여 복수의 그룹에 각각에 대응하는 복수의 OOD 점수를 계산할 수 있다.Referring to FIG. 4, a processor (e.g., processor 200 of FIG. 1) may calculate a plurality of OOD scores corresponding to each of a plurality of groups based on a plurality of characteristics.

프로세서(200)는 OOD 점수를 계산하기 위해 k 평균 클러스터링을 통해 추출한 그룹 레이블 및 PCA 연산기로부터 추출된 특징을 이용하여 복수의 인코더(411, 421, 431)를 학습시킬 수 있다.The processor 200 may train a plurality of encoders 411, 421, and 431 using group labels extracted through k-means clustering and features extracted from a PCA operator to calculate the OOD score.

프로세서(200)는 크로스 엔트로피 손실에 기초하여 복수의 인코더(411, 421, 431)가 입력 데이터의 OOD 점수를 출력하도록 학습시킬 수 있다. 예를 들어, 복수의 인코더(411, 421, 431)는 입력된 복수의 특징(xi pca_1, xi pca_2 , xi pca_3 각각이 정규 클래스에 해당할 확률 및 기타 클래스에 해당할 확률 각각을 OOD 점수로써 출력하도록 학습될 수 있다. 크로스 엔트로피 손실 은 수학식 3과 같을 수 있다.The processor 200 may train the plurality of encoders 411, 421, and 431 to output OOD scores of input data based on cross entropy loss. For example, a plurality of encoders 411, 421, and 431 may use a plurality of input features (x i pca_1 , x i pca_2 , x i pca_3 Each can be learned to output the probability of corresponding to a regular class and the probability of corresponding to other classes as OOD scores. Cross entropy loss may be the same as Equation 3.

여기서, c는 정규 클래스( c = 1) 및 기타 클래스(c = 0)를 포함하는 개별 클래스를 의미하고, k는 각각의 그룹을 지칭할 수 있다. 는 그룹 레이블 yi을 k번째 그룹과 관련하여 0과 1로 표현한 벡터 집합이고, xi pca_k는 학습 데이터 xi(i는 각각의 학습 데이터를 식별하는 식별 번호)에 대응하여 그룹 k에 대해 생성된 특징을 의미하고, N은 학습 데이터의 총 개수를 의미할 수 있다. 벡터 집합 의 0번째 값은 학습 데이터 xi에 대해 추출된 그룹 레이블 yi가 k번째 그룹의 기타 클래스에 해당하는지 여부를 나타내는 값(기타 클래스인 경우 1, 정상 클래스인 경우 0)이고, 1번째 값은 추출된 그룹 레이블 yi가 k번째 그룹의 정상 클래스에 해당하는지 여부를 나타내는 값(기타 클래스인 경우 0, 정상 클래스인 경우 1)일 수 있다. 예를 들어, 은 그룹 1에 속하는 벡터 집합을 의미하며, 학습 데이터 x1이 그룹 1에 포함되는 것으로 예측되어 추출된 그룹 레이블 y1의 경우, 벡터 집합 는 [0,1]로 결정되고, , 는 각각 [1, 0] 및 [1,0]으로 결정될 수 있다.Here, c refers to individual classes including regular classes (c = 1) and other classes (c = 0), and k may refer to each group. is a set of vectors representing the group label y i as 0 and 1 with respect to the kth group, and x i pca_k is generated for group k in response to the training data x i (i is an identification number that identifies each training data) refers to the selected features, and N may refer to the total number of learning data. Vector set The 0th value of is a value indicating whether the group label y i extracted for the training data x i corresponds to other classes of the kth group (1 for other classes, 0 for normal classes), and the 1st value is It may be a value indicating whether the extracted group label y i corresponds to the normal class of the kth group (0 for other classes, 1 for normal classes). for example, means a set of vectors belonging to group 1, and in the case of the group label y 1 extracted because the training data x 1 is predicted to be included in group 1, the vector set is determined as [0,1], , can be determined as [1, 0] and [1,0], respectively.

프로세서(200)는 를 수학식 4와 같이 계산할 수 있다.Processor 200 is can be calculated as in Equation 4.

여기서, 는 그룹 k의 인코더가 클래스 c에 대응하여 출력하는 출력값을 의미하고, c'는 정규 클래스( c' = 1) 및 기타 클래스(c' = 0)를 포함하는 개별 클래스를 의미할 수 있다. 예를 들어, 는 그룹 1의 인코더가 입력 데이터에 대응하여 기타 클래스(c'=0)에 대해 출력하는 출력값이고, 는 그룹 1의 인코더가 입력 데이터에 대응하여 정규 클래스(c'=1)에 대해 출력하는 출력값일 수 있다.here, means the output value output by the encoder of group k in response to class c, and c' may mean an individual class including a regular class (c' = 1) and other classes (c' = 0). for example, is the output value output by the encoder of group 1 for other classes (c'=0) in response to the input data, May be an output value output by the encoder of group 1 for the regular class (c'=1) in response to input data.

도 4의 예시의 그룹 레이블 및 클래스는 표 1과 같이 나타낼 수 있다. 표 1에 나타난 바와 같이 입력 데이터(학습 과정에서는 학습 데이터) xi에 대응하는 그룹 레이블 y1을 통해 예측 결과(k 평균 클러스터링 연산기를 통해 입력 데이터 xi가 속하는 클러스터에 대한 예측)가 1인 경우, 입력 데이터 xi가 그룹 1의 정규 클래스에 속하고, 나머지 그룹 2, 3에서는 기타 클래스에 속할 수 있다.The group labels and classes of the example in FIG. 4 can be represented as Table 1. As shown in Table 1, when the prediction result (prediction about the cluster to which the input data x i belongs through the k-means clustering operator) through the group label y 1 corresponding to the input data (training data in the learning process) x i is 1. , the input data x i may belong to the regular class in group 1, and may belong to other classes in the remaining groups 2 and 3.

yi y i 예측prediction 클래스 1class 1 클래스 2class 2 클래스 3class 3 One-hot encodingOne-hot encoding y1 y 1 1One 1One 00 00 [1,0,0][1,0,0] [0,1][0,1] [1,0][1,0] [1,0][1,0] y2 y 2 22 00 1One 00 [0,1,0][0,1,0] [1,0][1,0] [0,1][0,1] [1,0][1,0] y3 y 3 33 00 00 1One [0,0,1][0,0,1] [1,0][1,0] [1,0][1,0] [0,1][0,1]

복수의 그룹(410, 420, 430)에 포함된 복수의 인코더(411, 421, 431)는 가중치(weight) 또는 파라미터(parameter)를 공유할 수 있다.A plurality of encoders 411, 421, and 431 included in a plurality of groups 410, 420, and 430 may share weights or parameters.

인코더(411)는 그룹 1(410)로 입력된 데이터(xi pca_1)를 기타 클래스(413) 및 정규 클래스(415)로 분류할 수 있다. 인코더(421)는 그룹 2(420)로 입력된 데이터(xi pca_2)를 기타 클래스(423) 및 정규 클래스(425)로 분류할 수 있다. 인코더(431)는 그룹 3(430)로 입력된 데이터(xi pca_3)를 기타 클래스(433) 및 정규 클래스(435)로 분류할 수 있다. 예를 들어, 인코더(411, 421, 431)은 입력된 데이터(특징)이 기타 클래스 또는 정규 클래스에 포함될 확률을 출력하도록 미리 학습될 수 있다.The encoder 411 may classify data (x i pca_1 ) input into group 1 410 into other classes 413 and regular classes 415. The encoder 421 may classify data (x i pca_2 ) input into group 2 420 into other classes 423 and regular classes 425. The encoder 431 may classify data (x i pca_3 ) input into group 3 (430) into other classes (433) and regular classes (435). For example, the encoders 411, 421, and 431 may be trained in advance to output the probability that the input data (features) will be included in other classes or regular classes.

OOD 검출기는 입력된 데이터로부터 도출되는 그룹별 클래스 중에서 기타 클래스만을 추출하여, 기타 클래스의 비율에 기초하여 OOD 점수를 계산할 수 있다. 도 4의 예시에서, 복수의 그룹(410, 420, 430)에 대응하는 OOD 점수는 각각 0.27, 0.7, 0.15일 수 있다.The OOD detector can extract only the other classes from the group classes derived from the input data and calculate the OOD score based on the ratio of the other classes. In the example of FIG. 4, OOD scores corresponding to the plurality of groups 410, 420, and 430 may be 0.27, 0.7, and 0.15, respectively.

연결기(440)는 OOD 점수를 연결함으로써 OOD 벡터 를 생성할 수 있다. 도 4의 예시에서, OOD 벡터는 [027, 0.7, 0.15]일 수 있다.Connector 440 connects the OOD scores to the OOD vector can be created. In the example of Figure 4, the OOD vector may be [027, 0.7, 0.15].

도 5는 학습 및 검출 과정을 설명하기 위한 도면이다.Figure 5 is a diagram for explaining the learning and detection process.

도 5를 참조하면, 클래스 OOD 모듈(520)의 동작은 도 2의 클래스 OOD 모듈(220)의 동작과 동일할 수 있다.Referring to FIG. 5, the operation of the class OOD module 520 may be the same as the operation of the class OOD module 220 of FIG. 2.

어텐션 연산기(540)는 복수의 OOD 점수에 기초하여 어텐션(attention) 연산을 수행할 수 있다. 어텐션 연산기(540)는 OOD 점수에 기초하여 획득된 OOD 벡터 를 이용하여 어텐션(MLP(Multi-Layer Perceptron)) 모델에 입력함으로써 가중치 w를 추출할 수 있다.The attention calculator 540 may perform attention calculation based on a plurality of OOD scores. The attention operator 540 uses the OOD vector obtained based on the OOD score. The weight w can be extracted by inputting it into the attention (MLP (Multi-Layer Perceptron)) model using .

오토 인코더(530)는 입력 데이터(510)(또는, 데이터)에 인코딩 및 디코딩을 수행함으로써 오토 인코딩 출력을 생성할 수 있다. 인코더(531)는 데이터에 인코딩을 수행함으로써 인코딩된 데이터를 생성할 수 있다. The auto encoder 530 may generate an auto encoding output by performing encoding and decoding on the input data 510 (or data). The encoder 531 may generate encoded data by performing encoding on the data.

인코더(531)는 인코딩된 데이터로부터 잠재 특징 추출할 수 있다. 인코더(531)는 입력 데이터(510)를 압축시킬 수 있다. 인코더(531)와 디코더(533)의 중간 지점인 잠재 표현 레이어(latent representation layer)에는 데이터의 핵심 특징이 추출될 수 있다.The encoder 531 can extract latent features from encoded data. The encoder 531 may compress the input data 510. Key features of the data can be extracted from the latent representation layer, which is the midpoint between the encoder 531 and the decoder 533.

디코더(533)는 잠재 특징에 디코딩(decoding)을 수행함으로써 오토 인코딩 출력을 생성할 수 있다. 디코더(533)는 인코딩을 통해 압축된 데이터를 복원시킬 수 있다.The decoder 533 may generate an auto-encoding output by performing decoding on the latent features. The decoder 533 can restore compressed data through encoding.

곱셈기(550)는 어텐션 연산의 결과 w와 오토 인코딩 출력 x'을 곱함으로써 곱셈 결과 x''를 생성할 수 있다. 프로세서(200)는 x''를 이용하여 뉴럴 네트워크(보다 구체적으로, 오토 인코더(530)를 학습시킬 수 있다. The multiplier 550 can generate a multiplication result x'' by multiplying the result w of the attention operation and the auto-encoding output x'. The processor 200 can train a neural network (more specifically, the autoencoder 530) using x''.

MSE 연산기(560)는 어텐션 연산의 결과 및 오토 인코딩 출력에 기초하여 데이터의 정상 여부를 검출할 수 있다. The MSE operator 560 can detect whether the data is normal based on the result of the attention operation and the auto-encoding output.

MSE 연산기(560)는 데이터와 곱셈 결과의 차이에 기초하여 평균 제곱 오차 손실(mean squared error loss)을 계산할 수 있다. MSE 연산기(560)는 평균 제곱 오차 손실에 기초하여 데이터의 정상 여부를 검출할 수 있다.The MSE operator 560 may calculate the mean squared error loss based on the difference between the data and the multiplication result. The MSE operator 560 can detect whether the data is normal based on the mean square error loss.

MSE 연산기(260)가 계산하는 평균 제곱 오차 손실은 수학식 5와 같을 수 있다.The mean square error loss calculated by the MSE operator 260 may be equal to Equation 5.

여기서, , , 일 수 있다.here, , , It can be.

프로세서(200)는 상기 수학식 4를 통해 평균 제곱 오차 손실을 최소화하는 방향으로 가중치를 갱신함으로써 오토 인코더(530)를 학습시킬 수 있다. 학습 과정에서, x는 학습 데이터일 수 있고, x''는 학습 데이터에 대한 앞서 설명된 연산 결과일 수 있다. The processor 200 can train the autoencoder 530 by updating the weights in a direction that minimizes the mean square error loss through Equation 4 above. In the learning process, x may be learning data, and x'' may be the result of the previously described operation on the learning data.

프로세서(200)는 MSE 연산기(260)를 통해 수학식 6과 같이 이상 점수(anomaly score)를 계산함으로써 데이터의 이상을 검출할 수 있다. 수학식에서 bands는 파장 밴드의 개수를 의미할 수 있다.The processor 200 can detect anomalies in data by calculating an anomaly score as shown in Equation 6 through the MSE operator 260. In the equation, bands may mean the number of wavelength bands.

예를 들어, 프로세서(200)는 이상 점수가 소정의 임계치를 초과하는지 여부에 기초하여 데이터의 이상을 검출할 수 있다. For example, the processor 200 may detect an abnormality in data based on whether the abnormality score exceeds a predetermined threshold.

도 6은 도 1에 도시된 이상 검출 장치의 동작의 흐름도를 나타낸다.FIG. 6 shows a flowchart of the operation of the abnormality detection device shown in FIG. 1.

도 6을 참조하면, 수신기(예: 도 1의 수신기(100))는 데이터를 수신할 수 있다(610).Referring to FIG. 6, a receiver (eg, receiver 100 of FIG. 1) may receive data (610).

프로세서(예: 도 1의 프로세서(200))는 정상 데이터에 대해 미리 설정된 그룹과 데이터 사이의 거리에 기초하여 데이터에 대응하는 복수의 특징을 추출할 수 있다(630). 보다 구체적으로, 프로세서는 데이터의 분포에 기초하여 데이터를 복수의 그룹(group) 중 어느 하나로 분류함으로써 수신한 데이터에 대응하는 그룹 레이블(label)을 획득할 수 있다. 또한, 프로세서(200)는 수신한 데이터들을 저차원(low dimension) 데이터로 변환함으로써 복수의 특징을 추출할 수 있다. 보다 구체적으로, 프로세서(200)는 앞선 도 3에서 설명된 방식에 따라 데이터 xi에 대한 연산 결과(xi*d1, xi*d2, xi*d3)에 대한 저차원 분석을 통해 복수의 특징(xi pca_1, xi pca_2 , xi pca_3)을 추출할 수 있다. A processor (e.g., processor 200 of FIG. 1) may extract a plurality of features corresponding to the data based on the distance between the data and a preset group for normal data (630). More specifically, the processor may obtain a group label corresponding to the received data by classifying the data into one of a plurality of groups based on the distribution of the data. Additionally, the processor 200 can extract a plurality of features by converting the received data into low-dimensional data. More specifically, the processor 200 performs low-dimensional analysis on the operation results (x i* d 1, x i* d 2, x i* d 3 ) for data x i according to the method described in FIG. 3 above. Through this, multiple features (x i pca_1 , x i pca_2 , x i pca_3 ) can be extracted.

프로세서(200)는 앞서 획득한 복수의 특징을 통해 복수의 그룹에 대응하는 복수의 OOD(Out Of Distribution) 점수를 계산할 수 있다(650).The processor 200 may calculate a plurality of Out Of Distribution (OOD) scores corresponding to a plurality of groups through a plurality of previously acquired characteristics (650).

프로세서(200)는 복수의 그룹 각각에 할당된 복수의 특징(xi pca_1, xi pca_2 , xi pca_3)을 정규(normal) 클래스 및 기타(others) 클래스로 분류할 수 있다. 프로세서(200)는 앞서 도 4를 통해 설명된 각각의 그룹에 대응되는 인코더를 통해 복수의 특징(xi pca_1, xi pca_2 , xi pca_3)을 정규 클래스 및 기타 클래스로 분류할 수 있다. 프로세서(200)는 기타 클래스의 비율에 기초하여 OOD 점수를 계산할 수 있다.The processor 200 may classify a plurality of features (x i pca_1 , x i pca_2 , x i pca_3 ) assigned to each of the plurality of groups into a normal class and an others class. The processor 200 may classify a plurality of features (x i pca_1 , x i pca_2 , x i pca_3 ) into regular classes and other classes through encoders corresponding to each group described above with reference to FIG. 4. Processor 200 may calculate the OOD score based on the ratio of other classes.

프로세서(200)는 복수의 OOD 점수에 기초하여 데이터의 정상 여부를 검출할 수 있다(690). 프로세서(200)는 복수의 OOD 점수에 기초하여 어텐션(attention) 연산을 수행할 수 있다.The processor 200 may detect whether data is normal based on a plurality of OOD scores (690). The processor 200 may perform an attention operation based on a plurality of OOD scores.

프로세서(200)는 복수의 OOD 점수를 연결(concatenate)함으로써 OOD 벡터를 생성할 수 있다. 프로세서(200)는 OOD 벡터에 어텐션 연산을 수행할 수 있다.The processor 200 may generate an OOD vector by concatenating a plurality of OOD scores. The processor 200 may perform an attention operation on the OOD vector.

프로세서(200)는 데이터를 오토 인코더(auto encoder)에 입력함으로써 오토 인코딩 출력을 생성할 수 있다. 프로세서(200)는 데이터에 인코딩(encoding)을 수행함으로써 인코딩된 데이터를 생성할 수 있다. 프로세서(200)는 인코딩된 데이터로부터 잠재 특징(latent feature)를 추출할 수 있다. 프로세서(200)는 잠재 특징에 디코딩(decoding)을 수행함으로써 오토 인코딩 출력을 생성할 수 있다.The processor 200 may generate an auto-encoding output by inputting data into an auto encoder. Processor 200 is Encoded data can be created by performing encoding on the data. The processor 200 may extract latent features from encoded data. The processor 200 may generate an auto-encoding output by performing decoding on latent features.

프로세서(200)는 어텐션 연산의 결과 및 오토 인코딩 출력에 기초하여 데이터의 정상 여부를 검출할 수 있다. 프로세서(200)는 어텐션 연산의 결과와 오토 인코딩 출력을 곱함으로써 곱셈 결과를 생성할 수 있다. 프로세서(200)는 데이터와 곱셈 결과의 차이에 기초하여 평균 제곱 오차 손실(mean squared error loss)을 계산할 수 있다. 프로세서(200)는 평균 제곱 오차 손실에 기초하여 데이터의 정상 여부를 검출할 수 있다(670).The processor 200 can detect whether the data is normal based on the result of the attention operation and the auto-encoding output. The processor 200 may generate a multiplication result by multiplying the result of the attention operation and the auto-encoding output. The processor 200 may calculate a mean squared error loss based on the difference between the data and the multiplication result. The processor 200 may detect whether the data is normal based on the mean square error loss (670).

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The device described above may be implemented with hardware components, software components, and/or a combination of hardware components and software components. For example, devices and components described in embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), etc. , may be implemented using one or more general-purpose or special-purpose computers, such as a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. A processing device may execute an operating system (OS) and one or more software applications that run on the operating system. Additionally, a processing device may access, store, manipulate, process, and generate data in response to the execution of software. For ease of understanding, a single processing device may be described as being used; however, those skilled in the art will understand that a processing device includes multiple processing elements and/or multiple types of processing elements. It can be seen that it may include. For example, a processing device may include a plurality of processors or one processor and one controller. Additionally, other processing configurations, such as parallel processors, are possible.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing unit to operate as desired, or may be processed independently or collectively. You can command the device. Software and/or data may be used on any type of machine, component, physical device, virtual equipment, computer storage medium or device to be interpreted by or to provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc., singly or in combination. Program instructions recorded on the medium may be specially designed and configured for the embodiment or may be known and available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -Includes optical media (magneto-optical media) and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, etc. Examples of program instructions include machine language code, such as that produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited examples and drawings, various modifications and variations can be made by those skilled in the art from the above description. For example, the described techniques are performed in a different order than the described method, and/or components of the described system, structure, device, circuit, etc. are combined or combined in a different form than the described method, or other components are used. Alternatively, appropriate results may be achieved even if substituted or substituted by an equivalent.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims also fall within the scope of the claims described below.

Claims (5)

뉴럴 네트워크를 이용한 이상 검출(anomaly detection) 장치에 있어서,
데이터를 수신하는 수신기; 및
정상 데이터에 대해 미리 설정된 그룹과 상기 데이터 사이의 거리에 기초하여 상기 데이터에 대응하는 복수의 특징을 추출하고,
상기 복수의 특징에 기초하여 상기 복수의 그룹에 대응하는 복수의 OOD(Out Of Distribution) 점수를 계산하고,
상기 복수의 OOD 점수에 기초하여 상기 데이터의 정상 여부를 검출하는 프로세서
를 포함하는 이상 검출 장치.
In an anomaly detection device using a neural network,
a receiver that receives data; and
Extracting a plurality of features corresponding to the data based on a distance between the data and a preset group for normal data,
Calculate a plurality of OOD (Out Of Distribution) scores corresponding to the plurality of groups based on the plurality of characteristics,
A processor that detects whether the data is normal based on the plurality of OOD scores
An abnormality detection device comprising a.
제1항에 있어서,
상기 프로세서는,
상기 복수의 OOD 점수에 기초하여 어텐션(attention) 연산을 수행하고,
상기 데이터를 오토 인코더(auto encoder)에 입력함으로써 오토 인코딩 출력을 생성하고,
상기 어텐션 연산의 결과 및 상기 오토 인코딩 출력에 기초하여 상기 데이터의 정상 여부를 검출하는,
이상 검출 장치.
According to paragraph 1,
The processor,
Perform an attention calculation based on the plurality of OOD scores,
Generating an auto-encoding output by inputting the data into an auto encoder,
Detecting whether the data is normal based on the result of the attention operation and the auto-encoding output,
Anomaly detection device.
제1항에 있어서,
상기 프로세서는,
상기 복수의 특징을 정규(normal) 클래스 및 기타(others) 클래스로 분류하고,
상기 기타 클래스의 비율에 기초하여 상기 OOD 점수를 계산하는,
이상 검출 장치.
According to paragraph 1,
The processor,
Classifying the plurality of features into normal classes and others classes,
Calculating the OOD score based on the ratio of the other classes,
Anomaly detection device.
제2항에 있어서,
상기 프로세서는,
상기 어텐션 연산의 결과와 상기 오토 인코딩 출력을 곱함으로써 곱셈 결과를 생성하고,
상기 데이터와 상기 곱셈 결과의 차이에 기초하여 평균 제곱 오차 손실(mean squared error loss)을 계산하고,
상기 평균 제곱 오차 손실에 기초하여 상기 데이터의 정상 여부를 검출하는,
이상 검출 장치.
According to paragraph 2,
The processor,
Generating a multiplication result by multiplying the result of the attention operation and the auto-encoding output,
Calculating a mean squared error loss based on the difference between the data and the multiplication result,
Detecting whether the data is normal based on the mean square error loss,
Anomaly detection device.
뉴럴 네트워크를 이용한 이상 검출(anomaly detection) 방법에 있어서,
데이터를 수신하는 단계;
정상 데이터에 대해 미리 설정된 그룹과 상기 데이터 사이의 거리에 기초하여 상기 데이터에 대응하는 복수의 특징을 추출하는 단계;
상기 복수의 특징에 기초하여 상기 복수의 그룹에 대응하는 복수의 OOD(Out Of Distribution) 점수를 계산하는 단계; 및
상기 복수의 OOD 점수에 기초하여 상기 데이터의 정상 여부를 검출하는 단계
를 포함하는, 이상 검출 방법.
In an anomaly detection method using a neural network,
receiving data;
extracting a plurality of features corresponding to the data based on a distance between the data and a preset group for normal data;
calculating a plurality of OOD (Out Of Distribution) scores corresponding to the plurality of groups based on the plurality of characteristics; and
Detecting whether the data is normal based on the plurality of OOD scores
An abnormality detection method including.
KR1020220059373A 2022-05-16 2022-05-16 Apparatus and method of anomaly detection using neural network KR20230159953A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220059373A KR20230159953A (en) 2022-05-16 2022-05-16 Apparatus and method of anomaly detection using neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220059373A KR20230159953A (en) 2022-05-16 2022-05-16 Apparatus and method of anomaly detection using neural network

Publications (1)

Publication Number Publication Date
KR20230159953A true KR20230159953A (en) 2023-11-23

Family

ID=88974535

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220059373A KR20230159953A (en) 2022-05-16 2022-05-16 Apparatus and method of anomaly detection using neural network

Country Status (1)

Country Link
KR (1) KR20230159953A (en)

Similar Documents

Publication Publication Date Title
AU2019200270B2 (en) Concept mask: large-scale segmentation from semantic concepts
CN110532417B (en) Image retrieval method and device based on depth hash and terminal equipment
Zeng et al. Deep convolutional neural networks for annotating gene expression patterns in the mouse brain
KR102662997B1 (en) Hyperspectral image classification method and appratus using neural network
KR102618916B1 (en) Data classification method and system, and classifier training method and system
JP7536574B2 (en) Computing device, computer system, and computing method
CN114358111A (en) Object clustering model obtaining method, object clustering method and device
CN115795065A (en) Multimedia data cross-modal retrieval method and system based on weighted hash code
Wang et al. Data imputation for detected traffic volume of freeway using regression of multilayer perceptron
Shi et al. Multi‐similarity based hyperrelation network for few‐shot segmentation
Waqas et al. Simultaneous instance pooling and bag representation selection approach for multiple-instance learning (MIL) using vision transformer
Ahmed et al. Spinbayes: Algorithm-hardware co-design for uncertainty estimation using bayesian in-memory approximation on spintronic-based architectures
KR20240064412A (en) Defect detection method and apparatus for performing the same
KR20230159953A (en) Apparatus and method of anomaly detection using neural network
CN114818484B (en) Training method of driving environment model and prediction method of driving environment information
KR20230150150A (en) Apparatus and method for preprocessing hyperspectral image analysis deep learning model
KR20230163183A (en) Anomaly detection method and appratus using neural network
WO2023133055A1 (en) Simplifying convolutional neural networks using aggregated representations of images
Zhang et al. MTSCANet: Multi temporal resolution temporal semantic context aggregation network
Dong et al. An optimization method for pruning rates of each layer in CNN based on the GA-SMSM
Arya et al. Deep Sparse Representation Learning for Multi-class Image Classification
KR102668317B1 (en) System for object recognition using radar signal processing
KR102504412B1 (en) Apparatus and method for fine dust sensor calibration based on machine learning
KR102666670B1 (en) Label prediction method, appratus based neural network and training method for group-labeling-learning using effective embedding vector generation
KR20230085529A (en) Method for classifying multi-label in a partially labeled environment and an apparatus for performing the same