KR102209121B1 - 딥러닝 머신의 신뢰도 판단 방법 - Google Patents

딥러닝 머신의 신뢰도 판단 방법 Download PDF

Info

Publication number
KR102209121B1
KR102209121B1 KR1020200106630A KR20200106630A KR102209121B1 KR 102209121 B1 KR102209121 B1 KR 102209121B1 KR 1020200106630 A KR1020200106630 A KR 1020200106630A KR 20200106630 A KR20200106630 A KR 20200106630A KR 102209121 B1 KR102209121 B1 KR 102209121B1
Authority
KR
South Korea
Prior art keywords
mini
deep learning
batch
learning machine
attack
Prior art date
Application number
KR1020200106630A
Other languages
English (en)
Other versions
KR102209121B9 (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 KR1020200106630A priority Critical patent/KR102209121B1/ko
Priority to US17/067,753 priority patent/US20220058479A1/en
Priority to JP2020179176A priority patent/JP7069504B2/ja
Application granted granted Critical
Publication of KR102209121B1 publication Critical patent/KR102209121B1/ko
Publication of KR102209121B9 publication Critical patent/KR102209121B9/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Image Analysis (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명의 목적은, 딥러닝 머신의 신뢰도 판단시 계산량을 감소시킬 수 있는, 딥러닝 머신의 신뢰도 판단 방법을 제공하는 것이다.

Description

딥러닝 머신의 신뢰도 판단 방법{Method of Judging Reliability Of Deep Learning Machine}
본 발명은 딥러닝 머신의 신뢰도를 판단하는 방법에 관한 것이다.
딥러닝은 기계가 사람처럼 특정 데이터 종류를 학습하고 스스로 인지, 추론, 판단할 수 있는 기술이다. 예를 들어, 딥러닝은 기계에게 그림 수 만개를 학습 시켜 새로운 그림이 무엇인지 기계가 스스로 인식할 수 있도록 하는 기술이다.
딥러닝이 적용된 딥러닝 머신이 활용되기 위해서는, 딥러닝 머신의 신뢰도가 확인되어야 하며, 이를 위해, 딥러닝 머신의 신뢰도를 판단하는 과정들이 수행되어야 한다.
그러나, 딥러닝 머신의 신뢰도를 판단하기 위해, 종래에는 많은 계산량들이 요구되었으며, 따라서, 딥러닝 머신이 실제로 이용되기 까지에는 많은 테스트 및 기간이 요구되고 있다. .
1. 등록번호 10-2107847 : 웹 트래픽 학습을 위한 16진수 이미지 변환과 증분학습을 적용한 딥러닝 방법
상술한 문제점을 해결하기 위해 제안된 본 발명의 목적은, 테스트 데이터의 판정시 계산량을 감소시킬 수 있는, 딥러닝 머신의 신뢰도 판단 방법을 제공하는 것이다.
상술한 기술적 과제를 달성하기 위한 본 발명에 따른 딥러닝 머신의 신뢰도 판단 방법은,판정할 데이터의 클래스를 임시 판정하는 단계; 임시 판정한 데이터의 공격/정상 비율을 확인하고, 정상 또는 공격 여부가 판단되어진 M개의 테스트 데이터들을 이용하여 N개의 미니배치들을 구성하며, 상기 N개의 미니배치들을 포함하는 미니배치 세트 개수를 T개 구성하는 단계; 상기 미니배치 세트를 구성하는 N개의 미니배치들 각각에 구비된 테스트 데이터들을 판정하여 상기 N개의 미니배치들 각각의 공격/정상 비율을 판단하는 과정을 복수횟수 만큼 반복 수행(바람직하게는 T번 수행)하는 단계를 포함하고, 상기 T개의 미니배치 세트들 각각에 이용되는 상기 M개의 테스트 데이터들은 동일하지만, 상기 미니배치 각각의 테스트 데이터들의 조합은, 상기 미니배치들 마다 서로 다르고, 상기 미니배치 각각의 크기는 M/N인 딥러닝 머신의 신뢰도 판단 방법이다.
본 발명에 의하면, 기존의 딥러닝 머신의 신뢰도 판단 방법과 비교할 때 판정 신뢰도가 향상될 수 있으며, 기존의 MCBN 보다 훨씬 적은 계산량으로 딥러닝 머신의 신뢰도가 판단될 수 있다.
도 1은 본 발명에 따른 딥러닝 머신의 신뢰도 판단 방법이 적용되는 딥러닝 시스템을 나타낸 예시도이다.
도 2는 본 발명에 적용되는 딥러닝 머신의 구성을 나타낸 예시도이다.
도 3은 종래의 딥러닝 머신의 신뢰도 판단 방법을 나타낸 예시도이다.
도 4는 종래의 MCBN 방법을 이용한 딥러닝 머신의 신뢰도 판단 방법을 나타낸 예시도이다.
도 5는 본 발명에 따른 딥러닝 머신의 신뢰도 판단 방법을 나타낸 예시도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명된다.
본 발명은 본 출원인에 의해 출원되어 등록된 등록번호 제10-2107847호(이하, 간단히 등록특허라 함)에 기재되어 있는 방법 또는 현재 공개되어 있는 다양한 방법들을 이용하여 딥러닝을 수행하는 딥러닝 머신의 신뢰도를 판단하는 방법에 관한 것이다.
따라서, 본 발명에 적용되는 딥러닝 머신은 기본적으로 딥러닝 기술을 이용하여 딥러닝 학습을 수행한다.
즉, 본 발명은 딥러닝 학습을 수행한 딥러닝 머신의 신뢰도를 판단하는 방법에 관한 것이다.
도 1은 본 발명에 따른 딥러닝 머신의 신뢰도 판단 방법이 적용되는 딥러닝 시스템을 나타낸 예시도이며, 도 2는 본 발명에 적용되는 딥러닝 머신의 구성을 나타낸 예시도이다.
본 발명이 적용되는 딥러닝 시스템은, 도 1에 도시된 바와 같이, 딥러닝 기술을 이용하는 딥러닝 머신(20) 및 딥러닝 머신이 딥러닝 학습을 하기 위해 이용하는 서버(10)를 포함한다.
딥러닝 머신(20)은, 도 2에 도시된 바와 같이, 네트워크를 통해 외부 장치들과 통신을 수행하는 통신부(21), 사용자로부터 각종 정보를 입력받는 입력부(23), 각종 정보를 출력하는 출력부(24), 각종 정보를 저정하는 저장부(25) 및 상기 구성들의 기능을 제어하는 제어부(22)를 포함한다.
딥러닝 머신(20)은 현재 일반적으로 이용되고 있는 서버가 될 수도 있고, 개인용 컴퓨터(PC)가 될 수도 있으며, 이 외에도, 테블릿PC 및 스마트폰 등과 같은 각종 전자장치들이 될 수도 있다.
딥러닝 머신(20)은, 등록특허 등을 통해 공개되어 있는 각종 방법들을 이용하여, 딥러닝 기술을 학습한다. 이 경우, 딥러닝 머신(20)은 서버(10)에서 제공되는 각종 훈련 데이터들을 이용하여 딥러닝 기술을 학습할 수 있다. 또한, 딥러닝 머신(20)은 서버(10)로부터 훈련 데이터를 가져올 수도 있다. 특히, 딥러닝 머신(20)은 본 발명에 따른 딥러닝 머신의 신뢰도 판단 방법을 수행할 수도 있다.
그러나, 본 발명에 따른 딥러닝 머신의 신뢰도 판단 방법은 딥러닝 머신(20)과 서버(10)에서 수행될 수도 있다. 예를 들어, 딥러닝 머신(20)은 테스트 데이터들의 공격 또는 정상을 판단하는 기능을 수행하며, 서버(10)는 이하에서 설명될 미니배치 세트들을 설정하고, 상기 딥러닝 머신(20)에서의 상기 판단에 따른 평균을 이용하여 딥러닝 머신의 신뢰도를 판단하는 기능을 수행할 수 있다.
이하에서는, 우선, 종래의 딥러닝 머신의 신뢰도 판단 방법, 종래의 MCBN 방법을 이용한 딥러닝 머신의 신뢰도 판단 방법 및 본 발명에 따른 딥러닝 머신의 신뢰도 판단 방법이 간단히 설명된다.
첫째, HTTP 트래픽을 위한 종래의 딥러닝 머신의 신뢰도 판단 방법이 설명된다.
딥러닝 머신이 학습을 수행한 후에, 신뢰도 판단을 위한 판정을 할 때, 딥러닝 머신은 테스트 데이터로만 구성된 미니배치(mini batch)로 한번의 판정만을 수행한다.
테스트시, 학습된 딥러닝 머신의 batch normalization layer의 파라미터가 고정되며, dropout이 비활성화된다.
동일한 테스트 데이터들을 동일한 구조의 딥러닝 머신이 테스트하기 때문에, 딥러닝 머신이 동일한 테스트 데이터들을 반복적으로 판정한다고 하더라도, 판정 확률값은 매번 같을 수 밖에 없고, 해당 값이 대체로 1에 가깝게 나온다.
즉, 판정이 틀렸더라도, 판정 확률 값이 대부분 1에 가깝기 때문에 해당 판정을 얼마나 신뢰할 수 있을 지 알 수 없다. 이상적으로 딥러닝 머신을 신뢰할 수 있으려면, 판정 에러가 발생한 데이터에 대한 판정확률이 1/2에 가깝고 판정이 제대로된 데이터라면 판정확률이 1에 가까워야 한다.
둘째, 종래의 MCBN 방법을 이용한 딥러닝 머신의 신뢰도 판단 방법이 설명된다.
상기한 바와 같은 문제를 해결하기 위해, 종래에는 MCBN(Monte Carlo Batch Normalization) 기법이 적용되었다.
MCBN 기법을 이용한 딥러닝 머신이 학습 후에, 판정을 할 테스트 데이터 하나에 나머지는 학습에 사용되었던 데이터(이하, 간단히 훈련 데이터라 함)가 랜덤하게 선택되어 미니배치(mini-batch)들이 구성되며, 딥러닝 머신이 미니배치들을 반복적으로 판정한다.
판정 데이터에 대해 반복 판정을 위한 미니배치(mini-batch)들의 구성 시, 학습에 사용되었던 훈련 데이터가 다시 랜덤하게 선택된다. 또한, 미니배치(mini-batch)를 구성하는 훈련 데이터의 공격:정상 비율은 훈련과정에서의 공격:정상비율과 일치되도록 해야한다.
통상적으로 훈련 과정에서는 레이블 간 판정 정확도의 균형을 맞추기 위해 과대표집을 통해 레이블 간 균형이 1:1로 유지된다.
즉, 딥러닝 머신은 판정할 데이터가 주어지면 반복 판정을 하며, 이때 판정 데이터(테스트 데이터)를 제외한 모든 데이터는 기존 학습 데이터로부터 랜덤하게 선정되며 매 판정마다 그 구성이 변화된다.
또한, 판정 시, 학습된 머신을 구성하는 batch normalization layer와 dropout layer가 활성화된다.
판정 데이터(테스트 데이터)를 제외한 모든 학습 데이터는 매 판정마다 변화하고 이는 batch normalization layer에 영향을 미친다.
MCBN 기법을 이용한 딥러닝 머신에 의하면, 판정할 때마다 판정 확률이 변화하며, 이를 평균하면 실제 판정 확률값에 수렴할 것이라는 기대가 가능한다. 따라서, 종래의 신뢰도보다 더 신뢰할 수 있는 신뢰도가 얻어질 수 있다.
셋째, 본 발명에 따른 딥러닝 머신의 신뢰도 판단 방법이 설명된다.
우선, 본 발명의 목적은 다음과 같다.
본 발명의 목적은 딥러닝 머신(20)이 판정한 데이터에 대한 결과값이 얼마나 믿을 수 있는 것인지 정확히 보여주는 것이다.
또한, 기존의 MCBN의 경우, 단 하나의 데스트 데이터 판정을 위해, 판정이 필요하지 않은 훈련 데이터들을 이용하여 mini-batch를 구성하기 때문에 너무나 많은 계산량이 필요하므로, 본 발명은 신뢰도 판단에 필요한 계산량을 줄이는 것을 목적으로 한다.
다음, 본 발명의 구성은 다음과 같다.
딥러닝 머신(20)이 훈련을 한 후에, 훈련한 데이터의 공격/정상 비율을 확인하는 과정이 필요하다.
테스트 데이터를 기존의 방법으로 학습된 딥러닝 머신에 한번 돌려서 클래스가 임시로 판정된다.
임시로 판정된 데이터의 공격/정상 비율이 확인되며, 적은 개수로 구성된 클래스에 대하여 훈련 데이터로부터 과대표집을 통해, 각 클래스 간 데이터셋 비율이, 훈련한 데이터의 공격/정상 비율로 맞추어진다. 통상적으로 공격/정상 비율은 거의 1:1로 맞추어진다.
공격/정상 비율이 맞추어진 데이터들을 이용하여 판정이 수행될 때, 테스트 데이터들로만 구성된 mini batch들이 여러번 테스트된다. 이때, 기존의 방법으로 학습된 머신으로 인해 판정오류가 있을 수 있지만, 대부분 판정오류가 없는 테스트 데이터들로 구성되어 있기 때문에, mini-batch를 구성하는 테스트 데이터의 공격/정상 비율은 거의 훈련 과정에서의 비율과 유사할 수 있다.
상기 테스트 과정이 수행될 때, 한번 테스트 할때마다, mini batch의 구성이 바뀌며, 학습된 머신의 batch normalization layer 및 dropout layer가 매번 변화된다.
동일한 테스트 데이터들이 매번 다른 구조의 딥러닝 머신에서 테스트되기 때문에, 판정 확률값의 편차가 있을 수 있다. 매번 판정 확률값이 다르니, 신뢰도 또한 고르게 분포될 수 있다.
즉, 판정 확률값에 대한 신뢰도가 더 신빙성이 있을 수 있다.
마지막으로, 본 발명의 효과는 다음과 같다.
본 발명은 기존의 딥러닝 머신의 판정 신뢰도보다 높은 신뢰도를 확보할 수 있으면서도, 본 발명에서 이용되는 계산량은 MCBN 보다 적어진다.
넷째, 이하의 설명에서 이용될 용어들을 정리하면 다음과 같다.
판정 확률값은 reliability score를 의미하며, 판정 정확도를 의미한다.
판정 신뢰도는 1번의 평균을 의미하며, 특히, 공격/정상으로 판정했을 때, 이 판정을 얼마나 신뢰할 수 있느냐를 의미한다. 따라서, 평균확률이 1에 가까울수록 해당 판정은 신뢰될 수 있으며, 평균확률이 0.5에 가까울수록 해당 판정은 신뢰되기 어렵다.
판정 클래스는 공격 또는 정상으로 분류된다.
미니배치(Mini-batch)는 판정할 데이터를 나눈 그룹을 의미하며, 예를 들어, 100개의 데이터를 5개씩 나누면, 20개의 mini-batch가 생성된다.
Batch normalization은 테스트할 때마다, 다르게 구성된 mini-batch 세트에 대한 결과에 대한 평균치를 구하는 것을 의미한다.
Dropout은 딥러닝 머신의 신경망 구조를 간소화 함으로서 과적합문제를 해결하는 것을 의미한다.
accuracy는 실제 클래스와 일치하는 개수를 전체 판정 개수로 나눈 값을 의미한다.
F1 score는 precision과 re-call 의 조화평균을 의미한다.
판정 오류 데이터는 실제 클래스와 반대로 판정한 데이터를 의미한다.
적은 개수로 구성된 클래스에 대하여 훈련데이터로부터 과대표집을 통해, 각 클래스 간 데이터셋 비율을 1:1로 맞춘다는 것은, 테스트할 데이터를 기존에 훈련된 머신에 임의로 돌리면 데이터는 공격과 정상, 두개의 클래스로 나뉘어지며, 공격이 정상 트래픽에 비해 적으면 훈련 데이터로부터 공격 데이터를 더 가져와서 테스트 데이터의 공격과 정상의 개수를 1:1 비율로 맞춘다는 것을 의미한다.
이하에서는, 실제의 예를 참조하여, 종래의 신뢰도 판단 방법 및 본 발명에 따른 딥러닝 머신의 신뢰도 판단 방법이 설명된다.
도 3은 종래의 딥러닝 머신의 신뢰도 판단 방법을 나타낸 예시도이고, 도 4는 종래의 MCBN 방법을 이용한 딥러닝 머신의 신뢰도 판단 방법을 나타낸 예시도이며, 도 5는 본 발명에 따른 딥러닝 머신의 신뢰도 판단 방법을 나타낸 예시도이다.
딥러닝 머신(20)이 학습을 수행한 후, 딥러닝 머신(20)이 정상적으로 구동될 수 있는지의 여부가 확인되면, 딥러닝 머신(20)은 실질적으로 사용자에 의해 이용될 수 있다.
첫째, 도 3을 참조하여, 종래의 딥러닝 머신의 신뢰도 판단 방법이 설명된다.
우선, 테스트 데이터들이 딥러닝 머신(20)을 활용해서 판정된다.
훈련 과정에서는 dropout layer 나 batch normalization layer을 활성화하여 훈련을 하는데 반해, 테스트 과정에서는 dropout layer나 batch normalization layer가 비활성화된다. 이로 인해, 언제나 동일한 판정 결과가 나온다. 즉, 종래의 딥러닝 머신의 신뢰도 판단 방법을 이용하는 경우, 한번 이상 테스트를 하는 것은 의미가 없다.
종래의 딥러닝 머신의 신뢰도 판단 방법에서의 문제는, 오판정에 대한 확률값이 항상 같기 때문에 판정에 대한 정확도 또는 신뢰도가 확인되기 어렵다는 것이다.
둘째, 도 4를 참조하여, 종래의 MCBN 방법을 이용한 딥러닝 머신의 신뢰도 판단 방법이 설명된다.
우선, 도 4에는, 크기가 4인 mini-batch를 이용하여 판정 데이터, 즉, 테스트 데이터 3개를 판정하는 과정이 도시되어 있다.
다음, 각 Mini-batch는 테스트 데이터 1개 및 훈련 데이터 3개로 구성되며, 딥러닝 머신은 3회 반복 판정을 수행한다.
다음, 훈련 시, 훈련 데이터 과대표집을 통해 공격/정상 비율이 1:1로 맞추어진다. 따라서, 판정 과정에서 사용되는 mini-batch에서의 공격/정상 데이터 비율도 1:1로 구성되어야 한다. 훈련 데이터는 과대표집으로 1:1 비율을 맞추었으므로 도 4에서 각 mini-batch의 공격/정상 데이터 비율도 1:1로 맞추어진다.
여기서, 부족한 데이터를 기존의 훈련 데이터로 채우는 것이 과대표집이다. 예를 들어서, 공격이 6개, 정상이 3개 있다면, 공격:정상을 1:1 비율로 맞추기 위한 3개의 정상 데이터들을 어디선가 가져오는 행위가 과대표집이다. MCBN의 경우 3개의 정상 데이터은 훈련 데이터들로부터 얻어질 수 있다.
여기서, 공격/정상 비율을 1:1로 맞춘다는 것은 다음과 같은 의미를 갖는다. 즉, 도 4에 도시된 예에서, 테스트 데이터가 1개 있는데, 테스트 데이터가 공격인지 정상인지 모르는 상황이다. 이 경우, 훈련 데이터는 공격이 6개, 정상이 3개 이다. 훈련 데이터들 중 정상 데이터들 3개를 복사함으로써, 공격 테스트 데이터 6개 및 정상 테스트 데이터 6개가 얻어질 수 있다. 그리고, mini-batch는, 테스트 데이터 1개, 훈련데이터 공격 6개, 훈련데이터 정상 6개로 구성된다. 그러면 공격:정상 비율이 7:6 혹은 6:7이 되기 때문에 "거의" 1:1 비율이 될 수 있다.
이 경우, 하나의 테스트 데이터를 판정하기 위해서는, 판정이 필요없는 3개의 훈련 데이터들이 포함되기 때문에, 계산할 양이, 도 3에 도시된 기존 방법 보다 테스트 데이터 만큼 증가된다. 즉, 도 3에 도시된 방법과 비교할 때, MCBN을 이용하는 방법에서의 계산량은 mini-batch 크기 * 반복 판정 횟수 만큼 증가된다. 여기서, 도 4에 도시된 예에서의 반복 판정 횟수는 3이될 수 있다.
다음, 다른 Mini-batch set를 테스트할때 마다 신경망의 dropout이 다르며, 주어진 테스트 데이터와 함께 구성된 훈련 데이터도 다르므로 batch normalization 값도 달라진다. 즉, 신경망의 구조가 다르다.
이로 인해, 같은 테스트 데이터를 총 3회 반복할때마다 판정확률 값이 달라진다. 여기서, 같은 테스트 데이터를 반복(총3회)할 때마다 판정 확률값이 다르다는 것은, 예를 들어, 테스트 데이터 1에 대해서는 미니베치 set1, 미니베치 set2, 미니베치 set3에서 3번 반복되고, 테스트 데이터 2에 대해서도 총 3번 반복되고, 테스트 데이터3에 대해서도 역시 총3회 반복된다는 것을 의미한다.
마지막으로, 상기한 바와 같은 판정 확률값에 대한 평균치를 이용하여 신뢰도가 계산될 수 있다.
셋째, 본 발명에 따른 딥러닝 머신의 신뢰도 판단 방법이 설명된다.
우선, 딥러닝 머신(20)으로 테스트 데이터가 공격인지 정상인지가 임의로 판정된다. 도 5에 도시된 예에서는, 테스트 데이터가 공격 6개, 정상 4개로, 총 10개의 테스트 데이터들이 임의로 판정된다.
이 경우, 공격/정상 비율을 1:1로 맞추기 위해, 딥러닝 머신을 훈련한 데이터들에서 정상 데이터 2개가 얻어진다.
다음, 공격/정상의 비율이 1:1로 맞춰진 테스트 데이터들로 mini-batch가 구성된다.
다음, 모든 테스트 데이터들을 활용한 Mini-batch Set들이 테스트된다.
다음, mini-batch가 최대한 테스트 데이터들로 구성되기 때문에, 기존보다 최소 반복 판정 횟수만큼의 계산량이 더 필요하다. 즉, 본 발명에서는 최대 반복 판정횟수 * 2 만큼의 계산량이 요구된다. 부연하여 설명하면, 미니배치가 최대한 테스트 데이터들로 구성되기 때문에 최소한 기존보다 반복판정 횟수 만큼의 계산량이 더 필요해질 수 있다.
다음, 다른 Mini-batch set가 테스트될 때 마다 신경망의 dropout이 다르며, 주어진 판정 데이터와 함께 구성된 훈련 데이터도 다르기 때문에, batch normalization 값도 다르다. 즉, 신경망의 구조가 다르다.
다음, 이로 인해 같은 데이터들이 총 3회 반복될 때마다 판정확률 값이 달라진다.
다음, 상기한 바와 같은 판정 확률값에 대한 평균치를 이용하여 신뢰도가 계산될 수 있다.
마지막으로, 본 발명에서의 판정의 신뢰도가 MCBN기법과 유사한 이유는, MCBN 기법과 같이, 같은 데이터들이 다른 구조의 신경망에서 여러 번 테스트되어, 판정 확률값의 평균이 얻어지기 때문이다.
이하에서는, 종래의 방법들(도3 및 도4)과 본 발명에 따른 딥러닝 머신의 신뢰도 판단 방법에서의 계산 복잡도가 비교된다.
우선, 도 3을 참조한 기존의 방법에서는 1번의 판정만이 이루어진다. 그러나, 도 3을 참조한 기존의 방법에서는 신뢰도가 판단되기 어렵다.
다음, 도 4를 참조한 MCBN 방법을 이용한 딥러닝 머신의 신뢰도 판단 방법에서는 [기존 계산량(1) * 반복 판정 횟수(T) * 테스트 데이터 개수(M)] 만큼의 계산량들이 요구된다. 여기서, T 는 mini-batch Set의 개수이며, M은 Mini-batch를 구성하는 테스트 데이터들의 개수가 될 수 있다.
마지막으로, 도 5를 참조한 본 발명에 따른 딥러닝 머신의 신뢰도 판단 방법에서는, MCBN 방법에서 얻어진 신뢰도와 유사한 신뢰도가 얻어질 수 있으면서도, MCBN 방법에서의 계산량보다 적은 계산량이 이용될 수 있다.
첫째, 테스트 데이터의 공격/정상 비율이 같을 경우에는, [기존 계산량(1) * 반복 판정 횟수(T)] 만큼의 계산량이 이용될 수 있다. 이 경우, 과대표집이 필요 없다.
둘째, 테스트 데이터의 공격/정상 비율이 1:0일 경우에는, [기존 계산량(1) * 반복 판정 횟수 * 2] 만큼의 계산량이 이용될 수 있다. 이 경우, 공격 만큼의 과대표집이 필요하므로 계산량이 2배 증가될 수 있다.
즉, 본 발명에 의한 계산량([기존 계산량(1) * 반복 판정 횟수(T)] 또는 [기존 계산량(1) * 반복 판정 횟수 * 2])은, 도 3에 도시된 기존의 방법의 계산량보다는 많지만, 도 4에 도시된 MCBN 기법의 계산량([기존 계산량(1) * 반복 판정 횟수(T) * 테스트 데이터 개수(M)]) 보다는 최대 M배 적고, 최소 M/2배 적을 수 있다.
그 이유는, MCBN의 경우에는 하나의 Mini-batch에 하나의 테스트 데이터만이 포함되기 때문이다. 즉, Mini-batch 하나의 크기가 4라고 가정할 때, MCBN의 경우 과대표집 전의 테스트 데이터가 12개 있으면, 과대표집 후에 12개의 Mini-batch로 Mini-batch set를 구성하고, 결국에는 총 48개의 데이터들이 판정되어야 한다. 그러나, 본 발명에서는 과대표집 전의 테스트 데이터가 12개가 있고, 공격/정상 비율이 1:1이면, 과대표집이 필요 없기 때문에, 3개의 Mini-batch로 Mini-batch set가 구성될 수 있으며, 결국에는 12개의 데이터들이 판정될 수 있다.
또 다른 예로서, 테스트 데이터(M)가 100개이고, Mini-batch의 크기가 10이며, 반복 판정 횟수(T)가 5인 경우,
도 3에 도시된 기존의 방법에서의 계산량은 [100/10 = 10]고(총 10개의 Mini-batch를 테스트),
도 4에 도시된 MCBN 방법에서의 계산량은 [((100/10) * (100)) * 5 = 5000]이며,
도 5에 도시된 본 발명에 따른 방법에서의 계산량은,
첫째, 과대표집 전의 테스트 데이터의 공격/정상 비율이 같을 경우 [(100/10) * 5 = 50]이며,
둘째, 과대표집 전의 테스트 데이터의 공격/정상 비율이 1:0일 경우 [((100/10) * (2)) * 5 = 100]이다.
따라서, 본 발명에 의하면, 도 3에 도시된 기존의 방법보다 높거나 도 4에 도시된 MCBN 방법과 유사한 신뢰도가 얻어질 수 있으며, 비록, 도 3에 도시된 기존의 방법보다는 높은 계산량이 요구되지만, 도 4에 도시된 MCBN방법에서의 계산량보다 적은 계산량이 요구될 수 있다.
따라서, 본 발명에 의하면, 높은 신뢰도 및 적은 계산량이 확보될 수 있다.
이하에서는, 본 발명에 따른 딥러닝 머신의 신뢰도 판단 방법이 단계별로 설명된다.
우선, 정상 또는 공격 여부가 판단되어져 있는 M개의 테스트 데이터들을 이용하여 N개의 미니배치들을 구성하며, 상기 N개의 미니배치들을 포함하는 미니배치 세트를 구성하는 과정이 T회 반복된다. 도 5에 도시된 예에서, M은 12이며, N은 3이다. 즉, 도 5에 도시된 예에서는 12개의 테스트 데이터들을 이용하여 3개의 미니배치들이 구성되며, 3개의 미니배치들이 하나의 미니배치 세트를 형성한다.
상기 미니배치 세트를 구성하는 과정을 T회 반복하는 단계는, 정상 또는 공격 여부가 판단되어져 있는 M개의 테스트 데이터들을 이용하여 N개의 미니배치들을 구성하며, 상기 N개의 미니배치들을 포함하는 제1 미니배치 세트를 구성하는 단계 및 상기 제1 미니배치 세트를 구성하는 N개의 미니배치들의 조합과는 다른 조합을 갖는 N개의 미니배치들을, 상기 M개의 테스트 데이터들을 이용하여 구성하며, 상기 N개의 미니배치들을 포함하는 제T 미니배치 세트를 구성하는 단계를 포함한다.
즉, 도 5에 도시된 예에서는, T가 3이 된다. 따라서, 세 개의 미니배치 세트들이 형성된다.
이 경우, 상기 T개의 미니배치 세트들 각각에 이용되는 상기 M개의 테스트 데이터들은 동일하다.
즉, 도 5에 도시된 예에서, 제1 미니배치 세트(Mini-batch set1)에 이용되는 12개의 테스트 데이터들과, 제2 미니배치 세트(Mini-batch set2)에 이용되는 12개의 테스트 데이터들과, 제3 미니배치 세트(Mini-batch set3)에 이용되는 12개의 테스트 데이터들은 모두 동일하다.
그러나, M/N개의 테스트 데이터들의 조합은, 상기 미니배치들마다 서로 다르다.
즉, 도 5에 도시된 예에서, 세 개의 미니배치 세트들에 포함된 9개의 미니배치들을 구성하는 4개의 테스트 데이터들의 조합은 9개의 매니배치들 각각에서 서로 다르다. 예를 들어, 제1 미니배치 세트(Mini-batch set1)를 구성하는 제1 미니배치(Mini-batch1)는 '1, 2, 7, 8'의 테스트 데이터들로 구성되고, 제2 미니배치(Mini-bath2)는 '3, 4, 9, 10'의 테스트 데이터들로 구성되며, 제3 미니배치(Mini-batch3)는 '5, 6, 11, 12'로 구성된다.
또한, 상기 N개의 미니배치들 각각에 포함되는 상기 M/N개의 테스트 데이터들의 정상:공격 비율은 1:1로 맞추어 지거나 1:1에 근접한 비율로 맞추어진다.
예를 들어, 도 5에 도시된 예에서, 제1 미니배치 세트를 구성하는 3개의 미니배치들 각각에서, 공격 테스트 데이터들과 정상 테스트 데이터들의 비율은 2:2=1:1로 설정되어 있다.
또한, 상기 M개의 테스트 데이터들 중 일부 데이터는 공격/정상 비율을 1:1로 맞추기 위해 훈련 데이터들로부터 얻어질 수 있다.
예를 들어, 도 5에 도시된 예에서, 제1 미니배치 세트를 구성하는 12개의 테스트 데이터들 중 2개(11번 및 12번)는 훈련 데이터들이다. 그러나, 본 발명이 이에 한정되는 것은 아니다. 따라서, M개의 테스트 데이터들에 훈련 데이터가 포함되지 않을 수도 있다.
다음, 어느 하나의 미니배치 세트를 구성하는 N개의 미니배치들 각각에 구비된 M/N개의 테스트 데이터들을 판정하여, 상기 N개의 미니배치들 각각의 공격/정상 비율을 판단하는 과정이, 총T개의 미니배치 세트들에 대하여 수행된다.
즉, 제1 미니배치 세트를 구성하는 N개의 미니배치들 각각에 구비된 M/N개의 테스트 데이터들을 판정하여, 상기 제1 미니배치 세트를 구성하는 상기 N개의 미니배치들 각각의 공격/정상 비율이 판단되고, 제2 미니배치 세트를 구성하는 N개의 미니배치들 각각에 구비된 M/N개의 테스트 데이터들을 판정하여, 상기 제2 미니배치 세트를 구성하는 상기 N개의 미니배치들 각각의 공격/정상 비율이 판단되며, 제T 미니배치 세트를 구성하는 N개의 미니배치들 각각에 구비된 M/N개의 테스트 데이터들을 판정하여, 상기 제T 미니배치 세트를 구성하는 상기 N개의 미니배치들 각각의 공격/정상 비율이 판단된다.
마지막으로, N개의 미니배치들 각각에 대한 T번의 공격/정상 비율들의 평균이 0.7보다 크고 1.3보다 작으면 상기 판단이 신뢰성이 있다고 판단되며, 상기 N개의 미니배치들 각각에 대한 T번의 공격/정상 비율들의 평균이 0.7이하이거나 1.3이상이면 상기 판단이 신뢰성이 없다고 판단된다.
즉, 본 발명은 T번의 공격/정상 비율들의 평균이 1에 가까우면 상기 판단이 신뢰성이 있다고 판단되며, T번의 공격/정상 비율들의 평균이 0.5에 가깝거나 0에 가깝거나 무한대이면 상기 판단이 신뢰성이 없다고 판단된다.
예를 들어, 도 5에 도시된 예에서, 제1 미니배치 세트에 구비된 제1 미니배치에서의 공격/정상 비율과, 제2 미니배치 세트에 구비된 제1 미니배치에서의 공격/정상 비율과, 제3 미니배치 세트에 구비된 제1 미니배치에서의 공격/정상 비율의 평균이 1에 가까우면 상기 판단이 신뢰성이 있다고 판단될 수 있다.
또는, 도 5에 도시된 예에서, 제1 미니배치 세트에 구비된 3개의 미니배치들에서의 공격/정상 비율들과, 제2 미니배치 세트에 구비된 3개의 미니배치들에서의 공격/정상 비율들과, 제3 미니배치 세트에 구비된 3개의 미니배치들에서의 공격/정상 비율들의 평균이 1에 가까우면 상기 판단이 신뢰성이 있다고 판단될 수 있다.
상기에서 설명된 본 발명과 기존 MCBN 방식과의 차이점은 다음과 같다.
MCBN의 동작과정은 다음과 같다.
통상적으로 훈련과정의 경우, 정상:공격 비율이 1:1로 유지되어 진행된다.
만약, 특정 레이블(정상 or 공격)이 비정상적으로 낮다면 통상적으로 해당 레이블을 oversampling(과대표집)하여 1:1로 유지하고 훈련이 진행된다.
이때, batch normalization과 dropout이 활성화되어 진행된다.
일반적으로는 훈련이 종료되면 batch normalization(BN)과 dropout이 비활성화되고 evaluation data(or 판정데이터)를 입력하여 해당 data의 정상 or 공격 여부가 판단된다.
MCBN의 경우, 테스트 데이터들의 개수(M)가 16인 경우, 하나의 판정 데이터 + 15개의 훈련 데이터(테스트 데이터들의 정상:공격이 1:1로 과대표집됨)를 이용하여 mini-batch가 구성된다.
이 경우, BN + dropout을 활성화하여 판정이 T번 수행된다.
이 경우, 판정할때 마다 다른 훈련 데이터가 사용되며, 다른 dropout이 이용되기 때문에, 해당 판정데이터의 결과값에는 변화가 발생한다.
이를 평균하면, 해당 판정데이터의 판정 결과가 좀 더 안정적일 것이다라는 것이 MCBN의 특징이다.
그러나, MCBN의 문제점은 하나의 판정 데이터를 판정하는데 통상적인 판정 기법에 비해 M x T 배의 계산량이 필요하다는 것입니다.
왜냐하면, 판정이 필요없는 (M-1)개의 훈련 데이터가 mini-batch를 구성하는데 필요하고, 이러한 판정이 T회 반복되어야 하기 때문이다.
반면, 본 발명의 경우, 통상적인 판정기법을 통해 판정 데이터의 정상:공격이 판정된다.
우선, 판정된 레이블을 기준으로 어느 레이블이 부족한지 보고, 부족한 레이블은 훈련 데이터에서 가져온다.
예를 들어, 공격 레이블로 판정된 데이터가 너무 적으면 해당 레이블의 훈련 데이터를 끌어와서 1:1 비율이 맞춰진다. 예를 들어, 도 5에 도시된 예에서는, 12개의 테스트 데이터들 중 2개(11번 및 12번)는 훈련 데이터들이다.
이 경우, 상기에서 설명된 바와 같이, 본 발명에서는 극단적인 경우, MCBN의 절반의 계산량만이 필요하다.
이상적인 경우, 즉, 이미 공격 정상 레이블 비율이 1:1 인 경우, 계산량은 MCBN과 비교하여 1/M으로 줄어든다.
왜냐하면, 공격:정상 비율이 1:1로 이미 유지되고 있으므로 훈련 데이터로 부터 데이터를 가져올 필요가 없기 때문에, 단지 T회만 반복될 수 있다.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.  그러므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
20: 딥러닝 머신 10: 제어 서버

Claims (5)

  1. 딥러닝머신은 정상 또는 공격으로 클래스가 분류되어진 M개의 테스트 데이터들을 이용하여 적은 개수로 구성된 클래스에 대하여 훈련 데이터로부터 과대표집을 통해 공격/정상의 비율을 1:1로 맞춰진 N개의 미니배치들을 구성하며, 상기 N개의 미니배치들을 포함하는 미니배치 세트 개수를 T개 구성하는 단계 및
         딥러닝머신은 상기 미니배치 세트를 구성하는 N개의 미니배치들 각각에 구비된 테스트 데이터들을 판정하여 상기 N개의 미니배치들 각각의 공격/정상 비율을 판단하는 과정을 복수 횟수만큼 반복 수행하는 단계를 포함하고,
         상기 T개의 미니배치 세트들 각각에 이용되는 상기 M개의 테스트 데이터들은 동일하지만, 상기 N개의 미니배치 각각의 테스트 데이터들의 조합은 상기 미니배치들 마다 서로 다르고, 상기 미니배치 각각의 크기는 M/N이며, 상기 M,N,T는 2 이상의 정수로 M은 테스트 데이터의 개수, N은 미니배치의 개수, T은 미니배치 셋트의 개수이고, 상기 클래스는 공격 또는 정상으로 분류되는 것이고, 상기 N개의 미니배치들 각각에 대한 상기 복수 횟수 만큼 판단을 반복 수행한 공격/정상 비율들의 평균값이 1에 가까운 정도에 따라 상기 판단의 신뢰성을 판단하는 것인 딥러닝 머신의 신뢰도 판단 방법. 
  2. 제1항에 있어서,
    상기 복수 횟수는 미니배치 세트의 개수 T개와 동일한 수인 딥러닝 머신의 신뢰도 판단 방법.

  3. 삭제
  4. 삭제
  5. 삭제
KR1020200106630A 2020-08-24 2020-08-24 딥러닝 머신의 신뢰도 판단 방법 KR102209121B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200106630A KR102209121B1 (ko) 2020-08-24 2020-08-24 딥러닝 머신의 신뢰도 판단 방법
US17/067,753 US20220058479A1 (en) 2020-08-24 2020-10-11 Method of judging reliability of deep learning machine
JP2020179176A JP7069504B2 (ja) 2020-08-24 2020-10-26 ディープラーニングマシンの信頼度判断方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200106630A KR102209121B1 (ko) 2020-08-24 2020-08-24 딥러닝 머신의 신뢰도 판단 방법

Publications (2)

Publication Number Publication Date
KR102209121B1 true KR102209121B1 (ko) 2021-01-28
KR102209121B9 KR102209121B9 (ko) 2023-05-11

Family

ID=74239125

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200106630A KR102209121B1 (ko) 2020-08-24 2020-08-24 딥러닝 머신의 신뢰도 판단 방법

Country Status (3)

Country Link
US (1) US20220058479A1 (ko)
JP (1) JP7069504B2 (ko)
KR (1) KR102209121B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190078692A (ko) * 2017-12-13 2019-07-05 한국전자통신연구원 데이터 분포를 고려하여 데이터를 샘플링하는 장치 및 그 방법
KR102107847B1 (ko) 2018-07-13 2020-05-15 클라우드브릭주식회사 웹 트래픽 학습을 위한 16진수 이미지 변환과 증분학습을 적용한 딥러닝 방법
KR20200091782A (ko) * 2019-01-23 2020-07-31 주식회사 스트라드비젼 군사적 목적, 드론 또는 로봇에 이용되기 위해, 하나 이상의 이전 배치를 추가적으로 참조하여 모바일 장치 또는 iot 장치에 적용 가능한 온라인 배치 노말라이제이션, 온-디바이스 학습, 및 연속학습을 수행하는 방법 및 장치 그리고 이를 이용한 테스팅 방법과 테스팅 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190078692A (ko) * 2017-12-13 2019-07-05 한국전자통신연구원 데이터 분포를 고려하여 데이터를 샘플링하는 장치 및 그 방법
KR102107847B1 (ko) 2018-07-13 2020-05-15 클라우드브릭주식회사 웹 트래픽 학습을 위한 16진수 이미지 변환과 증분학습을 적용한 딥러닝 방법
KR20200091782A (ko) * 2019-01-23 2020-07-31 주식회사 스트라드비젼 군사적 목적, 드론 또는 로봇에 이용되기 위해, 하나 이상의 이전 배치를 추가적으로 참조하여 모바일 장치 또는 iot 장치에 적용 가능한 온라인 배치 노말라이제이션, 온-디바이스 학습, 및 연속학습을 수행하는 방법 및 장치 그리고 이를 이용한 테스팅 방법과 테스팅 장치

Also Published As

Publication number Publication date
US20220058479A1 (en) 2022-02-24
KR102209121B9 (ko) 2023-05-11
JP7069504B2 (ja) 2022-05-18
JP2022036880A (ja) 2022-03-08

Similar Documents

Publication Publication Date Title
US20200242480A1 (en) Automated model building search space reduction
US10410121B2 (en) Adjusting automated neural network generation based on evaluation of candidate neural networks
Suzuki A Markov chain analysis on simple genetic algorithms
EP0503656A1 (en) Test pattern generation device
JP2018055580A (ja) 機械学習プログラム、機械学習方法、および機械学習装置
Simões et al. Evolutionary algorithms for dynamic environments: prediction using linear regression and markov chains
Muhlbaier et al. Learn++. MT: A new approach to incremental learning
JP2000266815A (ja) 自己診断機能付き電子システム及び電子システムのシミュレーション装置
Moerman Learning product automata
US20030200238A1 (en) Hadamard-transform on-line randomness test
KR102209121B1 (ko) 딥러닝 머신의 신뢰도 판단 방법
Mei et al. Detecting vulnerabilities in IoT software: New hybrid model and comprehensive data analysis
CN108509864A (zh) 一种确定光纤入侵事件类型的方法及装置
CN112948193B (zh) 一种基于差异测试的fpga综合工具缺陷检测方法
KR20200090061A (ko) 인공신경망 모델의 검증 방법 및 장치
Nazariani et al. Dynamic weighted majority approach for detecting malicious crowd workers
Pandey et al. Bit mask-oriented genetic algorithm for grammatical inference and premature convergence
CN113886140A (zh) 基于可信性验证的人工智能模型输出数据判断系统
CN112101447A (zh) 数据集的质量评估方法、装置、设备以及存储介质
KR20200002245A (ko) 뉴럴 네트워크 하드웨어
Vidra et al. Improving Classification Performance With Human Feedback: Label a few, we label the rest
JP3264686B2 (ja) 神経回路網装置
Gupta Automatic tools for testing expert systems
US10873462B1 (en) Verification of computation by untrusted source
CN115203701A (zh) 一种态势感知的统一仿真验证平台及方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]