KR20200093418A - 기능적 안전성을 위해 극한 상황에서 폴트 톨러런스 및 플럭츄에이션 로버스트를 향상시키도록 테스트 패턴을 이용해 cnn의 파라미터의 무결성을 검증하기 위한 방법 및 장치 - Google Patents

기능적 안전성을 위해 극한 상황에서 폴트 톨러런스 및 플럭츄에이션 로버스트를 향상시키도록 테스트 패턴을 이용해 cnn의 파라미터의 무결성을 검증하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20200093418A
KR20200093418A KR1020190147111A KR20190147111A KR20200093418A KR 20200093418 A KR20200093418 A KR 20200093418A KR 1020190147111 A KR1020190147111 A KR 1020190147111A KR 20190147111 A KR20190147111 A KR 20190147111A KR 20200093418 A KR20200093418 A KR 20200093418A
Authority
KR
South Korea
Prior art keywords
verification
output
test pattern
cnn
sub
Prior art date
Application number
KR1020190147111A
Other languages
English (en)
Other versions
KR102338768B1 (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 주식회사 스트라드비젼
Publication of KR20200093418A publication Critical patent/KR20200093418A/ko
Application granted granted Critical
Publication of KR102338768B1 publication Critical patent/KR102338768B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • G06F18/24143Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/19173Classification techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Computer Hardware Design (AREA)
  • Image Analysis (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 CNN(Convolutional Neural Network) 상의 기능적 안전성을 위해 극한 상황에서 폴트 톨러런스(Fault Tolerance) 및 플럭츄에이션 로버스트(Fluctuation Robustness)를 향상시키고 주석(Annotation) 비용을 줄이기 위해, 적어도 하나의 원본 입력에 추가된 적어도 하나의 테스트 패턴을 이용해 CNN의 적어도 하나의 파라미터의 무결성을 검증하는 방법에 관한 것으로, (a) 컴퓨팅 장치가, 적어도 하나의 추가 유닛(Adding Unit)으로 하여금, 테스트 패턴을 원본 입력에 추가함으로써 적어도 하나의 확장 입력(Extended Input)을 생성하도록 하는 단계; (b) 컴퓨팅 장치가, CNN으로 하여금, 확장 입력에 대하여 컨벌루션 연산을 적어도 한 번 적용함으로써 적어도 하나의 검증용 출력(Output)을 생성하도록 하는 단계; 및 (c) 컴퓨팅 장치가, 적어도 하나의 비교 유닛(Comparing Unit)으로 하여금, 적어도 하나의 참조용 출력을 참조로 하여 검증용 출력의 유효성(Validity)을 판단함으로써 CNN의 파라미터의 무결성을 검증하도록 하는 단계;를 포함하는 것을 특징으로 하는 방법을 제공한다.

Description

기능적 안전성을 위해 극한 상황에서 폴트 톨러런스 및 플럭츄에이션 로버스트를 향상시키도록 테스트 패턴을 이용해 CNN의 파라미터의 무결성을 검증하기 위한 방법 및 장치{METHOD AND DEVICE FOR VERIFYING INTEGRITY OF PARAMETERS OF CNN BY USING TEST PATTERN TO ENHANCE FAULT TOLERANCE AND FLUCTUATION ROBUSTNESS IN EXTREME SITUATIONS FOR FUNCTIONAL SAFETY}
본 발명은 자율주행 자동차와 함께 사용하기 위한 방법과 컴퓨팅 장치에 관한 것으로, 보다 자세하게는, 테스트 패턴을 이용해 CNN(Convolutional Neural Network)의 파라미터의 무결성(Integrity)을 검증하기 위한 방법 및 컴퓨팅 장치에 관한 것이다.
딥 컨벌루션 뉴럴 네트워크(Deep Convolution Neural Networks; Deep CNNs)는 딥 러닝 분야에서 일어난 놀라운 발전의 핵심이다. CNNs은 글자 인식 문제를 풀기 위해 90년대에 이미 사용되었지만, 현재처럼 널리 쓰이게 된 것은 최근의 연구 결과 덕분이다. 이러한 CNN은 2012년 ImageNet 이미지 분류 시합에서 다른 경쟁자들을 이기고 우승을 차지했다. 그리고 나서 컨벌루션 뉴럴 네트워크는 기계 학습(Machine Learning) 분야에서 매우 유용한 툴이 되었다.
CNN은 자동차의 자율 주행 분야에서도 널리 사용되고 있는데, 이는 주로 자동차에 부착된 카메라를 통해 획득된 영상을 분석함으로써 장애물을 검출하고, 프리 스페이스(Free Space)를 검출하는 등의 기능을 수행하여 안전하게 차량이 주행될 수 있도록 한다.
자율 주행용 CNN을 실제로 자율 주행에 투입하는 경우에 매우 중요하게 생각해야 할 것은, 자율 주행용 CNN의 보안이다. 자율 주행 차량은 빠른 속도로 움직이고, 큰 질량을 가지는 만큼, 잘못 주행되었을 때의 위험성이 크기 때문이다. 구체적으로, 만일 나쁜 의도를 가진 해커가 자율 주행용 CNN을 해킹하여 자율 주행용 CNN의 파라미터를 변조한다면, 자율 주행용 차량은 테러에 이용될 수 있기 때문이다.
따라서, 테스트 프로세스 중 CNN의 파라미터가 학습 프로세스를 완료하였을 때의 파라미터와 같은 상태를 유지하고 있는지를 검증하는 방법이 필요하다. 지금까지의 연구는 자율 주행용 CNN이 차량을 얼마나 잘 움직일 수 있는지에 대해서 주로 초점이 맞춰져 있었고, 이와 같이 보안을 유지하는 방법에 대하여는 연구가 많이 되지 않은 것이 현실이다.
본 발명은 상술한 문제점을 해결하는 것을 목적으로 한다.
본 발명은 적어도 하나의 테스트 패턴을 이용해 CNN(Convolutional Neural Network)의 적어도 하나의 파라미터의 무결성(Integrity)을 검증하기 위한 방법을 제공함으로써 자율 주행 차량이 해커의 위협으로부터 안전하게 주행될 수 있도록 하는 것을 다른 목적으로 한다.
상기한 바와 같은 본 발명의 목적을 달성하고, 후술하는 본 발명의 특징적인 효과를 실현하기 위한 본 발명의 특징적인 구성은 하기와 같다.
본 발명의 일 태양에 따르면, 적어도 하나의 원본 입력(Input)에 추가될 적어도 하나의 테스트 패턴을 이용해 CNN(Convolutional Neural Network)의 적어도 하나의 파라미터의 무결성(Integrity)을 검증하기 위한 방법에 있어서, (a) 상기 테스트 패턴이 획득되면, 컴퓨팅 장치가, 적어도 하나의 추가 유닛(Adding Unit)으로 하여금, 상기 테스트 패턴을 상기 원본 입력에 추가함으로써 적어도 하나의 확장 입력(Extended Input)을 생성하도록 하는 단계; (b) 상기 컴퓨팅 장치가, 상기 CNN으로 하여금, 상기 확장 입력에 대하여 컨벌루션 연산을 적어도 한 번 적용함으로써 적어도 하나의 검증용 출력(Output)을 생성하도록 하는 단계; 및 (c) 상기 컴퓨팅 장치가, 적어도 하나의 비교 유닛(Comparing Unit)으로 하여금, 적어도 하나의 참조용 출력을 참조로 하여 상기 검증용 출력의 유효성(Validity)을 판단함으로써 상기 CNN의 상기 파라미터의 상기 무결성을 검증하도록 하는 단계;를 포함하는 것을 특징으로 한다.
일 실시예에서, 상기 (a) 단계에서, 상기 컴퓨팅 장치가, 상기 추가 유닛으로 하여금, 상기 원본 입력에 적어도 하나의 제로 패턴(Zero Pattern)을 추가하도록 한 후, 상기 테스트 패턴을 추가하도록 하되, 상기 테스트 패턴과 상기 원본 입력 사이에 상기 제로 패턴이 위치되도록 하는 것을 특징으로 한다.
일 실시예에서, 상기 (c) 단계에서, 상기 컴퓨팅 장치가, 상기 비교 유닛으로 하여금, 상기 참조용 출력에 포함된 적어도 하나의 각각의 제1 값과, 상기 검증용 출력의 전체 영역 중 상기 테스트 패턴에 대응하는 적어도 하나의 특정 영역에 포함된 각각의 대응하는 제2 값을 비교하도록 하고, 상기 참조용 출력에 포함된 적어도 하나의 제1 값과 상기 특정 영역에 포함된 이에 대응하는 제2 값이 동일하지 않을 경우, 상기 컴퓨팅 장치가, 상기 비교 유닛으로 하여금, 상기 검증용 출력이 잘못된 것으로 판단하고, 상기 파라미터 중 적어도 일부에 적어도 하나에 오류가 있다고 판단하도록 하는 것을 특징으로 한다.
일 실시예에서, 상기 (c) 단계에서, 상기 컴퓨팅 장치가, 상기 비교 유닛으로 하여금, (i) 상기 검증용 출력의 전체 영역 중 상기 테스트 패턴에 대응하는 적어도 하나의 특정 영역의 각각의 채널에 포함된 적어도 하나의 각각의 값에 대응하는 적어도 하나의 각각의 검증용 대표 값(Representative Value)을 생성하도록 하고, (ii) 상기 참조용 출력의 채널 별 적어도 하나의 참조용 대표 값 각각을, 상기 특정 영역의 각각의 상기 채널 별 상기 검증용 대표 값 각각과 비교하도록 한 후, (iii) 적어도 하나의 상기 참조용 대표 값과 이에 대응하는 상기 검증용 대표 값 중 하나가 동일하지 않을 경우, 상기 검증용 출력이 잘못된 것으로 판단하고, 상기 파라미터 중 적어도 일부에 오류가 있다고 판단하도록 하는 것을 특징으로 한다.
일 실시예에서, 상기 (a) 단계 이전에, 상기 CNN의 보안 레벨이 임계 레벨 이상일 때, 상기 컴퓨팅 장치가, 상기 CNN으로 하여금 상기 테스트 패턴에 대하여 컨벌루션 연산을 적용함으로써 상기 참조용 출력을 생성하도록 하는 것을 특징으로 한다.
본 발명의 다른 태양에 따르면, 적어도 하나의 원본 입력(Input)에 추가될 적어도 하나의 서브 테스트 패턴(Sub-Test Pattern)을 이용해 CNN(Convolutional Neural Network)의 적어도 하나의 파라미터의 무결성(Integrity)을 검증하기 위한 방법에 있어서, (a) 컴퓨팅 장치가, 상기 컴퓨팅 장치에 포함된 상기 CNN의 컨벌루션 커널(Convolution Kernel)과 같은 크기를 가지는 상기 서브 테스트 패턴이 획득되면, 추가 유닛(Adding Unit)으로 하여금, 상기 원본 입력에 상기 서브 테스트 패턴 추가 작업을 반복하여 적어도 하나의 확장 입력(Extended Input)을 생성하도록 하는 단계; (b) 상기 컴퓨팅 장치가, 상기 CNN으로 하여금, 상기 확장 입력에 대하여 컨벌루션 연산을 적어도 한 번 적용함으로써 적어도 하나의 검증용 출력(Output)을 생성하도록 하는 단계; 및 (c) 상기 컴퓨팅 장치가, 적어도 하나의 비교 유닛(Comparing Unit) 으로 하여금, 상기 검증용 출력에 포함된, 각각의 상기 서브 테스트 패턴에 대응하는 적어도 하나의 각각의 검증용 서브 출력(Sub-Output)을 참조로 하여 상기 검증용 출력의 유효성(Validity)을 판단함으로써 상기 CNN의 상기 파라미터의 무결성을 검증하도록 하는 단계;를 포함하는 것을 특징으로 한다.
일 실시예에서, 각각의 검증용 서브 출력은 적어도 하나의 검증 영역(Verifying Region)과 비검증 영역(Non-Verifying Region)을 포함하며, 상기 (c) 단계에서, 상기 컴퓨팅 장치가, 상기 비교 유닛으로 하여금, 상기 참조용 서브 출력에 포함된 검증 영역 상의 동일한 상대적 위치에 있는 검증 값들(Verifying Values)을 서로 비교하도록 하고, 상기 검증 값들 중 적어도 하나가 다른 값과 동일하지 않을 경우, 상기 컴퓨팅 장치가, 상기 비교 유닛으로 하여금, 상기 검증용 출력이 잘못된 것으로 판단하고, 상기 파라미터 중 적어도 일부에 적어도 하나에 오류가 있다고 판단하도록 하는 것을 특징으로 한다.
일 실시예에서, 각각의 상기 검증용 서브 출력 상의 상기 검증 영역의 위치와 비검증 영역의 위치는 상기 확장 입력 상의 상기 서브 테스트 패턴의 위치에 따라 결정되는 것을 특징으로 한다.
본 발명의 또 다른 태양에 따르면, 적어도 하나의 원본 입력(Input)에 추가될 적어도 하나의 테스트 패턴을 이용해 CNN(Convolutional Neural Network)의 적어도 하나의 파라미터의 무결성(Integrity)을 검증하기 위한 컴퓨팅 장치에 있어서, 인스트럭션을 저장하는 적어도 하나의 메모리; 및 (I) 적어도 하나의 추가 유닛(Adding Unit)으로 하여금, 상기 테스트 패턴을 상기 원본 입력에 추가함으로써 적어도 하나의 확장 입력(Extended Input)을 생성하도록 하는 프로세스, (II) 상기 CNN으로 하여금, 상기 확장 입력에 대하여 컨벌루션 연산을 적어도 한 번 적용함으로써 적어도 하나의 검증용 출력(Output)을 생성하도록 하는 프로세스, 및 (III) 적어도 하나의 비교 유닛(Comparing Unit)으로 하여금, 적어도 하나의 참조용 출력을 참조로 하여 상기 검증용 출력의 유효성(Validity)을 판단함으로써 상기 CNN의 상기 파라미터의 상기 무결성을 검증하도록 하는 프로세스를 수행하기 위한 상기 인스트럭션을 실행하도록 구성된 적어도 하나의 프로세서;를 포함하는 것을 특징으로 한다.
일 실시예에서, 상기 (I) 프로세스에서, 상기 프로세서가, 상기 추가 유닛으로 하여금, 상기 원본 입력에 적어도 하나의 제로 패턴(Zero Pattern)을 추가하도록 한 후, 상기 테스트 패턴을 추가하도록 하되, 상기 테스트 패턴과 상기 원본 입력 사이에 상기 제로 패턴이 위치되도록 하는 것을 특징으로 한다.
일 실시예에서, 상기 (III) 프로세스에서, 상기 프로세서가, 상기 비교 유닛으로 하여금, 상기 참조용 출력에 포함된 적어도 하나의 각각의 제1 값과, 상기 검증용 출력의 전체 영역 중 상기 테스트 패턴에 대응하는 적어도 하나의 특정 영역에 포함된 각각의 대응하는 제2 값을 비교하도록 하고, 상기 참조용 출력에 포함된 적어도 하나의 제1 값과 상기 특정 영역에 포함된 이에 대응하는 제2 값이 동일하지 않을 경우, 상기 컴퓨팅 장치가, 상기 비교 유닛으로 하여금, 상기 검증용 출력이 잘못된 것으로 판단하고, 상기 파라미터 중 적어도 일부에 적어도 하나에 오류가 있다고 판단하도록 하는 것을 특징으로 한다.
일 실시예에서, 상기 (III) 프로세스에서, 상기 프로세서가, 상기 비교 유닛으로 하여금, (i) 상기 검증용 출력의 전체 영역 중 상기 테스트 패턴에 대응하는 적어도 하나의 특정 영역의 각각의 채널에 포함된 적어도 하나의 각각의 값에 대응하는 적어도 하나의 각각의 검증용 대표 값(Representative Value)을 생성하도록 하고, (ii) 상기 참조용 출력의 채널 별 적어도 하나의 참조용 대표 값 각각을, 상기 특정 영역의 각각의 상기 채널 별 상기 검증용 대표 값 각각과 비교하도록 한 후, (iii) 적어도 하나의 상기 참조용 대표 값과 이에 대응하는 상기 검증용 대표 값 중 하나가 동일하지 않을 경우, 상기 검증용 출력이 잘못된 것으로 판단하고, 상기 파라미터 중 적어도 일부에 오류가 있다고 판단하도록 하는 것을 특징으로 한다.
일 실시예에서, 상기 (I) 프로세스 이전에, 상기 CNN의 보안 레벨이 임계 레벨 이상일 때, 상기 프로세서가, 상기 CNN으로 하여금 상기 테스트 패턴에 대하여 컨벌루션 연산을 적용함으로써 상기 참조용 출력을 생성하도록 하는 것을 특징으로 한다.
본 발명의 다른 태양에 따르면, 적어도 하나의 원본 입력(Input)에 추가될 적어도 하나의 서브 테스트 패턴(Sub-Test Pattern)을 이용해 CNN(Convolutional Neural Network)의 적어도 하나의 파라미터의 무결성(Integrity)을 검증하기 위한 컴퓨팅 장치에 있어서, 인스트럭션을 저장하는 적어도 하나의 메모리; 및 (I) 상기 컴퓨팅 장치에 포함된 상기 CNN의 컨벌루션 커널(Convolution Kernel)과 같은 크기를 가지는 상기 서브 테스트 패턴이 획득되면, 추가 유닛(Adding Unit)으로 하여금, 상기 원본 입력에 상기 서브 테스트 패턴 추가 작업을 반복하여 적어도 하나의 확장 입력(Extended Input)을 생성하도록 하는 프로세스, (II) 상기 CNN으로 하여금, 상기 확장 입력에 대하여 컨벌루션 연산을 적어도 한 번 적용함으로써 적어도 하나의 검증용 출력(Output)을 생성하도록 하는 프로세스, 및 (III) 적어도 하나의 비교 유닛(Comparing Unit)으로 하여금, 상기 검증용 출력에 포함된, 각각의 상기 서브 테스트 패턴에 대응하는 적어도 하나의 각각의 검증용 서브 출력(Sub-Output)을 참조로 하여 상기 검증용 출력의 유효성(Validity)을 판단함으로써 상기 CNN의 상기 파라미터의 무결성을 검증하도록 하는 프로세스를 수행하기 위한 상기 인스트럭션을 실행하도록 구성된 적어도 하나의 프로세서;를 포함하는 것을 특징으로 한다.
일 실시예에서, 각각의 검증용 서브 출력은 적어도 하나의 검증 영역(Verifying Region)과 비검증 영역(Non-Verifying Region)을 포함하며, 상기 (III) 프로세스에서, 상기 프로세서가, 상기 비교 유닛으로 하여금, 상기 참조용 서브 출력에 포함된 검증 영역 상의 동일한 상대적 위치에 있는 검증 값들(Verifying Values)을 서로 비교하도록 하고, 상기 검증 값들 중 적어도 하나가 다른 값과 동일하지 않을 경우, 상기 프로세서가, 상기 비교 유닛으로 하여금, 상기 검증용 출력이 잘못된 것으로 판단하고, 상기 파라미터 중 적어도 일부에 적어도 하나에 오류가 있다고 판단하도록 하는 것을 특징으로 한다.
일 실시예에서, 각각의 상기 검증용 서브 출력 상의 상기 검증 영역의 위치와 비검증 영역의 위치는 상기 확장 입력 상의 상기 서브 테스트 패턴의 위치에 따라 결정되는 것을 특징으로 한다.
이 외에도, 본 발명의 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
본 발명은 테스트 패턴을 이용해 CNN의 파라미터의 무결성을 검증하기 위한 방법을 제공함으로써 자율 주행 차량을 해커로부터 안전하게 지킬 수 있도록 하는 효과가 있다.
본 발명의 실시예의 설명에 이용되기 위하여 첨부된 아래 도면들은 본 발명의 실시예들 중 단지 일부일 뿐이며, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자(이하 "통상의 기술자")에게 있어서는 발명적 작업이 이루어짐 없이 이 도면들에 기초하여 다른 도면들이 얻어질 수 있다.
도 1은 본 발명의 일 실시예에 따른, 적어도 하나의 테스트 패턴을 이용해 CNN(Convolutional Neural Network)의 적어도 하나의 파라미터의 무결성(Integrity)을 검증하기 위한 방법을 수행하는 컴퓨팅 장치의 구성을 간략하게 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른, 테스트 패턴을 이용해 CNN의 파라미터의 무결성을 검증하기 위한 방법을 간략하게 나타낸 흐름도이다.
도 3은 본 발명의 일 실시예에 따른, 테스트 패턴을 이용해 CNN의 파라미터의 무결성을 검증하기 위한 방법을 사용하기 위해 생성된, 적어도 하나의 확장 입력(Extended Input) 및 적어도 하나의 검증용 출력(Output)을 간략하게 나타낸 도면이다.
도 4는 본 발명의 다른 실시예에 따른, 적어도 하나의 서브 테스트 패턴(Sub-Test Pattern)을 이용해 CNN의 파라미터의 무결성을 검증하기 위한 방법을 사용하기 위해 생성된, 적어도 하나의 확장 입력 및 적어도 하나의 검증용 서브 출력(Sub-Output)을 포함하는 적어도 하나의 검증용 출력을 포함하는 검증용 출력을 간략하게 나타낸 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
또한, 본 발명의 상세한 설명 및 청구항들에 걸쳐, "포함하다"라는 단어 및 그것의 변형은 다른 기술적 특징들, 부가물들, 구성요소들 또는 단계들을 제외하는 것으로 의도된 것이 아니다. 통상의 기술자에게 본 발명의 다른 목적들, 장점들 및 특성들이 일부는 본 설명서로부터, 그리고 일부는 본 발명의 실시로부터 드러날 것이다. 아래의 예시 및 도면은 실례로서 제공되며, 본 발명을 한정하는 것으로 의도된 것이 아니다.
본 발명에서 언급하는 각종 이미지는 포장 또는 비포장 도로 관련 이미지를 포함할 수 있으며, 이 경우 도로 환경에서 등장할 수 있는 물체(가령, 자동차, 사람, 동물, 식물, 물건, 건물, 비행기나 드론과 같은 비행체, 기타 장애물)를 상정할 수 있을 것이나, 반드시 이에 한정되는 것은 아니며, 본 발명에서 언급하는 각종 이미지는 도로와 상관 없는 이미지(가령, 비포장도로, 골목길, 공터, 바다, 호수, 강, 산, 숲, 사막, 하늘, 실내와 관련된 이미지)일 수도 있으며, 이 경우, 비포장도로, 골목길, 공터, 바다, 호수, 강, 산, 숲, 사막, 하늘, 실내 환경에서 등장할 수 있는 물체(가령, 자동차, 사람, 동물, 식물, 물건, 건물, 비행기나 드론과 같은 비행체, 기타 장애물)를 상정할 수 있을 것이나, 반드시 이에 한정되는 것은 아니다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른, 적어도 하나의 테스트 패턴을 이용해 CNN(Convolutional Neural Network)의 적어도 하나의 파라미터의 무결성(Integrity)을 검증하기 위한 방법을 수행하는 컴퓨팅 장치의 구성을 간략하게 나타낸 도면이다.
도 1을 참조하면, 컴퓨팅 장치(100)는 추후 자세히 설명할 구성요소인 무결성 검증 모듈(200)에 포함된 추가 유닛(210) 및 비교 유닛(220), 그리고 CNN(300)을 포함할 수 있다. 추가 유닛(210), 비교 유닛(220) 및 CNN(300)의 입출력 및 연산 과정은 각각 통신부(110) 및 프로세서(120)에 의해 이루어질 수 있다. 다만 도 1에서는 통신부(110) 및 프로세서(120)의 구체적인 연결 관계를 생략하였다. 이 때, 적어도 하나의 메모리(115)는 후술할 여러 가지 인스트럭션을 저장한 상태일 수 있고, 프로세서(120)는 메모리(115)에 저장된 인스트럭션을 수행하도록 설정되되, 프로세서(120)는 추후 설명할 프로세스를 수행함으로써 본 발명을 수행할 수 있다. 이와 같이 컴퓨팅 장치(100)가 묘사되었다고 하여, 컴퓨팅 장치(100)가 본 발명을 실시하기 위한 프로세서, 메모리, 매체 또는 다른 컴퓨팅 장치의 모든 조합을 포함하는 통합 프로세서(Integrated Processor)를 포함하는 경우를 배제하는 것은 아니다.
이상 컴퓨팅 장치(100)의 전체적인 구성에 대해 설명하였다. 이후로 본 발명의 일 실시예에 따른, 테스트 패턴을 이용해 CNN의 파라미터의 무결성을 검증하기 위한 방법에 대해 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른, 테스트 패턴을 이용해 CNN의 파라미터의 무결성을 검증하기 위한 방법을 간략하게 나타낸 흐름도이다.
도 2를 참조하면, 추가 유닛(210)이 적어도 하나의 원본 입력과 테스트 패턴을 이용해 적어도 하나의 확장 입력을 생성하고, CNN(300)이 확장 입력(Extended Input)을 이용해 적어도 하나의 검증용 출력(Output)을 생성한 뒤, 비교 유닛(220)이 검증용 출력과 적어도 하나의 참조용 출력을 이용해 CNN의 파라미터의 무결성을 판단할 수 있다.
구체적으로, 테스트 패턴 및 원본 입력이 획득되면, 컴퓨팅 장치(100)는, 추가 유닛(210)으로 하여금, 테스트 패턴을 원본 입력에 추가함으로써 확장 입력을 생성하도록 할 수 있다.
이 때, 추가 유닛(210)과 비교 유닛(220)은 CNN(300)의 무결성을 검증하기 위한 무결성 검증 모듈(200)에 포함된 것일 수 있다. 추가 유닛(210)은, 전술한 바와 같이 테스트 패턴을 원본 입력에 추가하는 역할을 할 수 있다. 자세히 설명하면, 위에서 언급한 바와 같이 추가 유닛(210)은 먼저 원본 입력에 적어도 하나의 제로 패턴을 추가하도록 하여, 테스트 패턴과 원본 입력 사이에 제로 패턴이 위치되도록 할 수 있다.
제로 패턴 없이 원본 입력에 직접적으로 테스트 패턴이 추가되어 확장 입력이 생성되고, CNN이 제로 패턴 없이 확장 입력 이미지에 대하여 컨벌루션 연산을 적어도 한 번 적용하면, NxN 사이즈의 컨벌루션 커널(Convolution Kernel)을 이용하여 여러 픽셀에 대한 값을 함께 연산하는 컨벌루션 연산의 특성 상, 테스트 패턴이 원본 입력에 대한 컨벌루션 결과에 영향을 미칠 수 있기 때문이다. 이것이 제로 패턴을 추가한 이유다. 제로 패턴은, 테스트 패턴이 원본 입력에 대한 컨벌루션 결과에 영향을 미칠 수 없는 정도의 두께로 설정될 수 있다. 일 실시예로, 컨벌루션 커널 사이즈를 2로 나누고 소수점 아래는 버린 값만큼의 두께로 설정될 수 있을 것이다.
상기와 같은 과정을 거쳐 확장 입력이 생성되면, 컴퓨팅 장치(100)가, CNN(300)으로 하여금, 확장 입력에 대하여 컨벌루션 연산을 적어도 한 번 적용함으로써 검증용 출력을 생성하도록 할 수 있다. CNN(300)의 파라미터는 이미 학습된 상태일 수 있다. 이 때, 검증용 출력의 전체 영역 중, 확장 입력의 일부인 테스트 패턴에 대응하는 적어도 하나의 특정 영역은, 전체 영역 중 나머지 영역이 원본 입력에 대응하고 상기 나머지 영역이 CNN(300)의 주요 목적(예를 들어, 획득된 이미지 분석)에 따라 사용되는 동안에, 파라미터가 변조되었는지 여부를 판단하는 데에 사용될 수 있다. 추후 설명할 비교 유닛(220)은, 테스트 패턴에 대응하는 특정 영역을 산출할 수 있다. 이와 같은 검증용 출력에 대해 살피기 위해 도 3을 참조하도록 한다.
도 3은 본 발명의 일 실시예에 따른, 테스트 패턴을 이용해 CNN의 파라미터의 무결성을 검증하기 위한 방법을 수행하기 위해 생성된, 확장 입력 및 검증용 출력을 간략하게 나타낸 도면이다.
도 3을 참조로 하면, 원본 입력에 테스트 패턴과 제로 패턴이 더해져 확장 입력이 생성된 것을 확인할 수 있다. 또한, 확장 입력에 CNN(300)의 컨벌루션 연산을 적용함으로써 검증용 출력이 생성된 것을 확인할 수 있다.
이후, 컴퓨팅 장치(100)는, 비교 유닛(220)으로 하여금, 참조용 출력을 참조하여 검증용 출력의 유효성(Validity)을 판단함으로써 CNN(300)의 파라미터의 무결성을 검증하도록 할 수 있다.
이때, 무결성 검증 모듈(200)을 사용하여 파라미터의 무결성을 검증하는 프로세스가 수행되기 이전의 시점 중, CNN(300)의 보안 레벨이 임계 레벨 이상일 때, 테스트 패턴에 대하여 컨벌루션 연산을 적용함으로써 참조용 출력이 미리 생성된 것이다.
본 발명의 일 실시예에 따른 방법은 해커의 공격을 포함하는 임의의 요인으로 인해 파라미터가 변조되었는지 여부를 판단하기 위한 것이므로, 참조용 출력은 파라미터의 무결성이 확보된 시점에 생성된 것이어야 한다. 따라서 참조용 출력은 상기 보안 레벨이 임계 레벨 이상일 때 CNN(300)에 의해 생성될 수 있다.
이와 같이 참조용 출력은, 검증용 출력의 전체 영역 중 테스트 패턴에 대응하는 특정 영역과 비교됨으로써 CNN의 파라미터의 무결성을 판단할 수 있다. 즉, 컴퓨팅 장치(100)가, 비교 유닛(220)으로 하여금, 참조용 출력에 포함된 적어도 하나의 각각의 제1 값과, 검증용 출력의 전체 영역 중 테스트 패턴에 대응하는 특정 영역에 포함된 각각의 대응하는 제2 값을 비교하도록 할 수 있다. 그리고 참조용 출력에 포함된 적어도 하나의 제1 값과 특정 영역에 포함된 이에 대응하는 제2 값이 동일하지 않을 경우, 검증용 출력이 잘못된 것으로 판단하고, 파라미터 중 적어도 일부에 적어도 하나에 오류가 있다고 판단할 수 있다.
참조용 출력은, 파라미터의 무결성이 확보된 상태에서 상기 테스트 패턴에 CNN(300)이 컨벌루션 연산을 적용한 결과이다. 따라서, 적어도 하나의 제1 값이 이에 대응하는 제2 값과 일치하지 않는다면, 적어도 하나의 파라미터가 변조된 것으로 판단할 수 있다.
이상 본 발명의 일 실시예에 따른, 테스트 패턴을 이용해 파라미터의 무결성을 검증하기 위한 방법을 설명하였다. 이하 컴퓨팅 자원 소모를 최적화할 수 있는 방법에 대해 설명하고자 한다.
먼저, 테스트 패턴 및 참조용 출력을 저장하기 위한 공간을 최적화하는 방법에 대해 설명한다. 테스트 패턴은, 원본 입력의 채널 개수와 같은 개수의 채널을 가져야 한다. 테스트 패턴의 모든 채널에 대해 서로 다른 값을 설정하는 경우, 많은 데이터 저장 공간을 요구하게 된다. 그런데, CNN의 파라미터의 무결성을 검증하기 위한 목적이라면, 테스트 패턴의 모든 채널에 대한 값이 서로 다를 필요는 없고, 모든 채널에 대한 값이 같아도 무방하다. 따라서, 테스트 패턴의 하나의 채널에 대한 패턴 값을 생성하여 저장해 둔 후, 패턴 값을 테스트 패턴의 각각의 채널에 사용할 수 있다. 이 경우, 참조용 출력에 포함된 채널은, 이 중에 포함되는 어느 한 채널의 값을 이용하여 결정되는 값과 동일한 값을 갖도록 할 수도 있다. 이와 같은 방법을 통해, 테스트 패턴 및 참조용 출력을 저장하기 위한 공간을 최적화할 수 있다.
또한, 참조용 출력을 저장하기 위한 공간을 최적화하는 방법에 대해 설명한다. 참조용 출력은 기본적으로, 테스트 패턴에 대하여 컨벌루션 연산을 적용한 결과와 같은 크기를 가져야 한다. 참조용 출력을 저장하기 위한 공간은 참조용 출력에 포함된 적어도 일부의 제1 값을 이용하여 획득된 적어도 하나의 참조용 대표 값(Representative Value)만을 저장해 둠으로써 최적화할 수 있다. 즉, 참조용 출력의 채널 별로 각각의 참조용 대표 값을 저장해 둔다는 것이다. 또한, 무결성 검증 과정에서는, 컴퓨팅 장치가, 비교 유닛(220)으로 하여금, 검증용 출력의 전체 영역 중 테스트 패턴에 대응하는 특정 영역의 채널 별 제2 값의 각각의 적어도 하나의 검증용 대표 값을 생성하도록 한 뒤, 특정 영역의 상기 채널 별 검증용 대표 값 각각을 참조용 출력의 채널 별 이에 대응하는 각각의 참조용 대표 값과 비교함으로써 무결성을 검증하도록 할 수 있다는 것이다. 참조용 대표 값 및 검증용 대표 값은, 예시적으로, CRC 또는 해시(Hash)를 사용함으로써 생성될 수 있으나, 이에 한정되는 것은 아니다.
이와 달리, 참조용 출력을 사용하지 않음으로써 저장 공간을 최적화한 상태로 무결성을 검증하는 실시예도 존재한다.
본 실시예에서, CNN(300)의 컨벌루션 커널과 동일한 크기를 가지는 적어도 하나의 서브 테스트 패턴(Sub-Test Pattern)이 획득될 수 있다. 서브 테스트 패턴이 컨벌루션 커널과 동일한 크기를 가지는 것이 어떤 역할을 하게 되는지에 대해서는 추후 자세히 설명될 것이다.
컴퓨팅 장치(100)는, 추가 유닛(210)으로 하여금, 서브 테스트 패턴을 원본 입력에 추가하는 프로세스를 반복함으로써 적어도 하나의 확장 입력을 생성하도록 할 수 있다. 이후, CNN(300)으로 하여금, 확장 입력에 컨벌루션 연산을 적어도 한 번 적용함으로써 적어도 하나의 검증용 출력을 생성하도록 할 수 있다. 그리고, 비교 유닛(220)으로 하여금, 검증용 출력에 포함된, 서브 테스트 패턴에 대응하는 적어도 하나의 각각의 검증용 서브 출력(Sub-Output)을 참조로 하여, 검증용 출력의 유효성을 판단함으로써 CNN(300)의 파라미터의 무결성을 검증하도록 할 수 있다.
이 때, 각각의 검증용 서브 출력은, 검증 영역 및 비검증 영역의 적어도 일부를 포함할 수 있다. 이와 같은 영역이 생성되는 것은, 컨벌루션 연산에서 여러 값이 동시에 산출되는 특성에 기인한다. 즉, 확장 입력의 바운더리 부분(Boundary Area)에 포함된 픽셀의 값을 이용하여 컨벌루션 연산이 적용될 때에는, 유효 값 대신 더미 값(Dummy Value)을 사용되므로, 비검증 영역이 생성되는 것이다. 이에 대해 살피기 위해 도 4를 참조하도록 한다.
도 4는 본 발명의 다른 실시예에 따른, 서브 테스트 패턴을 이용해 CNN의 파라미터의 무결성을 검증하기 위한 방법을 수행하기 위해 생성된, 확장 입력 및 검증용 서브 출력을 포함하는 검증용 출력을 간략하게 나타낸 도면이다.
도 4를 참조하면, 원본 입력과 반복되는 서브 테스트 패턴 사이의 위치에 제로 패턴이 더해져 확장 입력이 생성될 수 있고, 확장 입력에 대하여 CNN(300)의 컨벌루션 연산이 적용되어 검증용 출력이 생성될 수 있다. 이 후, 서브 테스트 패턴에 포함된 특정 값을 이용해 서브 테스트 패턴에 대하여 컨벌루션 연산을 적용하는 프로세스를 참조함으로써 상기 비검증 영역에 대한 이슈를 살피도록 한다.
컨벌루션 커널의 사이즈가 3X3라면, 도 4에서 확인할 수 있듯, 특정 값을 포함하는 특정 픽셀 주변에 있는 픽셀의 여러 값을 이용해 컨벌루션 연산이 적용될 수 있다. 특정 값의 상단에는 확장 입력에 포함된 값이 존재하지 않으므로, 특정 값을 포함하는 특정 픽셀 상단에 0 값이 위치한다고 가정하고 컨벌루션 연산을 수행하게 된다. 따라서, 확장 입력의 바운더리 영역에 포함된 픽셀의 값은 컨벌루션 연산 시에 0으로 취급되는 더미 값을 사용하게 되므로, 도 4의 검증용 출력에서 확인할 수 있는 비검증 영역이 생성될 수 있다.
각각의 검증용 서브 출력 상의 검증 영역 및 비검증 영역의 위치는, 확장 입력 상의 서브 테스트 패턴의 위치에 따라 결정될 것이다.
이와 같은 검증용 출력이 생성되면, 컴퓨팅 장치(100)가, 비교 유닛(220)으로 하여금, 참조용 서브 출력에 포함된 검증 영역 상의 동일한 상대적 위치에 있는 검증 값들(Verifying Values)을 서로 비교하도록 하고, 검증 값들 중 적어도 하나가 다른 값과 동일하지 않을 경우, 컴퓨팅 장치가, 비교 유닛(220)으로 하여금, 검증용 출력이 잘못된 것으로 판단하고, 파라미터 중 적어도 일부에 적어도 하나에 오류가 있다고 판단하도록 할 수 있다.
도 4를 다시 참조하면, 검증용 서브 출력에서 점으로 표시된, 검증 값은, 각각의 검증 값이 각각의 검증용 서브 출력의 중앙에 위치하는 바, 서로 대응한다고 볼 수 있다. 이는 각각의 검증 값이 같은 테스트 패턴에 대한 컨벌루션 연산의 결과 값이므로, 검증 값들은 서로 같아야 한다. 검증 값 중 적어도 하나가 다른 값과 다르다면, CNN의 파라미터가 변조된 것으로 판단할 수 있다. 그러므로, 이와 같은 프로세스를 통해 파라미터의 무결성을 검증할 수 있는 것이다.
이와 같은 새로운 실시예의 구성은, 도 2의 구성에서, 참조용 출력을 획득한 부분을 제외하고는 이전의 실시예의 구성과 동일할 것이다.
이와 같은 본 발명에 따른 테스트 패턴 또는 서브 테스트 패턴을 이용해 CNN의 파라미터의 무결성을 검증하기 위한 방법을 수행함으로써, CNN이 자율 주행에 사용될 때, 보안을 보장할 수 있을 것이다.
또한, 본 발명의 일 실시예에 따른 방법은 CNN상의 기능적 안전성을 위해 극한 상황에서 폴트 톨러런스(Fault Tolerance) 및 플럭츄에이션 로버스트(Fluctuation Robustness)를 향상시키는데 사용될 수 있으며, 주석(Annotation) 비용을 줄이는데 사용될 수도 있다.
본 발명 기술분야의 통상의 기술자에게 이해될 수 있는 바로서, 위에서 설명된 이미지, 예컨대 원본 이미지, 원본 레이블 및 추가 레이블과 같은 이미지 데이터의 송수신이 학습 장치 및 테스트 장치의 통신부들에 의하여 이루어질 수 있으며, 특징 맵과 연산을 수행하기 위한 데이터가 학습 장치 및 테스트 장치의 프로세서(및/또는 메모리)에 의하여 보유/유지될 수 있고, 컨벌루션 연산, 디컨벌루션 연산, 로스 값 연산 과정이 주로 학습 장치 및 테스트 장치의 프로세서에 의하여 수행될 수 있으나, 본 발명이 이에 한정되지는 않을 것이다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.

Claims (16)

  1. 적어도 하나의 원본 입력(Input)에 추가될 적어도 하나의 테스트 패턴을 이용해 CNN(Convolutional Neural Network)의 적어도 하나의 파라미터의 무결성(Integrity)을 검증하기 위한 방법에 있어서,
    (a) 상기 테스트 패턴이 획득되면, 컴퓨팅 장치가, 적어도 하나의 추가 유닛(Adding Unit)으로 하여금, 상기 테스트 패턴을 상기 원본 입력에 추가함으로써 적어도 하나의 확장 입력(Extended Input)을 생성하도록 하는 단계;
    (b) 상기 컴퓨팅 장치가, 상기 CNN으로 하여금, 상기 확장 입력에 대하여 컨벌루션 연산을 적어도 한 번 적용함으로써 적어도 하나의 검증용 출력(Output)을 생성하도록 하는 단계; 및
    (c) 상기 컴퓨팅 장치가, 적어도 하나의 비교 유닛(Comparing Unit)으로 하여금, 적어도 하나의 참조용 출력을 참조로 하여 상기 검증용 출력의 유효성(Validity)을 판단함으로써 상기 CNN의 상기 파라미터의 상기 무결성을 검증하도록 하는 단계;
    를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 (a) 단계에서,
    상기 컴퓨팅 장치가, 상기 추가 유닛으로 하여금, 상기 원본 입력에 적어도 하나의 제로 패턴(Zero Pattern)을 추가하도록 한 후, 상기 테스트 패턴을 추가하도록 하되, 상기 테스트 패턴과 상기 원본 입력 사이에 상기 제로 패턴이 위치되도록 하는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서,
    상기 (c) 단계에서,
    상기 컴퓨팅 장치가, 상기 비교 유닛으로 하여금, 상기 참조용 출력에 포함된 적어도 하나의 각각의 제1 값과, 상기 검증용 출력의 전체 영역 중 상기 테스트 패턴에 대응하는 적어도 하나의 특정 영역에 포함된 각각의 대응하는 제2 값을 비교하도록 하고, 상기 참조용 출력에 포함된 적어도 하나의 제1 값과 상기 특정 영역에 포함된 이에 대응하는 제2 값이 동일하지 않을 경우, 상기 컴퓨팅 장치가, 상기 비교 유닛으로 하여금, 상기 검증용 출력이 잘못된 것으로 판단하고, 상기 파라미터 중 적어도 일부에 적어도 하나에 오류가 있다고 판단하도록 하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    상기 (c) 단계에서,
    상기 컴퓨팅 장치가, 상기 비교 유닛으로 하여금, (i) 상기 검증용 출력의 전체 영역 중 상기 테스트 패턴에 대응하는 적어도 하나의 특정 영역의 각각의 채널에 포함된 적어도 하나의 각각의 값에 대응하는 적어도 하나의 각각의 검증용 대표 값(Representative Value)을 생성하도록 하고, (ii) 상기 참조용 출력의 채널 별 적어도 하나의 참조용 대표 값 각각을, 상기 특정 영역의 각각의 상기 채널 별 상기 검증용 대표 값 각각과 비교하도록 한 후, (iii) 적어도 하나의 상기 참조용 대표 값과 이에 대응하는 상기 검증용 대표 값 중 하나가 동일하지 않을 경우, 상기 검증용 출력이 잘못된 것으로 판단하고, 상기 파라미터 중 적어도 일부에 오류가 있다고 판단하도록 하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서,
    상기 (a) 단계 이전에,
    상기 CNN의 보안 레벨이 임계 레벨 이상일 때, 상기 컴퓨팅 장치가, 상기 CNN으로 하여금 상기 테스트 패턴에 대하여 컨벌루션 연산을 적용함으로써 상기 참조용 출력을 생성하도록 하는 것을 특징으로 하는 방법.
  6. 적어도 하나의 원본 입력(Input)에 추가될 적어도 하나의 서브 테스트 패턴(Sub-Test Pattern)을 이용해 CNN(Convolutional Neural Network)의 적어도 하나의 파라미터의 무결성(Integrity)을 검증하기 위한 방법에 있어서,
    (a) 컴퓨팅 장치가, 상기 컴퓨팅 장치에 포함된 상기 CNN의 컨벌루션 커널(Convolution Kernel)과 같은 크기를 가지는 상기 서브 테스트 패턴이 획득되면, 추가 유닛(Adding Unit)으로 하여금, 상기 원본 입력에 상기 서브 테스트 패턴 추가 작업을 반복하여 적어도 하나의 확장 입력(Extended Input)을 생성하도록 하는 단계;
    (b) 상기 컴퓨팅 장치가, 상기 CNN으로 하여금, 상기 확장 입력에 대하여 컨벌루션 연산을 적어도 한 번 적용함으로써 적어도 하나의 검증용 출력(Output)을 생성하도록 하는 단계; 및
    (c) 상기 컴퓨팅 장치가, 적어도 하나의 비교 유닛(Comparing Unit) 으로 하여금, 상기 검증용 출력에 포함된, 각각의 상기 서브 테스트 패턴에 대응하는 적어도 하나의 각각의 검증용 서브 출력(Sub-Output)을 참조로 하여 상기 검증용 출력의 유효성(Validity)을 판단함으로써 상기 CNN의 상기 파라미터의 무결성을 검증하도록 하는 단계;
    를 포함하는 것을 특징으로 하는 방법.
  7. 제 6항에 있어서,
    각각의 검증용 서브 출력은 적어도 하나의 검증 영역(Verifying Region)과 비검증 영역(Non-Verifying Region)을 포함하며,
    상기 (c) 단계에서,
    상기 컴퓨팅 장치가, 상기 비교 유닛으로 하여금, 상기 참조용 서브 출력에 포함된 검증 영역 상의 동일한 상대적 위치에 있는 검증 값들(Verifying Values)을 서로 비교하도록 하고, 상기 검증 값들 중 적어도 하나가 다른 값과 동일하지 않을 경우, 상기 컴퓨팅 장치가, 상기 비교 유닛으로 하여금, 상기 검증용 출력이 잘못된 것으로 판단하고, 상기 파라미터 중 적어도 일부에 적어도 하나에 오류가 있다고 판단하도록 하는 것을 특징으로 하는 방법.
  8. 제 7항에 있어서,
    각각의 상기 검증용 서브 출력 상의 상기 검증 영역의 위치와 비검증 영역의 위치는 상기 확장 입력 상의 상기 서브 테스트 패턴의 위치에 따라 결정되는 것을 특징으로 하는 방법.
  9. 적어도 하나의 원본 입력(Input)에 추가될 적어도 하나의 테스트 패턴을 이용해 CNN(Convolutional Neural Network)의 적어도 하나의 파라미터의 무결성(Integrity)을 검증하기 위한 컴퓨팅 장치에 있어서,
    인스트럭션을 저장하는 적어도 하나의 메모리; 및
    (I) 적어도 하나의 추가 유닛(Adding Unit)으로 하여금, 상기 테스트 패턴을 상기 원본 입력에 추가함으로써 적어도 하나의 확장 입력(Extended Input)을 생성하도록 하는 프로세스, (II) 상기 CNN으로 하여금, 상기 확장 입력에 대하여 컨벌루션 연산을 적어도 한 번 적용함으로써 적어도 하나의 검증용 출력(Output)을 생성하도록 하는 프로세스, 및 (III) 적어도 하나의 비교 유닛(Comparing Unit)으로 하여금, 적어도 하나의 참조용 출력을 참조로 하여 상기 검증용 출력의 유효성(Validity)을 판단함으로써 상기 CNN의 상기 파라미터의 상기 무결성을 검증하도록 하는 프로세스를 수행하기 위한 상기 인스트럭션을 실행하도록 구성된 적어도 하나의 프로세서;
    를 포함하는 것을 특징으로 하는 장치.
  10. 제 9 항에 있어서,
    상기 (I) 프로세스에서,
    상기 프로세서가, 상기 추가 유닛으로 하여금, 상기 원본 입력에 적어도 하나의 제로 패턴(Zero Pattern)을 추가하도록 한 후, 상기 테스트 패턴을 추가하도록 하되, 상기 테스트 패턴과 상기 원본 입력 사이에 상기 제로 패턴이 위치되도록 하는 것을 특징으로 하는 장치.
  11. 제 9 항에 있어서,
    상기 (III) 프로세스에서,
    상기 프로세서가, 상기 비교 유닛으로 하여금, 상기 참조용 출력에 포함된 적어도 하나의 각각의 제1 값과, 상기 검증용 출력의 전체 영역 중 상기 테스트 패턴에 대응하는 적어도 하나의 특정 영역에 포함된 각각의 대응하는 제2 값을 비교하도록 하고, 상기 참조용 출력에 포함된 적어도 하나의 제1 값과 상기 특정 영역에 포함된 이에 대응하는 제2 값이 동일하지 않을 경우, 상기 컴퓨팅 장치가, 상기 비교 유닛으로 하여금, 상기 검증용 출력이 잘못된 것으로 판단하고, 상기 파라미터 중 적어도 일부에 적어도 하나에 오류가 있다고 판단하도록 하는 것을 특징으로 하는 장치.
  12. 제 9 항에 있어서,
    상기 (III) 프로세스에서,
    상기 프로세서가, 상기 비교 유닛으로 하여금, (i) 상기 검증용 출력의 전체 영역 중 상기 테스트 패턴에 대응하는 적어도 하나의 특정 영역의 각각의 채널에 포함된 적어도 하나의 각각의 값에 대응하는 적어도 하나의 각각의 검증용 대표 값(Representative Value)을 생성하도록 하고, (ii) 상기 참조용 출력의 채널 별 적어도 하나의 참조용 대표 값 각각을, 상기 특정 영역의 각각의 상기 채널 별 상기 검증용 대표 값 각각과 비교하도록 한 후, (iii) 적어도 하나의 상기 참조용 대표 값과 이에 대응하는 상기 검증용 대표 값 중 하나가 동일하지 않을 경우, 상기 검증용 출력이 잘못된 것으로 판단하고, 상기 파라미터 중 적어도 일부에 오류가 있다고 판단하도록 하는 것을 특징으로 하는 장치.
  13. 제 9 항에 있어서,
    상기 (I) 프로세스 이전에,
    상기 CNN의 보안 레벨이 임계 레벨 이상일 때, 상기 프로세서가, 상기 CNN으로 하여금 상기 테스트 패턴에 대하여 컨벌루션 연산을 적용함으로써 상기 참조용 출력을 생성하도록 하는 것을 특징으로 하는 장치.
  14. 적어도 하나의 원본 입력(Input)에 추가될 적어도 하나의 서브 테스트 패턴(Sub-Test Pattern)을 이용해 CNN(Convolutional Neural Network)의 적어도 하나의 파라미터의 무결성(Integrity)을 검증하기 위한 컴퓨팅 장치에 있어서,
    인스트럭션을 저장하는 적어도 하나의 메모리; 및
    (I) 상기 컴퓨팅 장치에 포함된 상기 CNN의 컨벌루션 커널(Convolution Kernel)과 같은 크기를 가지는 상기 서브 테스트 패턴이 획득되면, 추가 유닛(Adding Unit)으로 하여금, 상기 원본 입력에 상기 서브 테스트 패턴 추가 작업을 반복하여 적어도 하나의 확장 입력(Extended Input)을 생성하도록 하는 프로세스, (II) 상기 CNN으로 하여금, 상기 확장 입력에 대하여 컨벌루션 연산을 적어도 한 번 적용함으로써 적어도 하나의 검증용 출력(Output)을 생성하도록 하는 프로세스, 및 (III) 적어도 하나의 비교 유닛(Comparing Unit)으로 하여금, 상기 검증용 출력에 포함된, 각각의 상기 서브 테스트 패턴에 대응하는 적어도 하나의 각각의 검증용 서브 출력(Sub-Output)을 참조로 하여 상기 검증용 출력의 유효성(Validity)을 판단함으로써 상기 CNN의 상기 파라미터의 무결성을 검증하도록 하는 프로세스를 수행하기 위한 상기 인스트럭션을 실행하도록 구성된 적어도 하나의 프로세서;
    를 포함하는 것을 특징으로 하는 장치.
  15. 제 14항에 있어서,
    각각의 검증용 서브 출력은 적어도 하나의 검증 영역(Verifying Region)과 비검증 영역(Non-Verifying Region)을 포함하며,
    상기 (III) 프로세스에서,
    상기 프로세서가, 상기 비교 유닛으로 하여금, 상기 참조용 서브 출력에 포함된 검증 영역 상의 동일한 상대적 위치에 있는 검증 값들(Verifying Values)을 서로 비교하도록 하고, 상기 검증 값들 중 적어도 하나가 다른 값과 동일하지 않을 경우, 상기 프로세서가, 상기 비교 유닛으로 하여금, 상기 검증용 출력이 잘못된 것으로 판단하고, 상기 파라미터 중 적어도 일부에 적어도 하나에 오류가 있다고 판단하도록 하는 것을 특징으로 하는 장치.
  16. 제 15항에 있어서,
    각각의 상기 검증용 서브 출력 상의 상기 검증 영역의 위치와 비검증 영역의 위치는 상기 확장 입력 상의 상기 서브 테스트 패턴의 위치에 따라 결정되는 것을 특징으로 하는 장치.
KR1020190147111A 2019-01-28 2019-11-15 기능적 안전성을 위해 극한 상황에서 폴트 톨러런스 및 플럭츄에이션 로버스트를 향상시키도록 테스트 패턴을 이용해 cnn의 파라미터의 무결성을 검증하기 위한 방법 및 장치 KR102338768B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/258,837 2019-01-28
US16/258,837 US10373025B1 (en) 2019-01-28 2019-01-28 Method and device for verifying integrity of parameters of CNN by using test pattern to enhance fault tolerance and fluctuation robustness in extreme situations for functional safety

Publications (2)

Publication Number Publication Date
KR20200093418A true KR20200093418A (ko) 2020-08-05
KR102338768B1 KR102338768B1 (ko) 2021-12-15

Family

ID=67477543

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190147111A KR102338768B1 (ko) 2019-01-28 2019-11-15 기능적 안전성을 위해 극한 상황에서 폴트 톨러런스 및 플럭츄에이션 로버스트를 향상시키도록 테스트 패턴을 이용해 cnn의 파라미터의 무결성을 검증하기 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US10373025B1 (ko)
EP (1) EP3722999B1 (ko)
JP (1) JP6908945B2 (ko)
KR (1) KR102338768B1 (ko)
CN (1) CN111488788B (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102392576B1 (ko) * 2020-11-26 2022-04-29 숭실대학교 산학협력단 인공 지능 모델의 무결성 검증 방법과 이를 수행하기 위한 컴퓨팅 장치 및 시스템
KR20220162459A (ko) 2021-06-01 2022-12-08 최현집 딥러닝 기반 문자 인지 장치 및 딥러닝 기반 문자 인지 방법
KR20230097779A (ko) 2021-12-24 2023-07-03 한양대학교 산학협력단 컨볼루션 연산을 기반으로 하는 딥러닝 모델인 cnn의 연산결과에 대한 효율적인 무결성 검증 기법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018098077A1 (en) * 2016-11-23 2018-05-31 General Electric Company Deep learning medical systems and methods for medical procedures

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711662B2 (en) * 2003-01-15 2010-05-04 Bracco Imaging S.P.A. System and method for optimization of a database for the training and testing of prediction algorithms
WO2017066906A1 (zh) * 2015-10-19 2017-04-27 浙江大学 水下机器人自排油式浮力调节装置
US9965705B2 (en) * 2015-11-03 2018-05-08 Baidu Usa Llc Systems and methods for attention-based configurable convolutional neural networks (ABC-CNN) for visual question answering
US10127659B2 (en) * 2016-11-23 2018-11-13 General Electric Company Deep learning medical systems and methods for image acquisition
US20180299841A1 (en) * 2017-04-17 2018-10-18 Intel Corporation Autonomous vehicle neural network optimization
US10108850B1 (en) * 2017-04-24 2018-10-23 Intel Corporation Recognition, reidentification and security enhancements using autonomous machines
CN107832840B (zh) * 2017-10-31 2020-05-22 中国科学院计算技术研究所 一种用于神经网络处理器的方法
CN107729998B (zh) * 2017-10-31 2020-06-05 中国科学院计算技术研究所 一种用于神经网络处理器的方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018098077A1 (en) * 2016-11-23 2018-05-31 General Electric Company Deep learning medical systems and methods for medical procedures

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102392576B1 (ko) * 2020-11-26 2022-04-29 숭실대학교 산학협력단 인공 지능 모델의 무결성 검증 방법과 이를 수행하기 위한 컴퓨팅 장치 및 시스템
KR20220162459A (ko) 2021-06-01 2022-12-08 최현집 딥러닝 기반 문자 인지 장치 및 딥러닝 기반 문자 인지 방법
KR20230097779A (ko) 2021-12-24 2023-07-03 한양대학교 산학협력단 컨볼루션 연산을 기반으로 하는 딥러닝 모델인 cnn의 연산결과에 대한 효율적인 무결성 검증 기법

Also Published As

Publication number Publication date
CN111488788A (zh) 2020-08-04
EP3722999A1 (en) 2020-10-14
EP3722999B1 (en) 2024-07-10
US10373025B1 (en) 2019-08-06
JP2020119556A (ja) 2020-08-06
CN111488788B (zh) 2023-10-20
JP6908945B2 (ja) 2021-07-28
KR102338768B1 (ko) 2021-12-15

Similar Documents

Publication Publication Date Title
KR102349910B1 (ko) 가상 주행 환경에서 사용되는 도메인 적응에 적용될 수 있는 gan을 이용하여, 실제 특징 맵과 동일하거나 유사한 특성을 가지는 가상 특징 맵을 생성하는 학습 방법 및 학습 장치
KR102337376B1 (ko) 레인 마스크(Lane Mask)를 사용하여 후처리 없이 입력 이미지에 포함된 하나 이상의 차선을 검출하는 방법 및 장치, 그리고 이를 이용한 테스트 방법 및 테스트 장치
KR102338768B1 (ko) 기능적 안전성을 위해 극한 상황에서 폴트 톨러런스 및 플럭츄에이션 로버스트를 향상시키도록 테스트 패턴을 이용해 cnn의 파라미터의 무결성을 검증하기 위한 방법 및 장치
JP6856853B2 (ja) 極限状況においてフォールトトレランス及びフラクチュエーションロバスト性を向上させるために、ジッタリングが起きたイメージを安定化させるプロセスで生成されたワーピングされたイメージに発生した歪曲を、ganを利用して減らすための学習方法及び学習装置、そしてそれを利用したテスト方法及びテスト装置
KR20200091317A (ko) 자율 주행 자동차의 레벨 4를 충족시키기 위해 영역의 클래스에 따라 모드를 전환하여 그리드 셀 별로 가중 컨벌루션 필터를 이용한 감시용 이미지 세그멘테이션 방법 및 장치, 그리고 이를 이용한 테스트 방법 및 테스트 장치
JP2020119529A (ja) モバイルデバイスまたは小型ネットワークに適用可能なハードウェアを最適化するのに利用可能なroiをプーリングするために、マスキングパラメータを利用する方法及び装置、そしてこれを利用したテスト方法及びテスト装置{learning method and learning device for pooling roi by using masking parameters to be used for mobile devices or compact networks via hardware optimization, and testing method and testing device using the same}
US10325185B1 (en) Method and device for online batch normalization, on-device learning, and continual learning applicable to mobile devices or IOT devices additionally referring to one or more previous batches to be used for military purpose, drone or robot, and testing method and testing device using the same
JP6856906B2 (ja) 自律走行車両レベル4を満たすために領域のクラスに応じてモードを切り換えるためにグリッド生成器を利用するニューラルネットワーク演算方法及びこれを利用した装置
JP6860943B2 (ja) コンボリューション演算の無欠性を検証するためにテストパターンを生成し、前記テストパターンの中から最適化テストパターンを選択して、極度の状況で欠陥許容能力及び揺れに強靭な性質を向上させる方法及び装置
JP6840412B2 (ja) テストパターンを使用してコンボリューションパラメータの無欠性を検証する過程で所要されるコンピューティングリソースを節約し、極度の状況で欠陥許容能力及び揺れに強靭な性質を向上させる方法及び装置
KR102224778B1 (ko) 횡 필터 마스크를 이용하여 자율 주행 차량의 주행 경로를 계획하기 위해 차선 요소를 검출하는 방법 및 장치
US10339424B1 (en) Method and device of neural network operations using a grid generator for converting modes according to classes of areas to satisfy level 4 of autonomous vehicles
US10460210B1 (en) Method and device of neural network operations using a grid generator for converting modes according to classes of areas to satisfy level 4 of autonomous vehicles
CN113052314B (zh) 一种认证半径引导攻击方法、优化训练方法及系统
CN112668449A (zh) 一种室外自主移动机器人的低风险地貌识别方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right