KR101644998B1 - Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법 및 장치 - Google Patents

Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법 및 장치 Download PDF

Info

Publication number
KR101644998B1
KR101644998B1 KR1020150183898A KR20150183898A KR101644998B1 KR 101644998 B1 KR101644998 B1 KR 101644998B1 KR 1020150183898 A KR1020150183898 A KR 1020150183898A KR 20150183898 A KR20150183898 A KR 20150183898A KR 101644998 B1 KR101644998 B1 KR 101644998B1
Authority
KR
South Korea
Prior art keywords
data
perform
input data
fully connected
result
Prior art date
Application number
KR1020150183898A
Other languages
English (en)
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 KR1020150183898A priority Critical patent/KR101644998B1/ko
Application granted granted Critical
Publication of KR101644998B1 publication Critical patent/KR101644998B1/ko

Links

Images

Classifications

    • 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
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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
    • H04L63/1441Countermeasures against malicious traffic

Landscapes

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

Abstract

본 발명의 일 태양에 따르면, Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법에 있어서, (a) 순차적으로 나열된 적어도 하나의 텍스트를 포함하는 입력 데이터가 트레이닝 세트로서 획득되면, 장치가, 상기 입력 데이터를 행렬 형태의 데이터로 변환하거나 변환하도록 지원하는 단계, (b) 상기 장치가, 소정의 개수의 제1 커널(kernel)을 이용하여 상기 변환된 데이터에 대하여 convolution 동작을 수행하거나 수행하도록 지원하는 단계, (c) 상기 장치가, 상기 convolution 동작이 수행된 데이터를 소정의 행렬 형태로 변환하고, 이를 이용하여 신경망 레이어를 생성하는 fully connected 동작을 수행하거나 수행하도록 지원하는 단계, (d) 상기 장치가, 상기 fully connected 동작의 수행결과로서 생성된 행렬 형태의 데이터에 대하여 상기 convolution 동작과 반대로 deconvolution 동작을 수행하거나 수행하도록 지원하는 단계, 및 (e) 상기 장치가, 상기 변환된 입력 데이터와 상기 deconvolution 결과의 차이값을 산출하거나 산출하도록 지원하는 단계를 포함하는 방법이 제공된다.

Description

Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법 및 장치{METHOD AND APPRATUS FOR DETECTING ABNORMAL INPUT DATA USING CONVOLUTIONAL NEURAL NETWORK}
본 발명은, 비정상 입력 데이터를 검출하는 방법 및 장치에 관한 것으로, 좀더 상세하게는, (a) 순차적으로 나열된 적어도 하나의 텍스트를 포함하는 입력 데이터가 트레이닝 세트로서 획득되면, 상기 입력 데이터를 행렬 형태의 데이터로 변환하거나 변환하도록 지원하는 프로세스, (b) 소정의 개수의 제1 커널(kernel)을 이용하여 상기 변환된 데이터에 대하여 convolution 동작을 수행하거나 수행하도록 지원하는 프로세스, (c) 상기 convolution 동작이 수행된 데이터를 소정의 행렬 형태로 변환하고, 이를 이용하여 신경망 레이어를 생성하는 fully connected 동작을 수행하거나 수행하도록 지원하는 프로세스, (d) 상기 fully connected 동작의 수행결과로서 생성된 행렬 형태의 데이터에 대하여 상기 convolution 동작과 반대로 deconvolution 동작을 수행하거나 수행하도록 지원하는 프로세스, 및 (e) 상기 변환된 입력 데이터와 상기 deconvolution 결과의 차이값을 산출하거나 산출하도록 지원하는 프로세스를 수행하는 방법 및 장치에 관한 것이며, 이를 기초로 추후 테스트 세트의 정상 여부를 감지하기 위한 방법 및 장치에 관한 것이다.
머신 러닝(machine learning)은 컴퓨터로 하여금 알고리즘을 기반으로 학습하게 해서 새로운 데이터가 들어왔을 때 데이터의 결과를 예측하도록 하는 기술을 말한다. 최근에는 머신 러닝을 이용하여 네트워크 이상을 감지하거나, 비정상 웹 트래픽을 탐지할 수 있는 기술이 개발되고 있다.
그런데, 기존의 머신러닝을 이용한 비정상 웹 트래픽 탐지 기술은 보안 기술자가 공격데이터를 육안으로 관찰하여 공통적인 특징을 추출한 후, 이를 기존 기계학습 알고리즘을 이용해 모델링하는 방법이었다.
따라서, 인간이 직접 특징을 추출하므로 유의미한 특징을 추출하는 것이 어렵고, 탐지하지 못하는 공격이 존재할 가능성이 높은 한계가 있었다. 또한, 새로운 보안 트렌드 반영을 위해 모델을 업데이트하기 위한 비용이 많이 소모되며, White-box model로서 공격 패턴 분석이 가능하고 이로 인해 우회가 가능한 단점이 존재하였다.
이에 발명자는 Convolutional Neural Network를 이용하여 알고리즘 스스로 대상 데이터의 특징을 학습할 수 있고, 기존의 방법에 비해 좀 더 탁월한 성능을 낼 수 있는 비정상 웹 트래픽 탐지 기술을 발명하기에 이르렀다.
본 발명은 상술한 문제점들을 모두 해결하는 것을 그 목적으로 한다.
또한, 본 발명은 웹 트래픽 탐지 알고리즘이 학습하고 예측하고자 하는 대상 데이터의 특징을 스스로 학습할 수 있어 기존의 방법에 비해 좀 더 유의미한 특징을 추출할 수 있고, 다양한 공격을 탐지할 수 있는 비정상 웹 트래픽 탐지 기술을 제공하는 것을 다른 목적으로 한다.
또한, 본 발명은 새로운 보안 트렌드 반영을 위해 웹 트래픽 탐지 모델을 업데이트하기 위한 비용이 많이 소모되지 않는 비정상 웹 트래픽 탐지 기술을 제공하는 것을 또 다른 목적으로 한다.
또한, 본 발명은 Convolutional Neural Network를 텍스트 형태의 데이터인 웹 트래픽에 적용하여 비정상 웹 트래픽을 탐지함으로써 기존의 비정상 웹 트래픽 탐지 기술에 비해 탁월한 인식률을 낼 수 있는 것을 또 다른 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
본 발명의 일 태양에 따르면, Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법에 있어서, (a) 순차적으로 나열된 적어도 하나의 텍스트를 포함하는 입력 데이터가 트레이닝 세트로서 획득되면, 장치가, 상기 입력 데이터를 행렬 형태의 데이터로 변환하거나 변환하도록 지원하는 단계, (b) 상기 장치가, 소정의 개수의 제1 커널(kernel)을 이용하여 상기 변환된 데이터에 대하여 convolution 동작을 수행하거나 수행하도록 지원하는 단계, (c) 상기 장치가, 상기 convolution 동작이 수행된 데이터를 소정의 행렬 형태로 변환하고, 이를 이용하여 신경망 레이어를 생성하는 fully connected 동작을 수행하거나 수행하도록 지원하는 단계, (d) 상기 장치가, 상기 fully connected 동작의 수행결과로서 생성된 행렬 형태의 데이터에 대하여 상기 convolution 동작과 반대로 deconvolution 동작을 수행하거나 수행하도록 지원하는 단계, 및 (e) 상기 장치가, 상기 변환된 입력 데이터와 상기 deconvolution 결과의 차이값을 산출하거나 산출하도록 지원하는 단계를 포함하는 방법이 제공된다.
본 발명의 다른 태양에 따르면, Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법에 있어서, (a) 순차적으로 나열된 적어도 하나의 텍스트를 포함하는 테스트 세트로서의 입력 데이터를 획득하는 단계, 및 (b) 상기 테스트 세트가 획득되기 전에 수행된 프로세스에 의해 획득된 정보로서, (i) 순차적으로 나열된 적어도 하나의 텍스트를 포함하는 트레이닝 세트로서의 입력 데이터가 획득되어, 상기 입력 데이터가 행렬 형태의 데이터로 변환되고, (ii) 소정의 개수의 제1 커널(kernel)을 이용하여 상기 변환된 데이터에 대하여 convolution 동작이 수행되고, (iii) 상기 convolution 동작이 수행된 데이터가 소정의 행렬 형태로 변환되고, 이를 이용하여 신경망 레이어를 생성하는 fully connected 동작이 수행되며, (iv) 상기 fully connected 동작의 수행결과로서 생성된 행렬 형태의 데이터에 대하여 상기 convolution 동작과 반대로 deconvolution 동작이 수행되고, (v) 상기 변환된 입력 데이터와 상기 deconvolution 결과의 차이값이 산출되고, (vi) 상기 차이값이 감소하도록 back propagation을 수행하여 상기 convolution 동작, 상기 fully connected 동작, 및 상기 deconvolution 동작에서 사용되는 복수의 가중치들 중 적어도 일부가 업데이트되도록 하여 획득되는 정보를 참조로 하여, 상기 트레이닝 세트에 대하여 수행하였던 일련의 과정과 유사한 방법으로 상기 테스트 세트에 대한 차이값을 획득하고, 상기 테스트 세트에 대한 차이값 및 상기 트레이닝 세트에 대한 차이값을 참조로 하여, 상기 테스트 세트로서의 입력 데이터에 대한 정상 여부를 판단하거나 판단하도록 지원하는 단계를 포함하는 방법이 제공된다.
본 발명의 또 다른 태양에 따르면, Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 장치에 있어서, 순차적으로 나열된 적어도 하나의 텍스트를 포함하는 입력 데이터를 트레이닝 세트로서 획득하는 통신부, 및 (i) 상기 입력 데이터가 획득되면, 상기 입력 데이터를 행렬 형태의 데이터로 변환하거나 변환하도록 지원하는 프로세스, (ii) 소정의 개수의 제1 커널(kernel)을 이용하여 상기 변환된 데이터에 대하여 convolution 동작을 수행하거나 수행하도록 지원하는 프로세스, (iii) 상기 convolution 동작이 수행된 데이터를 소정의 행렬 형태로 변환하고, 이를 이용하여 신경망 레이어를 생성하는 fully connected 동작을 수행하거나 수행하도록 지원하는 프로세스, (iv) 상기 fully connected 동작의 수행결과로서 생성된 행렬 형태의 데이터에 대하여 상기 convolution 동작과 반대로 deconvolution 동작을 수행하거나 수행하도록 지원하는 프로세스, 및 (v) 상기 변환된 입력 데이터와 상기 deconvolution 결과의 차이값을 산출하거나 산출하도록 지원하는 프로세스를 수행하는 프로세서를 포함하는 장치가 제공된다.
본 발명의 또 다른 태양에 따르면, Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 장치에 있어서, 순차적으로 나열된 적어도 하나의 텍스트를 포함하는 테스트 세트로서의 입력 데이터를 획득하는 통신부, 및 상기 테스트 세트가 획득되기 전에 수행된 프로세스에 의해 획득된 정보로서, (i) 순차적으로 나열된 적어도 하나의 텍스트를 포함하는 트레이닝 세트로서의 입력 데이터가 획득되어, 상기 입력 데이터가 행렬 형태의 데이터로 변환되고, (ii) 소정의 개수의 제1 커널(kernel)을 이용하여 상기 변환된 데이터에 대하여 convolution 동작이 수행되고, (iii) 상기 convolution 동작이 수행된 데이터가 소정의 행렬 형태로 변환되고, 이를 이용하여 신경망 레이어를 생성하는 fully connected 동작이 수행되며, (iv) 상기 fully connected 동작의 수행결과로서 생성된 행렬 형태의 데이터에 대하여 상기 convolution 동작과 반대로 deconvolution 동작이 수행되고, (v) 상기 변환된 입력 데이터와 상기 deconvolution 결과의 차이값이 산출되고, (vi) 상기 차이값이 감소하도록 back propagation을 수행하여 상기 convolution 동작, 상기 fully connected 동작, 및 상기 deconvolution 동작에서 사용되는 복수의 가중치들 중 적어도 일부가 업데이트되도록 하여 획득되는 정보를 참조로 하여, 상기 트레이닝 세트에 대하여 수행하였던 일련의 과정과 유사한 방법으로 상기 테스트 세트에 대한 차이값을 획득하고, 상기 테스트 세트에 대한 차이값 및 상기 트레이닝 세트에 대한 차이값을 참조로 하여, 상기 테스트 세트로서의 입력 데이터에 대한 정상 여부를 판단하거나 판단하도록 지원하는 프로세서를 포함하는 장치가 제공된다.
본 발명에 의하면, 다음과 같은 효과가 있다.
본 발명은 웹 트래픽 탐지 알고리즘이 학습하고 예측하고자 하는 대상 데이터의 특징을 스스로 학습할 수 있어 기존의 방법에 비해 좀 더 유의미한 특징을 추출할 수 있고, 다양한 공격을 탐지할 수 있는 비정상 웹 트래픽 탐지 기술을 제공하는 효과가 있다.
또한, 본 발명은 새로운 보안 트렌드 반영을 위해 웹 트래픽 탐지 모델을 업데이트하기 위한 비용이 많이 소모되지 않는 비정상 웹 트래픽 탐지 기술을 제공하는 효과가 있다.
또한, 본 발명은 Convolutional Neural Network를 텍스트 형태의 데이터인 웹 트래픽에 적용하여 비정상 웹 트래픽을 탐지함으로써 기존의 비정상 웹 트래픽 탐지 기술에 비해 탁월한 인식률을 낼 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 개념을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 장치의 구성을 도시한 블록도이다.
도 3은 입력 데이터인 HTTP 트래픽을 행렬 형태로 변환한 데이터의 예를 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 Convolutional Neural Network(이하 CNN이라 함.)의 각 layer 및 데이터 흐름을 나타내는 블록도이다.
도 5는 대응되는 fully connected layer 간의 입/출력 관계를 도시한 도면이다.
도 6은 convolution and pooling layer와 대응하는 unpooling and deconvolution layer간의 입/출력 관계를 나타낸 도면이다.
도 7은 Layer l 에서 back-propagation 되는 신호의 입/출력 관계를 나타낸 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
도 1은 본 발명의 일 실시예에 따른 Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 개념을 설명하기 위한 도면이다.
도 1을 참조하면, 본 발명은 Convolutional Neural Network를 이용하여 웹을 통해 유입되는 비정상(abnormal) 입력 데이터를 검출할 수 있다. Convolutional Neural Network는 필기체 인식을 위해 고안된 자료구조로서 LeCun, Y. 등에 의해 1998년에 Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11), p.2278-p.2324에서 처음 제안되었다. 이를 얼굴 인식에 응용한 논문으로 Nebauer, C. (1998). Evaluation of convolutional neural networks for visual recognition. Neural Networks, IEEE Transactions on, 9(4), p.685-p.696이 있다. 본 발명은 Convolutional Neural Network를 이용하여 텍스트 형태의 입력 데이터인 웹 트래픽을 학습하고 비정상 웹 트래픽을 식별하는 방법을 제공한다. 이하에서 본 발명의 구성 및 동작에 대해 좀 더 상세하게 설명한다.
도 2는 본 발명의 일 실시예에 따른 Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 장치의 구성을 도시한 블록도이다. 여기서, 입력 데이터는 웹 트래픽을 의미할 수도 있다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 장치(100)는 통신부(110)와 프로세서(120)를 포함할 수 있다.
본 발명에 따른 장치(100)는, 다양한 종류의 컴퓨팅 장치가 될 수 있다. 예를 들어, 상기 장치(100)는, 서버 또는 단말 장치일 수 있다. 이 경우, 트레이닝 세트로서 수신되는 입력 데이터에 대해 Convolutional Neural Network를 이용하여 학습할 수 있고, 이를 기초로 하여 추후 테스트 세트로서 수신되는 입력 데이터를 분류하여 비정상 입력 데이터를 검출할 수 있다.
통신부(110)는, 순차적으로 나열된 적어도 하나의 텍스트를 포함하는 입력 데이터를 트레이닝 세트로서 획득할 수 있다. 여기서, 텍스트는 숫자, 문자, 기호 중 하나가 될 수 있다. 통신부(110)는 다양한 통신 기술로 구현가능하며, 외부로부터 유입되는 HTTP 트래픽 데이터를 수신할 수 있다.
프로세서(120)는, 상기 입력 데이터가 획득되면, 상기 입력 데이터를 행렬 형태의 데이터로 변환하거나 변환하도록 지원하는 프로세스를 수행할 수 있다. 프로세서(120)는, 상기 입력 데이터의 변환을 수행함에 있어, 상기 입력 데이터의 각 단위 텍스트에 대하여 상이한 열(column)을 할당하거나 할당하도록 지원하고, 상기 각 단위 텍스트에 대응되는 열에서 해당 단위 텍스트의 값에 대응되는 행의 피처값을 1로 설정하거나 설정하도록 지원하고 나머지 행의 피처값은 0으로 설정하거나 설정하도록 지원할 수 있다.
도 3은 입력 데이터인 HTTP 트래픽을 행렬 형태로 변환한 데이터의 예를 도시한 도면이다.
도 3에 도시된 것처럼 HTTP 트래픽의 맨 뒤 문자부터 역순으로 1-to-F (0) encoding이 적용될 수 있다. 구체적으로 입력신호는 F (0) x L (0)의 행렬로 구성되며 각 열은 단위 텍스트(캐릭터)를 나타내며 단 하나의 원소만이 ‘1’이고 나머지 원소는 모두 ‘0’이 되거나 모든 원소는 ‘0’이 될 수 있다. F (0) = 69의 경우, 각 열에서 ‘1’이 되는 원소의 위치는 해당 단위 텍스트가 소정의 텍스트 집합 "abcdefghijklmnopqrstuvwxyz0123456789-,;.!?:'\"/\\|_@#$%^&*~`+-=<>()[]{}"에서 몇 번째 원소인지에 따라 정해질 수 있다. 예를 들어, 문자 ‘a’의 경우, 해당 열의 첫번째 원소가 ‘1’이되고 나머지 원소들은 모두 ‘0’이 된다. 만약 해당 단위 텍스트가 위 텍스트 집합에 속하지 않는 경우, 해당 열의 모든 원소들은 ‘0’이 된다.
다만, 상기 텍스트 집합은 다양할 수 있다. 도 3에 도시된 예에서는 알파벳 대문자로만 이루어진 텍스트 집합 “ABCDEFGHIJKLMNOPQRSTUVWXYZ”에서 입력된 HTTP 트래픽 “APPLE”을 구성하는 각 알파벳에 해당하는 위치를 1로 변환하여 행렬 형태로 나타내고 있다. 도 3에서 F (0) x L (0)의 행렬 상에 알파벳이 표시된 위치의 원소는 1이 되고 나머지 원소는 0이 된다.
이때, HTTP 트래픽을 구성하는 총 단위 텍스트의 개수 L'L (0) 보다 작으면, F (0) x L (0) 행렬의 뒤쪽 L (0) - L' 개의 열들의 원소들은 모두 ‘0’이 된다. HTTP 트래픽을 구성하는 총 단위 텍스트의 개수 L' L (0) 보다 크면, HTTP 트래픽을 구성하는 앞쪽 L' - L (0) 개의 원소들은 입력신호 행렬에 포함되지 않는다.
도 4는 본 발명의 일 실시예에 따른 Convolutional Neural Network(이하 CNN이라 함.)의 각 layer 및 데이터 흐름을 나타내는 블록도이다.
CNN을 구성하는 각 layer는 반드시 그에 대응하는 layer를 갖는다. 도 4에서 양쪽 화살표로 연결된 layer들이 서로 대응되는 layer들이다.
Input layer (즉, layer 0)에서는 앞서 설명한 입력 데이터가 변형된 0과 1로 구성된 F (0) x L (0) 행렬 형태의 데이터를 입력으로 받는다. 즉, 전술한 프로세서(120)는 변환된 행렬 형태의 데이터를 convolution 동작을 수행하기 위해 획득할 수 있다. Input layer는 반드시 layer 0에서만 사용되며, 그 이후 layer에는 사용되지 않는다.
다음으로, 프로세서(120)는, 소정의 개수의 제1 커널(kernel)을 이용하여 상기 변환된 데이터에 대하여 convolution 동작을 수행하거나 수행하도록 지원할 수 있다(convolution layer). 도 4에는 convolution 동작과 pooling 동작이 하나의 layer에서 이루어지는 것으로 표시되었으나, 이는 일 실시예에 불과하다. 즉, 프로세서(120)는 상기 변환된 데이터에 대하여 pooling 동작 없이 convolution 동작만을 수행할 수 있고, 양자를 모두 수행할 수도 있다. 다만, 하기의 실시예에서는 설명의 편의를 위해 convolution 동작과 pooling 동작이 하나의 layer에서 이루어지는 것을 전제로 설명한다.
이때, 상기 convolution 동작은, 프로세서(120)가, 소정의 크기의 행렬 형태를 가지는 제1 커널 - 상기 제1 커널의 각 원소에 해당되는 피처값은 가중치를 나타냄 - 을 이용하여 상기 제1 커널에 대응되는 위치의 입력 데이터의 원소에 해당되는 피처값의 weighted sum을 구하거나 구하도록 지원하고, 상기 구해진 입력 데이터의 피처값의 weighted sum을 새로운 피처값으로 하는 행렬 형태의 새로운 데이터를 생성하거나 생성하도록 지원함으로써 이루어질 수 있다.
또한, 프로세서(120)는, 상기 제1 커널을 입력 데이터의 특정 열을 따라 이동하여 상기 제1 커널에 의해 커버되는 상기 입력 데이터의 특정 열 상의 피처값의 weighted sum을 구하여 새로운 데이터의 제1 피처값으로 설정하거나 설정하도록 지원하고, 상기 제1 피처값이 생성된 후, 상기 제1 커널을 행 방향으로 단위 칸만큼 이동시켜가면서 상기 제1 피처값의 생성 과정과 유사한 방식으로 나머지 피처값을 생성하거나 생성하도록 지원할 수 있다.
input layer로부터 상기한 방식으로 만들어진 F (0) x L (0) 행렬 신호가 입력된 경우, convolution 동작은 아래의 수식으로 표현될 수 있다.
<수학식 1>
Figure 112015125861687-pat00001
이를 일반화 하면, l 번째 layer (
Figure 112015125861687-pat00002
) 에서는 (l-1) 번째 layer 로부터의 출력 a ( l -1)이 입력되어 다음과 같은 convolution 동작이 수행될 수 있다.
<수학식 2>
Figure 112015125861687-pat00003
또한, 프로세서(120)는, 상기 convolution 동작이 수행된 결과 데이터에 대하여 pooling 동작을 수행하거나 수행하도록 지원할 수 있다.
상기 pooling 동작을 수행함에 있어, 프로세서(120)는, 소정의 크기의 행렬 형태를 가지는 제2 커널을 이용하여 상기 결과 데이터의 적어도 하나의 피처값 중 최대값(Max Pooling) 또는 상기 결과 데이터의 적어도 하나의 피처값에 대한 평균값(Mean Pooling)을 피처값으로 하는 행렬 형태의 새로운 데이터를 생성하거나 생성하도록 지원할 수 있다.
pooling 동작은 아래와 같은 수식으로 표현될 수 있다.
<수학식 3>
Figure 112015125861687-pat00004
<수학식 4>
Figure 112015125861687-pat00005
수학식 2의 출력
Figure 112015125861687-pat00006
에 대하여 pooling 동작은 다음과 같이 나타낼 수 있다.
<수학식 5>
Figure 112015125861687-pat00007
<수학식 6>
Figure 112015125861687-pat00008
다음으로, 프로세서(120)는, 상기 pooling 동작이 수행된 데이터를 소정의 행렬 형태로 변환하고, 이를 이용하여 상기 신경망 레이어를 생성하는 fully connected 동작을 수행하거나 수행하도록 지원할 수 있다. pooling 동작이 수행되지 않은 경우, fully connected 동작은 convolution 동작이 수행된 데이터에 대해 이루어진다. convolution 동작 및 pooling 동작이 반복하여 수행된 경우, 프로세서(120)는, 마지막 pooling 동작에 따른 결과 데이터를 소정의 행렬 형태(가령, 1차원 행렬 형태)로 변환하고, 이를 이용하여 상기 신경망 레이어를 생성하는 fully connected 동작을 수행하거나 수행하도록 지원할 수 있다.
이때, 프로세서(120)는, convolution 동작(또는 pooling 동작)이 수행된 데이터를 소정의 행렬 형태로 변환하고, 이를 이용하여 신경망 레이어를 생성하는 forward fully connected 동작을 수행하거나 수행하도록 지원하고, 상기 forward fully connected 동작의 수행결과로서 생성된 데이터에 대하여 상기 forward fully connected 동작에 대응되는 backward fully connected 동작을 수행하거나 수행하도록 지원할 수 있다. 도 4에 도시된 예와 같이 forward fully connected 동작과 backward fully connected 동작은 복수 회 반복하여 수행될 수 있다.
이러한 동작을 수식으로 표현하면 다음과 같다.
첫 번째 forward fully connected layer(즉, layer N C +1)에서는 마지막 convolution and pooling layer (convolution과 pooling이 함께 수행된 경우, 도4 에서 layer N C ) 의
Figure 112015125861687-pat00009
행렬 형태를 가지는 출력 신호
Figure 112015125861687-pat00010
가 입력되어
Figure 112015125861687-pat00011
형태의 1차원 신호
Figure 112015125861687-pat00012
로 변환된 후, 아래의 동작이 수행될 수 있다.
<수학식 7>
Figure 112015125861687-pat00013
즉,
Figure 112015125861687-pat00014
길이의 신호가 입력되어
Figure 112015125861687-pat00015
길이의 신호가 출력되며,
Figure 112015125861687-pat00016
이다.
Fully connected layer인 l 번째 layer (
Figure 112015125861687-pat00017
)에서는 (l-1) 번째 layer 로 부터의 출력 a ( l -1)을 입력 받아 다음과 같은 동작이 수행된다.
<수학식 8>
Figure 112015125861687-pat00018
이때, 첫번째 fully connected layer(즉, 첫번째 forward fully connected layer)에서 입력되는 신호의 길이와 마지막 fully connected layer (즉, 마지막 backward fully connected layer)에서 출력되는 신호의 길이는 동일하게 유지된다. 따라서, forward fully connected layer인 l 번째 layer (
Figure 112015125861687-pat00019
)와 이에 대응되는 backward fully connected layer 인
Figure 112015125861687-pat00020
번째 layer(
Figure 112015125861687-pat00021
)는 다음과 같은 상관관계를 갖는다.
<수학식 9>
Figure 112015125861687-pat00022
예를 들어, N C +1번째와 N C +2 번째 layer에 대응되는 layer는 각각 N C +2N F 번째 layer와 N C +2N F -1번째 layer 이다.
도 5는 대응되는 fully connected layer 간의 입/출력 관계를 도시한 도면이다.
도 5에 도시된 것처럼 대응되는 layer의 입/출력 신호들의 길이는 일치한다. 즉, 도 5에 도시된 fully connected layer에서 forward fully connected layer의 입력 데이터와 backward fully connected layer의 출력 데이터의 길이는 서로 일치하고, forward fully connected layer의 출력 데이터와 backward fully connected layer의 입력 데이터의 길이가 서로 일치함을 알 수 있다.
다음으로 unpooling과 deconvolution 동작이 수행될 수 있다. convolution 동작만 수행된 경우에는 unpooling 동작없이 deconvolution 동작만 수행될 것이나 convolution과 pooling 동작이 수행된 경우에는 unpooling과 deconvolution 동작이 이루어질 수 있다. 이하에서는 설명의 편의를 위해 unpooling 동작과 deconvolution 동작이 하나의 layer에서 이루어는 것으로 상정하여 설명한다.
첫 번째 unpooling and deconvolution layer인 N C +2N F +1번째 layer에서 마지막 fully connected layer인 N C +2N F 번째 layer의 1차원 출력 신호
Figure 112015125861687-pat00023
Figure 112015125861687-pat00024
행렬인
Figure 112015125861687-pat00025
로 변환되어 입력될 수 있다. 여기서,
Figure 112015125861687-pat00026
이며, 마지막 convolution and pooling layer (즉, layer N C ) 에서 행렬을 1차원 신호로 변환할 때 사용된 방식의 역순으로 행렬 신호 변환이 이루어질 수 있다.
상기 layer는 도 4의 실시예에서 마지막 convolution and pooling layer인 N C 번째 layer에 대응되며, N C 번째 layer의 출력신호의 사이즈와 동일한 사이즈의 신호가 입력된다. 즉, 하기의 수학식이 성립한다.
<수학식 10>
Figure 112015125861687-pat00027
프로세서(120)는, 상기 fully connected 동작의 수행결과로서 생성된 행렬 형태의 데이터에 대하여 unpooling 동작을 수행하거나 수행하도록 지원할 수 있고, 상기 unpooling 동작의 수행결과로서 생성된 행렬 형태의 데이터에 대하여 상기 deconvolution 동작을 수행하거나 수행하도록 지원할 수 있다. 다만, unpooling 동작은 생략될 수 있다.
N C 번째 layer에서 수행된 pooling에 대응되는 unpooling 동작은 다음과 같이 표현될 수 있다. N C 번째 layer에서 max pooling이 수행되었을 경우, 입력 신호
Figure 112015125861687-pat00028
는 아래의 수학식 11로 변환될 수 있다.
<수학식 11>
Figure 112015125861687-pat00029
이때,
Figure 112015125861687-pat00030
이고,
Figure 112015125861687-pat00031
이다.
만약 N C 번째 layer에서 mean pooling이 수행되었을 경우라면, 입력 신호는 아래의 수학식 12로 변환될 수 있다.
<수학식 12>
Figure 112015125861687-pat00032
이때,
Figure 112015125861687-pat00033
의 길이는
Figure 112015125861687-pat00034
와 동일하다.
상기와 같이 변환된 신호
Figure 112015125861687-pat00035
에 대하여 아래와 같은 deconvolution 동작이 이루어질 수 있다.
`
<수학식 13>
Figure 112015125861687-pat00036
여기서, N C +2N F +1번째 layer의 출력신호
Figure 112015125861687-pat00037
N C +2N F +2번째 layer에 입력되며, N C +2N F +2번째 layer는 N C -1번째 layer에 대응된다. 따라서, N C +2N F +1번째 layer의 출력 신호의 프레임 개수는
Figure 112015125861687-pat00038
이다. 또한, N C +2N F +1번째 layer에 사용되는 kernel들의 길이는 N C 번째 layer에서 사용되는 kernel들의 길이와 동일하며 (즉,
Figure 112015125861687-pat00039
), 동일한 출력함수를 사용한다(즉,
Figure 112015125861687-pat00040
).
또한, unpooling and deconvolution layer인
Figure 112015125861687-pat00041
번째 layer는 convolution and pooling layer인 l번째 layer에 대응 되며,
Figure 112015125861687-pat00042
번째 layer의 출력
Figure 112015125861687-pat00043
을 입력받아 unpooling 동작이 다음과 같이 수행될 수 있다.
만약 l번째 layer에서 max pooling이 수행되었을 경우, 입력 신호
Figure 112015125861687-pat00044
는 다음과 같이 변환될 수 있다.
<수학식 14>
Figure 112015125861687-pat00045
이때,
Figure 112015125861687-pat00046
이며,
Figure 112015125861687-pat00047
이다.
만약 l번째 layer에서 mean pooling이 수행되었을 경우, 입력 신호
Figure 112015125861687-pat00048
는 다음과 같이 변환될 수 있다.
<수학식 15>
Figure 112015125861687-pat00049
상기와 같이 변환된 신호
Figure 112015125861687-pat00050
에 대해 아래와 같은 deconvolution이 수행될 수 있다.
<수학식 16>
Figure 112015125861687-pat00051
여기서,
Figure 112015125861687-pat00052
번째 layer의 출력신호
Figure 112015125861687-pat00053
Figure 112015125861687-pat00054
번째 layer에 입력되며,
Figure 112015125861687-pat00055
번째 layer는
Figure 112015125861687-pat00056
번째 layer에 대응된다. 따라서,
Figure 112015125861687-pat00057
번째 layer의 출력 신호의 프레임 개수는
Figure 112015125861687-pat00058
이 된다. 또한,
Figure 112015125861687-pat00059
번째 layer에 사용되는 kernel들의 길이는 l번째 layer에서 사용되는 kernel들의 길이와 동일하며 (즉,
Figure 112015125861687-pat00060
), 동일한 출력함수를 사용한다(즉,
Figure 112015125861687-pat00061
).
또한, convolution and pooling layer와 대응하는 unpooling and deconvolution layer는 길이와 프레임 개수가 일치한다.
도 6은 convolution and pooling layer와 대응하는 unpooling and deconvolution layer간의 입/출력 관계를 나타낸 도면이다.
도 6을 참조하면, 대응하는 layer의 kernel들의 길이와 프레임 개수가 일치한다. Valid 컨볼루션을 수행하므로 콘볼루션을 수행할수록 길이가 짧아진다. 따라서, 프레임의 개수는 동일하더라도 대응되는 unpooling and deconvolution layer 출력신호의 길이는 감소한다 (즉,
Figure 112015125861687-pat00062
).
마지막 deconvolution 동작까지 수행되면, 프로세서(120)는, 최초에 변환되어 입력된 입력 데이터와 최종 deconvolution 결과의 차이값을 산출하거나 산출하도록 지원할 수 있다.
마지막 unpooling and deconvolution layer의 출력
Figure 112015125861687-pat00063
이 입력된 경우, 비용함수 또는 reconstruction error
Figure 112015125861687-pat00064
는 다음과 같이 계산될 수 있다.
<수학식 17>
Figure 112015125861687-pat00065
여기서
Figure 112015125861687-pat00066
Figure 112015125861687-pat00067
는 각각 입력 신호
Figure 112015125861687-pat00068
와 최종 출력 신호
Figure 112015125861687-pat00069
를 나타낸다.
프로세서(120)는, 상기 차이값이 감소하도록 back propagation을 수행하여 상기 convolution 동작, pooling 동작, fully connected 동작, unpooling 동작, deconvolution 동작에서 사용되는 복수의 가중치들 중 적어도 일부를 업데이트하거나 업데이트하도록 지원할 수 있다.
또한, 프로세서(120)는, 소정의 개수의 입력 데이터에 대하여 전술한 과정을 반복 수행하여 산출된 차이값을 합산한 후, 상기 합산된 차이값이 감소하도록 상기 back propagation을 수행하거나 수행하도록 지원할 수 있다.
또한, 상기 입력 데이터의 전체가 소정 개수의 배치(batch) 데이터로 구분되고 상기 배치 데이터 각각은 소정의 개수의 개별 데이터를 포함할 때, 프로세서(120)는, 상기 배치 데이터마다 상기 배치 데이터를 구성하는 개별 데이터 각각에 대해 전술한 과정을 수행하여 산출된 차이값을 합산한 후, 상기 합산된 차이값이 감소하도록 상기 back propagation을 수행하거나 수행하도록 지원할 수 있다.
이러한 배치 데이터를 고려하면, 전체 훈련신호(트레이닝 세트) 중 다음과 같은 m개의 훈련 신호
Figure 112015125861687-pat00070
가 임의로 선택되어, 다음과 같은 비용함수가 정의될 수 있다.
<수학식 18>
Figure 112015125861687-pat00071
훈련과정은 반복과정으로써 매 반복마다 상기와 같은 배치 데이터를 구성하여 아래와 같이
Figure 112015125861687-pat00072
를 갱신한다 (n은 반복 index를 의미하며, 매 반복에서 배치 데이터를 구성하는 훈련 신호들은 임의로 선택될 수 있다.).
<수학식 19>
Figure 112015125861687-pat00073
여기서,
Figure 112015125861687-pat00074
는 CNN에 사용된 모든 NN weights, kernel weights, biases를 벡터로 표현한 것이다. 즉,
Figure 112015125861687-pat00075
이다.
Figure 112015125861687-pat00076
를 계산하기 위해서는 다음과 같은 과정을 거친다 (편의상 index i 는 생략).
<수학식 20>
Output Layer
Figure 112015125861687-pat00077
<수학식 21-1>
Layer 2N C +2N F
Figure 112015125861687-pat00078
<수학식 21-2>
Figure 112015125861687-pat00079
<수학식 21-3>
Figure 112015125861687-pat00080
<수학식 22-1>
Figure 112015125861687-pat00081
<수학식 22-2>
Figure 112015125861687-pat00082
<수학식 22-3>
Figure 112015125861687-pat00083
<수학식 23>
Figure 112015125861687-pat00084
layer N C +2N F 에서는 상위 layer이자 첫번째 unpooling and deconvolution layer인 layer N C +2N F +1로부터
Figure 112015125861687-pat00085
을 1차원 신호
Figure 112015125861687-pat00086
로 변환하여 입력 받는다.
<수학식 24-1>
Figure 112015125861687-pat00087
<수학식 24-2>
Figure 112015125861687-pat00088
<수학식 24-3>
Figure 112015125861687-pat00089
도 7은 Layer l 에서 back-propagation 되는 신호의 입/출력 관계를 나타낸 도면이다.
Figure 112015125861687-pat00090
를 계산한 후, 이를 이용하여 아래와 같이 비용함수에 대한 gradient를 계산한다.
<수학식 25-1>
Figure 112015125861687-pat00091
<수학식 25-2>
Figure 112015125861687-pat00092
한편, 상기 프로세서(120)는, 전술한 convolution 동작 내지 상기 차이값을 산출하는 동작을 수행함에 있어 소정의 확률로 입력 데이터의 일부만을 선택하고 상기 선택된 일부 데이터를 이용하여 트레이닝을 수행하거나 수행하도록 지원하고, 상기 소정의 확률을 참조로 하여 결정되는 가중치의 값을 상기 트레이닝 결과에 반영할 수 있다.
구체적으로, 임의의 반복 n에서 각 layer를 구성하는 node들에 대하여 p의 확률로 각 node들을 일시적으로 제거한 network을 구성할 수 있다. 이러한 network에 대하여 기존의 back-propagation algorithm을 적용하여 나머지 제거되지 않은 node들에 대한 weight들을 갱신할 수 있다.
또한, 프로세서(120)는, 전술한 과정을 수행함에 있어 각 layer에서의 적어도 일부의 출력값에 대해 normalize를 수행하거나 수행하도록 지원할 수 있다. 이때, normalize 동작은 Hyperbolic Tangent를 통해 수행될 수 있다.
트레이닝 과정이 종료하면 프로세서(120)는, 트레이닝에 사용되지 않은 입력 데이터를 수신하여 최종 출력 즉, 차이값을 산출하거나 산출하도록 지원할 수 있다. 그리고, 테스트 세트에 대한 차이값 및 상기 트레이닝 세트에 대한 차이값을 참조로 하여, 상기 테스트 세트로서의 입력 데이터에 대한 정상 여부를 판단하거나 판단하도록 지원할 수 있다.
좀더 구체적으로 설명하면, 트레이닝 과정이 종료하면, 전술한 통신부(110)는 순차적으로 나열된 적어도 하나의 텍스트를 포함하는 테스트 세트로서의 입력 데이터를 획득한다.
그리고, 프로세서(120)는, 상기 테스트 세트가 획득되기 전에 수행된 프로세스에 의해 획득된 정보로서, (i) 순차적으로 나열된 적어도 하나의 텍스트를 포함하는 트레이닝 세트로서의 입력 데이터가 획득되어, 상기 입력 데이터가 행렬 형태의 데이터로 변환되고, (ii) 소정의 개수의 제1 커널(kernel)을 이용하여 상기 변환된 데이터에 대하여 convolution 동작이 수행되고, (iii) 상기 convolution 동작이 수행된 데이터가 소정의 행렬 형태로 변환되고, 이를 이용하여 신경망 레이어를 생성하는 fully connected 동작이 수행되며, (iv) 상기 fully connected 동작의 수행결과로서 생성된 행렬 형태의 데이터에 대하여 상기 convolution 동작과 반대로 deconvolution 동작이 수행되고, (v) 상기 변환된 입력 데이터와 상기 deconvolution 결과의 차이값이 산출되고, (vi) 상기 차이값이 감소하도록 back propagation을 수행하여 상기 convolution 동작, 상기 fully connected 동작, 및 상기 deconvolution 동작에서 사용되는 복수의 가중치들 중 적어도 일부가 업데이트되도록 하여 획득되는 정보를 참조로 하여, 상기 트레이닝 세트에 대하여 수행하였던 일련의 과정과 유사한 방법으로 상기 테스트 세트에 대한 차이값을 획득하고, 상기 테스트 세트에 대한 차이값 및 상기 트레이닝 세트에 대한 차이값을 참조로 하여, 상기 테스트 세트로서의 입력 데이터에 대한 정상 여부를 판단하거나 판단하도록 지원할 수 있다.
한편, 전술한 프로세서(120)는 통신부(110) 및 장치(100)의 다른 구성요소 간의 데이터의 흐름을 제어하는 기능을 수행한다. 즉, 프로세서(120)는 본 발명에 따른 장치(100)의 각 구성요소 간의 데이터의 흐름을 제어함으로써, 통신부(110) 및 다른 구성요소에서 각각 고유 기능을 수행하도록 제어한다.
프로세서(120)는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 어플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.
또한, 이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
100 : 장치
110 : 통신부
120 : 프로세서

Claims (35)

  1. Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법에 있어서,
    (a) 순차적으로 나열된 적어도 하나의 텍스트를 포함하는 입력 데이터가 트레이닝 세트로서 획득되면, 장치가, 상기 입력 데이터를 행렬 형태의 데이터로 변환하거나 변환하도록 지원하는 단계,
    (b) 상기 장치가, 소정의 개수의 제1 커널(kernel)을 이용하여 상기 변환된 데이터에 대하여 convolution 동작을 수행하거나 수행하도록 지원하는 단계,
    (c) 상기 장치가, 상기 convolution 동작이 수행된 데이터를 소정의 행렬 형태로 변환하고, 이를 이용하여 신경망 레이어를 생성하는 fully connected 동작을 수행하거나 수행하도록 지원하는 단계,
    (d) 상기 장치가, 상기 fully connected 동작의 수행결과로서 생성된 행렬 형태의 데이터에 대하여 상기 convolution 동작과 반대로 deconvolution 동작을 수행하거나 수행하도록 지원하는 단계, 및
    (e) 상기 장치가, 상기 변환된 입력 데이터와 상기 deconvolution 결과의 차이값을 산출하거나 산출하도록 지원하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    (f) 상기 장치는, 상기 차이값이 감소하도록 back propagation을 수행하여 상기 (b) 단계 내지 상기 (d) 단계에서 사용되는 복수의 가중치들 중 적어도 일부를 업데이트하거나 업데이트하도록 지원하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 장치는, 상기 (a) 내지 상기 (e) 단계를 반복 수행하여 산출된 차이값을 합산한 후, 상기 합산된 차이값이 감소하도록 상기 back propagation을 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법.
  4. 제2항에 있어서,
    상기 입력 데이터의 전체가 소정 개수의 배치(batch) 데이터로 구분되고 상기 배치 데이터 각각은 소정의 개수의 개별 데이터를 포함할 때, 상기 장치는, 상기 배치 데이터마다 상기 배치 데이터를 구성하는 개별 데이터 각각에 대해 상기 (a) 단계 내지 상기 (e) 단계를 수행하여 산출된 차이값을 합산한 후, 상기 합산된 차이값이 감소하도록 상기 back propagation을 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 (a) 단계에서,
    상기 장치는, 상기 입력 데이터의 변환을 수행함에 있어, 상기 입력 데이터의 각 단위 텍스트에 대하여 상이한 열(column)을 할당하거나 할당하도록 지원하고, 상기 각 단위 텍스트에 대응되는 열에서 해당 단위 텍스트의 값에 대응되는 행의 피처값을 1로 설정하거나 설정하도록 지원하고 나머지 행의 피처값은 0으로 설정하거나 설정하도록 지원하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 입력 데이터는, HTTP 트래픽 데이터인 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 convolution 동작은,
    상기 장치가, 소정의 크기의 행렬 형태를 가지는 제1 커널 - 상기 제1 커널의 각 원소에 해당되는 피처값은 가중치를 나타냄 - 을 이용하여 상기 제1 커널에 대응되는 위치의 입력 데이터의 원소에 해당되는 피처값의 weighted sum을 구하거나 구하도록 지원하고, 상기 구해진 입력 데이터의 피처값의 weighted sum을 새로운 피처값으로 하는 행렬 형태의 새로운 데이터를 생성하거나 생성하도록 지원하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서,
    상기 장치는, 상기 제1 커널을 상기 입력 데이터의 특정 열을 따라 이동하여 상기 제1 커널에 의해 커버되는 상기 입력 데이터의 특정 열 상의 피처값의 weighted sum을 구하여 새로운 데이터의 제1 피처값으로 설정하거나 설정하도록 지원하고, 상기 제1 피처값이 생성된 후, 상기 제1 커널을 행 방향으로 단위 칸만큼 이동시켜가면서 상기 제1 피처값의 생성 과정과 대응되는 방식으로 나머지 피처값을 생성하거나 생성하도록 지원하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 (b) 단계 이후에, (b1) 상기 장치가, 상기 convolution 동작이 수행된 결과 데이터에 대하여 pooling 동작을 수행하거나 수행하도록 지원하는 단계를 더 포함하고,
    상기 (c) 단계는, 상기 pooling 동작이 수행된 데이터를 소정의 행렬 형태로 변환하고, 이를 이용하여 상기 신경망 레이어를 생성하는 fully connected 동작을 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    상기 (b1) 단계에서,
    상기 장치는, 소정의 크기의 행렬 형태를 가지는 제2 커널을 이용하여 상기 결과 데이터의 적어도 하나의 피처값 중 최대값 또는 상기 결과 데이터의 적어도 하나의 피처값에 대한 평균값을 피처값으로 하는 행렬 형태의 새로운 데이터를 생성하거나 생성하도록 지원하는 것을 특징으로 하는 방법.
  11. 제9항에 있어서,
    상기 (c) 단계 이후에, (c1) 상기 장치가, 상기 fully connected 동작의 수행결과로서 생성된 행렬 형태의 데이터에 대하여 unpooling 동작을 수행하거나 수행하도록 지원하는 단계를 더 포함하고,
    상기 (d)단계에서,
    상기 장치는, 상기 unpooling 동작의 수행결과로서 생성된 행렬 형태의 데이터에 대하여 상기 deconvolution 동작을 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법.
  12. 제11항에 있어서,
    상기 pooling 동작에 따른 출력 데이터의 길이와 상기 unpooling 동작을 위한 입력 데이터의 길이가 동일한 것을 특징으로 하는 방법.
  13. 제1항에 있어서,
    상기 (c) 단계는,
    (c1) 상기 장치가, 상기 convolution 동작이 수행된 데이터를 소정의 행렬 형태로 변환하고, 이를 이용하여 신경망 레이어를 생성하는 forward fully connected 동작을 수행하거나 수행하도록 지원하는 단계, 및
    (c2) 상기 장치가, 상기 forward fully connected 동작의 수행결과로서 생성된 데이터에 대하여 상기 forward fully connected 동작에 대응되는 backward fully connected 동작을 수행하거나 수행하도록 지원하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 제1항에 있어서,
    상기 deconvolution 동작에 따른 출력 데이터의 프레임 개수는 상기 convolution 동작을 위한 입력 데이터의 프레임 개수와 동일한 것을 특징으로 하는 방법.
  15. 제1항에 있어서,
    상기 (b) 단계 이후에, (b1) 상기 장치가, 상기 convolution 동작이 수행된 결과 데이터에 대하여 pooling 동작을 수행하거나 수행하도록 지원하는 단계를 더 포함하고,
    상기 (b) 단계 및 상기 (b1) 단계가 반복하여 수행되며,
    상기 (c) 단계는, (b1) 단계의 마지막 pooling 동작에 따른 결과 데이터를 소정의 행렬 형태로 변환하고, 이를 이용하여 상기 신경망 레이어를 생성하는 fully connected 동작을 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법.
  16. 제1항에 있어서,
    상기 장치는, 상기 (b) 단계 내지 상기 (e) 단계를 수행함에 있어 소정의확률로 입력 데이터의 일부만을 선택하고 상기 선택된 일부 데이터를 이용하여 트레이닝을 수행하거나 수행하도록 지원하고, 상기 소정의 확률을 참조로 하여 결정되는 가중치의 값을 상기 트레이닝 결과에 반영하는 것을 특징으로 하는 방법.
  17. 제1항에 있어서,
    상기 장치는, 상기 (b) 단계 내지 상기 (e) 단계 중 적어도 일부의 출력값에 대해 normalize를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법.
  18. 제17항에 있어서,
    상기 장치는, 상기 상기 (b) 단계 내지 상기 (e) 단계 중 적어도 일부의 출력값에 대해 Hyperbolic Tangent를 수행하여 normalize를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법.
  19. 제1 항에 있어서,
    상기 장치는 서버 또는 단말 장치인 것을 특징으로 하는 방법.
  20. Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법에 있어서,
    (a) 순차적으로 나열된 적어도 하나의 텍스트를 포함하는 테스트 세트로서의 입력 데이터를 획득하는 단계, 및
    (b) 상기 테스트 세트가 획득되기 전에 수행된 프로세스에 의해 획득된 정보로서, (i) 순차적으로 나열된 적어도 하나의 텍스트를 포함하는 트레이닝 세트로서의 입력 데이터가 획득되어, 상기 입력 데이터가 행렬 형태의 데이터로 변환되고, (ii) 소정의 개수의 제1 커널(kernel)을 이용하여 상기 변환된 데이터에 대하여 convolution 동작이 수행되고, (iii) 상기 convolution 동작이 수행된 데이터가 소정의 행렬 형태로 변환되고, 이를 이용하여 신경망 레이어를 생성하는 fully connected 동작이 수행되며, (iv) 상기 fully connected 동작의 수행결과로서 생성된 행렬 형태의 데이터에 대하여 상기 convolution 동작과 반대로 deconvolution 동작이 수행되고, (v) 상기 변환된 입력 데이터와 상기 deconvolution 결과의 차이값이 산출되고, (vi) 상기 차이값이 감소하도록 back propagation을 수행하여 상기 convolution 동작, 상기 fully connected 동작, 및 상기 deconvolution 동작에서 사용되는 복수의 가중치들 중 적어도 일부가 업데이트되도록 하여 획득되는 정보를 참조로 하여, 상기 트레이닝 세트에 대하여 수행하였던 일련의 과정 중 적어도 (i) 내지 (v)와 대응되는 방법으로 상기 테스트 세트에 대한 차이값을 획득하고, 상기 테스트 세트에 대한 차이값 및 상기 트레이닝 세트에 대한 차이값을 참조로 하여, 상기 테스트 세트로서의 입력 데이터에 대한 정상 여부를 판단하거나 판단하도록 지원하는 단계를 포함하는 방법.
  21. Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 장치에 있어서,
    순차적으로 나열된 적어도 하나의 텍스트를 포함하는 입력 데이터를 트레이닝 세트로서 획득하는 통신부; 및
    (i) 상기 입력 데이터가 획득되면, 상기 입력 데이터를 행렬 형태의 데이터로 변환하거나 변환하도록 지원하는 프로세스, (ii) 소정의 개수의 제1 커널(kernel)을 이용하여 상기 변환된 데이터에 대하여 convolution 동작을 수행하거나 수행하도록 지원하는 프로세스, (iii) 상기 convolution 동작이 수행된 데이터를 소정의 행렬 형태로 변환하고, 이를 이용하여 신경망 레이어를 생성하는 fully connected 동작을 수행하거나 수행하도록 지원하는 프로세스, (iv) 상기 fully connected 동작의 수행결과로서 생성된 행렬 형태의 데이터에 대하여 상기 convolution 동작과 반대로 deconvolution 동작을 수행하거나 수행하도록 지원하는 프로세스, 및 (v) 상기 변환된 입력 데이터와 상기 deconvolution 결과의 차이값을 산출하거나 산출하도록 지원하는 프로세스를 수행하는 프로세서를 포함하는 장치.
  22. 제21항에 있어서,
    상기 프로세서는,
    상기 차이값이 감소하도록 back propagation을 수행하여 상기 (ii) 내지 상기 (iv) 에서 사용되는 복수의 가중치들 중 적어도 일부를 업데이트하거나 업데이트하도록 지원하는 것을 특징으로 하는 장치.
  23. 제22항에 있어서,
    상기 프로세서는,
    상기 (i) 내지 상기 (v)를 반복 수행하여 산출된 차이값을 합산한 후, 상기 합산된 차이값이 감소하도록 상기 back propagation을 수행하거나 수행하도록 지원하는 것을 특징으로 하는 장치.
  24. 제22항에 있어서,
    상기 입력 데이터의 전체가 소정 개수의 배치(batch) 데이터로 구분되고 상기 배치 데이터 각각은 소정의 개수의 개별 데이터를 포함할 때, 상기 프로세서는, 상기 배치 데이터마다 상기 배치 데이터를 구성하는 개별 데이터 각각에 대해 상기 (i) 내지 상기 (v)를 수행하여 산출된 차이값을 합산한 후, 상기 합산된 차이값이 감소하도록 상기 back propagation을 수행하거나 수행하도록 지원하는 것을 특징으로 하는 장치.
  25. 제21항에 있어서,
    상기 convolution 동작은,
    상기 프로세서가, 소정의 크기의 행렬 형태를 가지는 제1 커널 - 상기 제1 커널의 각 원소에 해당되는 피처값은 가중치를 나타냄 - 을 이용하여 상기 제1 커널에 대응되는 위치의 입력 데이터의 원소에 해당되는 피처값의 weighted sum을 구하거나 구하도록 지원하고, 상기 구해진 입력 데이터의 피처값의 weighted sum을 새로운 피처값으로 하는 행렬 형태의 새로운 데이터를 생성하거나 생성하도록 지원하는 것을 특징으로 하는 장치.
  26. 제21항에 있어서,
    상기 (ii) 이후에, 상기 프로세서가, 상기 convolution 동작이 수행된 결과 데이터에 대하여 pooling 동작을 수행하거나 수행하도록 지원하고,
    상기 (iii)에서 상기 pooling 동작이 수행된 데이터를 소정의 행렬 형태로 변환하고, 이를 이용하여 상기 신경망 레이어를 생성하는 fully connected 동작을 수행하거나 수행하도록 지원하는 것을 특징으로 하는 장치.
  27. 제26항에 있어서,
    상기 pooling 동작을 수행함에 있어, 상기 프로세서는, 소정의 크기의 행렬 형태를 가지는 제2 커널을 이용하여 상기 결과 데이터의 적어도 하나의 피처값 중 최대값 또는 상기 결과 데이터의 적어도 하나의 피처값에 대한 평균값을 피처값으로 하는 행렬 형태의 새로운 데이터를 생성하거나 생성하도록 지원하는 것을 특징으로 하는 장치.
  28. 제26항에 있어서,
    상기 (iii) 이후에, 상기 프로세서가, 상기 fully connected 동작의 수행결과로서 생성된 행렬 형태의 데이터에 대하여 unpooling 동작을 수행하거나 수행하도록 지원하고,
    상기 (iv)에서,
    상기 프로세서는, 상기 unpooling 동작의 수행결과로서 생성된 행렬 형태의 데이터에 대하여 상기 deconvolution 동작을 수행하거나 수행하도록 지원하는 것을 특징으로 하는 장치.
  29. 제28항에 있어서,
    상기 pooling 동작에 따른 출력 데이터의 길이와 상기 unpooling 동작을 위한 입력 데이터의 길이가 동일한 것을 특징으로 하는 장치.
  30. 제21항에 있어서,
    상기 (iii)에서,
    상기 프로세서는, 상기 convolution 동작이 수행된 데이터를 소정의 행렬 형태로 변환하고, 이를 이용하여 신경망 레이어를 생성하는 forward fully connected 동작을 수행하거나 수행하도록 지원하고,
    상기 forward fully connected 동작의 수행결과로서 생성된 데이터에 대하여 상기 forward fully connected 동작에 대응되는 backward fully connected 동작을 수행하거나 수행하도록 지원하는 것을 특징으로 하는 장치.
  31. 제21항에 있어서,
    상기 (ii) 이후에, 상기 프로세서가, 상기 convolution 동작이 수행된 결과 데이터에 대하여 pooling 동작을 수행하거나 수행하도록 지원하고,
    상기 convolution 동작 및 상기 pooling 동작을 반복하여 수행하거나 수행하도록 지원하며,
    상기 (iii)에서, 마지막 pooling 동작에 따른 결과 데이터를 소정의 행렬 형태로 변환하고, 이를 이용하여 상기 신경망 레이어를 생성하는 fully connected 동작을 수행하거나 수행하도록 지원하는 것을 특징으로 하는 장치.
  32. 제21항에 있어서,
    상기 프로세서는, 상기 (ii) 내지 상기 (v)를 수행함에 있어 소정의 확률로 입력 데이터의 일부만을 선택하고 상기 선택된 일부 데이터를 이용하여 트레이닝을 수행하거나 수행하도록 지원하고, 상기 소정의 확률을 참조로 하여 결정되는 가중치의 값을 상기 트레이닝 결과에 반영하는 것을 특징으로 하는 장치.
  33. 제21항에 있어서,
    상기 프로세서는, 상기 (ii) 내지 상기 (v) 중 적어도 일부의 출력값에 대해 normalize를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 장치.
  34. 제21항에 있어서,
    상기 장치는 서버 또는 단말 장치인 것을 특징으로 하는 장치.
  35. Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 장치에 있어서,
    순차적으로 나열된 적어도 하나의 텍스트를 포함하는 테스트 세트로서의 입력 데이터를 획득하는 통신부, 및
    상기 테스트 세트가 획득되기 전에 수행된 프로세스에 의해 획득된 정보로서, (i) 순차적으로 나열된 적어도 하나의 텍스트를 포함하는 트레이닝 세트로서의 입력 데이터가 획득되어, 상기 입력 데이터가 행렬 형태의 데이터로 변환되고, (ii) 소정의 개수의 제1 커널(kernel)을 이용하여 상기 변환된 데이터에 대하여 convolution 동작이 수행되고, (iii) 상기 convolution 동작이 수행된 데이터가 소정의 행렬 형태로 변환되고, 이를 이용하여 신경망 레이어를 생성하는 fully connected 동작이 수행되며, (iv) 상기 fully connected 동작의 수행결과로서 생성된 행렬 형태의 데이터에 대하여 상기 convolution 동작과 반대로 deconvolution 동작이 수행되고, (v) 상기 변환된 입력 데이터와 상기 deconvolution 결과의 차이값이 산출되고, (vi) 상기 차이값이 감소하도록 back propagation을 수행하여 상기 convolution 동작, 상기 fully connected 동작, 및 상기 deconvolution 동작에서 사용되는 복수의 가중치들 중 적어도 일부가 업데이트되도록 하여 획득되는 정보를 참조로 하여, 상기 트레이닝 세트에 대하여 수행하였던 일련의 과정 중 적어도 (i) 내지 (v)와 대응되는 방법으로 상기 테스트 세트에 대한 차이값을 획득하고, 상기 테스트 세트에 대한 차이값 및 상기 트레이닝 세트에 대한 차이값을 참조로 하여, 상기 테스트 세트로서의 입력 데이터에 대한 정상 여부를 판단하거나 판단하도록 지원하는 프로세서를 포함하는 장치.
KR1020150183898A 2015-12-22 2015-12-22 Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법 및 장치 KR101644998B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150183898A KR101644998B1 (ko) 2015-12-22 2015-12-22 Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150183898A KR101644998B1 (ko) 2015-12-22 2015-12-22 Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101644998B1 true KR101644998B1 (ko) 2016-08-02

Family

ID=56708397

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150183898A KR101644998B1 (ko) 2015-12-22 2015-12-22 Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101644998B1 (ko)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407333A (zh) * 2016-09-05 2017-02-15 北京百度网讯科技有限公司 基于人工智能的口语查询识别方法及装置
KR101828011B1 (ko) 2016-08-11 2018-02-21 서울대학교산학협력단 이미지에 포함된 객체의 상태를 분류하는 방법 및 분류 장치
KR101847874B1 (ko) 2017-06-28 2018-05-25 서경대학교 산학협력단 합성곱 신경망을 이용한 이미지 인식 방법 및 그 기록 매체
KR101880907B1 (ko) * 2017-09-22 2018-08-16 펜타시큐리티시스템 주식회사 비정상 세션 감지 방법
CN109035488A (zh) * 2018-08-07 2018-12-18 哈尔滨工业大学(威海) 基于cnn特征提取的航空发动机时间序列异常检测方法
CN110068973A (zh) * 2019-04-15 2019-07-30 中国科学院光电技术研究所 一种基于反卷积神经网络的液晶像差校正方法
US10432653B2 (en) 2017-07-28 2019-10-01 Penta Security Systems Inc. Method and apparatus for detecting anomaly traffic
CN111160570A (zh) * 2019-12-31 2020-05-15 山东浪潮人工智能研究院有限公司 用于预测性维护的基于卷积算子的特征构造方法及系统
US10691971B2 (en) 2016-11-28 2020-06-23 Samsung Electronics Co., Ltd. Method and apparatus for recognizing object
US10783395B2 (en) 2018-12-20 2020-09-22 Penta Security Systems Inc. Method and apparatus for detecting abnormal traffic based on convolutional autoencoder
CN111964908A (zh) * 2020-08-17 2020-11-20 天津大学 一种基于mwdcnn的变工况下轴承故障诊断方法
CN112166442A (zh) * 2018-06-04 2021-01-01 株式会社索思未来 运算方法
US10970631B2 (en) 2017-08-09 2021-04-06 Autocrypt Co., Ltd. Method and apparatus for machine learning
WO2022203127A1 (ko) * 2021-03-26 2022-09-29 에스케이플래닛 주식회사 객체 이상 탐지 및 상태 분류 모델의 지속적인 학습을 위한 방법 및 이를 위한 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100974888B1 (ko) * 2007-11-26 2010-08-11 한국전자통신연구원 비정상 트래픽 탐지 장치 및 방법
KR20150037285A (ko) * 2013-09-30 2015-04-08 한국전력공사 침입 탐지 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100974888B1 (ko) * 2007-11-26 2010-08-11 한국전자통신연구원 비정상 트래픽 탐지 장치 및 방법
KR20150037285A (ko) * 2013-09-30 2015-04-08 한국전력공사 침입 탐지 장치 및 방법

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101828011B1 (ko) 2016-08-11 2018-02-21 서울대학교산학협력단 이미지에 포함된 객체의 상태를 분류하는 방법 및 분류 장치
CN106407333A (zh) * 2016-09-05 2017-02-15 北京百度网讯科技有限公司 基于人工智能的口语查询识别方法及装置
CN106407333B (zh) * 2016-09-05 2020-03-03 北京百度网讯科技有限公司 基于人工智能的口语查询识别方法及装置
US10691971B2 (en) 2016-11-28 2020-06-23 Samsung Electronics Co., Ltd. Method and apparatus for recognizing object
KR101847874B1 (ko) 2017-06-28 2018-05-25 서경대학교 산학협력단 합성곱 신경망을 이용한 이미지 인식 방법 및 그 기록 매체
US10432653B2 (en) 2017-07-28 2019-10-01 Penta Security Systems Inc. Method and apparatus for detecting anomaly traffic
US10970631B2 (en) 2017-08-09 2021-04-06 Autocrypt Co., Ltd. Method and apparatus for machine learning
KR101880907B1 (ko) * 2017-09-22 2018-08-16 펜타시큐리티시스템 주식회사 비정상 세션 감지 방법
JP2019061647A (ja) * 2017-09-22 2019-04-18 ペンタ・セキュリティ・システムズ・インコーポレーテッド 異常セッション感知方法
CN112166442A (zh) * 2018-06-04 2021-01-01 株式会社索思未来 运算方法
CN112166442B (zh) * 2018-06-04 2023-08-18 株式会社索思未来 运算方法
CN109035488A (zh) * 2018-08-07 2018-12-18 哈尔滨工业大学(威海) 基于cnn特征提取的航空发动机时间序列异常检测方法
US10783395B2 (en) 2018-12-20 2020-09-22 Penta Security Systems Inc. Method and apparatus for detecting abnormal traffic based on convolutional autoencoder
CN110068973A (zh) * 2019-04-15 2019-07-30 中国科学院光电技术研究所 一种基于反卷积神经网络的液晶像差校正方法
CN111160570A (zh) * 2019-12-31 2020-05-15 山东浪潮人工智能研究院有限公司 用于预测性维护的基于卷积算子的特征构造方法及系统
CN111964908A (zh) * 2020-08-17 2020-11-20 天津大学 一种基于mwdcnn的变工况下轴承故障诊断方法
WO2022203127A1 (ko) * 2021-03-26 2022-09-29 에스케이플래닛 주식회사 객체 이상 탐지 및 상태 분류 모델의 지속적인 학습을 위한 방법 및 이를 위한 장치

Similar Documents

Publication Publication Date Title
KR101644998B1 (ko) Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법 및 장치
KR101880901B1 (ko) 기계 학습 방법 및 장치
US10380479B2 (en) Acceleration of convolutional neural network training using stochastic perforation
KR101880907B1 (ko) 비정상 세션 감지 방법
US20170177972A1 (en) Method for analysing media content
JP7007488B2 (ja) ハードウェアベースのプーリングのシステムおよび方法
US20180018555A1 (en) System and method for building artificial neural network architectures
CN109754078A (zh) 用于优化神经网络的方法
CN111414987B (zh) 神经网络的训练方法、训练装置和电子设备
US11003990B2 (en) Controlling memory area for training a neural network
KR102624027B1 (ko) 영상 처리 장치 및 방법
CN111178520A (zh) 一种低计算能力处理设备的数据处理方法及装置
WO2021042857A1 (zh) 图像分割模型的处理方法和处理装置
JP2021504836A5 (ko)
US20210182357A1 (en) System and method for model parameter optimization
JP2018194974A (ja) 情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法
JP2020534595A (ja) 人工ニューラル・ネットワークにおける時間プーリングおよび相関
CN117156442B (zh) 基于5g网络的云数据安全保护方法及系统
CN113962371A (zh) 一种基于类脑计算平台的图像识别方法及系统
CA3143928A1 (en) Dynamic image resolution assessment
JP7225874B2 (ja) モデル出力プログラム、モデル出力方法及びモデル出力装置
Ma et al. Temporal pyramid recurrent neural network
WO2020218246A1 (ja) 最適化装置、最適化方法、及びプログラム
CN114463591A (zh) 深度神经网络图像分类方法、装置、设备和存储介质
WO2021100121A1 (en) Information processing apparatus, information processing method, non-transitory computer readable medium

Legal Events

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