KR101880907B1 - 비정상 세션 감지 방법 - Google Patents
비정상 세션 감지 방법 Download PDFInfo
- Publication number
- KR101880907B1 KR101880907B1 KR1020170122363A KR20170122363A KR101880907B1 KR 101880907 B1 KR101880907 B1 KR 101880907B1 KR 1020170122363 A KR1020170122363 A KR 1020170122363A KR 20170122363 A KR20170122363 A KR 20170122363A KR 101880907 B1 KR101880907 B1 KR 101880907B1
- Authority
- KR
- South Korea
- Prior art keywords
- neural network
- lstm
- session
- vector
- processor
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2263—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
- Image Analysis (AREA)
Abstract
서버가 클라이언트로부터 수신하는 요청 메시지와, 상기 서버가 생성하는 응답 메시지를 포함하는 세션의 비정상 여부를 감지하는 방법이 개시된다. 개시된 방법은, 상기 세션에 포함된 메시지들 중 적어도 일부를 행렬 형태의 데이터로 변환하는 단계, 컨볼루셔널 신경망을 이용하여 상기 행렬 형태의 데이터를 상기 행렬보다 작은 차원의 표현 벡터로 변환하는 단계 및 상기 메시지들로부터 획득된 표현 벡터들을 상기 메시지들의 발생 순서에 따라 나열함으로써 제1 표현 벡터 시퀀스를 구성하고, LSTM 신경망을 이용하여, 상기 제1 표현 벡터 시퀀스를 분석함으로써, 상기 세션의 비정상 여부를 판단하는 단계를 포함한다.
Description
본 발명은 서버의 비정상 세션을 감지하는 방법에 관한 것으로, 컨볼루셔널 신경망 및 LSTM 신경망을 이용하여 비정상 세션을 감지하는 방법에 관한 것이다.
일반적으로, 서버가 클라이언트에게 서비스를 제공하는 동안 클라이언트는 서버에게 요청 메시지(ex. http reqeust)를 전송하고, 서버는 요청에 응답하여 응답 메시지(ex. http response)를 생성한다. 서비스 제공 과정에서 발생한 요청 메시지들과 응답 메시지들을 시간 순으로 정렬한 것을 세션(ex. http session)이라 할 수 있다.
만약, 서버의 동작에 오류가 발생하거나, 공격자가 다른 사용자의 로그인 정보를 탈취하여 접속을 하게 되면 요청 메시지와 응답 메시지들의 배열 특징이 평소와 달라지면서 정상적인 세션과 다른 특징을 가지는 비정상 세션이 발생한다. 서비스 오류를 빠르게 복원하기 위해서는 세션을 모니터링하고 비정상적인 세션을 감지할 수 있는 기술이 요구된다. 한편 자동적으로 데이터의 특징을 추출하고 카테고리화 하는 기술로 머신 러닝이 각광 받고 있다.
머신 러닝(machine learning; 기계 학습)이란 인공지능(Artificial Intelligence: AI) 의 한 종류로서, 데이터를 기반으로 컴퓨터가 스스로 학습한 내용을 바탕으로 회귀, 분류, 군집화 등의 예측 작업을 수행하는 것을 말한다.
딥 러닝(deep learning)은 사람의 사고방식을 컴퓨터에게 가르치는 기계 학습의 한 분야이며, 여러 비선형 변환기법의 조합을 통해 높은 수준의 추상화(abstractions, 다량의 데이터나 복잡한 자료들 속에서 핵심적인 내용 또는 기능을 요약하는 작업)를 시도하는 기계 학습(machine learning) 알고리즘의 집합으로 정의될 수 있다.
딥 러닝 구조는 인공신경망(ANN, artificial neural networks)에 기반하여 설계된 개념이다. 인공신경망은 가상의 뉴런을 수학적으로 모델링한 후 시뮬레이션하여 인간의 뇌와 같은 학습 능력을 갖게 하고자 하는 알고리즘으로서, 주로 패턴인식에 많이 사용된다. 딥 러닝에서 이용하는 인공신경망 모델은 선형 맞춤 (linear fitting)과 비선형 변환 (nonlinear transformation or activation)을 반복해 쌓아 올린 구조를 가진다. 딥 러닝에서 사용하는 신경망 모델은 심층 신경망(Deep Neural Network, DNN), 컨볼루셔널 신경망(Convolutional Neural Network, CNN), 순환 신경망(Recurrent Neural Network, RNN), 제한 볼츠만 머신 (Restricted Boltzmann Machine, RBM), 심층 신뢰 신경망 (Deep Belief Network, DBN), 심층 Q-네트워크(Deep Q-Networks) 등을 들 수 있다.
본 발명은, 인공 신경망을 이용하여 비정상적인 세션을 감지하는 방법을 제공하는데 목적이 있다.
일 측면에 있어서,
서버가 클라이언트로부터 수신하는 요청 메시지와, 상기 서버가 생성하는 응답 메시지를 포함하는 세션의 비정상 여부를 감지하는 방법에 있어서, 상기 세션에 포함된 메시지들 중 적어도 일부를 행렬 형태의 데이터로 변환하는 단계; 컨볼루셔널 신경망을 이용하여 상기 행렬 형태의 데이터를 상기 행렬보다 작은 차원의 표현 (representation) 표현 벡터로 변환하는 단계; 및 상기 메시지들로부터 획득된 표현 벡터들을, 상기 메시지들의 발생 순서에 따라 나열함으로써 제1 표현 벡터 시퀀스를 구성하고, LSTM 신경망을 이용하여, 상기 제1 표현 벡터 시퀀스를 분석함으로써, 상기 세션의 비정상 여부를 판단하는 단계;를 포함하는 비정상 세션 감지 방법이 개시된다.
상기 메시지들 중 적어도 일부를 행렬 형태의 데이터로 변환하는 단계는,
상기 메시지들 각각에 포함된 문자를 원 핫 벡터(one-hot vector)로 변환함으로써, 상기 메시지들 각각을 행렬 형태의 데이터로 변환할 수 있다.
상기 LSTM 신경망은 복수의 LSTM 레이어들을 포함하는 LSTM 인코더 및 상기 LSTM 인코더와 대칭적인 구조를 가지는 LSTM 디코더를 포함할 수 있다.
상기 LSTM 인코더는 상기 제1 표현 벡터 시퀀스에 포함된 표현 벡터들을 순차적으로 입력 받고, 미리 정해진 크기의 숨김 벡터를 출력하고,
상기 LSTM 디코더는 상기 숨김 벡터를 입력 받아 상기 제1 표현 벡터 시퀀스에 대응하는 제2 표현 벡터 시퀀스를 출력할 수 있다.
상기 세션이 정상인지 비정상인지를 판단하는 단계는,
상기 제1 표현 벡터 시퀀스와 상기 제2 표현 벡터 시퀀스 사이의 차이에 기초하여 상기 세션이 정상인지 비정상인지를 판단할 수 있다.
상기 LSTM 디코더는 상기 제1 표현 벡터 시퀀스에 포함되는 표현 벡터들 각각에 대응하는 추정 벡터들을 역순으로 출력함으로써, 상기 제2 표현 벡터 시퀀스를 출력할 수 있다.
상기 LSTM 신경망은 상기 제1 표현 벡터 시퀀스에 포함된 표현 벡터들을 순차적으로 입력 받고, 입력 받은 표현 벡터로부터 다음 순번의 표현 벡터에 대한 추정 벡터를 출력할 수 있다.
상기 세션의 비정상 여부를 판단하는 단계는,
상기 LSTM 신경망이 출력한 추정 벡터와, 상기 LSTM 신경망이 입력 받는 표현 벡터 사이의 차이로부터 상기 세션의 비정상 여부를 판단할 수 있다.
상기 비정상 세션 감지 방법은, 상기 컨볼루셔널 신경망 및 상기 LSTM 신경망을 트레이닝(training) 하는 단계를 더 포함할 수 있다.
상기 비정상 세션 감지 방법은, 훈련 데이터를 상기 컨볼루셔널 신경망에 입력하고, 상기 컨볼루셔널 신경망의 출력을 상기 컨볼루셔널 신경망에 대칭적인 구조를 가지는 대칭 신경망에 입력시키고, 상기 대칭 신경망의 출력과 상기 훈련 데이터 사이의 차이에 기초하여 상기 컨볼루셔널 신경망에서 사용하는 가중치 파라미터들을 갱신함으로써 상기 컨볼루셔널 신경망을 트레이닝 할 수 있다.
상기 LSTM 신경망은 복수의 LSTM 레이어들을 포함하는 LSTM 인코더 및 상기 LSTM 인코더와 대칭적인 구조를 가지는 LSTM 디코더를 포함하며, 상기 비정상 세션 감지 방법은, 훈련 데이터를 상기 LSTM 인코더에 입력하고, 상기 LSTM 인코더에서 출력되는 숨김 벡터 및 상기 훈련 데이터를 상기 LSTM 디코더에 입력하고, 상기 LSTM 디코더의 출력과 상기 훈련 데이터 사이의 차이에 기초하여 상기 LSTM 인코더 및 상기 LSTM 디코더에서 사용하는 가중치 파라미터들을 갱신함으로써 상기 LSTM 신경망을 트레이닝 할 수 있다.
다른 측면에 있어서,
상기 세션에 포함된 메시지들 중 적어도 일부를 행렬 형태의 데이터로 변환하는 단계; 컨볼루셔널 신경망을 이용하여 상기 행렬 형태의 데이터를 상기 행렬보다 작은 차원의 표현 벡터로 변환하는 단계; 및 상기 메시지들로부터 획득된 표현 벡터들을, 상기 메시지들의 발생 순서에 따라 나열함으로써 제1 표현 벡터 시퀀스를 구성하고, GRU 신경망을 이용하여, 상기 제1 표현 벡터 시퀀스를 분석함으로써, 상기 세션의 비정상 여부를 판단하는 단계;를 포함하는 비정상 세션 감지 방법이 개시된다.
상기 GRU 신경망은 복수의 GRU 레이어들을 포함하는 GRU 인코더 및 상기 GRU 인코더와 대칭적인 구조를 가지는 GRU 디코더를 포함할 수 있다.
상기 GRU 인코더는 상기 제1 표현 벡터 시퀀스에 포함된 표현 벡터들을 순차적으로 입력 받고, 미리 정해진 크기의 숨김 (hidden) 벡터를 출력하고,
상기 GRU 디코더는 상기 숨김 벡터를 입력 받아 상기 제1 표현 벡터 시퀀스에 대응하는 제2 표현 벡터 시퀀스를 출력할 수 있다.
상기 세션이 정상인지 비정상인지를 판단하는 단계는,
상기 제1 표현 벡터 시퀀스와 상기 제2 표현 벡터 시퀀스 사이의 차이에 기초하여 상기 세션이 정상인지 비정상인지를 판단할 수 있다.
상기 GRU 디코더는 상기 제1 표현 벡터 시퀀스에 포함되는 표현 벡터들 각각에 대응하는 추정 벡터들을 역순으로 출력함으로써, 상기 제2 표현 벡터 시퀀스를 출력할 수 있다.
상기 GRU 신경망은 상기 제1 표현 벡터 시퀀스에 포함된 표현 벡터들을 순차적으로 입력 받고, 입력 받은 표현 벡터로부터 다음 순번의 표현 벡터에 대한 예측 값을 출력할 수 있다.
상기 세션의 비정상 여부를 판단하는 단계는,
상기 GRU 신경망이 출력한 예측 값과, 상기 GRU 신경망이 입력 받는 표현 벡터 사이의 차이로부터 상기 세션의 비정상 여부를 판단할 수 있다.
개시된 실시예들에 따르면, 컨볼루셔널 신경망을 이용하여 세션에 포함된 메시지들을 낮은 차원의 표현 벡터들로 변환할 수 있다. 또한, LSTM 또는 GRU 신경망을 이용하여, 세션에 포함된 표현 벡터 시퀀스를 분석하고 이로부터 세션의 비정상 여부를 판단할 수 있다. 실시예들에 따르면, 수동적인 작업의 개입 없이 인공 신경망을 이용하여 세션의 비정상 여부를 용이하게 판단할 수 있다.
도 1은 예시적인 실시예에 따른 장치를 나타낸 블록도이다.
도 2는 본 발명의 예시적인 실시예에 따른 장치에서 수행되는 비정상 세션 감지 방법을 나타낸 순서도이다.
도 3은 세션의 일 예를 나타낸 개념도이다.
도 4는 프로세서가 메시지의 문자열을 행렬 형태의 데이터로 변환하는 것을 예시적으로 나타낸 개념도이다.
도 5는 컨볼루셔널 신경망을 예시적으로 나타낸 개념도이다.
도 6은 컨볼루션 연산을 예시적으로 나타낸 개념도이다.
도 7은 프로세서가 도 6에서 나타낸 이미지로부터 컨볼루션 이미지를 추출한 것을 나타낸 개념도이다.
도 8은 도 5에서 나타낸 컨볼루션 및 풀링 레이어의 동작을 나타낸 개념도이다.
도 9는 LSTM 신경망을 예시적으로 나타낸 개념도이다.
도 10은 LSTM 레이어의 구성을 예시적으로 나타낸 개념도이다.
도 11은 LSTM 인코더 동작 방식을 나타낸 개념도이다.
도 12는 LSTM 디코더의 동작 방식을 나타낸 개념도이다.
도 13은 LSTM 신경망이 곧바로 추정 벡터를 출력하는 예를 나타낸 개념도이다.
도 14는 GRU 신경망을 예시적으로 나타낸 개념도이다.
도 15는 GRU 레이어의 구성을 예시적으로 나타낸 개념도이다.
도 16은 본 발명의 예시적인 실시예에 따른 장치(100)에서 수행되는 비정상 세션 감지 방법의 변형예를 나타낸 순서도이다.
도 17은 컨볼루셔널 신경망의 트레이닝 과정을 나타낸 개념도이다.
도 2는 본 발명의 예시적인 실시예에 따른 장치에서 수행되는 비정상 세션 감지 방법을 나타낸 순서도이다.
도 3은 세션의 일 예를 나타낸 개념도이다.
도 4는 프로세서가 메시지의 문자열을 행렬 형태의 데이터로 변환하는 것을 예시적으로 나타낸 개념도이다.
도 5는 컨볼루셔널 신경망을 예시적으로 나타낸 개념도이다.
도 6은 컨볼루션 연산을 예시적으로 나타낸 개념도이다.
도 7은 프로세서가 도 6에서 나타낸 이미지로부터 컨볼루션 이미지를 추출한 것을 나타낸 개념도이다.
도 8은 도 5에서 나타낸 컨볼루션 및 풀링 레이어의 동작을 나타낸 개념도이다.
도 9는 LSTM 신경망을 예시적으로 나타낸 개념도이다.
도 10은 LSTM 레이어의 구성을 예시적으로 나타낸 개념도이다.
도 11은 LSTM 인코더 동작 방식을 나타낸 개념도이다.
도 12는 LSTM 디코더의 동작 방식을 나타낸 개념도이다.
도 13은 LSTM 신경망이 곧바로 추정 벡터를 출력하는 예를 나타낸 개념도이다.
도 14는 GRU 신경망을 예시적으로 나타낸 개념도이다.
도 15는 GRU 레이어의 구성을 예시적으로 나타낸 개념도이다.
도 16은 본 발명의 예시적인 실시예에 따른 장치(100)에서 수행되는 비정상 세션 감지 방법의 변형예를 나타낸 순서도이다.
도 17은 컨볼루셔널 신경망의 트레이닝 과정을 나타낸 개념도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 예시적인 실시예에 따른 장치(100)를 나타낸 블록도이다.
도 1의 장치(100)는 서비스를 제공하는 서버일 수도 있고, 서버와 연결되어 서버의 세션을 분석하는 다른 장치일 수도 있다.
도 1을 참조하면, 예시적인 실시예에 따른 장치(100)는 적어도 하나의 프로세서(110), 메모리(120) 및 저장 장치(125) 등을 포함할 수 있다.
프로세서(110)는 메모리(120) 및/또는 저장 장치(125)에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(110)는 중앙 처리 장치(central processing unit; CPU), 그래픽 처리 장치(graphics processing unit; GPU) 또는 본 발명에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(120)와 저장 장치(160)는 휘발성 저장 매체 및/또는 비휘발성 저장 매체로 구성될 수 있다. 예를 들어, 메모리(120)는 읽기 전용 메모리(read only memory; ROM) 및/또는 랜덤 액세스 메모리(random access memory; RAM)로 구성될 수 있다.
메모리(120)는 프로세서(110)를 통해 실행되는 적어도 하나의 명령을 저장하고 있을 수 있다.
메모리(120)에 저장된 명령들은 프로세서(110)의 기계 학습에 의해 업데이트될 수 있다. 프로세서(110)는 기계 학습에 의해 메모리에 저장된 명령을 변경할 수 있다. 프로세서(110)가 수행하는 기계 학습은 지도 학습 방식 또는 비지도 학습 방식에 의해 이루어질 수 있다. 하지만, 실시예가 이에 제한되는 것은 아니다. 예를 들어, 기계 학습은 강화 학습 등 다른 방식에 의해 이루어질 수도 있다.
도 2는 본 발명의 예시적인 실시예에 따른 장치(100)에서 수행되는 비정상 세션 감지 방법을 나타낸 순서도이다.
도 2를 참조하면, S110 단계에서, 프로세서(110)는 세션을 구성할 수 있다. 프로세서(110)는 클라이언트가 서버에게 전송한 요청 메시지와 서버가 생성한 응답 메시지로부터 세션을 구성할 수 있다. 요청 메시지는 http request를 포함할 수 있다. 응답 메시지는 http response를 포함할 수 있다. 세션은 http session을 포함할 수 있다. 프로세서(110)는 요청 메시지 및 응답 메시지를 생성 시점에 따라 순차적으로 나열하여 세션을 구성할 수 있다.
도 3은 세션의 일 예를 나타낸 개념도이다.
도 3을 참조하면, 프로세서(110)는 요청 메시지 및 응답 메시지를 생성 시점에 따라 순차적으로 나열함으로써, 세션을 구성할 수 있다. 프로세서(110)는 요청 메시지 및 응답 메시지 각각에 식별자를 부여할 수도 있다. 프로세서(110)는 후술하는 과정에서 세션의 특징을 분석함으로써, 세션의 비정상 여부를 판단할 수 있다. 프로세서(110)는 세션의 특징을 분석함으로써, 비정상적인 패턴으로 요청 메시지와 응답 메시지가 나열된 세션을 비정상 세션으로 판단할 수 있다.
다시 도 2를 참조하면, S130 단계에서, 프로세서(110)는 세션에 포함된 메시지들 중 적어도 일부를 추출할 수 있다. 예를 들어, 프로세서(110)는 세션에 포함된 요청 메시지 및 응답 메시지 모두를 추출할 수 있다. 다른 예로, 프로세서(110)는 세션에 포함된 요청 메시지만 추출할 수 있다. 또 다른 예로, 프로세서(110)는 세션에 포함된 응답 메시지만 추출할 수도 있다.
프로세서(110)는 추출한 메시지들 각각을 행렬 형태의 데이터로 변환할 수 있다. 프로세서(110)는 메시지들 각각에 포함된 문자를 원 핫 벡터(one-hot vector)로 변환할 수 있다.
도 4는 프로세서(110)가 메시지의 문자열을 행렬 형태의 데이터로 변환하는 것을 예시적으로 나타낸 개념도이다.
도 4를 참조하면, 프로세서(110)는 메시지에 포함된 문자열의 마지막 문자부터 역순으로 문자들 각각을 원 핫 벡터(one-hot vector)로 변환할 수 있다. 프로세서(110)는 문자들 각각을 원 핫 벡터로 변환함으로써, 메시지의 문자열을 행렬로 변환할 수 있다.
원 핫 벡터는 하나의 성분만 1이고 나머지 성분은 0이거나, 모든 성분이 0일 수 있다. 원 핫 벡터에서 '1' 값을 가지는 성분의 위치는 원 핫 벡터가 나타내는 문자의 종류에 따라 달라질 수 있다. 예를 들어, 도 4에서 나타낸 바와 같이, 알파벳 C, F, B, D 각각에 대응하는 one-hot vector는 서로 다른 위치의 성분이 '1'값을 가질 수 있다. 도 4에서 나타낸 점자 이미지는 예시적인 것에 불과하며 실시예가 이에 제한되는 것은 아니다. 예를 들어, 원 핫 벡터의 크기는 도 4에서 나타낸 것보다 더 클 수 있다. one-hot vector는 텍스트 집합 텍스트 합 "abcdefghijklmnopqrstuvwxyz0123456789-,;.!?:'\"/\\|_@#$%^&*~`+-=<>()[]{}"을 표현할 수 있다. 혹은 다양한 문자에 대응하기 위하여, 입력되는 문자열을 UTF-8 코드로 변환 후 다시 16진수 변환을 거쳐 "0123456789abcdef"로 표현할 수 있다. 예를 들어, 이러한 변화를 거친 영문자 1자는 2자의 16진수로 표현된다.
one-hot vector에서 '1' 성분의 위치는 one-hot vector가 나타내는 문자의 순서에 따라 달라질 수 있다.
문자의 종류가 총 (ex. 69개(영문자 26, 숫자 0-9, new line, 33개의 특수문자)인 경우, 프로세서(110)는 각각의 메시지를 크기의 행렬로 변환할 수 있다. 만약, 메시지의 길이가 보다 작으면, 부족한 표현 벡터들은 모두 0 표현 벡터로 변환할 수 있다. 다른 예로, 메시지의 길이가 보다 크면, 개의 문자들만 원 핫 벡터로 변환할 수 있다.
다시 도 3을 참조하면, S140 단계에서, 프로세서(110)는 컨볼루셔널 신경망(Convolutional neural network)를 이용하여 행렬 데이터를 낮은 차원의 표현 벡터로 매핑할 수 있다. 프로세서(110)는 컨볼루셔널 신경망을 이용하여, 행렬 데이터의 특성이 반영된 표현 벡터를 출력할 수 있다. 출력된 표현 벡터의 차원은 행렬 데이터의 차원보다 낮을 수 있다. 이하에서는 컨볼루셔널 신경망에 대하여 설명한다.
도 5는 컨볼루셔널 신경망을 예시적으로 나타낸 개념도이다.
도 5를 참조하면, 컨볼루셔널 신경망은 적어도 하나의 컨볼루션 및 풀링 레이어(convolution & pooling layer)와, 적어도 하나의 전체 연결 레이어(fully connected layer)를 포함할 수 있다. 도 5에서는 하나의 레이어에서 컨볼루션 동작 및 풀링 동작이 이루어지는 예를 나타냈지만, 실시예가 이에 제한되는 것은 아니다. 예를 들어, 컨볼루션 동작이 수행되는 레이어와 풀링 동작이 수행되는 레이어가 서로 분리되어 있을 수도 있다. 또한, 컨볼루셔널 신경망은 풀링 동작을 수행하지 않을 수도 있다.
컨볼루셔널 신경망은 입력 받은 데이터의 특징을 추출하고, 입력 받은 데이터보다 스케일이 작은 출력 데이터를 생성할 출력할 수 있다. 컨볼루셔널 신경망은 이미지 또는 행렬 형태의 데이터를 입력 받을 수 있다.
컨볼루션 및 풀링 레이어는 행렬 데이터를 입력받고, 입력 받은 행렬 데이터에 대해 컨볼루션 연산을 수행할 수 있다.
도 6은 컨볼루션 연산을 예시적으로 나타낸 개념도이다.
도 6을 참조하면, 프로세서(110)는 커널(FI)을 이용하여 입력 이미지(OI)에 대한 컨볼루션 연산을 수행할 수 있다. 커널(FI)은 이미지(OI)의 픽셀 개수보다 작은 크기의 행렬일 수 있다. 예시적으로, 필터 커널(FI)의 (1,1) 성분은 0일 수 있다. 따라서, 컨볼루션을 계산할 때, 커널(FI)의 (1,1) 성분에 대응하는 이미지(OI)의 픽셀에 대해서 0이 곱해질 수 있다. 다른 예로, 커널(FI)의 (2,1) 성분은 1이다. 따라서, 컨볼루션을 계산할 때, 커널(FI)의 (2,1) 성분에 대응하는 이미지(OI)의 픽셀에 대해서 1이 곱해질 수 있다.
프로세서(110)는 이미지(OI) 상에서 커널(FI)의 위치를 변경해가면서, 이미지(OI)에 대한 컨볼루션 연산을 수행할 수 있다. 그리고, 프로세서(110)는 계산된 컨볼루션 값들로부터 컨볼루션 이미지를 출력할 수 있다.
도 7은 프로세서(110)가 도 6에서 나타낸 이미지(OI)로부터 컨볼루션 이미지를 추출한 것을 나타낸 개념도이다.
도 7에서 나타낸 필터 커널(FI)이 이미지(OI) 상에서 움직일 수 있는 경우의 수가 (10-3+1)×(10-3+1)=8×8 개이기 때문에, 프로세서(110)는 8×8 개의 컨볼루션 값들을 계산할 수 있다. 그리고, 8×8 개의 컨볼루션 값들로부터 도 6에서 나타낸 바와 같은 8×8 픽셀 크기의 컨볼루션 이미지를 추출할 수 있다. 컨볼루션 이미지(CI)의 픽셀 개수는 원본 이미지(OI)보다 작아지게 된다. 프로세서(110)는 커널(FI)을 이용함으로써, 원본 이미지의 특성이 반영된 컨볼루션 이미지를 추출할 수 있다. 프로세서(110)는 커널(FI)를 이용하여 입력된 이미지(OI)보다 크기가 작으며 입력된 이미지(OI)의 특성을 반영하는 컨볼루션 이미지(CI)를 출력할 수 있다. 컨볼루션 연산은 컨볼루션 레이어 또는 컨볼루션 및 풀링 레이어에서 수행될 수 있다.
도 8은 도 5에서 나타낸 컨볼루션 및 풀링 레이어의 동작을 나타낸 개념도이다.
도 8에서는 편의상 컨볼루셔널 신경망의 첫 번째 컨볼루션 및 풀링 레이어(Convolution and pooling layer 1)에서의 동작을 예시적으로 나타냈다. 도 8을 참조하면, 입력 레이어는 크기의 행렬 데이터를 입력 받을 수 있다. 입력 레이어는 크기를 가지는 n개의 컨볼루셔널 필터를 이용해 컨볼루션 연산을 수행할 수 있다. 입력 레이어는 컨볼루션 연산을 통해 n개의 특징 맵(feature map)들을 출력할 수 있다. 특징 맵 각각의 차원은 보다 작을 수 있다.
컨볼루션 및 풀링 레이어(layer 1)은 컨볼루션 연산에 의해 출력된 특징 맵들 각각에 대해 풀링 연산을 수행함으로써, 특징 맵의 크기를 줄일 수 있다. 풀링 연산은 특징 맵에서 인접한 픽셀들을 머지(merge)하여 하나의 대표 값을 획득하는 연산일 수 있다. 컨볼루션 및 풀링 레이어에서 풀링 연산에 의해 특징맵의 크기가 줄어들 수 있다.
대표값은 다양한 방법으로 획득될 수 있다. 예를 들어, 프로세서(110)는 특징맵에서 서로 인접한 개의 픽셀들의 값들 중 최대 값을 대표 값으로 결정할 수 있다. 다른 예로, 프로세서(110)는 특징맵에서 서로 인접한 개의 픽셀들의 값들의 평균 값을 대표 값으로 결정할 수 있다.
다시 도 5를 참조하면, 개의 컨볼루션 및 풀링 레이어에서 컨볼루션 연산과 풀링 연산이 수행될 수 있다. 컨볼루션 연산 및 풀링 연산이 수행됨에 따라 특징 맵의 크기는 점점 감소할 수 있다. 마지막 컨볼루션 및 풀링 레이어(Layer NC)에서 크기를 가지는 특징맵 개가 출력될 수 있다. 마지막 컨볼루션 및 풀링 레이어(Layer NC)에서 출력되는 특징맵들은 다음과 같이 표현될 수 있다.
마지막 컨볼루션 및 풀링 레이어(Layer NC)에서 출력되는 특징맵들은 첫 번째 전체 연결 레이어(Layer NC+1)에 입력될 수 있다. 첫 번째 전체 연결 레이어는 입력 받은 특징맵들을 크기를 가지는 1차원 표현 벡터 로 변환할 수 있다.
첫 번째 전체 연결 레이어는 변환한 1차원 표현 벡터에 대해 웨이트(weight) 행렬을 곱할 수 있다. 예시적으로, 첫 번째 전체 연결 레이어가 수행하는 연산은 수학식 7과 같이 나타낼 수 있다.
수학식 1에서 는, 첫 번째 전체 연결 레이어에서 이용하는 웨이트 행렬을 의미한다. 는 첫 번째 전체 연결 레이어에서 출력되는 표현 벡터를 의미한다. 는 1차원 표현 벡터일 수 있다. 는 첫 번재 전체 연결 레이어에서 출력되는 표현 벡터 의 크기를 의미한다.
도 5를 참조하면, 컨볼루셔널 신경망은 NF개의 전체 연결 레이어들을 포함할 수 있다. 수학식 1을 일반화 하여, l번째 전체 연결 레이어에서 수행되는 연산은 수학식 2와 같이 나타낼 수 있다.
수학식 2에서 는 l번째 전체 연결 레이어의 출력 표현 벡터를 의미한다. 는 l번째 전체 연결 레이어에서 이용하는 웨이트 행렬을 의미한다. 은 l번째 전체 연결 레이어에서 이용하는 활성화 함수를 의미한다. 은 l-1번째 전체 연결 레이어의 출력 표현 벡터로서, l번째 전체 연결 레이어에 대한 입력 표현 벡터일 수 있다.
출력 레이어는 수학식 3에서 획득한 출력 표현 벡터 의 각각의 클래스에 대한 최종 출력 값을 계산할 수 있다. 출력 레이어는 활성화 함수를 이용하여 최종 출력 표현 벡터를 계산할 수 있다. 출력 레이어의 최종 출력 값 계산 과정은 수학식 4와 같이 나타낼 수 있다.
수학식 4에서 는 출력 레이어에서 이용되는 활성화 함수를 의미한다. 는 시그모이드 함수, 하이퍼 탄젠트 함수 및 정류 선형 유닛 중 적어도 하나일 수 있다. 수학식 4를 참조하면, 출력 레이어는 출력 표현 벡터 에 대한 최종 출력 표현 벡터 를 계산할 수 있다.
다른 예로, 최종 출력 레이어는 소프트 맥스(soft max) 함수를 이용하여 최종 출력 값을 계산할 수도 있다. 출력 레이어의 최종 출력 표현 벡터 계산 과정은 수학식 5와 같이 나타낼 수도 있다.
수학식 5를 참조하면, 최종 출력 레이어는 출력 표현 벡터의 클래스 값에 대한 지수 함수를 이용하여 최종 출력 값을 계산할 수 있다.
수학식 3내지 5에서 이므로, 컨볼루셔널 신경망은 크기의 표현 벡터를 출력할 수 있다. 즉, 컨볼루셔널 신경망은 크기의 행렬 데이터를 입력 받아 크기의 표현 벡터를 출력할 수 있다.
컨볼루셔널 신경망은 비지도 학습 방식으로도 트레이닝 될 수 있다. 컨볼루셔널 신경망의 트레이닝 방식은 도 17을 참조한 설명에서 후술한다.
다시 도 2를 참조하면, S150 단계에서, 프로세서(110)는 세션에 대응하는 제1 표현 벡터 시퀀스를 생성할 수 있다. 프로세서(110)는 컨볼루셔널 신경망을 이용하여 세션에서 추출한 메시지들 각각으로부터 획득한 표현 벡터들을 이용하여 제1 표현 벡터 시퀀스를 생성할 수 있다. 예를 들어, 프로세서(110)는 메시지의 생성 순서에 따라 표현 벡터들을 순차적으로 나열하여 표현 벡터 시퀀스를 생성할 수 있다. 제1 표현 벡터 시퀀스는 예시적으로 아래와 같이 표현될 수 있다.
S160 단계에서, 프로세서(110)는 제1 표현 벡터 시퀀스를 분석함으로써, 세션의 비정상 여부를 판단할 수 있다. 프로세서(110)는 LSTM(Long short term memory) 신경망을 이용하여 제1 표현 벡터 시퀀스를 분석할 수 있다. LSTM 신경망은 정보를 저장하는 셀 상태(Cell state)의 선택적인 갱신을 통해 RNN(Recurrent Neural Network)의 장기 의존성을 회피할 수 있다. 이하에서는 LSTM 신경망에 대하여 설명한다.
도 9는 LSTM 신경망을 예시적으로 나타낸 개념도이다.
도 9를 참조하면, LSTM 신경망은 복수개의 LSTM 레이어들을 포함할 수 있다. LSTM 신경망은 표현 벡터 시퀀스를 입력 받을 수 있다. LSTM 신경망은 표현 벡터 시퀀스에 포함된 표현 벡터들 을 순차적으로 입력 받을 수 있다. LSTM 신경망의 0번째 레이어(layer 0)는 t번째 표현 벡터 및 0번째 레이어(layer 0)가 을 입력 받아 출력한 을 입력 받을 수 있다. 0번째 레이어는 t번째 표현 벡터 에 대한 숨김 벡터 을 출력하기 위해, 이전 표현 벡터에 대한 숨김 벡터 을 이용할 수 있다. 즉, LSTM 레이어는 입력 받은 표현 벡터에 대한 숨김 벡터를 출력할 때 이전 표현 벡터에 대한 숨김 벡터 출력을 참조함으로써, 시퀀스의 표현 벡터들 사이의 상관관계를 고려할 수 있다.
n번째 레이어는 n-1번째 레이어로부터 숨김 벡터 을 입력 받을 수 있다. n번째 레이어는 이전 표현 벡터에 대한 숨김 벡터 및 n-1번째 레이어로부터 수신한 을 이용하여 을 출력할 수 있다.
이하에서는 LSTM 신경망의 레이어들 각각의 동작에 관해 설명한다. 이하의 설명에서는 0번째 레이어를 기준으로 레이어의 동작을 설명한다. n번째 레이어는 표현 벡터 대신 n-1번째 레이어의 숨김 벡터 를 입력 받는 것 외에 기본적인 동작원리는 0번째 레이어와 유사할 수 있다.
도 10은 LSTM 레이어의 구성을 예시적으로 나타낸 개념도이다.
도 10을 참조하면, LSTM 레이어는 잊기 게이트(forget gate)(810), 입력 게이트(input gate)(850), 출력 게이트(output gate)(860)을 포함할 수 있다. 도 10에서 박스 중앙의 라인은 레이어의 셀(cell) 상태를 나타내는 라인이다.
잊기 게이트(810)는 t번째 표현 벡터 와, 셀의 이전 상태 및 이전 표현 벡터에 대한 숨김 벡터 을 이용하여 를 계산할 수 있다. 잊기 게이트(810)는 를 계산하는 과정에서 이전 상태에서 어떤 정보를 어느 정도로 버릴지를 결정할 수 있다. 잊기 게이트(810)는 예시적으로 수학식 6을 이용하여 를 계산할 수 있다.
수학식 6에서 는 시그모이드(sigmoid)함수를 의미한다. 는 바이어스(bias)를 의미한다. 는 에 대한 가중치를 의미하고, 는 에 대한 가중치를 의미하고, 는 에 대한 가중치를 의미한다.
입력 게이트(850)는 셀 상태에 어떤 새로운 정보를 반영할 것인지를 결정할 수 있다. 입력 게이트(850)는 수학식 7을 이용하여 셀 상태에 반영할 새로운 정보 를 계산할 수 있다.
수학식 7에서 는 시그모이드(sigmoid)함수를 의미한다. 는 바이어스(bias)를 의미한다. 는 에 대한 가중치를 의미하고, 는 에 대한 가중치를 의미하고, 는 에 대한 가중치를 의미한다.
수학식 8을 참조하면, 수학식 9는 수학식 10과 같이 나타낼 수 있다.
수학식 11에서 는 시그모이드(sigmoid)함수를 의미한다. 는 바이어스(bias)를 의미한다. 는 에 대한 가중치를 의미하고, 는 에 대한 가중치를 의미하고, 는 에 대한 가중치를 의미한다.
LSTM 신경망은 LSTM 인코더(encoder) 및 LSTM 인코더에 대칭적인 구조를 가지는 LSTM 디코더(decoder)를 포함할 수 있다. LSTM 인코더는 제1 표현 벡터 시퀀스를 입력 받을 수 있다. LSTM 인코더는 제1 표현 벡터 시퀀스를 입력 받고 미리 정해진 크기의 숨김 벡터를 출력할 수 있다. LSTM 디코더는 LSTM 인코더로부터 출력된 숨김 벡터를 입력 받을 수 있다. LSTM 디코더는 LSTM 인코더에서 사용된 가중치 행렬과 바이어스 값을 그대로 사용할 수 있다. LSTM 디코더는 제1 표현 벡터 시퀀스에 대응하는 제2 표현 벡터 시퀀스를 출력할 수 있다. LSTM 디코더는 제2 표현 벡터 시퀀스는 제1 표현 벡터 시퀀스에 포함된 표현 벡터들에 대응하는 추정 벡터들을 포함할 수 있다. LSTM 디코더는 추정 벡터들을 역순으로 출력할 수 있다. 즉, LSTM 디코더는 제1 표현 벡터 시퀀스의 표현 벡터 순서의 반대로 추정 벡터들을 출력할 수 있다.
도 11은 LSTM 인코더 동작 방식을 나타낸 개념도이다.
도 11을 참조하면, LSTM 인코더는 제1 표현 벡터 시퀀스의 표현 벡터들을 순차적으로 입력 받을 수 있다. 예를 들어, LSTM 인코더는 제1 표현 벡터 시퀀스를 입력 받을 수 있다. LSTM 인코더의 n번째 레이어는 n-1번째 레이어의 출력을 입력 받을 수 있다. 또한, n번째 레이어는 t번째 표현 벡터 에 대한 숨김 벡터을 계산하기 위해, 이전 표현 벡터 에 대한 숨김 벡터 을 이용할 수 있다.
도 12는 LSTM 디코더의 동작 방식을 나타낸 개념도이다.
LSTM 디코더는 제1 표현 벡터 시퀀스에 대한 추정 벡터들을 포함하는 제2 표현 벡터 시퀀스 를 출력할 수 있다. LSTM 디코더는 추정 벡터들을 역순(제1 표현 벡터 시퀀스 상에서 표현 벡터들 순서의 반대)으로 출력할 수 있다.
LSTM 디코더는 을 계산하는 과정에서 내지 를 출력할 수 있다. LSTM 디코더는 를 출력한 다음, 을 입력 받고, 내지 를 이용하여 에 대한 추정 벡터 를 출력할 수 있다. LSTM 디코더는 를 계산하기 위해 내지 만을 이용할 수 있다. 즉, LSTM 디코더는 를 계산하는 과정에서 을 입력 받지 않을 수도 있다.
LSTM 디코더가 제2 표현 벡터 시퀀스 를 출력하면, 프로세서(110)는 제2 표현 벡터 시퀀스와 제1 표현 벡터 시퀀스를 비교할 수 있다. 예를 들어, 프로세서(110)는 수학식 13을 이용하여 세션의 비정상 여부를 판단할 수 있다.
수학식 13에서 S는 세션에서 추출한 메시지들(요청 메시지 또는 응답 메시지)의 개수를 의미한다. 는 t번째 메시지로부터 출력된 표현 벡터고, 는 LSTM 디코더가 출력한 에 대한 추정 벡터다. 프로세서(110)는 제1 표현 벡터 시퀀스와 제2 표현 벡터 시퀀스 사이의 차이가 미리 정해진 기준 값 보다 작은 지 여부를 판단할 수 있다. 만약, 제1 표현 벡터 시퀀스와 제2 표현 벡터 시퀀스 사이의 차이가 기준 값 보다 크면 프로세서(110)는 세션이 비정상적이라고 판단할 수 있다.
상술한 설명에서는 LSTM 신경망이 LSTM 인코더 및 LSTM 디코더를 포함하는 예에 관해 설명했다. 하지만, 실시예가 이에 제한되는 것은 아니다. 예를 들어, LSTM 신경망은 곧바로 추정 벡터를 출력할 수도 있다.
도 13은 LSTM 신경망이 곧바로 추정 벡터를 출력하는 예를 나타낸 개념도이다.
도 13을 참조하면, LSTM 신경망은 제1 표현 벡터 시퀀스에 포함된 표현 벡터들 을 순차적으로 입력 받고, 입력 받은 표현 벡터로부터 다음 순번의 표현 벡터에 대한 추정 벡터를 출력할 수 있다.
예를 들어, LSTM 신경망은 를 입력 받아, 에 대한 추정 벡터 을 출력할 수 있다. 마찬가지로 LSTM 신경망은 을 입력 받아 를 출력할 수 있다. 프로세서(110)는 LSTM 신경망이 출력한 추정 벡터들 과, LSTM 신경망이 입력 받는 표현 벡터들 사이의 차이로부터 세션의 비정상 여부를 판단할 수 있다. 예를 들어, 프로세서(110)는 수학식 14를 이용하여 세션의 비정상 여부를 판단할 수 있다.
프로세서(110)는 표현 벡터들 과, 추정 벡터들 사이의 차이가 미리 정해진 기준 값 보다 작은 지 여부를 판단할 수 있다. 만약, 차이가 기준 값 보다 크면 프로세서(110)는 세션이 비정상적이라고 판단할 수 있다.
상술한 설명에서는 프로세서(110)가 LSTM 신경망을 이용하여 세션의 비정상 여부를 판단하는 예에 관해 설명했다. 하지만, 실시예가 이에 제한되는 것은 아니다. 예를 들어, 프로세서(110)는 S160 단계에서, GRU 신경망을 이용하여 세션의 비정상 여부를 판단할 수도 있다.
도 14는 GRU 신경망을 예시적으로 나타낸 개념도이다.
도 14를 참조하면, GRU 신경망은 LSTM 신경망과 유사한 방식으로 동작할 수 있다. GRU 신경망은 복수개의 GRU 레이어들을 포함할 수 있다. GRU 신경망은 표현 벡터 시퀀스에 포함된 표현 벡터들 을 순차적으로 입력 받을 수 있다. GRU 신경망의 0번째 레이어(layer 0)는 t번째 표현 벡터 및 0번째 레이어(layer 0)가 을 입력 받아 출력한 을 입력 받을 수 있다. 0번째 레이어는 t번째 표현 벡터 에 대한 숨김 벡터 을 출력하기 위해, 이전 표현 벡터에 대한 숨김 벡터 출력 을 이용할 수 있다. 즉, GRU 레이어는 입력 받은 표현 벡터에 대한 숨김 벡터를 출력할 때 이전 표현 벡터에 대한 숨김 벡터 출력을 참조함으로써, 시퀀스의 표현 벡터들 사이의 상관관계를 고려할 수 있다.
n번째 레이어는 n-1번째 레이어로부터 을 입력 받을 수 있다. 다른 예로 n번째 레이어는 n-1번째 레이어로부터 및 를 입력 받을 수도 있다. n번째 레이어는 이전 표현 벡터에 대한 및 n-1번째 레이어로부터 수신한 을 이용하여 을 출력할 수 있다.
이하에서는 GRU 신경망의 레이어들 각각의 동작에 관해 설명한다. 이하의 설명에서는 0번째 레이어를 기준으로 레이어의 동작을 설명한다. n번째 레이어는 표현 벡터 대신 n-1번째 레이어의 숨김 벡터 출력 또는 및 표현 벡터 를 모두 입력 받는 것 외에 기본적인 동작원리는 0번째 레이어와 유사할 수 있다.
도 15는 GRU 레이어의 구성을 예시적으로 나타낸 개념도이다.
도 15를 참조하면, GRU 레이어는 리셋 게이트(r) 및 업데이트 게이트(z)를 포함할 수 있다. 리셋 게이트(r)는 새로운 입력을 이전 메모리와 어떻게 합칠지를 정할 수 있다. 업데이트 게이트(z)는 이전 메모리를 얼마나 반영할 지를 결정할 수 있다. LSTM 레이어와 달리, GRU 레이어에서는 셀 상태와 출력이 구분되지 않을 수 있다.
예시적으로, 리셋 게이트(r)는 수학식 15를 이용하여 리셋 파라미터 r을 계산할 수 있다.
예시적으로, 업데이트 게이트(z)는 수학식 16을 이용하여, 업데이트 파라미터 z를 계산할 수 있다.
GRU 레이어는 새로운 숨김 벡터에 대한 추정 값 h를 수학식 17에 따라 계산할 수 있다.
GRU 레이어는 수학식 17에서 계산한 를 이용하여 에 대한 숨김 벡터 를 계산할 수 있다. 예를 들어, GRU 레이어는 수학식 18을 이용하여 에 대한 숨김 벡터를 계산할 수 있다.
GRU 신경망은 레이어 각각의 구성상 차이를 제외하고는, LSTM 신경망과 유사하게 동작할 수 있다. 예를 들어, 도 11내지 도 13에서 나타낸 LSTM 신경망의 실시예들이 GRU 신경망에도 유사하게 적용될 수 있다. GRU 신경망의 경우, 각각의 레이어 동작이 도 15에서 나타낸 바와 동작하는 것 외에 LSTM 신경망과 유사한 원리로 동작할 수 있다.
예를 들어, GRU 신경망은 도 11 및 도 12에서 나타낸 바와 같이 GRU 인코더 및 GRU 디코더를 포함할 수 있다. GRU 인코더는 제1 표현 벡터 시퀀스 의 표현 벡터들을 순차적으로 입력 받고, 숨김 벡터 내지 을 출력할 수 있다, 여기서, 는 GRU 인코더의 레이어 개수일 수 있다.
GRU 디코더는 제1 표현 벡터 시퀀스에 대한 추정 벡터들을 포함하는 제2 표현 벡터 시퀀스 를 출력할 수 있다. GRU 디코더는 GRU 인코더에서 사용된 가중치 행렬과 바이어스 값을 그대로 사용할 수 있다. GRU 디코더는 추정 벡터들을 역순(제1 표현 벡터 시퀀스 상에서 표현 벡터들 순서의 반대)으로 출력할 수 있다.
프로세서(110)는 수학식 13을 이용하여, 제1 표현 벡터 시퀀스와 제2 표현 벡터 시퀀스를 비교함으로써, 세션의 비정상 여부를 판단할 수 있다.
다른 예로, GRU 신경망은 인코더와 디코더로 나누어지지 않을 수도 있다. 예를 들어, GRU 신경망은 도 13을 참조하여 설명한 바와 같이 곧바로 추정 벡터를 출력할 수 있다. GRU 신경망은 제1 표현 벡터 시퀀스에 포함된 표현 벡터들 을 순차적으로 입력 받고, 입력 받은 표현 벡터로부터 다음 순번의 표현 벡터에 대한 추정 벡터를 출력할 수 있다.
GRU 신경망은 를 입력 받아, 에 대한 추정 벡터 을 출력할 수 있다. 마찬가지로 GRU 신경망은 을 입력 받아 를 출력할 수 있다. 프로세서(110)는 GRU신경망이 출력한 추정 벡터들 과, GRU 신경망이 입력 받는 표현 벡터들 사이의 차이로부터 세션의 비정상 여부를 판단할 수 있다. 예를 들어, 프로세서(110)는 수학식 14를 이용하여 세션의 비정상 여부를 판단할 수 있다.
도 16은 본 발명의 예시적인 실시예에 따른 장치(100)에서 수행되는 비정상 세션 감지 방법의 변형예를 나타낸 순서도이다.
도 16의 실시예를 설명함에 있어서, 도 2와 중복되는 내용은 생략한다.
도 16을 참조하면, S100 단계에서, 프로세서(110)는 컨볼루셔널 신경망 및 LSTM(또는 GRU) 신경망을 트레이닝 시킬 수 있다.
예시적으로, 프로세서(110)는 비지도 학습 방식으로 컨볼루셔널 신경망을 트레이닝 할 수 있다. 다른 예로, 메시지들과 메시지들에 라벨링된 출력 표현 벡터를 포함하는 훈련 데이터가 존재하는 경우, 프로세서(110)는 지도 학습 방식으로 컨볼루셔널 신경망을 트레이닝할 수도 있다.
비지도 학습의 경우, 프로세서(110)는 프로세서(110)는 컨볼루셔널 신경망에 대해 대칭적 구조를 가지는 대칭 신경망을 컨볼루셔널 신경망에 연결할 수 있다. 프로세서(110)는 컨볼루셔널 신경망의 출력을 대칭 신경망에 입력시킬 수 있다.
도 17은 컨볼루셔널 신경망의 트레이닝 과정을 나타낸 개념도이다.
도 17을 참조하면, 프로세서(110)는 컨볼루셔널 신경망의 출력을 대칭 신경망에 입력 시킬 수 있다. 대칭 신경망은, 상기 컨볼루셔널 신경망의 전체 연결 레이어에 대응하는 역방향 전체 연결 레이어(backward fully connected layer)와, 상기 컨볼루셔널 신경망의 컨볼루션 레이어 및 풀링 레이어에 대응하는 디컨볼루션 레이어 및 언풀링 레이어를 포함할 수 있다. 대칭 신경망의 구체적인 동작에 대한 설명은 한국 특허 출원(10-2015-183898)로 대신한다.
프로세서(110)는 대칭 신경망의 출력과 컨볼루셔널 신경망에 입력되는 입력 사이의 차이에 기초하여, 컨볼루셔널 신경망의 가중치 파라미터들을 갱신할 수 있다. 예를 들어, 프로세서(110)는 대칭 신경망의 출력과 컨볼루셔널 신경망에 입력되는 입력 사이의 재구성 오류(reconstruction error) 및 평균 제곱 오류(mean squared error) 중 적어도 하나에 기초하여 비용함수를 결정할 수 있다. 프로세서(110)는 상술한 방식에 의해 결정된 비용함수를 최소화 하는 방향으로 가중치 파라미터들을 갱신할 수 있다.
예시적으로, 프로세서(110)는 비지도 학습 방식으로 LSTM(GRU) 신경망을 트레이닝 할 수 있다.
LSTM(GRU) 신경망이 LSTM(GRU) 인코더 및 LSTM(GRU) 디코더를 포함하는 경우, 프로세서(110)는 LSTM(GRU) 인코더에 입력되는 표현 벡터들과, LSTM(GRU) 디코더에서 출력되는 표현 벡터들을 비교함으로써, 비용함수를 계산할 수 있다. 예를 들어, 프로세서(110)는 수학식 19를 이용하여 비용함수를 계산할 수 있다.
수학식 19에서 는 비용함수 값을 의미하고, 는 훈련용 데이터 에 포함된 세션들의 개수를 의미하고, 은 n번째 훈련용 세션에 포함된 메시지들의 개수를 의미하고, 은 n번째 훈련용 세션의 t번째 메시지에 대응하는 표현 벡터를 의미하고, 은 LSTM(GRU) 디코더에서 출력된 추정 벡터로서, 에 대한 추정 벡터를 의미한다. 또한, 는 LSTM(GRU) 신경망의 가중치 파라미터들의 집합을 의미한다. 예를 들어, LSTM 신경망의 경우, 일 수 있다.
이상에서 도 1 내지 도 17과 수학식 1 내지 수학식 19를 참조하여 본 발명의 실시예들에 따른 비정상 세션 감지 방법에 관하여 설명하였다. 상술한 실시예들에 따르면, 컨볼루셔널 신경망을 이용하여 세션에 포함된 메시지들을 낮은 차원의 표현 벡터들로 변환할 수 있다. 또한, LSTM 또는 GRU 신경망을 이용하여, 세션에 포함된 표현 벡터 시퀀스를 분석하고 이로부터 세션의 비정상 여부를 판단할 수 있다. 실시예들에 따르면, 수동적인 작업의 개입 없이 인공 신경망을 이용하여 세션의 비정상 여부를 용이하게 판단할 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬, 램, 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 1의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
Claims (18)
- 프로세서 및 메모리를 포함하는 서버가 클라이언트와의 송수신 메시지를 포함하는 세션에 대하여 수행하는 비정상 세션 감지 방법에 있어서,
상기 프로세서에 의해 상기 세션에 포함된 메시지들 중 적어도 일부를 행렬 형태의 데이터로 변환하는 단계;
상기 프로세서에 의해 컨볼루셔널 신경망을 이용하여 상기 행렬 형태의 데이터를 상기 행렬보다 작은 차원의 표현 벡터로 변환하는 단계;
상기 프로세서에 의해 상기 메시지들로부터 획득된 표현 벡터들을, 상기 메시지들의 발생 순서에 따라 나열함으로써 제1 표현 벡터 시퀀스를 구성하는 단계;
상기 프로세서에 의해 LSTM 신경망을 이용하여 상기 제1 표현 벡터 시퀀스로부터 제2 표현 벡터 시퀀스를 생성하는 단계; 및
상기 프로세서에 의해 상기 제1 표현 벡터 시퀀스 및 상기 제2 표현 벡터 시퀀스의 차이값과 기준값을 비교하여 상기 세션의 비정상 여부를 판단하는 단계를 포함하는 비정상 세션 감지 방법. - 청구항 1에 있어서,
상기 메시지들 중 적어도 일부를 행렬 형태의 데이터로 변환하는 단계는,
상기 메시지들 각각에 포함된 문자를 원 핫 벡터(one-hot vector)로 변환함으로써, 상기 메시지들 각각을 행렬 형태의 데이터로 변환하는 비정상 세션 감지 방법. - 청구항 1에 있어서,
상기 LSTM 신경망은 복수의 LSTM 레이어들을 포함하는 LSTM 인코더 및 상기 LSTM 인코더와 대칭적인 구조를 가지는 LSTM 디코더를 포함하는 비정상 세션 감지 방법. - 청구항 3에 있어서,
상기 LSTM 인코더는 상기 제1 표현 벡터 시퀀스에 포함된 표현 벡터들을 순차적으로 입력 받고, 미리 정해진 크기의 숨김 (hidden) 벡터를 출력하고,
상기 LSTM 디코더는 상기 숨김 벡터를 입력 받아 상기 제1 표현 벡터 시퀀스에 대응하는 상기 제2 표현 벡터 시퀀스를 생성하는 비정상 세션 감지 방법. - 삭제
- 청구항 4에 있어서,
상기 LSTM 디코더는 상기 제1 표현 벡터 시퀀스에 포함되는 표현 벡터들 각각에 대응하는 추정 벡터들을 역순으로 출력함으로써, 상기 제2 표현 벡터 시퀀스를 생성하는 비정상 세션 감지 방법. - 청구항 1에 있어서,
상기 LSTM 신경망은 상기 제1 표현 벡터 시퀀스에 포함된 표현 벡터들을 순차적으로 입력 받고, 입력 받은 표현 벡터로부터 다음 순번의 표현 벡터에 대한 추정 벡터를 포함하는 상기 제2 표현 벡터 시퀀스를 생성하는 비정상 세션 감지 방법. - 청구항 7에 있어서,
상기 세션의 비정상 여부를 판단하는 단계는,
상기 제2 표현 벡터 시퀀스에 포함된 상기 추정 벡터와 상기 제1 표현 벡터 시퀀스에 포함된 표현 벡터 사이의 차이값과 상기 기준값을 비교하여 상기 세션의 비정상 여부를 판단하는 비정상 세션 감지 방법. - 청구항 1에 있어서,
상기 프로세서에 의해 상기 컨볼루셔널 신경망 및 상기 LSTM 신경망을 트레이닝(training)하는 단계를 더 포함하는 비정상 세션 감지 방법. - 청구항 9에 있어서,
상기 컨볼루셔널 신경망 및 상기 LSTM 신경망을 트레이닝하는 단계는,
훈련 데이터를 상기 컨볼루셔널 신경망에 입력하는 단계;
상기 컨볼루셔널 신경망의 출력을 상기 컨볼루셔널 신경망에 대칭적인 구조를 가지는 대칭 신경망에 입력하는 단계; 및
상기 대칭 신경망의 출력과 상기 훈련 데이터 사이의 차이에 기초하여 상기 컨볼루셔널 신경망에서 사용하는 가중치 파라미터들을 갱신함으로써 상기 컨볼루셔널 신경망을 트레이닝하는 단계를 포함하는 비정상 세션 감지 방법. - 청구항 9에 있어서,
상기 LSTM 신경망은 복수의 LSTM 레이어들을 포함하는 LSTM 인코더 및 상기 LSTM 인코더와 대칭적인 구조를 가지는 LSTM 디코더를 포함하며,
상기 컨볼루셔널 신경망 및 상기 LSTM 신경망을 트레이닝하는 단계는,
훈련 데이터를 상기 LSTM 인코더에 입력하는 단계;
상기 LSTM 인코더에서 출력되는 숨김 벡터 및 상기 훈련 데이터를 상기 LSTM 디코더에 입력하는 단계; 및
상기 LSTM 디코더의 출력과 상기 훈련 데이터 사이의 차이에 기초하여 상기 LSTM 인코더 및 상기 LSTM 디코더에서 사용하는 가중치 파라미터들을 갱신함으로써 상기 LSTM 신경망을 트레이닝하는 단계를 포함하는 비정상 세션 감지 방법. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170122363A KR101880907B1 (ko) | 2017-09-22 | 2017-09-22 | 비정상 세션 감지 방법 |
US15/908,594 US20190095301A1 (en) | 2017-09-22 | 2018-02-28 | Method for detecting abnormal session |
JP2018041354A JP6608981B2 (ja) | 2017-09-22 | 2018-03-07 | 異常セッション感知方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170122363A KR101880907B1 (ko) | 2017-09-22 | 2017-09-22 | 비정상 세션 감지 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101880907B1 true KR101880907B1 (ko) | 2018-08-16 |
Family
ID=63443876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170122363A KR101880907B1 (ko) | 2017-09-22 | 2017-09-22 | 비정상 세션 감지 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190095301A1 (ko) |
JP (1) | JP6608981B2 (ko) |
KR (1) | KR101880907B1 (ko) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110875912A (zh) * | 2018-09-03 | 2020-03-10 | 中移(杭州)信息技术有限公司 | 一种基于深度学习的网络入侵检测方法、装置和存储介质 |
CN111091863A (zh) * | 2019-11-29 | 2020-05-01 | 浪潮(北京)电子信息产业有限公司 | 一种存储设备故障检测方法及相关装置 |
KR20200057608A (ko) * | 2019-08-29 | 2020-05-26 | 아이덴티파이 주식회사 | 인공지능 기술을 이용한 배기가스 배출량 예측방법 |
CN112016866A (zh) * | 2019-05-31 | 2020-12-01 | 北京京东尚科信息技术有限公司 | 订单数据处理方法、装置、电子设备及可读介质 |
KR102374817B1 (ko) * | 2021-03-05 | 2022-03-16 | 경북대학교 산학협력단 | 시계열 특성의 군집화 분석을 사용한 고성능 심층 신경망 기반의 기계 고장 진단 방법 및 시스템 |
US11381651B2 (en) * | 2019-05-29 | 2022-07-05 | Adobe Inc. | Interpretable user modeling from unstructured user data |
CN116112265A (zh) * | 2023-02-13 | 2023-05-12 | 山东云天安全技术有限公司 | 一种异常会话的确定方法、电子设备及存储介质 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9690938B1 (en) | 2015-08-05 | 2017-06-27 | Invincea, Inc. | Methods and apparatus for machine learning based malware detection |
WO2017223294A1 (en) * | 2016-06-22 | 2017-12-28 | Invincea, Inc. | Methods and apparatus for detecting whether a string of characters represents malicious activity using machine learning |
KR101984730B1 (ko) * | 2018-10-23 | 2019-06-03 | (주) 글루시스 | 서버 장애 자동 예측 시스템 및 자동 예측 방법 |
CN110430183A (zh) * | 2019-07-31 | 2019-11-08 | 福建师范大学 | 基于会话特征相似性的mh-lstm异常检测方法 |
CN111178523B (zh) * | 2019-08-02 | 2023-06-06 | 腾讯科技(深圳)有限公司 | 一种行为检测方法、装置、电子设备及存储介质 |
KR102232871B1 (ko) * | 2019-08-14 | 2021-03-26 | 펜타시큐리티시스템 주식회사 | Can 기반의 통신 네트워크에서 신호 검출 방법 및 장치 |
CN110569925B (zh) * | 2019-09-18 | 2023-05-26 | 南京领智数据科技有限公司 | 应用于电力设备运检的基于lstm的时序异常检测方法 |
CN110874744B (zh) * | 2019-11-18 | 2022-08-02 | 中国银联股份有限公司 | 一种数据异常检测方法及装置 |
WO2021097515A1 (en) * | 2019-11-20 | 2021-05-27 | Canva Pty Ltd | Systems and methods for generating document score adjustments |
US11716338B2 (en) * | 2019-11-26 | 2023-08-01 | Tweenznet Ltd. | System and method for determining a file-access pattern and detecting ransomware attacks in at least one computer network |
CN111277603B (zh) * | 2020-02-03 | 2021-11-19 | 杭州迪普科技股份有限公司 | 无监督异常检测系统和方法 |
JP2021189721A (ja) | 2020-05-29 | 2021-12-13 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置及び情報処理プログラム |
CN112232948A (zh) * | 2020-11-02 | 2021-01-15 | 广东工业大学 | 一种流量数据的异常检测方法及装置 |
CN113595987B (zh) * | 2021-07-02 | 2022-06-21 | 中国科学院信息工程研究所 | 一种基于基线行为刻画的通联异常发现方法、装置、存储介质及电子装置 |
CN115037543B (zh) * | 2022-06-10 | 2024-03-19 | 江苏大学 | 一种基于双向时间卷积神经网络的异常网络流量检测方法 |
CN115952465B (zh) * | 2023-03-10 | 2023-07-21 | 畅捷通信息技术股份有限公司 | 一种传感器数据异常检测的方法、装置及计算机存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101644998B1 (ko) * | 2015-12-22 | 2016-08-02 | 엑스브레인 주식회사 | Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법 및 장치 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107636693B (zh) * | 2015-03-20 | 2022-01-11 | 弗劳恩霍夫应用研究促进协会 | 针对人工神经网络的相关性分数指派 |
US10606846B2 (en) * | 2015-10-16 | 2020-03-31 | Baidu Usa Llc | Systems and methods for human inspired simple question answering (HISQA) |
JP6517681B2 (ja) * | 2015-12-17 | 2019-05-22 | 日本電信電話株式会社 | 映像パターン学習装置、方法、及びプログラム |
US20180260699A1 (en) * | 2017-03-13 | 2018-09-13 | Intel IP Corporation | Technologies for deep machine learning with convolutional neural networks and reduced set support vector machines |
CA3000166A1 (en) * | 2017-04-03 | 2018-10-03 | Royal Bank Of Canada | Systems and methods for cyberbot network detection |
GB201714917D0 (en) * | 2017-09-15 | 2017-11-01 | Spherical Defence Labs Ltd | Detecting anomalous application messages in telecommunication networks |
-
2017
- 2017-09-22 KR KR1020170122363A patent/KR101880907B1/ko active IP Right Grant
-
2018
- 2018-02-28 US US15/908,594 patent/US20190095301A1/en not_active Abandoned
- 2018-03-07 JP JP2018041354A patent/JP6608981B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101644998B1 (ko) * | 2015-12-22 | 2016-08-02 | 엑스브레인 주식회사 | Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법 및 장치 |
Non-Patent Citations (3)
Title |
---|
Lopez-Martin, Manuel, et al. "Network Traffic Classifier With Convolutional and Recurrent Neural Networks for Internet of Things." IEEE Access 5, 2017.9.6.* * |
R. Vinayakumar, K. P. Soman and P. Poornachandran, "Applying convolutional neural network for network intrusion detection," ICACCI 2017. Udupi, 2017.9.13 * |
Vosoughi, Soroush, Prashanth Vijayaraghavan, and Deb Roy. "Tweet2vec: Learning tweet embeddings using character-level cnn-lstm encoder-decoder." Proceedings of the 39th International ACM SIGIR,2016.7.* * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110875912A (zh) * | 2018-09-03 | 2020-03-10 | 中移(杭州)信息技术有限公司 | 一种基于深度学习的网络入侵检测方法、装置和存储介质 |
US11381651B2 (en) * | 2019-05-29 | 2022-07-05 | Adobe Inc. | Interpretable user modeling from unstructured user data |
CN112016866A (zh) * | 2019-05-31 | 2020-12-01 | 北京京东尚科信息技术有限公司 | 订单数据处理方法、装置、电子设备及可读介质 |
CN112016866B (zh) * | 2019-05-31 | 2023-09-26 | 北京京东振世信息技术有限公司 | 订单数据处理方法、装置、电子设备及可读介质 |
KR20200057608A (ko) * | 2019-08-29 | 2020-05-26 | 아이덴티파이 주식회사 | 인공지능 기술을 이용한 배기가스 배출량 예측방법 |
KR102118088B1 (ko) | 2019-08-29 | 2020-06-02 | 아이덴티파이 주식회사 | 인공지능 기술을 이용한 배기가스 배출량 예측방법 |
CN111091863A (zh) * | 2019-11-29 | 2020-05-01 | 浪潮(北京)电子信息产业有限公司 | 一种存储设备故障检测方法及相关装置 |
KR102374817B1 (ko) * | 2021-03-05 | 2022-03-16 | 경북대학교 산학협력단 | 시계열 특성의 군집화 분석을 사용한 고성능 심층 신경망 기반의 기계 고장 진단 방법 및 시스템 |
WO2022186461A1 (ko) * | 2021-03-05 | 2022-09-09 | 경북대학교 산학협력단 | 고급 심층 시간 클러스터링 모델 기반의 기계 고장 진단 시스템 |
CN116112265A (zh) * | 2023-02-13 | 2023-05-12 | 山东云天安全技术有限公司 | 一种异常会话的确定方法、电子设备及存储介质 |
CN116112265B (zh) * | 2023-02-13 | 2023-07-28 | 山东云天安全技术有限公司 | 一种异常会话的确定方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2019061647A (ja) | 2019-04-18 |
JP6608981B2 (ja) | 2019-11-20 |
US20190095301A1 (en) | 2019-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101880907B1 (ko) | 비정상 세션 감지 방법 | |
KR101880901B1 (ko) | 기계 학습 방법 및 장치 | |
US11875268B2 (en) | Object recognition with reduced neural network weight precision | |
CN110929622B (zh) | 视频分类方法、模型训练方法、装置、设备及存储介质 | |
US20210390397A1 (en) | Method, machine-readable medium and system to parameterize semantic concepts in a multi-dimensional vector space and to perform classification, predictive, and other machine learning and ai algorithms thereon | |
Li et al. | Deep independently recurrent neural network (indrnn) | |
CN116415654A (zh) | 一种数据处理方法及相关设备 | |
AU2021354030B2 (en) | Processing images using self-attention based neural networks | |
KR102011788B1 (ko) | 계층적 시각 특징을 이용한 시각 질의 응답 장치 및 방법 | |
CN114418030B (zh) | 图像分类方法、图像分类模型的训练方法及装置 | |
CN111782840A (zh) | 图像问答方法、装置、计算机设备和介质 | |
CN111368656A (zh) | 一种视频内容描述方法和视频内容描述装置 | |
CN111428854A (zh) | 一种结构搜索方法及结构搜索装置 | |
CN114021696A (zh) | 用于高保真图像变换的条件轴向变换层 | |
CN112115744A (zh) | 点云数据的处理方法及装置、计算机存储介质、电子设备 | |
JP2022537542A (ja) | 動的な画像解像度評価 | |
CN114328943A (zh) | 基于知识图谱的问题回答方法、装置、设备及存储介质 | |
CN113158970B (zh) | 一种基于快慢双流图卷积神经网络的动作识别方法与系统 | |
CN112183669B (zh) | 图像分类方法和装置、设备及存储介质 | |
KR20230092371A (ko) | 공진화 신경 상미분 방정식 기반의 인공지능 신경망 장치 및 방법 | |
CN113674383A (zh) | 生成文本图像的方法及装置 | |
WO2023231796A1 (zh) | 一种视觉任务处理方法及其相关设备 | |
CN115631524A (zh) | 训练年龄检测模型的方法、年龄检测方法及相关装置 | |
CN117671680A (zh) | 基于图像的生成方法、装置、设备及介质 | |
CN117828407A (zh) | 双向跳跃存储的双阶段门控注意力时序分类方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |