KR20220109418A - 신경 흐름 증명 - Google Patents

신경 흐름 증명 Download PDF

Info

Publication number
KR20220109418A
KR20220109418A KR1020227021173A KR20227021173A KR20220109418A KR 20220109418 A KR20220109418 A KR 20220109418A KR 1020227021173 A KR1020227021173 A KR 1020227021173A KR 20227021173 A KR20227021173 A KR 20227021173A KR 20220109418 A KR20220109418 A KR 20220109418A
Authority
KR
South Korea
Prior art keywords
neural
computer model
model
flow
neural flow
Prior art date
Application number
KR1020227021173A
Other languages
English (en)
Inventor
중수 구
샤오쿠이 슈
하니 잼줌
텡페이 마
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20220109418A publication Critical patent/KR20220109418A/ko

Links

Images

Classifications

    • G06N3/0454
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks

Landscapes

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

Abstract

신경 흐름 증명(NEURAL FLOW ATTESTATION)
신경 흐름 증명 엔진을 구현하고 신경 흐름들에 기초하여 컴퓨터 모델 실행 무결성 검증을 수행하기 위한 메커니즘들이 제공된다. 입력 데이터가 복수의 뉴런 층들을 포함하는 훈련된 컴퓨터 모델에 입력된다. 상기 입력 데이터의 입력 데이터 인스턴스들 세트에 대해, 상기 훈련된 컴퓨터 모델에 의해 생성된 출력 클래스 및 상기 복수의 뉴런 층들을 통한 신경 흐름을 기록하고, 이에 의해서 기록된 신경 흐름들을 생성한다. 상기 훈련된 컴퓨터 모델은 컴퓨팅 플랫폼에 배치되고 상기 신경 흐름 증명 엔진은 상기 배치된 훈련된 컴퓨터 모델의 런타임 신경 흐름과 상기 기록된 신경 흐름들에 기초하여 상기 배치된 훈련된 컴퓨터 모델의 실행 무결성을 검증한다.

Description

신경 흐름 증명
[0001] 본 출원은 일반적으로 개선된 데이터 처리 장치 및 방법, 보다 구체적으로 신경 흐름 증명(neural flow attestation)을 수행하기 위한 메커니즘에 관한 것이다.
[0002] 딥 러닝 시스템들(Deep learning systems)은 인지 작업들(cognitive tasks)을 수행할 때 인간의 성과(human performance)에 접근하는 능력으로 인해 인공 지능(AI) 서비스들(artificial intelligence (AI) services)의 일부로서 널리 배치되었다. 딥 러닝은 특징 추출 및 변환을 위해 여러 층의 비선형 처리 유닛들의 다수 층들의 직렬(a cascade of multiple layers)을 사용하는 머신 러닝 기술의 한 종류이다. 각 연속 층은 이전 층으로부터의 출력을 입력(the output from the previous layer of input)으로 사용한다. 딥 러닝 시스템은 지도된(supervised), 예를 들어, 분류, 및/또는 지도없는(unsupervised), 예를 들어, 패턴 분석, 학습 메커니즘들을 사용하여 훈련된다. 학습은, 개념들의 층 구조를 형성하는 수준들을 사용하여, 다양한 추상화 수준들에 대응하는 여러 수준들의 표현들과 관련하여 수행될 수 있다.
[0003] 대부분의 최신 딥 러닝 모델은 인공 신경망을 기반으로 하지만 딥 빌리프 네트웍들(Deep Belief Networks) 및 딥 볼츠만 머신들(Deep Boltzmann Machines) 의 노드들과 같은 심층 생성 모델들(deep generative models) 에서 층으로 구성된 명제 공식들 또는 잠재 변수들(propositional formulas or latent variables organized layer-wise)을 포함할 수도 있다. 딥 러닝에서, 각 수준, 예를 들어, 신경망 층은 입력 데이터를 약간 더 추상적이고 복합적인 표현(abstract and composite representation)으로 변환하는 방법을 배운다. 예를 들어, 이미지 인식 애플리케이션에서, 원시 입력(the raw input)은 인식된 특징들로서 픽셀들의 추상화 다수 층들(multiple layers of abstraction of the pixels)을 갖는 픽셀들의 매트릭스일 수 있다. 중요한 사실은 딥 러닝 프로세스는 어떤 특징들을 어느 수준에서 최적으로 배치할 것인지를 학습할 수 있지만, 이것이 수동 조정(hand-tuning)의 필요성을 완전히 없애지는 못한다는 것이다. 예를 들어, 수동 조정은 다양한 추상화 정도를 제공하기 위해 층들의 수와 층 크기들을 변경하는 데 사용될 수 있다.
[0004] "딥 러닝"에서 "딥"은 데이터가 변환되는 층들의 수를 나타낸다. 더 정확하게 말하면, 딥 러닝 시스템은 실질적인 크레딧 할당 경로(CAP) 깊이(a substantial credit assignment path (CAP) depth)를 가지고 있다. CAP는 입력에서 출력까지의 변환들의 체인이다. CAP들은 입력과 출력 사이의 잠재적인 인과 관계들(causal connections)를 설명한다. 피드포워드 신경망(a feedforward neural network)의 경우, CAP들의 깊이는 네트워크의 깊이이며 숨겨진 층들의 수에 1을 더한 값이다(출력 층도 또한 파라미터화 되기 때문에). 신호가 층을 통해 두 번 이상 전파될 수 있는, 순환 신경망의 경우, CAP 깊이는 잠재적으로 무제한이다. 깊이의 임계값에 대한 보편적인 합의가 얕은 학습과 딥 러닝을 구분하지 않지만, 대부분의 연구자들은 딥 러닝이 2보다 큰 CAP 깊이를 포함한다는 데 동의한다. 깊이 2의 CAP는 모든 함수(function)를 에뮬레이트할 수 있는 점에서 보편적 근사기(a universal approximator)로 알려져 있다. 이를 넘는, 더 많은 층들이 네트워크의 함수 근사기 능력에 추가되지는 않지만 추가 층들은 특징들을 학습하는 데 도움이 된다.
[0005] 그러나 배치된 훈련된 컴퓨터 모델의 무결성을 최소한 검증할 필요는 있다. 따라서, 종래 기술에서 전술한 문제를 해결할 필요가 있다.
[0006] 일 실시 예에 따라, 본 발명은 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하는 데이터 처리 시스템에서 방법을 제공하며, 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해서 실행되는 명령들을 포함하고, 상기 명령들이 신경 흐름 증명 엔진(a neural flow attestation engine)을 구현하도록 상기 적어도 하나의 프로세서를 구성하는 방법은: 훈련된 컴퓨터 모델에 입력 데이터를, 상기 신경 흐름 증명 엔진에 의해, 입력하는 단계 - 상기 훈련된 컴퓨터 모델은 복수의 뉴런 층들을 포함함 -; 상기 입력 데이터의 입력 데이터 인스턴스들 세트에 대해, 상기 훈련된 컴퓨터 모델에 의해 생성된 출력 클래스 및 상기 복수의 뉴런 층들을 통한 신경 흐름을, 상기 신경 흐름 증명 엔진에 의해, 기록하는 단계 - 이에 의해서 기록된 신경 흐름들을 생성하며, 상기 출력 클래스는 복수의 가능한 출력 클래스들 중 하나임-; 상기 훈련된 컴퓨터 모델을 컴퓨팅 플랫폼에 배치하는 단계; 및 상기 배치된 훈련된 컴퓨터 모델의 런타임 신경 흐름 및 상기 기록된 신경 흐름들에 기초하여 상기 배치된 훈련된 컴퓨터 모델의 무결성을, 상기 신경 흐름 증명 엔진에 의해, 검증하는 단계를 포함한다.
[0007] 다른 실시 예에 따라, 컴퓨터 판독가능 프로그램이 저장된 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품이 제공되고, 상기 컴퓨터 판독가능 프로그램은, 데이터 처리 시스템 상에서 실행될 때, 상기 데이터 처리 시스템이, 동작들을 수행하는, 신경 흐름 증명 엔진을 구현하게 하며, 상기 동작들은: 훈련된 컴퓨터 모델에 입력 데이터를 입력하는 단계 - 상기 훈련된 컴퓨터 모델은 복수의 뉴런 층들을 포함함 -; 상기 입력 데이터의 입력 데이터 인스턴스들 세트에 대해, 상기 훈련된 컴퓨터 모델에 의해 생성된 출력 클래스 및 상기 복수의 뉴런 층들을 통한 신경 흐름을 기록하는 단계 - 이에 의해서 기록된 신경 흐름들을 생성하며, 상기 출력 클래스는 복수의 가능한 출력 클래스들 중 하나임-; 상기 훈련된 컴퓨터 모델을 컴퓨팅 플랫폼에 배치하는 단계; 및 상기 배치된 훈련된 컴퓨터 모델의 런타임 신경 흐름 및 상기 기록된 신경 흐름들에 기초하여 상기 배치된 훈련된 컴퓨터 모델의 무결성을 검증하는 단계를 포함한다.
[0008] 또 다른 실시 예에 따라, 본 발명은 시스템을 제공하며, 상기 시스템은: 적어도 하나의 프로세서; 및 상기 적어도 하나의 프로세서에 결합된 적어도 하나의 메모리를 포함하고, 상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서가 신경 흐름 증명 엔진을 구현하도록 하는 명령들을 포함하며, 상기 신경 흐름 증명 엔진은 동작들을 수행하도록 구성되고, 상기 동작들은: 상기 훈련된 컴퓨터 모델에 입력 데이터를 입력하는 단계 - 상기 훈련된 컴퓨터 모델은 복수의 뉴런 층들을 포함함 -; 상기 입력 데이터의 입력 데이터 인스턴스들 세트에 대해, 상기 훈련된 컴퓨터 모델에 의해 생성된 출력 클래스 및 상기 복수의 뉴런 층들을 통한 신경 흐름을 기록하는 단계 - 이에 의해서 기록된 신경 흐름들을 생성하며, 상기 출력 클래스는 복수의 가능한 출력 클래스들 중 하나임-; 상기 훈련된 컴퓨터 모델을 컴퓨팅 플랫폼에 배치하는 단계; 및 상기 배치된 훈련된 컴퓨터 모델의 런타임 신경 흐름 및 상기 기록된 신경 흐름들에 기초하여 상기 배치된 훈련된 컴퓨터 모델의 무결성을 검증하는 단계를 포함한다.
[0009] 또 다른 실시 예에 따라, 본 발명은 신경 흐름 증명 엔진을 구현하기 위한 컴퓨터 프로그램 제품을 제공하며 , 상기 컴퓨터 프로그램 제품은 처리 회로에 의해 판독 가능하고 본 발명의 단계들을 수행하기 위한 방법을 수행하기 위해 처리 회로에 의한 실행을 위한 명령들을 저장하는 컴퓨터 판독 가능 저장 매체를 포함한다.
[0010] 또 다른 실시 예에 따라, 본 발명은 컴퓨터 판독 가능 매체에 저장되고 디지털 컴퓨터의 내부 메모리에 로드할 수 있는 컴퓨터 프로그램을 제공하며, 상기 프로그램은, 컴퓨터에서 실행될 때, 본 발명의 단계들을 수행하기 위한 소프트웨어 코드 부분을 포함한다.
[0011] 일 예시적인 실시 예들에서, 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하는 데이터 처리 시스템에서, 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해서 실행되는 명령들을 포함하고, 상기 명령들은 신경 흐름 증명 엔진(a neural flow attestation engine)을 구현하도록 상기 적어도 하나의 프로세서를 구성하는 방법이 제공된다. 상기 방법은 훈련된 컴퓨터 모델에 입력 데이터를, 상기 신경 흐름 증명 엔진에 의해, 입력하는 단계를 포함하고, 상기 훈련된 컴퓨터 모델은 복수의 뉴런 층들을 포함한다. 상기 방법은 또한, 상기 입력 데이터의 입력 데이터 인스턴스들 세트에 대해, 상기 훈련된 컴퓨터 모델에 의해 생성된 출력 클래스 및 상기 복수의 뉴런 층들을 통한 신경 흐름을, 상기 신경 흐름 증명 엔진에 의해, 기록하는 단계를 포함하고, 이에 의해서 기록된 신경 흐름들을 생성한다. 상기 출력 클래스는 복수의 가능한 출력 클래스들 중 하나이다. 상기 방법은 또한 상기 훈련된 컴퓨터 모델을 컴퓨팅 플랫폼에 배치하는 단계; 및 상기 배치된 훈련된 컴퓨터 모델의 런타임 신경 흐름 및 상기 기록된 신경 흐름들에 기초하여 상기 배치된 훈련된 컴퓨터 모델의 무결성을, 상기 신경 흐름 증명 엔진에 의해, 검증하는 단계를 포함한다.
[0012] 다른 예시적인 실시 예들에서, 컴퓨터 판독가능 프로그램을 갖는 컴퓨터 사용가능 또는 판독가능 매체를 포함하는 컴퓨터 프로그램 제품이 제공된다. 상기 컴퓨터 판독가능 프로그램은, 컴퓨팅 디바이스 상에서 실행될 때, 상기 컴퓨팅 디바이스가 상기 방법 예시적인 실시 예들과 관련하여 위에서 개략적으로 설명된 동작들 중 다양한 동작들 및 이들의 조합들을 수행하게 한다.
[0013] 또 다른 예시적인 실시 예들에서, 시스템/장치가 제공된다. 상기 시스템/장치는 하나 또는 그 이상의 프로세서들 및 상기 하나 또는 그 이상의 프로세서들에 결합된 메모리를 포함할 수 있다. 상기 메모리는 명령들을 포함하고, 상기 명령들은, 상기 하나 또는 그 이상의 프로세서들에 의해 실행될 때, 하나 또는 그 이상의 프로세서들이 상기 방법 예시적인 실시 예들과 관련하여 위에서 개략적으로 설명된 동작들 중 다양한 동작들 및 이들의 조합들을 수행하게 한다.
[0014] 본 발명의 이들 및 다른 특징들 및 이점들은 본 발명의 예시적인 실시 예들들에 대한 다음의 상세한 설명을 고려하여 기술되거나 당업자에게 명백할 것이다.
[0015] 본 발명, 뿐만 아니라 바람직한 사용 모드 및 추가 목적들 및 이점들은 예시적인 실시 예들들에 대한 다음의 상세한 설명을 첨부 도면들과 함께 읽을 때 이들을 참조하여 가장 잘 이해될 것이다.
[0016] 도 1은, 하나의 예시적인 실시 예들에 따라, 컴퓨터 모델을 훈련하는 데 사용되는 훈련 데이터를 위해 신경 흐름 정보가 수집되는 동작의 사전-처리 단계를 도시하는 예시적인 다이어그램이다.
[0017] 도 2는, 하나의 예시적인 실시 예들에 따라, 배치된 컴퓨터 모델의 동작의 런타임 신경 흐름 증명이 수행되는 동작의 배치 단계를 도시하는 예시적인 다이어그램이다 .
[0018] 도 3 은 상기 예시적인 실시 예들의 특징들이 구현될 수 있는 예시적인 분산 데이터 처리 시스템을 도시한다.
[0019] 도 4는 예시적인 실시 예들의 특징들이 구현될 수 있는 예시적인 컴퓨팅 디바이스의 블록도이다.
[0020] 도 5는, 하나의 예시적인 실시 예들에 따라, 사전-처리 단계 기능들을 수행하기 위한 예시적인 동작을 개괄하는 플로차트이다.
[0021] 도 6은, 하나의 예시적인 실시 예들에 따라, 신경 흐름의 런타임 신경 흐름 증명을 포함하는 배치 단계 기능들을 수행하기 위한 예시적인 동작을 개괄하는 플로차트이다.
[0022] 도 7 은 본 발명의 일 실시예에 따른 클라우드 컴퓨팅 환경을 도시한 도면. 그리고
[0023] 도 8은 본 발명의 일 실시예에 따른 추상화 모델 층을 도시한다.
[0024] 인공 지능(AI) 시스템들 및 AI 서비스들은 머신 러닝(ML) 모델들을 그들의 백엔드 엔진들의 일부로 이용한다. 예를 들어, 많은 AI 시스템들 및 서비스들은, 딥 러닝 모델들이라고도 하는, 심층 신경망들(DNN들)을 사용하여 시스템 운영 및 서비스들을 지원하는 기본 인텔리전스 연산들(the underlying intelligence operations)을 수행한다. 본 발명은 특히, 다양한 컴퓨터 런타임 환경들, 및 일부 예시적인 실시 예들들에서, 클라우드 컴퓨팅 환경들에서 그러한 머신 러닝 모델들의 실행 무결성을 보장하는 것을 돕기 위한 개선된 컴퓨터 도구에 관한 것이다. 여기에 설명된 예시적인 실시 예들들은 모든의 유형의 머신 러닝 컴퓨터 모델을 참조하는 것이 의도된, 컴퓨터 모델을 참조할 것임을 이해해야 한다. 2개 이상의 중간 뉴런 층들을 갖는 신경망의 한 유형인, 딥 러닝 모델들은 예시적인 실시 예들이 이용될 수 있는 컴퓨터 모델의 1차적인 예로서 사용된다. 그러나, 딥 러닝 모델들을 사용하는 예시적인 실시 예들의 구현은 예시적인 실시 예들의 잠재적인 응용들을 제한하도록 의도되지 않는다. 반대로, 예시적인 실시 예들이 구현될 수 있는, 다양한 수들 또는 크기들의 중간 층들의 모든 다른 공지되거나 이후에 개발되는 신경망 모델들도 본 발명의 범위 내에 있는 것으로 간주된다.
[0025] 딥 러닝 모델들은 인공 지능 클라우드 서비스들(artificial intelligence cloud services), 예를 들어, 이미지 인식 및 분석 서비스들, 의사 결정 지원 서비스들, 등을 제공하기 위해 공공 클라우드 컴퓨팅 환경들(여기에서는 간단히 "클라우드" 플랫폼, 환경 등이라고도 함)에서 더 널리 사용되고 있다. 예를 들어, 많은 클라우드 컴퓨팅 환경들은 멀티-테넌트 클라우드 컴퓨팅 환경들(multi-tenant cloud computing environments) 또는 클라우드 플랫폼들이며, 이들의 아키텍처는 고객들(또는 테넌트들)이 공공 또는 사설 클라우드에서 컴퓨팅 자원들을 공유할 수 있게 해 주며, 상기 컴퓨팅 자원들은 클라우드 제공자에 의해서 제공되는 하드웨어 및 소프트웨어를 포함한다. 각 테넌트의 데이터는 격리되고 다른 테넌트들에서 볼 수 없게 되어 있다. 대부분의 공공 클라우드 제공자들은 멀티 테넌시 아키텍처(the multi-tenancy architecture)를 사용한다. DL 모델들과 관련하여, 각 테넌트는 별도의 DL 모델 인스턴스를 이용할 수 있다. DL 모델 자체는 제3자 또는 클라우드 제공자에 의해 제공될 수 있지만, DL 모델의 개별 인스턴스들은 특정 테넌트를 위해서 그리고 제공하려는 특정 클라우드 서비스를 위해 특별하게 구성될 수 있다.
[0026] 공공 클라우드 컴퓨팅 환경에서 딥 러닝(DL) 모델들을 배치하는 것은 인공 지능 서비스를 부트스트랩하는 효율적인 방법이기는 하지만, 그러나 클라우드 컴퓨팅 테넌트들은 일반적으로 그러한 공공 클라우드 컴퓨팅 환경에 배치된 DL 모델 실행의 런타임 무결성에 관해 염려한다. 이들 염려들은 클라우드 컴퓨팅 테넌트들의 세 가지 주요 입장들에 기초한다. 첫째, 클라우드 플랫폼에 침투할 수 있는 공격자들이 백도어들을 DL 모델들에 설치할 수도 있다는 점이다. 여기서 백도어들이란, 즉 정상적인 인증 메커니즘들을 우회하여, 프로그램, 온라인 서비스 또는 컴퓨팅 시스템에 대한 액세스를 획득하는 문서화되지 않은 방법들을 말한다. 그러한 백도어들은 이미지 데이터의 워터마크, 트로이 목마(또는 "트로이") 등과 같은 특수 내장 패턴들을 갖는 악의적으로 제작된 입력에 의해 활성화될 수 있다. 따라서, 공격자들은 DL 모델 실행을 비정상적이 되게(deviate) 할 수도 있고 자신들의 이익들을 위해 최종 예측들에 영향을 줄 수도 있다.
[0027] 둘째, 클라우드 플랫폼 제공자들이, 테넌트의 DL 모델을, 어느 정도 정밀도 손실이 있더라도 스토리지 및 계산 비용을 줄일 수 있는, 단순화된 또는 "압축된" 대체물(a pruned or “squeezed” counterpart)로 교체할 재정적 인센티브들을 가질 수 있다는 점이다. 즉, DL 모델 트레이너들은, DL 모델에서 일부 컴포넌트들(예: 연결들, 뉴런들 또는 층들)을 제거하고, DL 모델을 재-학습할 수 있다. 그러나, DL 모델 트레이너들은 단순화된 모델이 원래 DL 모델과 동일한 수준의 정확도를 달성할 수 있음을 보장해야 한다. 따라서, 클라우드 공급자들, 즉 클라우드 서비스들을 호스팅하기 위해 컴퓨팅 자원들을 제공하는 주체들은 DL 모델을 온라인으로 제공하기 위한 운영 비용들을 크게 줄일 수 있다. 그러나, 높은 정밀도 표준을 갖는 임차인은 이러한 모델 변형 및 교체를 수락하지 않을 수 있다. 이것은 또한 책임 문제로 이어질 수 있는데, 즉 런타임에서 잘못된 예측(mis-prediction)에 대해서 누가 책임이 있는 지에 관해 결정해야하는 문제로 이어 질 수 있으며, 이는 그러한 모델 변환/교체가 잘못된 예측의 원인이 될 수 있거나 원래 모델 자체가 잘못된 예측의 원인일 수 있기 때문이다.
[0028] 셋째, 기존 DL 모델들은 적대적 공격들(adversarial attacks)에 취약한 것으로 알려져 있다는 점이다. 공격자들은 DL 모델 취약성을 악용하여 적대적 샘플들을 온라인 예측 입력들로 만들 수 있다. 그러한 적대적 입력들은 공격자들에 의해서 미리 결정된 범주들로 잘못 분류될 수 있다. 클라우드 테넌트들은 이러한 잘못 분류된 샘플들을 검출하고 훈련 데이터와 다르게 특정 범주들로 분류된 이유를 분석할 수 있다. 또한 클라우드 테넌트들은 잘못 분류된 샘플들을 수집하여 적대적 교육을 수행하고 DL 모델의 견고성을 더욱 강화할 수도 있다. 이후에 설명되는 바와 같이, 예시적인 실시 예들들의 메커니즘과 예시적인 실시 예들들의 신경 흐름 증명의 구현으로 적대적 예들은 런타임에 검출될 수 있고 이들 적대적 예들은 추가 조사를 위해 수집될 수도 있음을 이해할 수 있을 것이다.
[0029] 예시적인 실시 예들은, 공공 클라우드 플랫폼들 및 데이터 처리 환경들과 같은, 다양한 컴퓨팅 플랫폼들에서의 컴퓨터 모델(또는 간단히 "모델"), 예를 들어 딥 러닝(DL) 모델, 실행 무결성의 문제를 해결하기 위한 메커니즘들을 제공한다. 예시적인 실시 예들는 신경 흐름들의 추상화 수준에서 컴퓨터 모델의 실행 무결성을 검증하기 위한 런타임 신경 흐름 증명 방식을 제공한다. 신경 흐름은 딥 러닝 모델의 실행 순서이며 특정 입력에 대응하는 교차-층 뉴런 활성화 상태에 의해서 표현된다.
[0030] DL 모델과 같이 훈련되고 배치된 컴퓨터 모델에 제공된 각 입력 인스턴스에 대해, 신뢰 실행 환경(a trusted execution environment: TEE)이 실행 패스에 대한 관련 신경 흐름을 충실하게 기록하고 로그 하여 테넌트들에게 증명 보고서를 보내기 위해 활용될 수 있다. 테넌트 측에서, 사용자는 다른 클래스들, 즉 DL 모델의 잠재적 분류 출력들의 모든 훈련 데이터에 대해 미리 기록된 신경 흐름들을 저장하는 측정 데이터베이스를 유지 관리한다. 예측 결과, 즉 클라우드 컴퓨팅 환경에서 DL 모델에 의해 생성된 분류 출력에 기초하여, 테넌트는 클라우드에 기록된 신경 흐름들이 그들의 DL 모델에 대해 동일한 클래스의 훈련 데이터의 신경 흐름들로부터 벗어날 수 있는지를 검증할 수 있다. 만일 클라우드 컴퓨팅 환경에서 DL 모델이 훈련 데이터의 신경 흐름들에서 벗어나거나 또는 하나 또는 그 이상의 미리 정의된 기준에 의해 표시되는 미리 결정된 양 이상을 벗어난다면, 이는 비정상적인 신경 흐름(an anomalous neural flow)으로 간주될 수 있는데, 이는 클라우드 컴퓨팅 환경이 손상되었을(comprpmised) 수 있음과 추가 조사를 위해 철회되어야 함을 표시한다. 따라서, 예시적인 실시 예들들은 클라우드 플랫폼 제공자들이 런타임 실행 상태를 테넌트들에 증명할 수 있게 하고 테넌트들이 그들의 로컬 상주 측정 데이터베이스를 사용하여 온라인 DL 모델의 상태를 검증할 수 있게 한다.
[0031] 예시적인 실시 예들들에서, 클라우드 컴퓨팅 환경 사용자, 즉 클라우드 컴퓨팅 환경에 컴퓨터 모델을 배치하고자 하는, DL 모델과 같은, 컴퓨터 모델을 소유하는 주체는, 오프라인 사전-처리 연산의 일부와 같은, 자신의 훈련 데이터를 사용하여 자신의 모델을 훈련했다고 가정한다. 사용자(모델 소유 주체, 클라우드 컴퓨팅 플랫폼의 맥락에서 "테넌트"라고도 함)는 모델 서비스 클라우드 플랫폼 공급자에게 모델을 제공하여 온라인 클라우드 서비스, 예를 들어 온라인 분류 또는 예측 서비스를 실체화하려고 하는데, DL 모델과 같은, 머신 러닝 훈련된 컴퓨터 모델을 사용하여서 그렇게 한다. 예를 들어, 사용자는 분류 연산들, 예측 연산들, 또는 이와 유사한 것을 수행하기 위해, DL 모델들과 같은, 이미지 인식 분류 서비스, 의료 결정 지원 서비스, 또는 인공 지능 기반 컴퓨터 모델들을 이용하는 다른 많은 서비스들 모두를 실체화하려고 할 수 있다.
[0032] 모델을 훈련시킨 후, 사용자는 훈련된 모델의 각 층에서 뉴런 활성화 정보를 추출하도록 작동하는 예시적인 실시들예의 신경 흐름 추출 엔진을 사용하여 훈련 데이터를 다시 훈련된 모델에 전달한다. 뉴런 활성화 정보는 컴퓨터 모델의 특정 층 유형들에 기초하여 다른 내용을 가질 수도 있다. 예를 들어, 컨볼루션 층의 경우, 층 내의 각 필터는 하나의 유닛으로 간주되고 각 필터에 대한 평균 활성화 값은 뉴런 활성화 정보의 일부로서 계산된다. 완전 연결 층(a fully-connected layer)의 경우, 각 뉴런을 하나의 유닛으로 간주하고 그 것의 활성화 값이 추출된다. 각 층에 대해, 임계값이 미리 결정될 수 있으며 이 임계값과 관련된 기준을 충족하는 필터들/뉴런들의 신원(ID)들 및 활성화 값들만 기록되는데, 예를 들어 임계값을 충족하거나 초과하는 필터들/뉴런들의 활성화 값들만 기록된다.
[0033] 신경 흐름 추출 엔진은 층들에 걸쳐 뉴런 활성화들을 결합하고 이에 의해 각 훈련 데이터 인스턴스의 신경 흐름들을 생성한다. 신경 흐름 집계 엔진은 동일한 클래스 내의 모든 훈련 데이터에 대한 신경 흐름들을 집계하고 각 클래스에 대해 신경 흐름 모델을 각각 생성한다. 신경 흐름 모델들은 컴퓨터 나중에 컴퓨터 모델의 원격 위치한 클라우드 배치에서 생성된 신경 흐름들과 비교하는 데 사용할 수 있도록 테넌트의 로컬 컴퓨팅 시스템에 있는 측정 데이터베이스에 저장된다.
[0034] 전술한 바와 같이 상기 모델을 훈련하고 상기 모델에 의해서 생성된 출력의 클래스들 각각에 대한 신경 흐름 모델들을 저장한 후, 사용자는 상기 컴퓨터 모델을 클라우드 플랫폼 제공자의 클라우드 컴퓨팅 환경에 배치하고 배치된 컴퓨터 모델, 예를 들어 훈련된 DL 모델에 대응하는 클라우드 서비스를 시작할 수 있다. 또한, 신뢰 실행 환경(TEE)이 클라우드 컴퓨팅 환경 상에 생성되거나 시작된다. TEE는, 격리된 실행, TEE 내에서 실행되는 애플리케이션들의 무결성 및 TEE 내에서 유지되는 컴퓨팅 자산들의 기밀성과 같은, 보안 특징들을 제공하는 클라우드 컴퓨팅 플랫폼의 컴퓨팅 자원들의 격리된 실행 환경이다. TEE를 사용하면, 높은 수준의 신뢰로 TEE 내에서 코드를 실행할 수 있는데, 이는 TEE가 TEE 외부의 나머지 클라우드 컴퓨팅 플랫폼으로부터의 위협들을 무시할 수 있기 때문이다. TEE들의 생성 및 사용은 일반적으로 당업계에 알려져 있으므로 여기서 더 자세한 설명은 제공하지 않는다.
[0035] TEE 내에서, 하나 또는 그 이상의 기록 컴포넌트가 제공되는데, 이는 배치된 모델의 실행을 가로채어 실행 모델에 대한 각 입력의 신경 흐름 정보를 획득하기 위해서이다. 즉, 예를 들어 DL 모델과 같은, 모델은 TEE 외부에서 실행되지만, 위에서 논의된 신경 흐름 추출 엔진의 다른 인스턴스와 같은, 기록 컴포넌트는 TEE 내에서 실행된다. 상기 모델이 분류, 예측 등에 대한 입력을 수신할 때, TEE 내의 기록 컴포넌트는 상기 입력에 대한 신경 흐름을 캡처하는데, 상기 배치된 모델의 각 층에서 뉴런 활성화 정보를 다시 추출하고 상기 층들에 걸쳐 뉴런 활성화를 결합하며, 이에 의해 상기 입력을 처리할 때 상기 배치된 모델의 신경 흐름을 생성함으로써 한다. 신경 흐름 정보를 캡처하기 위해 TEE 내의 메커니즘들에 대해 상기 모델 자체를 수정할 필요가 없음을 이해해야 한다. 상기 기록 메커니즘은 딥 러닝 온라인 실행 프레임워크에 추가된다. 상기 모델이 특정 입력 데이터 인스턴스에 대해 실행을 시작하면, 입력이 모델을 통해 전달될 때 상기 기록 메커니즘에 의해 각 층에서 실행이 가로채어진다. 각 가로채기에서, TEE 내부에 포함된 기록 메커니즘이 활성화 정보를 추출하기 위해 호출된다. 그런 다음 모든 층들에 걸쳐 수집된 모든 활성화 정보가 결합되어 이 입력 데이터 인스턴스를 위해 신경 흐름을 구축한다.
[0036] 캡처된 신경 흐름 정보는 TEE의 보안 스토리지 내에 저장될 수 있고 사용자의 로컬 컴퓨팅 시스템, 예를 들어 테넌트의 로컬 컴퓨팅 시스템 또는 컴퓨팅 디바이스에 다시 제공될 수 있다. 예를 들어 사용자가 배치된 모델에 의한 처리를 위해 입력 인스턴스를 보낼 때 사용자는 신선도 테스트(freshness testing)를 위해 이 입력을 특정 챌린지 C에 연관시킬 수 있다. 상기 챌린지는 "재생 공격들(replay attacks)"에 대해 방어하는 데 사용된다. 즉, 챌린지 C는 반환된 신경 흐름이 이전에 제작되거나 준비된 신경 흐름 버전으로 컴퓨팅 플랫폼 공급자에 의해 대체되지 않도록 하는 데 도움이 된다. 따라서, 각 입력에 대해 사용자 또는 클라우드 컴퓨팅 플랫폼의 경우 클라우드 테넌트는 기록 컴포넌트에 무작위로 또는 의사-무작위로 생성된 챌린지 C(a randomly or pseudo-randomly generated challenge C)를 보낸다. 이 챌린지는 TEE 내에서만 사용할 수 있으며 컴퓨팅 플랫폼 제공자는 챌린지 C에 액세스할 수 없다. 이 챌린지는 입력과 연관된 기록된 신경 흐름과 연관된다. 사용자(또는 클라우드 테넌트)가 신경 흐름을 수신하면 사용자/클라우드 테넌트는 이 챌린지 C에 기초하여 신경 흐름의 무결성과 신선도를 검증할 수 있다.
[0037] 예를 들어, TEE 내에서, 입력에 대한 신경 흐름은 입력 및 모델의 출력에 관한 정보와 함께 캡처되고, 챌린지 C로 해시되며, 증명된 신경 흐름, 또는 "증명"은 보안 키를 사용하여 암호화되며, 상기 보안 키는 TEE 출시(launching)의 일부로서 사용자 또는 테넌트, 컴퓨팅 시스템/디바이스 및 TEE 사이에 교환될 수 있다. 교환된 보안 키는, 팩된 기록 신경 흐름(the packed recorded neural flow), 컴퓨터 모델의 입력/출력, 및 챌린지 C가 있는 해시와 같이, TEE와 사용자 또는 테넌트 컴퓨팅 시스템/디바이스 사이에 교환되는 데이터를 암호화하는 데 사용되며, 이 암호화에 의해 봉인된 증명(a sealed attestation)을 생성한다.
[0038] 상기 봉인된 증명이 사용자의 로컬 컴퓨팅 시스템의 증명 엔진에서 클라우드 컴퓨팅 플랫폼의 TEE로부터 수신되면, 사용자는 챌린지 C를 사용하여 먼저 증명의 무결성과 신선도를 검증하고 컴퓨터 모델의 입력/출력 정보 및 입력 처리에 대응하는 신경 흐름을 추출할 수 있다. 입력에 대해 상기 모델에 의해 생성된 출력 분류 또는 예측에 기초하여, 증명 엔진은, 전술한 사전 처리 연산 동안 훈련 데이터에 기초하여 저장된 특정 클래스에 대한 대응 신경 흐름 모델을, 로컬 측정 데이터베이스에서, 검색한다. 상기 증명의 신경 흐름은 훈련 데이터에 의해 생성된 측정 데이터베이스로부터의 저장된 신경 흐름과 비교된다.
[0039] 만일 배치된 모델이 정상적으로 작동하고, 공격자, 클라우드 컴퓨팅 제공자 등에 의해 배치된 모델의 수정이 수행되지 않았다면, 상기 증명의 신경 흐름은 동일한 클래스에 대한 측정 데이터베이스에 저장된 신경 흐름에 근접해야 한다. 주어진 허용 오차 내에서 비교적 작은 불일치들이 있을 수 있지만, 그러나 전체 신경 흐름들은 동일해야 한다. 그러나, 만일 상당한 편차들, 예를 들어, 주어진 허용 오차보다 큰 편차들 또는 손상을 나타내는 기준을 충족하는 편차들이 있다면, 배치된 모델은 우연이던지 또는 악의적이던지 어떤 방식으로던지 손상되었을 수 있다(compromised).
[0040] 예시적인 실시 예들에서, 신경 흐름들 사이의 편차들은 평가될 수 있는데, 예를 들어 미리 정의된 컴퓨터 실행 규칙의 적용, 허용 가능한 편차의 정도를 나타내는 하나 또는 그 이상의 편차 임계값과의 비교 등에 의해 평가될 수 있으며, 이는 배치된 모델의 잠재적인 손상을 사용자에게 알리기 위해 경보 통지가 트리거 되어야 하는 지를 결정하기 위해서이다. 만일 상기 경고 알림이 트리거되면 경고가 사용자에게 출력될 수 있고, 이는 배치된 모델을 자동으로 철회할지 여부를 사용자가 선택할 수 있게 한다. 만일 사용자가 배치된 모델을 철회하기로 선택하였다면, 컴퓨터 커맨드는 클라우드 컴퓨팅 제공자에게 전송되어 배치된 모델이 클라우드 컴퓨팅 플랫폼을 통해 공공 액세스로부터 제거되도록 할 수 있다.
[0041] 따라서, 예시적인 실시 예들은, 특히 신경망 및 딥 러닝(DL) 네트워크 컴퓨터 모델과 관련하여, 배치된 컴퓨터 모델 실행의 런타임 신경 흐름 증명을 수행하기 위한 메커니즘들을 제공한다. 특히, 런타임 신경 흐름 증명은 연산(operation)의 사전-처리 또는 훈련 단계에서, 그리고 훈련된 컴퓨터 모델을 배치한 후에도 컴퓨터 모델 실행과 관련하여 신경 흐름을 캡처하고 비교함으로써 가능하게 된다. 런타임 신경 흐름 증명을 사용하면 배치된 모델이 배치 후 손상되었는지를 결정할 수 있으므로 모델 소유자는 적절한 조치들을 수행하여 그들의 모델들이 모델 사용자들에게 원치 않는 출력을 생성하지 않도록 할 수 있다.
[0042] 예시적인 실시 예들의 다양한 특징들에 대한 논의를 시작하기 전에, 이 설명 전반에 걸쳐 "메커니즘"이라는 용어가 다양한 연산들, 기능들 등을 수행하는 본 발명의 엘리멘트들을 지칭하기 위해 사용될 것임을 먼저 이해해야 한다. 본 명세서에 사용된 용어 "메커니즘"은 장치, 컴퓨터 실행 절차 또는 방법, 또는 컴퓨터 프로그램 제품의 형태로 예시적인 실시 예들의 기능들 또는 특징들의 구현일 수 있다. 절차의 경우에서, 절차는 하나 또는 그 이상의 디바이스들, 장치, 컴퓨터들, 데이터 처리 시스템들 등에 의해 구현된다. 컴퓨터 프로그램 제품의 경우에서, 컴퓨터 프로그램 제품에 또는 컴퓨터 프로그램 제품 상에 구현된 컴퓨터 코드 또는 명령들에 의해서 표현되는 로직은 특정 "메커니즘"과 관련된 기능을 구현하거나 연산들을 수행하기 위해 하나 또는 그 이상의 하드웨어 디바이스들에 의해 실행된다. 따라서, 여기에 설명된 메커니즘들은 특수 하드웨어, 범용 하드웨어 상에서 실행되는 소프트웨어, 명령들이 특수 또는 범용 하드웨어에 의해 쉽게 실행될 수 있도록 매체에 저장된 소프트웨어 명령들, 기능들을 실행하기 위한 절차 또는 방법, 또는 전술한 것들의 모든 조합으로서 구현될 수 있다.
[0043] 본 설명 및 청구범위는 예시적인 실시 예들의 특정 특징들 및 엘리멘트들과 관련하여 "하나", "~ 중 적어도 하나", 및 "하나 또는 그 이상"이라는 용어를 사용할 수 있다. 이들 용어들 및 문구들은 특정 예시적인 실시 예들에 존재하는 특정 특징들 또는 엘리멘트들 중 적어도 하나가 있지만 둘 이상이 존재할 수도 있음을 나타내기 위한 것임을 이해해야 한다. 즉, 이들 용어들/문구들은 설명 또는 청구범위를 존재하는 단일 특징/엘리멘트로 제한하거나 그러한 특징/엘리멘트가 복수 존재하도록 요구하도록 의도되지는 않는다. 반대로, 이들 용어들/문구들은 설명 및 청구범위의 범위 내에 있는 복수의 이들 특징들/엘리멘트들의 가능성과 함께 적어도 하나의 특징/엘리멘트만은 필요로 한다.
[0044] 더욱이, 본 발명의 실시 예들 및 특징들을 설명하는 것과 관련하여 본 명세서에서 사용되는 경우, "엔진"이라는 용어의 사용이, 상기 엔진에 기인하거나 엔진에 의해 수행되는, 조치들, 단계들, 프로세스들, 등을 달성하고 및/또는 수행하는 어떤 특정 구현으로 제한하는 것으로 의도되지 않았음을 이해해야 한다. 엔진은 명시된 기능들을 수행하는 소프트웨어, 하드웨어 및/또는 펌웨어 또는 이들의 조합일 수 있지만 이에 국한되지는 않으며, 상기 명시된 기능들은 기계 판독 가능 메모리에 로드되거나 저장되고 프로세서에 의해 실행되는 적절한 소프트웨어와 함께 일반 및/또는 특수 프로세서의 사용을 포함하되 이에 국한되지 않는다. 또한, 특정 엔진과 연관된 모든 이름은, 달리 명시되지 않는 한, 참조의 편의를 위한 것이며 특정 구현으로 제한되지 않는다. 추가적으로, 엔진에 기인한 모든 기능은 다수의 엔진들에 의해 동일하게 수행될 수 있고, 동일하거나 상이한 유형의 다른 엔진의 기능에 통합 및/또는 결합되거나, 또는 다양한 구성들 중 하나 또는 그 이상의 엔진들에 걸쳐 분산될 수 있다.
[0045] 또한, 다음 설명은 예시적인 실시 예들의 예시적인 구현을 추가로 예시하고 예시적인 실시 예들의 메커니즘들의 이해를 돕기 위해 예시적인 실시 예들의 다양한 엘리멘트들에 대한 복수의 다양한 예들을 사용한다는 것을 이해해야 한다. 이들 예들은 비제한적인 것으로 의도되고 예시적인 실시 예들의 메커니즘들을 구현하기 위한 다양한 가능성들을 전부 포함하는 것은 아니다. 본 발명의 범위를 벗어나지 않으면서 여기에 제공된 예들에 추가로 또는 이를 대체하여 이용될 수 있는 이들 다양한 엘리멘트들에 대한 많은 다른 대안적인 구현이 있다는 것이 본 설명의 관점에서 본 기술 분야의 통상의 기술자에게 명백할 것이다.
[0046] 본 발명은 시스템, 방법, 및/또는 컴퓨터 프로그램 제품일 수 있다. 컴퓨터 프로그램 제품은 프로세서로 하여금 본 발명의 실시 예들을 수행하게 하기 위한 컴퓨터 판독가능 프로그램 명령을 갖는 컴퓨터 판독가능 저장 매체(또는 매체)를 포함할 수 있다.
[0047] 상기 컴퓨터 판독 가능 스토리지 매체는 명령 실행 장치에 의해 사용될 명령들을 유지 및 저장할 수 있는 유형의(tangible) 디바이스일 수 있다. 상기 컴퓨터 판독 가능 스토리지 매체는, 예를 들면, 전자 스토리지 디바이스, 자기 스토리지 디바이스, 광 스토리지 디바이스, 전자기 스토리지 디바이스, 반도체 스토리지 디바이스, 또는 전술한 것들의 모든 적절한 조합일 수 있으며, 그러나 이에 한정되지는 않는다. 컴퓨터 판독 가능 스토리지 매체의 더 구체적인 예들의 비포괄적인 목록에는 다음이 포함될 수 있다: 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 소거 및 프로그램가능 판독-전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 컴팩트 디스크 판독-전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD), 메모리 스틱, 플로피 디스크, 천공-카드들 또는 명령들이 기록된 홈에 있는 융기된 구조들 같이 머신적으로 인코드 된 장치, 및 전술한 것들의 모든 적절한 조합. 본 명세서에서 사용될 때, 컴퓨터 판독 가능 스토리지 매체는 무선 전파들이나 다른 자유롭게 전파되는 전자기파들, 도파관이나 기타 전송 매체(예를 들어, 광섬유 케이블을 통해 전달되는 광 펄스들)를 통해 전파되는 전자기파들, 또는 선(wire)을 통해 전송되는 전기 신호들 같이 그 자체로 일시적인(transitory) 신호들로 해석되지는 않는다.
[0048] 본 명세서에 기술되는 컴퓨터 판독 가능 명령들은, 예를 들어, 인터넷, 근거리 통신망, 광역 통신망 및/또는 무선 네트워크 등의 통신망(네트워크)을 통해 컴퓨터 판독 가능 스토리지 매체로부터 각각 컴퓨팅/처리 디바이스들로 또는 외부 스토리지 디바이스로부터 외부 컴퓨터로 다운로드 될 수 있다. 상기 통신망은 구리 전송 케이블들, 광 전송 섬유들, 무선 전송, 라우터들, 방화벽들, 스위치들, 게이트웨이 컴퓨터들 및/또는 엣지 서버들을 포함할 수 있다. 각 컴퓨팅/처리 유닛 내 네트워크 어댑터 카드 또는 네트워크 인터페이스는 상기 통신망으로부터 컴퓨터 판독 가능 프로그램 명령들을 수신하고 그 컴퓨터 판독 가능 프로그램 명령들을 각각의 컴퓨팅/처리 디바이스 내의 컴퓨터 판독 가능 스토리지 매체에 저장하기 위해 전송한다.
[0049] 본 발명의 연산들을 실행하기 위한 컴퓨터 판독 가능 프로그램 명령들은 Smalltalk, C++ 또는 그와 유사 언어 등의 객체 지향 프로그래밍 언어와 "C" 프로그래밍 언어 또는 그와 유사한 프로그래밍 언어 등의 종래의 절차적 프로그래밍 언어들을 포함하여, 하나 또는 그 이상의 프로그래밍 언어들을 조합하여 작성된(written) 어셈블러 명령들, 명령-세트-아키텍처(ISA) 명령들, 머신 명령들, 머신 종속 명령들, 마이크로코드, 펌웨어 명령들, 상태-셋팅 데이터, 집적회로를 위한 구성 데이터, 또는 소스 코드나 목적 코드일 수 있다. 상기 컴퓨터 판독 가능 프로그램 명령들은 전적으로 사용자의 컴퓨터상에서, 부분적으로 사용자의 컴퓨터상에서, 독립형(stand-alone) 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터상에서 그리고 부분적으로 원격 컴퓨터상에서 또는 전적으로 원격 컴퓨터나 서버상에서 실행될 수 있다. 위에서 마지막의 경우에, 원격 컴퓨터는 근거리 통신망(LAN) 또는 광역 통신망(WAN)을 포함한 모든 종류의 네트워크를 통해서 사용자의 컴퓨터에 접속될 수 있고, 또는 이 접속은 (예를 들어, 인터넷 서비스 제공자를 이용한 인터넷을 통해서) 외부 컴퓨터에 이루어질 수도 있다. 일부 실시 예들에서, 예를 들어 프로그램 가능 로직 회로, 필드-프로그램 가능 게이트 어레이들(FPGA), 또는 프로그램 가능 로직 어레이들(PLA)을 포함한 전자 회로는 본 발명의 실시 예들을 수행하기 위해 전자 회로를 맞춤화하도록 상기 컴퓨터 판독 가능 프로그램 명령들의 상태 정보를 활용하여 상기 컴퓨터 판독 가능 프로그램 명령들을 실행할 수 있다.
[0050] 본 발명의 특징들이 본 발명의 실시 예들에 따른 방법들, 장치들(시스템들), 및 컴퓨터 프로그램 제품들의 플로 차트 예시도들 및/또는 블록도들을 참조하여 기술된다. 플로 차트 예시도들 및/또는 블록도들의 각 블록과 플로 차트 예시도들 및/또는 블록도들 내 블록들의 조합들은 컴퓨터 판독 가능 프로그램 명령들에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다.
[0051] 이들 컴퓨터 판독 가능 프로그램 명령들은 범용 컴퓨터, 특수목적용 컴퓨터, 또는 기타 프로그램가능 데이터 처리 유닛의 프로세서에 제공되어 머신(machine)을 생성하고, 그렇게 하여 그 명령들이 상기 컴퓨터 또는 기타 프로그램가능 데이터 처리 유닛의 프로세서를 통해서 실행되어, 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현하기 위한 수단을 생성할 수 있다. 이들 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터 판독 가능 스토리지 매체에 저장될 수 있으며, 컴퓨터, 프로그램가능 데이터 처리 유닛 및/또는 기타 디바이스들에 지시하여 명령들이 저장된 상기 컴퓨터 판독 가능 스토리지 매체가 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능/동작의 특징들을 구현하는 명령들을 포함하는 제조품(an article of manufacture)을 포함하도록 특정한 방식으로 기능하게 할 수 있다.
[0052] 상기 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터, 기타 프로그램가능 데이터 처리 유닛, 또는 다른 디바이스에 로드 되어, 상기 컴퓨터, 기타 프로그램가능 장치 또는 다른 디바이스에서 일련의 동작 단계들이 수행되게 하여 컴퓨터 구현 프로세스를 생성하며, 그렇게 하여 상기 컴퓨터, 기타 프로그램가능 장치, 또는 다른 디바이스 상에서 실행되는 명령들이 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현할 수 있다.
[0053] 도면들 내 플로 차트 및 블록도들은 본 발명의 여러 실시 예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능(functionality), 및 연산(operation)을 예시한다. 이와 관련하여, 상기 플로 차트 또는 블록도들 내 각 블록은 상기 명시된 로직 기능(들)을 구현하기 위한 하나 또는 그 이상의 실행 가능한 명령들을 포함한 모듈, 세그먼트 또는 명령들의 일부분을 나타낼 수 있다. 일부 다른 실시 예들에서, 상기 블록에 언급되는 기능들은 도면들에 언급된 순서와 다르게 일어날 수도 있다. 예를 들면, 연속으로 도시된 두 개의 블록들은 실제로는 사실상 동시에 실행될 수도 있고, 또는 이 두 블록들은 때때로 관련된 기능에 따라서는 역순으로 실행될 수도 있다. 블록도들 및/또는 플로 차트 예시도의 각 블록, 및 블록도들 및/또는 플로 차트 예시도 내 블록들의 조합들은 특수목적용 하드웨어 및 컴퓨터 명령들의 명시된 기능들 또는 동작들, 또는 이들의 조합들을 수행하는 특수목적용 하드웨어-기반 시스템들에 의해 구현될 수 있다는 것에 또한 주목해야 한다.
[0054] 위에서 언급한 바와 같이, 예시적인 실시 예들은, 클라우드 컴퓨팅 환경 또는 기타 분산 데이터 처리 시스템에서와 같이, 배치 후 컴퓨터 모델의 무결성을 보장할 목적으로 배치된 머신 러닝 컴퓨터 모델의 실행에 대한 런타임 신경 흐름 증명을 가능하게 하는 것에 관한 메커니즘들을 구체적으로 제공한다. 예시적인 실시 예들의 메커니즘들은 배치 이전에 훈련된 컴퓨터 모델의 신경 흐름을 캡처할 목적으로 사용자(컴퓨터 모델 소유자)와 연관된 로컬 컴퓨팅 시스템에서 작동 될 수 있고, 또한 런타임 실행을 위해 훈련된 컴퓨터 모델을 배치한 후 신경 흐름을 캡처할 목적으로 클라우드 컴퓨팅 플랫폼을 제공하는 하나 또는 그 이상의 컴퓨팅 시스템들과 같은, 원격으로 위치한 컴퓨팅 시스템에서 작동될 수 있다. 상기 메커니즘들을 통해 훈련되고 배치된 컴퓨터 모델의 신경 흐름들은 신뢰할 수 있는 실행 환경을 사용하여 캡처될 수 있고, 훈련된 컴퓨터 모델의 배치 이전에 사전 처리 또는 훈련 단계 동안 캡처되고 저장된 신경 흐름들에 대한 신경 흐름들의 검증을 위해 사용자에게 다시 보고될 수 있다. 이 비교에 기초하여 배치된 훈련된 컴퓨터 모델이 훈련 후 손상되었는지가 결정될 수 있고 적절한 조치가 수행될 수 있다.
[0055] 도 1은 하나의 예시적인 실시 예들에 따라, 컴퓨터 모델을 훈련하는 데 사용되는 훈련 데이터를 위해 신경 흐름 정보가 수집되는 연산(operation)의 사전 처리 또는 훈련 단계를 예시하는 예시적인 다이어그램이다. 도 1에 요약된 연산은 심층 신경망(DNN) 또는 심층 학습(DL) 모델(110)(이하 DL 모델이라고 함)이 훈련 데이터 세트(120)와 머신 러닝 훈련 프로세스를 사용하여 훈련되었다고 가정한다. 그러한 머신 러닝 훈련 프로세스들은 당업계에 일반적으로 알려져 있으므로 DNN 또는 DL 모델을 훈련시키는 프로세스에 대한 자세한 설명은 여기에서 생략한다. 예를 들어, 머신 러닝 훈련 프로세스가, 가중치들, 등과 같은, DL 모델(110)의 다양한 층들 L1-Ln의 작동 파라미터들(operational parameters)을 조정하여 DL 모델(110)이 입력들을 복수의 인식 가능한 클래스들 중 하나로 적절하게 분류하게 하거나, 또는 예측 출력을 생성한다는 것을 언급하는 것으로 충분하다.
[0056] DL 모델(110)을 훈련시킨 후, 훈련 데이터는 도 1에 도시된 바와 같이 이제 훈련된 DL 모델(110)에 다시 입력된다. 신경 흐름(NF) 증명 엔진(130)은 훈련 데이터에 대한 신경 흐름을 캡처 및 저장하고, 인식 가능한 클래스들 세트에서, 다양한 클래스들에 대한 신경 흐름 모델들을 또는 캡처된 신경 흐름들에 기초하는 잠재적 예측들 세트에서 예측들을 생성한다. 설명의 목적을 위해, DL 모델(130)은 입력들을 미리 결정된 분류들 세트 중 하나의 클래스로 분류하도록 구성되는 것으로 가정될 것이다. 일부 예시적인 실시 예들에서, 이 분류는 가장 높은 확률 값 또는 점수를 갖는 클래스가 입력에 대한 출력 분류로서 선택되도록 미리 결정된 수의 인식된 클래스들 각각에 대한 확률 값을 계산하는 것을 포함한다. 따라서, DL 모델(110)의 출력은 벡터 출력일 수 있으며, 각 벡터 슬롯은 다양한 클래스에 대응하고, 상기 벡터 슬롯의 값은 상기 대응하는 클래스가 DL 모델(110)에 대한 입력의 정확한 분류임을 표시하는 확률 또는 점수를 나타낸다. 상기 확률 값들 또는 점수들 자체는 DL 모델(110)의 층들 L₁- Ln의 다양한 뉴런들의 연산(operation)을 통해 계산된다.
[0057] 신경 흐름(NF) 증명 엔진(130)의 신경 흐름 추출 엔진(132)은 훈련된 DL 모델(110)의 각 층 L₁- Ln에서 뉴런 활성화 정보를 추출한다. 신경 흐름 추출 엔진(132)은 층들 L₁- Ln에 걸쳐서 상기 신경 활성화 정보들(예를 들어, 도 1에서 신경 흐름의 검게 표시된 벡터 슬롯들로서 도시됨)을 조합하고, 이에 의해서 훈련 데이터(120)에서 각 훈련 데이터 인스턴스의 신경 흐름들(134)을 생성한다. 따라서, 훈련된 DL 모델(110)이 훈련 데이터 인스턴스를 DL 모델(110)에 대한 입력으로서 처리할 때, DL 모델(110)은 NF 추출 엔진(132)에 의해 캡처되고 DL 모델(110)에 의해 생성된 출력 분류와 상관되는 뉴런 활성화 정보를 생성한다. 따라서, 각 훈련 데이터 인스턴스가 처리됨에 따라, 대응하는 신경 흐름(134) 및 출력 분류가 훈련 데이터 인스턴스에 대해 생성되고 NF 집계 엔진(136)에 의한 처리를 위해 NF 증명 엔진(130)에 의해 저장된다.
[0058] NF 집계 엔진(136)은 동일한 클래스 내에 분류된 모든 훈련 데이터에 대한 신경 흐름들(134)을 집계하고 각 클래스에 대해 신경 흐름 모델(140)을 각각 생성한다. 예를 들어, 만일 DL 모델(110)이 입력들을 100개의 서로 다른 인식 가능한 클래스들 중 하나로 분류하도록 훈련되었다면, 100개 클래스들 각각에 대해, 대응하는 신경 흐름 모델(140)이 생성되는데, 상기 대응하는 클래스로 분류되었던 훈련 데이터 인스턴스들의 신경 흐름들(134)을 집계함으로써 생성되며, 즉 이 예에서는, 100개의 신경 흐름 모델들(140)이 생성된다. 신경 흐름들(134)의 집계는 본 발명의 범위를 벗어남이 없이 다수의 다양한 방식들 중 어느 하나의 방식으로 수행될 수 있다. 예를 들어, 하나의 예시적인 실시 예들에서, 동일한 클래스의 모든 훈련 데이터의 활성화된 뉴런들 및 필터들의 "세트"(층이 컨볼루션 층이냐 완전-연결 층이냐에 따라 다름)가 식별될 수 있다. 다른 예시적인 실시 예들에서, 머신 러닝 모델, 예를 들어 베이지안 모델, SVM 모델, 또는 그래프 신경망 모델(a Bayesian model, an SVM model, or a graph neural network model)은 활성화된 뉴런들 및 필터들에 기초하여 훈련될 수 있다. 상기 머신 러닝 모델은 활성화들의 순서(the order of activations)와 활성화 발생의 빈도(frequency of activation occurrence)를 고려할 수 있다. 그 결과, 런타임에서 보이지 않는 테스트 데이터에 대한 근사 유사성 매치(approximated similarity match)를 수행할 수 있다.
[0059] 신경 흐름 모델들(140)은 측정 데이터베이스(150)에 저장되는데, 신경 흐름 모델들(140)이 대응하는 대응 클래스의 표시자와 연계하여 저장된다. 따라서, 신경 흐름들을 사용하여 배치된 모델의 실행을 검증할 때, 대응하는 신경 흐름 모델(140)은 특정 클래스에 대해 측정 데이터베이스(150)로부터 검색될 수 있고, 이하에서 설명되는 신경 흐름 검증 엔진(138)에 의한, 모델 무결성 검증을 수행하는 데 사용될 수 있다.
[0060] 전술한 바와 같이, DL 모델(110)을 훈련하고, DL 모델(110)에 의해서 생성된 출력의 클래스들 각각에 대한 신경 흐름 모델(140)을 측정 데이터베이스(150)에 저장한 후, 사용자는 훈련된 DL 모델(110)을 클라우드 플랫폼 제공자의 클라우드 컴퓨팅 환경에 배치하여 상기 배치된 DL 모델에 대응하는 클라우드 서비스를 시작할 수 있다. 도 2는 배치된 DL 모델(210)의 연산에 대한 런타임 신경 흐름 증명이 하나의 예시적인 실시 예에 따라 수행되는 연산의 배치 단계를 예시하는 예시적인 다이어그램이다. 도 2에서, "클라우드"로 표시된 도면의 오른쪽은 DL 모델(210)이 지원하는 클라우드 서비스들의 사용자로부터 수신된 새로운 입력들(220)과 관련하여 DL 모델(210)이 배치되고 실행되는 클라우드 컴퓨팅 플랫폼 및 클라우드 컴퓨팅 환경을 나타낸다. 예를 들어, 도면의 "클라우드" 측은 멀티-테넌트 클라우드 컴퓨팅 환경의 일부와 같이, DL 모델(210) 소유자에게 할당된 클라우드 컴퓨팅 자원(하드웨어 및/또는 소프트웨어)의 특정 부분일 수 있다.
[0061] 도 2에 도시된 바와 같이, 클라우드 컴퓨팅 플랫폼은 DL 모델(210)의 배치를 위한 NF 런타임 신경 흐름 증명 엔진(230) 및 신뢰 실행 환경(trusted execution environment: TEE)(236)을 제공한다. 일부 예시적인 실시 예들에서, NF 런타임 신경 흐름 증명 엔진(230), 또는 NF 런타임 신경 흐름 증명 엔진(230)의 컴포넌트의 서브세트는 TEE(236) 내에서 실행될 수 있거나, 또는 TEE(236)는 NF 런타임 신경 흐름 증명 엔진(230)의 일부로 제공될 수 있다. 그러나, 설명의 편의를 위해, 런타임 신경 흐름 증명 엔진(230)은 TEE(236)의 외부에 있는 것으로 도시되어 있지만, 그러나 이것이 본 발명의 요구사항이 아니다. 그러나 배치된 훈련된 DL 모델(210)이 TEE(236) 외부에서 실행되고 배치된 훈련된 DL 모델(210)의 신경 흐름의 캡처, 저장 및 보고는 TEE(236) 내에서 수행되는 것은 기록된 신경 흐름들이 변조되지 않음을 보장하기 위해서라는 점을 특별히 주목해야 한다.
[0062] 도 2에 도시된 바와 같이, NF 런타임 신경 흐름 증명 엔진(230)은 입력들(220)에서 작동하는 DL 모델(210)의 신경 흐름들(NF)을 기록하도록 작동하는 NF 추출 엔진(232)을 포함한다. NF 추출 엔진(232)은 도 1의 NF 추출 엔진(132)과 유사한 방식으로 작동할 수 있지만, 배치된 훈련된 DL 모델(210)과 관련하여 클라우드 컴퓨팅 플랫폼에서 실행된다. 일부 예시적인 실시 예들에서, NF 추출 엔진(232)은, 증명된 신경 흐름 정보라고하는, 신경 흐름 정보를 수집하기 위해 TEE(236) 내에서 실행되는데, 이는 그 것이 배치된 훈련된 DL 모델(210)의 적절한 실행을 증명하는 데 사용되기 때문이다.
[0063] NF 런타임 신경 흐름 증명 엔진(230)은, NF 증명 엔진(130)에 의한 검증을 위해, 도 1에 도시된 바와 같은, 사용자의 로컬 컴퓨팅 시스템으로 전송되는 증명 출력을 생성하는 증명 생성 엔진(234)을 더 포함한다. 도 2의 NF 런타임 신경 흐름 증명 엔진(230) 및 도 1의 NF 증명 엔진(130) 사이의 데이터 통신은 각 컴퓨팅 시스템(들) 또는 플랫폼(들)의 런타임 신경 흐름 증명 인터페이스들(137, 238)을 통해 가능하게 된다.
[0064] 도 2에 도시된 바와 같이, 배치된 훈련된 DL 모델(210)이 분류, 예측 등과 같은, 처리를 위한 입력(220)을 수신할 때, TEE(236) 내에서 실행될 수 있는, NF 추출 엔진(232)은 입력(220)에 대해 신경 흐름(240)을 캡처하고 저장하는데, 배치된 훈련된 DL 모델(210)의 각 층 L₁- Ln에서 뉴런 활성화 정보를 다시 추출하고 층들 L₁- Ln에 걸쳐 뉴런 활성화들을 결합함으로써 그렇게 하며, 이에 의하여 배치된 훈련된 DL 모델(210)의 신경 흐름(240)을 생성한다. 캡처된 신경 흐름 정보(240)는 TEE(236)의 보안 저장소 내에 저장될 수 있고 사용자의 로컬 컴퓨팅 시스템에서 실행되는 NF 증명 엔진(130)에 다시 제공될 수 있다.
[0065] 예를 들어, 사용자 컴퓨팅 시스템(250)이 배치된 훈련된 DL 모델(210)에 의한 처리를 위해 입력(220)을 보낼 때, 사용자 컴퓨팅 시스템(250)은 NF 런타임 신경 흐름 증명 엔진(230)으로부터 수신된 증명의 신선도(freshness of the attestation)를 결정하는 데 사용하기 위해 특정 챌린지 C를 이 입력과 연관시킬 수 있다. TEE(236) 내에서, 상기 입력(220)에 대한 신경 흐름(240)은 상기 모델의 출력에 관한 정보와 함께 NF 추출 엔진(232)에 의해 캡처된다. 상기 추출된 NF 및 모델 출력, 즉 입력이 분류된 클래스는 챌린지 C와 함께 증명 생성 엔진(234)에 제공된다. 증명 생성 엔진(234)은 상기 NF 및 모델 출력을 챌린지 C로 해싱하고(hash), TEE 개시(launch)의 일부로서 사용자/테넌트 컴퓨팅 디바이스와 TEE 간에 교환된 보안 키로, 상기 결과를 암호화하며, 이에 의하여 상기 데이터를 봉인하고(seal) NF 증명 엔진(130)을 구현하는 사용자 컴퓨팅 디바이스(250)로 다시 전송되는 증명을 생성한다. 대안적으로, 일부 예시적인 실시 예들에서, NF 증명 엔진(130)은 사용자 컴퓨팅 디바이스(250)와 별개의 컴퓨팅 디바이스에 제공될 수 있는데, 이는 상기 별도의 컴퓨팅 디바이스에 또한 챌린지가 제공되어 상기 봉인된 증명이 액세스되고 검증될 수 있는 경우에 그렇게 될 수 있다.
[0066] 상기 밀봉된 증명이 인터페이스들(137, 238)을 통해 사용자의 로컬 컴퓨팅 시스템, 예를 들어 사용자 컴퓨팅 디바이스(250)의 NF 증명 엔진(130)에서 TEE(236)로부터 수신될 때, 사용자 컴퓨터 디바이스(250)에서 실행하는 NF 증명 엔진(130)의 신경 흐름 검증 엔진(138)(참조 도 1)은 챌린지 C를 사용하여 먼저 상기 증명의 무결성과 신선도를 검증하고 입력(220)의 처리에 대응하는 상기 DL 모델의 출력 정보 및 신경 흐름을 추출할 수 있다. 입력(220)에 대해 DL 모델(210)에 의해 생성된 출력 분류 또는 예측에 기초하여, 신경 흐름 검증 엔진(138)은, 로컬 측정 데이터베이스(150)로부터, 도 1에 관하여 전술한 사전-처리 연산 동안 훈련 데이터에 기초하여 저장된 특정 클래스에 대하여 대응하는 신경 흐름 모델(140)을, 검색한다. 상기 증명에서 신경 흐름(240)은 상기 훈련 데이터에 의해 생성된 측정 데이터베이스(150)로부터 신경 흐름 모델(140)의 저장된 신경 흐름에 대해서 비교된다.
[0067] 이전에 언급된 바와 같이, 만일 배치된 훈련된 DL 모델(210)이 정상적으로 작동하고, 공격자, 클라우드 컴퓨팅 제공자 등에 의해서, 배치된 훈련된 DL 모델(210)의 수정이 수행되지 않는다면, 상기 증명으로부터의 신경 흐름(240)은 동일한 클래스에 대해 측정 데이터베이스(150)에 저장된 신경 흐름(140)과 거의 유사해야 한다. 그러나, 만일 감지할 수 있는 편차들, 예를 들어 주어진 허용 오차보다 큰 편차들, 또는 하나 또는 그 이상의 컴퓨터 적용 규칙에 명시된 것과 같은, 손상(compromise)을 표시하는 기준을 충족하는 편차들이 있다면, 배치된 훈련된 DL 모델(210)은, DL 모델(110)의 훈련 및 배치 후에 우연히 또는 악의적이던지 간에, 일부 방식에서 손상되었을 수 있다.
[0068] 예시적인 실시 예들에서, 신경 흐름들(134, 240) 사이의 편차들은 신경 흐름 검증 엔진(138)에 의해 평가될 수 있으며, 예를 들어 미리 정의된 컴퓨터 실행 규칙들의 적용, 수용 가능한 편차의 정도를 표시하는 하나 또는 그 이상의 편차 임계값들에 대한 비교, 등에 의해서 평가될 수 있는데, 이는 배치된 훈련된 DL 모델(210)의 잠재적인 손상을 표시하는 기준 또는 임계값이 충족되고 경보 알림이 트리거 되어서 이에 의하여 상기 배치된 모델의 잠재적인 손상을 사용자에게 통지 하여야 하는 지를 결정하기 위해서이다. 만일 그러한 기준 또는 임계값이 충족된다면, 경보 알림이 트리거 되고, 알림 및 응답 조치 엔진(139)이 호출되어 사용자 컴퓨팅 디바이스(250)에 대한 경보를 작성 및 전송하거나 또는 그렇지 않으면 출력하는 데, 이는 사용자가 배치된 훈련된 DL 모델(210)을 자동으로 철회할지 여부를 선택할 수 있게 한다. 만일 사용자가 배치된 훈련된 DL 모델(210)을 철회하기로 선택한다면, 배치된 훈련된 DL 모델(210)이 공공 액세스로부터 제거되도록 하기 위해, 예를 들어 클라우드 컴퓨팅 플랫폼 상에 이용 가능한 클라우드 서비스들로부터 등록해제 되도록 하기 위해(dergistered) 컴퓨터 커맨드가 클라우드 컴퓨팅 제공자에게 전송될 수 있다.
[0069] 따라서 배치된 컴퓨터 모델 실행의 런타임 신경 흐름 증명을 수행하기 위한 메커니즘들이 제공된다. 상기 런타임 신경 흐름 증명은 연산의 사전 처리 또는 훈련 단계에서 그리고 또한 훈련된 컴퓨터 모델 배치 후에 상기 컴퓨터 모델의 신경 흐름들을 캡처하고 비교하는 단계들(capturing and comparing)을 포함한다. 상기 런타임 신경 흐름 증명을 사용하면 배치된 모델이 배치 후 손상되었는지를 결정할 수 있으므로 모델 소유자가 적절한 조치들을 수행하여 모델 사용자들에게 원치 않는 출력을 생성하지 않도록 할 수 있다. 또한 런타임 신경 흐름 증명은 위에서 언급한 대로 배치된 DL 모델과 관련하여 테넌트가 가지고 있는 세 가지 염려들(concerns)을 해결한다. 예를 들어, 공격자들이 배치된 훈련된 DL 모델에 백도어들을 주입하는 경우와 같이, 만일 공격자가 DL 모델이 입력을 잘못 분류하도록 한다면, 상기 신경 흐름을 수정하여서 그러한 오분류를 발생시킬 것이고 상기 신경 흐름의 그러한 수정은 예시적인 실시 예들의 메커니즘들에 의해서 검출될 것이다. 만일 클라우드 컴퓨팅 플랫폼 제공자가 스토리지 및 계산 비용들을 줄이기 위해 DL 모델을 단순화(prune)하거나 "압축(squeeze)"한다면, 다시 상기 신경 흐름은 수정될 것이고 배치 이전의 훈련된 DL 모델로부터 그러한 편차들이 예시적인 실시 예들의 메커니즘들에 의해 검출될 것이다. 또한, 만일 상기 DL 모델이 적대적 공격들을 받는다면, 이 또한 신경 흐름에서 편차를 발생시킬 것이고, 이는 예시적인 실시 예들의 메커니즘들에 의해 검출될 것이다. 따라서, 청구된 본 발명은, 신경 흐름 기반 런타임 신경 흐름 증명 모델을 사용하여, 배치된 훈련된 DL 모델의 무결성을 검증하고 공격자들 또는 클라우드 컴퓨팅 플랫폼 제공자들로부터의 잠재적인 손상을 검출하기 위한 메커니즘들을 제공한다.
[0070] 위의 설명에서 명백한 바와 같이, 본 발명은, 특히 클라우드 컴퓨팅 또는 다른 분산 데이터 처리 시스템 환경에서, 배치된 컴퓨터 모델들의 무결성을 개선하고, 그러한 배치된 컴퓨터 모델들의 손상을 검출하여 적절한 알림 및 대응 조치를 수행할 수 있게 하는 컴퓨터 도구를 제공한다. 따라서, 예시적인 실시 예들은 많은 다양한 유형들의 데이터 처리 환경들에서 이용될 수 있다. 예시적인 실시 예들의 특정 엘리멘트들 및 기능들의 설명을 위한 컨텍스트를 제공하기 위해, 도 3 및 4는 예시적인 실시 예들의 특징들이 구현될 수 있는 예시적인 환경들로서 이후에 제공된다. 도 3 및 4는 단지 예들일 뿐이며 본 발명의 특징들 또는 실시 예들이 구현될 수 있는 환경들과 관련하여 어떠한 제한을 주장하거나 암시하려는 것이 아님을 이해해야 한다. 도시된 환경들에 대한 많은 수정들이 본 발명의 범위를 벗어남이 없이 만들어질 수 있다.
[0071] 도 3 은 예시적인 실시 예들의 특징들이 구현될 수 있는 예시적인 분산 데이터 처리 시스템을 도시한다. 분산 데이터 처리 시스템(300)은 예시적인 실시 예들의 특징들이 구현될 수 있는 컴퓨터의 네트워크를 포함할 수 있다. 분산 데이터 처리 시스템(300)은 분산 데이터 처리 시스템(300) 내에서 함께 연결된 다양한 디바이스들과 컴퓨터들 사이의 통신 링크들을 제공하는 데 사용되는 매체인, 적어도 하나의 네트워크(302)를 포함한다. 네트워크(302)는 유선, 무선 통신 링크들, 위성 통신 링크들, 광섬유 케이블들, 등과 같은 연결들을 포함할 수 있다.
[0072] 도시된 예에서, 서버들(304A-304C)은 스토리지 유닛(308)과 함께 네트워크(302)에 연결된다. 또한, 클라이언트들(310, 312)은 또한 네트워크(302)에 연결된다. 이들 클라이언트들(310, 312)은, 예를 들어, 개인용 컴퓨터들, 네트워크 컴퓨터들, 등일 수 있다. 도시된 예에서, 서버들(304A-304C)는, 부트 파일들, 운영 체제 이미지들 및 애플리케이션들과 같은, 데이터를 클라이언트들(310-312)에 제공한다. 클라이언트들(310-312)은 도시된 예에서 서버(304A), 가능하게는 다른 서버 컴퓨팅 디바이스들(304B-304C) 중 하나 또는 그 이상을 포함하는 클라우드 컴퓨팅 시스템에 대한 클라이언트들이다. 분산 데이터 처리 시스템(300)은 추가 서버들, 클라이언트들, 및 도시되지 않은 기타 컴퓨팅, 데이터 스토리지 및 통신 디바이스들을 포함할 수 있다.
[0073] 도시된 예에서, 분산 데이터 처리 시스템(300)은 서로 통신하기 위해 TCP/IP(Transmission Control Protocol/Internet Protocol) 프로토콜 제품군을 사용하는 네트워크들 및 게이트웨이들의 세계적인 집합을 나타내는 네트워크(302)가 있는 인터넷이다. 인터넷의 중심에는 데이터와 메시지들을 라우팅하는 수천 개의 상업, 정부, 교육 및 기타 컴퓨터 시스템들로 구성된 주요 노드들 또는 호스트 컴퓨터들 간의 고속 데이터 통신 회선들의 백본이 있다. 물론, 분산 데이터 처리 시스템(300)은 또한, 예를 들어, 인트라넷, LAN(Local Area Network), WAN(Wide Area Network), 등과 같은, 다수의 다양한 유형들의 네트워크들을 포함하도록 구현될 수 있다. 위에서 언급한 바와 같이, 도 3은 예로서 제공된 것이고, 본 발명의 다양한 실시 예들에 대한 구조적 제한을 하려는 것이 아니며, 따라서 도 3에 도시된 특정 엘리멘트들은 본 발명의 예시적인 실시 예들이 구현될 수 있는 환경들과 관련하여 제한하는 것으로 간주되어서는 안 된다.
[0074] 도 3에 도시된 바와 같이, 하나의 예시적인 실시 예에 따르면, 하나 또는 그 이상의 컴퓨팅 디바이스들, 예를 들어, 서버(304A)는, DL 클라우드 서비스 플랫폼(300)이 작동하는, 도 2에 도시된 것과 같은, 런타임 신경 흐름 증명 엔진(230)으로 추가로 구성되는 딥 러닝 클라우드 서비스 플랫폼(300)을 구현하도록 특별히 구성될 수 있다. 컴퓨팅 디바이스를 구성하는 것은 예시적인 실시 예들과 관련하여 여기서 설명된 출력들의 생성 및 연산들의 수행을 가능하게 하기 위해 애플리케이션 특정 하드웨어, 펌웨어 등을 제공하는 것을 포함할 수 있다. 컴퓨팅 디바이스를 구성하는 것은 또한, 또는 대안적으로, 하나 또는 그 이상의 스토리지 디바이스들에 저장되고, 서버(304A)와 같은, 컴퓨팅 디바이스의 메모리에 로드 되는 소프트웨어 애플리케이션들을 제공하는 것을 포함할 수 있으며, 이는 컴퓨팅 디바이스의 하나 또는 그 이상의 하드웨어 프로세서들이 소프트웨어 애플리케이션들을 실행하게 하여 상기 프로세서들을 구성하는 소프트웨어 애플리케이션들이 예시적인 실시 예들과 관련하여 여기에 설명된 연산들을 수행하고 출력을 생성하도록 하기 위함이다. 또한, 애플리케이션 특정 하드웨어, 펌웨어, 하드웨어 상에서 실행되는 소프트웨어 애플리케이션들, 등의 모든 조합이 예시적인 실시 예들의 범위를 벗어나지 않고 사용될 수 있다.
[0075] 일단 컴퓨팅 디바이스가 이들 방식들 중 하나로 구성되면, 상기 컴퓨팅 디바이스는 예시적인 실시 예들의 메커니즘들을 구현하도록 특별히 구성된 특수 컴퓨팅 디바이스가 되며, 범용 컴퓨팅 디바이스가 아님을 이해해야 한다. 더욱이, 여기에 설명된 바와 같이, 예시적인 실시 예들의 메커니즘의 구현은 컴퓨팅 디바이스의 기능을 개선하고 컴퓨터 모델의 신경 흐름들에 기초하여 배치된 훈련된 컴퓨터 모델의 무결성에 대한 런타임 신경 흐름 증명을 가능하게 하는 유용하고 구체적인 결과들을 제공한다.
[0076] 도 3에 도시된 바와 같이, 서버들(304A-304C) 중 하나 또는 그 이상은 딥 러닝 클라우드 서비스(300) 및 런타임 신경 흐름 증명 엔진(230)을 구현하도록 구성된다. 도 3은 단일 서버, 즉 서버(304A)와 연관되는 엘리멘트들(300 및 230)를 도시하지만, 복수의 서버들, 예를 들어, 서버들(304A-304C)을 함께 클라우드 컴퓨팅 시스템을 구성하고 딥 러닝 클라우드 서비스(300) 및 런타임 신경 흐름 증명 엔진(230)을 제공하도록 구성함으로써 딥 러닝 클라우드 서비스(300) 및 런타임 신경 흐름 증명 엔진(230), 또는 그들의 일부, 및 DL 클라우드 서비스(300)에 배치된 DL 컴퓨팅 모델(305), 또는 그들의 일부의 메커니즘들이 다수의 서버 컴퓨팅 디바이스들(304A-304C)에 걸쳐 분산될 수 있게 할 수 있음을 이해해야 한다. 일부 예시적인 실시 예들에서, 딥 러닝 클라우드 서비스(300), DL 모델(305), 및 런타임 신경 흐름 증명 엔진(230)의 다수의 인스턴스들이 상기 클라우드 컴퓨팅 시스템의 다수의 다양한 서버들(304A-304C) 상에 제공될 수 있다. 딥 러닝 클라우드 서비스(300)는 딥 러닝 시스템의 모든 딥 러닝 또는 AI 기반 기능을 제공할 수 있다.
[0077] 일부 예시적인 실시 예들에서, 딥 러닝 클라우드 서비스(300)는 인지 컴퓨팅 시스템(cognitive system)을 구현할 수 있다. 인지 시스템을 간단히 소개하면, 인지 시스템은 인간의 인지 기능들을 에뮬레이트하기 위해 하드웨어 및/또는 소프트웨어 로직(소프트웨어가 실행되는 하드웨어 로직과 조합으로)로 구성된 특수 컴퓨터 시스템 또는 컴퓨터 시스템들 세트이다. 이러한 인지 시스템은 아이디어를 전달하고 처리하는 데 인간과 유사한 특성들을 적용하는데, 이는 디지털 컴퓨팅의 고유한 강점들과 결합될 때 대규모의 높은 정확도와 탄력성을 가지고 문제들을 해결할 수 있다. 인지 시스템은 하나 또는 그 이상의 컴퓨터 구현 인지 연산들을 수행하는데, 이는 사람의 사고 프로세스와 유사하며 사람과 기계가 보다 자연스러운 방식으로 상호 작용하게 하여 사람의 전문성과 인지를 확장하고 강화할 수 있게 해 준다. 인지 시스템은, 예를 들어, 자연어 처리(NLP) 기반 로직, 이미지 분석 및 분류 로직, 전자 의료 기록 분석 로직 등과 같은 인공 지능 로직과, 특수 하드웨어, 하드웨어 상에서 실행되는 소프트웨어, 또는 특수 하드웨어와 하드웨어 상에서 실행되는 소프트웨어의 모든 조합으로 제공될 수 있는, 머신 러닝 로직을 포함한다. 상기 인지 시스템의 로직은 인지 연산(들)을 구현하는데, 이 것의 예들은, 질문 답변(question answering), 말뭉치의 콘텐츠의 다양한 부분들 내 관련 개념들의 식별, 이미지 분석 및 분류 연산들, 인터넷 웹 페이지 검색들, 예를 들어 의료 진단 및 치료 추천들과 기타 유형의 추천들 생성, 예를 들어 특정 사용자의 관심 항목들인, 잠재적인 새로운 접촉 추천들, 등과 같은 지능형 검색 알고리즘들을 포함하지만 이에 국한되지는 않는다. 일부 예시적인 실시 예들에서, 딥 러닝(DL) 클라우드 서비스(300)는, 배치된 훈련된 DL 모델(305)의 연산에 기초하여, 이미지 인식 및 분석, 등과 같은 다른 인지 연산들을 수행하기 위한 기능을 제공할 수 있다. 일반적으로, DL 클라우드 서비스(300)에 배치된 DL 모델(305)은, 예를 들어, DL 클라우드 서비스(300)에 의한 추가 평가들이 수행될 수 있는 분류 및/또는 예측 기능을 제공할 수 있다.
[0078] IBM Watson®은 사람이 읽을 수 있는 언어를 처리하여 사람보다 훨씬 빠른 속도에서 그리고 더 큰 규모에서 사람과 같은 높은 정확도로 텍스트 구절들 간의 추론들을 식별할 수 있는 인지 시스템의 한 예이다. 일반적으로 그러한 인지 시스템들은 다음과 같은 기능들을 수행할 수 있다: 인간의 언어와 이해의 복잡성들을 탐색함; 방대한 양의 정형 및 비정형 데이터를 수집하고 처리함; 가설을 생성하고 평가함; 관련 증거에만 기초하여 응답들을 가중하고 평가함; 상황-별 조언, 통찰력 및 지침을 제공함; 머신 러닝 프로세스를 통한 각 반복 및 상호 작용으로 지식을 개선하고 학습함; 영향 지점에서 의사 결정(상황에 맞는 지침)을 가능하게 함; 작업에 비례한 확장을 제공함; 인간의 전문성과 인지를 확장하고 강화함; 자연어로부터 공명하는 인간과 유사한 속성들 및 특성들을 식별함; 자연어로부터 다양한 언어 특정 또는 불가지론적 속성들을 추론함; 데이터 포인트들(이미지들, 텍스트, 음성)로부터 높은 수준의 관련 기억(암기 및 회상)을 제공함; 경험들에 기초한 인간의 인지를 모방하는 상황 인식에 의해서 예측하고 감지함; 자연어와 구체적인 증거에 기초하여 질문들에 답을 제공함.
[0079] 하나의 예시적인 실시 예들에서, 딥 러닝 클라우드 서비스(300)로서 구현될 수 있는, 인지 시스템은, 하나 또는 그 이상의 DL 모델들(305)을 구현하는 하나 또는 그 이상의 처리 파이프라인들을 통해, 클라이언트 컴퓨팅 디바이스(310)와 같은, 클라이언트 컴퓨팅 디바이스들로부터의 질문들에 응답하거나 또는 요청들을 처리하기 위한 메커니즘들을 제공한다. 다른 예시적인 실시 예들에서, 인지 시스템은 하나 또는 그 이상의 DL 모델들(305)을 구현하는 하나 또는 그 이상의 처리 파이프라인들에 기초하여 이미지 분석 및 인식 능력을 제공한다. 어느 경우던지, 하나 또는 그 이상의 DL 모델들(305)은 분류 또는 예측 연산들을 수행하고, DL 모델(들)(305)의 신경 흐름들은 모니터 되며, 캡처 되고, 모델 소유자들(사용자들)에게 보고되어 배치되고 훈련된 DL 모델(305)의 무결성에 대해 증명한다.
[0080] DL 모델(들)(305)이 작동하는 하나 또는 그 이상의 처리 파이프라인들은 데이터 처리 하드웨어 상에서 실행되는 인공 지능 애플리케이션들이고, 이들은 요청들에 대해 입력들 및 훈련된 DL 모델(들)(305)에 기반한 기타 증거 데이터의 인지 평가에 기초하여 생성된 결과들로 응답하는데, 예를 들어, 자연 언어로 제공된 주어진 주제 영역과 관련된 질문들에 답하거나, 또는 자연 언어로 또는 구조화된 요청/쿼리로 제공될 수 있는 입력 데이터에 대한 인지 연산을 수행하기 위한 요청들을 처리하고, 이미지의 객체들을 분류하고 분류 결과를 제공하기 위해 주어진 이미지를 분석한다.
[0081] 도 3에 도시된 바와 같이, 클라이언트 컴퓨팅 시스템, 예를 들어 클라이언트 컴퓨팅 시스템(310)은, 도 1에 도시된 바와 같이, 신경 흐름 증명 엔진(130)을 구현하도록 구성되며, 이는, 컴퓨팅 디바이스(312)로부터의 입력(308)과 같은 사용자 입력을 서비스하기 위해 DL 클라우드 서비스(300) 내에서 작동하는 훈련된 DL 모델(305)로서 DL 클라우드 서비스(300)에 배치된, 훈련된 DL 모델(306)에 대한 신경 흐름 모델을 생성하기 위해 이전에 설명된 바와 같이 동작한다. 신경 흐름 증명 엔진(130)은 또한 전술한 바와 같이 작동하여, 배치된 훈련된 DL 모델(305)의 무결성을 검증하는데, DL 클라우드 서비스(300) 및 배치된 훈련된 DL 모델(305)와 함께 서버(304A) 상에서 작동하는 런타임 신경 흐름 증명 엔진(230)으로부터 수신된 증명(307)에 기초하여 훈련된 DL 모델(306)에 대해 생성되고 저장된 NF 모델을 사용하여 검증한다. 즉, 런타임 신경 흐름 증명 엔진(230)은 전술한 바와 같이 작동하여, 신뢰 실행 환경 내에서 배치된 훈련된 DL 모델(305)의 신경 흐름을 캡처하고 상기 캡처된 신경 흐름에 기초하여 증명(307)을 생성하며, 이는 배치된 훈련된 DL 모델(305)의 무결성에 관한 런타임 신경 흐름 증명을 위해 배치된 훈련된 DL 모델(305) 소유자 컴퓨팅 시스템(310)으로 전송된다.
[0082] 또한, NF 증명 엔진(130)은 증명(307)에 명시된 입력(308)의 배치된 훈련된 DL 모델(305)에 의해 생성된 훈련된 DL 모델(306) 및 분류 출력에 대해, 도 1의 측정 데이터베이스(150)에 저장될 수 있는 것과 같은, 저장된 NF 모델을 검색하도록 동작할 수 있다. NF 증명 엔진(130)은 또한 증명(307)의 NF와 검색된 NF 모델 간의 불일치들이 배치된 훈련된 DL 모델(305)의 잠재적인 손상을 표시하는지를 결정하도록 작동한다. 또한, NF 증명 엔진(130)은 경고를 생성하고 승인된 사용자에게 경고를 전송/출력하여 잠재적인 손상을 알릴 수 있다. 또한, NF 증명 엔진(130)은, 상기 불일치들이 잠재적인 손상을 표시한다고 결정하는 것에 응답하여, DL 클라우드 서비스(300)를 통해 배치된 훈련된 DL 모델(305)이 철회되거나 액세스 가능한 것으로 등록되지 않도록 클라우드 컴퓨팅 서비스 플랫폼 제공자, 예를 들어 서버(304A)에 커맨드를 자동으로 보낼 수 있다. 이것은 배치된 훈련된 DL 모델(305)의 그러한 철회를 요청하는 사용자 입력에 응답하여 수행될 수 있다.
[0083] 위에서 언급한 바와 같이, 예시적인 실시 예들의 메커니즘들은 배치된 훈련된 컴퓨터 모델의 무결성의 런타임 신경 흐름 증명을 수행하기 위한 연산들을 수행하기 위해 특별히 구성된 컴퓨팅 디바이스 또는 데이터 처리 시스템을 이용한다. 이들 컴퓨팅 디바이스들 또는 데이터 처리 시스템들은, 여기에 설명된 시스템들 및/또는 서브시스템들 중 하나 또는 그 이상을 구현하기 위해 하드웨어 구성, 소프트웨어 구성, 또는 하드웨어와 소프트웨어 구성의 조합을 통해 구체적으로 구성된 다양한 하드웨어 엘리멘트들을 포함할 수 있다. 도 4는 예시적인 실시 예들의 특징들이 구현될 수 있는 단지 하나의 예시적인 데이터 처리 시스템의 블록도이다. 데이터 처리 시스템(400)은 도 3의 서버(304A) 또는 클라이언트 컴퓨팅 디바이스(310)와 같은 컴퓨터의 예로서, 본 발명의 예시적인 실시 예들의 프로세스들 및 특징들을 구현하는 컴퓨터 사용 가능 코드 또는 명령들이 위치하고 실행되며, 이들은 여기서 기술된 예시적인 실시 예들의 연산, 출력 및 외부 효과들을 달성한다.
[0084] 도시된 예에서, 데이터 처리 시스템(400)은 노스 브리지 및 메모리 컨트롤러 허브(NB/MCH)(402) 및 사우스 브리지 및 입력/출력(I/O) 컨트롤러 허브(SB/ICH)(404)를 포함하는 허브 아키텍처를 사용한다. 프로세싱 유닛(406), 메인 메모리(408), 및 그래픽 프로세서(410)는 NB/MCH(402)에 연결된다. 그래픽 프로세서(410)는 가속 그래픽 포트(AGP)를 통해 NB/MCH(402)에 연결될 수 있다.
[0085] 도시된 예에서, 근거리 통신망(LAN) 어댑터(412)는 SB/ICH(404)에 연결된다. 오디오 어댑터(416), 키보드 및 마우스 어댑터(420), 모뎀(422), 읽기 전용 메모리(ROM)(424), 하드 디스크 드라이브(HDD)(426), CD-ROM 드라이브(430), 범용 직렬 버스(USB) 포트들 및 기타 통신 포트들(432) 및 PCI/PCIe 디바이스들(434)는 버스(438) 및 버스(440)를 통해 SB/ICH(404)에 연결된다. PCI/PCIe 디바이스들은, 예를 들어, 이더넷 어댑터들, 추가 카드들(add-in cards) 및 노트북 컴퓨터들용 PC 카드들을 포함할 수 있다. PCI는 카드 버스 컨트롤러를 사용하지만 PCIe는 사용하지 않는다. ROM(424)은, 예를 들어, 플래시 BIOS(Basic Input/Output System)일 수 있다.
[0086] HDD(426) 및 CD-ROM 드라이브(430)는 버스(440)를 통해 SB/ICH(404)에 연결된다. HDD(426) 및 CD-ROM 드라이브(430)는, 예를 들어, 통합 드라이브 전자장치들(IDE) 또는 직렬 고급 기술 부착(SATA) 인터페이스를 사용할 수 있다. 슈퍼 I/O(SIO) 디바이스(436)는 SB/ICH(404)에 연결될 수 있다.
[0087] 운영 체제는 처리 유닛(406) 상에서 실행된다. 운영 체제는 도 4의 데이터 처리 시스템(400) 내의 다양한 컴포넌트들의 컨트롤을 조정하고 제공한다. 클라이언트로서, 운영 체제는, Microsoft® Windows 10®과 같은, 상업적으로 이용 가능한 운영 체제일 수 있다. the JavaTM 프로그래밍 시스템과 같은, 객체 지향 프로그래밍 시스템 은 운영 체제와 함께 실행될 수 있으며 데이터 처리 시스템(400) 상에서 실행되는 JavaTM 프로그램들 또는 애플리케이션들로부터 운영 체제에 대한 호출들을 제공한다.
[0088] 서버로서, 데이터 처리 시스템(400)은, 예를 들어, 어드밴스드 인터액티브 이그제큐티브(AIX®) 운영 체제 또는 LINUX® 운영체제를 실행하는, IBM® eServer™ System p5® 컴퓨터 시스템, Power® 프로세서 기반 컴퓨터 시스템, 등 일 수 있다. 데이터 처리 시스템(400)은 처리 유닛(406)에 복수의 프로세서들을 포함하는 대칭 멀티프로세서(SMP) 시스템일 수 있다. 대안적으로, 단일 프로세서 시스템이 사용될 수 있다. IBM, IBM Watson, eServer, System p5, Power 및 AIX는 전 세계 여러 관할 구역에 등록된, 인터내셔널 비즈니스 머신즈 코포레이션의 상표들이다. 등록 상표 Linux®는 전 세계적으로 해당 상표의 소유자인 Linus Torvalds의 독점 라이선스인 Linux Foundation의 하위 라이선스에 따라 사용된다. Java 및 모든 Java 기반 상표들 및 로고들은 Oracle 및/또는 그 계열사들의 상표들 또는 등록 상표들이다. Microsoft 및 Windows는 미국 또는 기타 국가에서 사용되는 Microsoft Corporation의 상표들이다.
[0089] 운영 체제, 객체 지향 프로그래밍 시스템, 및 애플리케이션들 또는 프로그램들에 대한 명령들은 HDD(426)와 같은 스토리지 디바이스들 상에 위치하며 처리 유닛(406)에 의한 실행을 위해 주 메모리(408)에 로드 될 수 있다. 본 발명의 예시적 실시 예들을 위한 프로세스들은, 예를 들어, 주 메모리(408), ROM(424)과 같은 메모리, 또는, 예를 들어, 하나 또는 그 이상의 주변 장치들(426 , 430)에 위치할 수 있는, 컴퓨터 사용 가능 프로그램 코드를 사용하여 처리 유닛(406)에 의해 수행될 수 있다.
[0090] 도 4에 도시된 바와 같은 버스(438) 또는 버스(440)와 같은, 버스 시스템은 하나 또는 그 이상의 버스들로 구성될 수 있다. 물론, 상기 버스 시스템은 패브릭 또는 아키텍처에 부착된 다양한 컴포넌트들 또는 디바이스들 간의 데이터 전송을 제공하는 모든 유형의 통신 패브릭 또는 아키텍처를 사용하여 구현될 수 있다. 도 4의 모뎀(422) 또는 네트워크 어댑터(412)와 같은, 통신 유닛은 데이터를 전송 및 수신하는 데 사용되는 하나 또는 그 이상의 디바이스들을 포함할 수 있다. 메모리는, 예를 들어, 주 메모리(408), ROM(424), 또는 도 4의 NB/MCH(402)에서 볼 수 있는 것과 같은, 캐시일 수 있다.
[0091] 위에서 언급한 바와 같이, 일부 예시적인 실시 예들에서 예시적인 실시 예들의 메커니즘들은 애플리케이션 특정 하드웨어, 펌웨어 등으로 구현될 수 있고, 또한 HDD(426)와 같은, 스토리지 디바이스에 저장되고 메인 메모리(408)와 같은 메모리에 로드되어, 처리 유닛(406) 등과 같은, 하나 또는 그 이상의 하드웨어 프로세서들에 의해 실행되는 애플리케이션 소프트웨어로 구현될 수 있다. 따라서, 도 4에 도시된 컴퓨팅 디바이스는 예시적인 실시 예들의 메커니즘들을 구현하도록 특별히 구성되고 , 프라이버시 강화 딥 러닝 클라우드 서비스 프레임워크 및 하나 또는 그 이상의 처리 파이프라인를 구현하는 딥 러닝 클라우드 서비스 와 관련하여 여기서 설명된 연산들을 수행하고 출력들을 생성하도록 특별히 구성된다.
[0092] 당업자는 도 3 및 도 4의 하드웨어가 구현에 따라 달라질 수 있음을 이해할 것이다. 플래시 메모리, 동등한 비-휘발성 메모리 또는 광 디스크 드라이브들, 등과 같은, 다른 내부 하드웨어 또는 주변 장치들이 도 3 및 4에 도시된 하드웨어에 추가로 또는 대신에 사용될 수 있다. 또한, 예시적인 실시 예들의 프로세스들은, 본 발명의 범위를 벗어나지 않고, 앞서 언급된 SMP 시스템 이외의, 멀티프로세서 데이터 처리 시스템에도 적용될 수 있다.
[0093] 더욱이, 데이터 처리 시스템(400)은 클라이언트 컴퓨팅 디바이스들, 서버 컴퓨팅 디바이스들, 태블릿 컴퓨터, 랩톱 컴퓨터, 전화 또는 기타 통신 장치, 개인 휴대 정보 단말기(PDA), 등을 포함하는 다수의 다양한 데이터 처리 시스템들의 모든 형태를 취할 수 있다. 일부 예시적인 예들에서, 데이터 처리 시스템(400)은, 예를 들어, 운영 체제 파일들 및/또는 사용자 생성 데이터를 저장하기 위한 비휘발성 메모리를 제공하기 위해 플래시 메모리로 구성된 휴대용 컴퓨팅 디바이스일 수 있다. 본질적으로, 데이터 처리 시스템(400)은 아키텍처 제한이 없는 모든 공지되거나 나중에 개발되는 데이터 처리 시스템일 수 있다.
[0094] 도 5는 하나의 예시적인 실시 예들에 따른 사전-처리 단계 기능들을 수행하기 위한 예시적인 연산을 개괄하는 플로차트이다. 도 5에 도시된 바와 같이, 연산은 훈련 데이터 세트를 사용하여 DL 모델을 훈련함으로써 시작된다(단계 510). DL 모델을 훈련시킨 후, 훈련 데이터는 훈련된 DL 모델에 다시 입력되고(단계 515), 각 훈련 데이터 인스턴스에 대한 훈련된 DL 모델의 신경 흐름이 캡처될 수 있다(단계 520). 캡처된 신경 흐름들은 그 다음 훈련된 DL 모델의 각 출력 클래스에 대해 집계되고, 그런 다음 클래스에 대한 상기 집계는 상기 클래스에 대한 신경 흐름 모델이 된다(단계 525). 상기 신경 흐름 모델은 배치된 훈련된 DL 모델의 무결성을 검증하는 데 나중에 사용하기 위해 측정 데이터베이스에 저장된다(단계 530).
[0095] DL 모델을 훈련하고, 훈련된 DL 모델의 신경 흐름을 캡처하며, 다양한 클래스에 대한 신경 흐름 모델을 생성하고 저장한 후, 훈련된 DL 모델은 클라우드 컴퓨팅 플랫폼에 배치된다(단계 535). 얼마 후, 사용자는 컴퓨팅 시스템을 통해 배치된 DL 모델의 무결성을 검증하기 위해 클라우드 컴퓨팅 플랫폼에 요청을 보낼 수 있다(단계 540). 상기 요청은 클라우드 컴퓨팅 플랫폼에서 작동하는 런타임 신경 흐름 증명 엔진으로부터 반환되는 증명을 봉인하거나 보호하는 데 사용되는 챌린지 C를 포함할 수 있다.
[0096] 상기 요청에 응답하여, 클라우드 컴퓨팅 플랫폼에서 런타임 신경 흐름 증명 엔진은 증명을 생성하고, 그 다음 이는 NF 증명 엔진에 의해 수신된다(단계 545). 상기 증명은 상기 요청과 함께 제출된 입력에 대해 배치된 훈련된 DL 모델에 의해 생성된 출력 클래스와 함께 런타임 신경 흐름 증명 엔진에 의해서 캡처된 신경 흐름을 포함한다. NF 증명 엔진은 상기 출력 클래스에 대한 대응하는 저장된 신경 흐름 모델을 검색하고 상기 증명의 신경 흐름을 상기 출력 클래스에 대해 검색된 신경 흐름 모델과 비교한다(단계 550). 비교가 배치된 훈련된 DL 모델의 잠재적인 손상을 표시하는 기준을 충족하는지에 대한 결정이 내려진다(단계 555). 예를 들어, 컴퓨터 실행 가능한 규칙들, 임계값들, 등이 상기 증명의 신경 흐름과 상기 신경 흐름 모델 간의 불일치들에 적용될 수 있는데, 이는 상기 불일치들이 손상을 표시하는지를 결정하기 위해서이다.
[0097] 만일 상기 비교가 손상이 없다는 결과를 생성한다면, 연산은 종료된다. 그렇지 않고, 만일 비교가 잠재적인 손상이 있다는 결과를 생성한다면, 경고가 생성되고 승인된 사용자에게 출력된다(단계 560). 선택적으로, 배치된 훈련된 DL 모델은 철회될 수 있다(단계 565). 배치된 훈련된 DL 모델의 철회는 승인된 사용자에게 경고하고 승인된 사용자에게 배치된 훈련된 DL 모델을 철회할 필요성을 확인하도록 요청한 후에 수행될 수 있다. 그런 다음 연산은 종료된다.
[0098] 도 6은 하나의 예시적인 실시 예들에 따른, 신경 흐름들의 런타임 신경 흐름 증명을 포함하는, 배치 단계 기능들을 수행하기 위한 예시적인 연산을 개괄하는 플로차트이다. 도 6에 설명된 연산은 훈련된 DL 모델이 이미 클라우드 컴퓨팅 플랫폼에 제공되고 사용을 위해 배치되었다고 가정한다.
[0099] 도 6에 도시된 바와 같이, 연산은 배치된 DL 모델의 실행 무결성을 검증하기 위한 요청을 수신함으로써 시작된다(단계 610). 위에서 논의된 바와 같이, 이 요청은 출력 분류를 생성하기 위해 배치된 DL 모델에 의해 처리될 입력 데이터와 동반될 수 있고, 무결성 검증 및 신선도 테스트(integrity verification and freshness testing)를 위해 챌린지 C를 더 포함할 수 있다. 일부 실시 예들에서, 보안 키가 또한, 앞서 설명된 바와 같은, 신뢰 실행 환경(the trusted execution environment)에 의해 생성된 증명을 암호화하거나 밀봉하는 데 사용하기 위해 교환될 수 있다. 상기 요청에 응답하여, 클라우드 컴퓨팅 플랫폼의 신뢰 실행 환경에서 배치된 DL 모델의 신경 흐름이 주어진 입력에 기초하여 캡처된다(단계 620). 상기 캡처된 신경 흐름, 출력 분류 및 챌린지 C에 기초하여, 상기 요청에 응답하기 위한 증명이 생성된다(단계 630). 그런 다음 상기 증명은 신경 흐름들에 기초하여 배치된 DL 모델의 런타임 실행 무결성을 검증하기 위해 요청자 컴퓨팅 시스템에서의 NF 증명 엔진으로 전송된다(단계 640). 그런 다음 연산은 종료된다.
[00100] 따라서, 예시적인 실시 예들은 컴퓨터 모델 내의 신경 흐름들에 기초하여 런타임 신경 흐름 증명 능력을 제공함으로써 배치된 훈련된 컴퓨터 모델의 무결성을 보장하기 위한 메커니즘들을 제공한다. 예시적인 실시 예들은 컴퓨터 모델의 배치 이전에 신경 흐름 모델을 기록하고 훈련된 컴퓨터 모델이 클라우드 컴퓨팅 서비스의 일부로 배치된 후 클라우드 컴퓨팅 플랫폼으로부터의 증명들을 검증하기 위한 기초로 이것을 사용한다. 따라서, 사용자(훈련된 컴퓨터 모델의 소유자)는, 사용자가 클라우드 컴퓨팅 플랫폼에 배치하기 위해 훈련된 컴퓨터 모델을 제공한 후, 우연히 또는 악의적으로 자신의 훈련된 컴퓨터 모델이 손상되었는지를 결정할 수 있다. 그 결과, 사용자는, 손상된 컴퓨터 모델에 의존하지 않도록, 배치된 컴퓨터 모델을 철회하는 등의 대응 조치를 취할 수 있다.
[00101] 본 발명의 실시 예들은 현재 알려져 있거나 나중에 개발될 모든 유형의 컴퓨팅 환경과 함께 구현될 수 있다. 일부 예시적인 실시 예들에서, 예시적인 실시 예들의 메커니즘들은 클라우드 컴퓨팅 시스템들 상에서 구현되지만, 그러나, 여기에서 설명된 기술적 사상들의 구현은 클라우드 컴퓨팅 환경으로 제한되지 않는다. 다양한 유형들의 분산 데이터 처리 시스템 환경들이 예시적인 실시 예들의 메커니즘들을 구현하기 위해 이용될 수 있다.
[00102] 클라우드 컴퓨팅 실시예가 활용된다고 가정하면, 클라우드 컴퓨팅은, 최소한의 관리 노력 또는 서비스 제공자와의 상호작용으로 빠르게 제공되고 해제될 수 있는, 구성 가능한(configurable) 컴퓨팅 자원들(예를 들어, 네트워크들, 네트워크 대역폭, 서버들, 처리, 메모리, 스토리지, 애플리케이션들, 가상 머신들, 및 서비스들)의 공유 풀에 대한 편리한 주문형(on-demand) 네트워크 액세스를 가능하게 하는 서비스 전달 모델이다. 이 클라우드 모델은 적어도 5가지의 특성(characteristics), 적어도 3가지 서비스 모델(service models), 및 적어도 4가지 배치 모델(deployment models)을 포함할 수 있다.
[00103] 클라우드 컴퓨팅 특성들은 다음과 같다.
(1) 주문형 셀프-서비스(On-demand self-service): 클라우드 소비자는, 서비스 제공자와의 인적 상호작용을 필요로 하지 않고 필요한 만큼 자동적으로, 서버 시간(server time) 및 네트워크 스토리지 같은 컴퓨팅 용량들을 일방적으로 제공(provision)할 수 있다.
(2) 광역 네트워크 액세스(Broad network access): 혼성의 씬 또는 씩 클라이언트 플랫폼들(heterogeneous thin or thick client platforms)(예를 들어, 모바일폰들, 랩탑들, 및 PDA들)에 의한 사용을 장려하는 표준 메커니즘들을 통해 액세스되는 기능들을 네트워크를 통해서 이용할 수 있다.
(3) 자원 풀링(Resource pooling): 제공자의 컴퓨팅 자원들은, 각기 다른 물리적 및 가상 자원들을 요구(demand)에 따라 동적으로 할당 및 재할당하는, 멀티-테넌트 모델(a multi-tenant model)을 사용하는 다수의 소비자들에게 서비스할 수 있도록 풀에 넣어둔다(pooled). 소비자는 일반적으로 제공된 자원들의 정확한 위치를 제어할 수 없거나 그에 대한 지식이 없지만 더 높은 추상 수준에서(예를 들어, 국가, 주, 또는 데이터센터) 위치를 명시할 수 있다는 점에서 위치 독립성이 있다.
(4) 기민한 탄력성(Rapid elasticity): 용량들(capabilities)이 기민하게 탄력적으로 제공되어 (어떤 경우엔 자동으로) 신속히 규모를 확장할 수도 있고(scale out) 그리고 탄력적으로 해제되어 신속히 규모를 축소할 수도 있다(scale in). 소비자에게 제공할 수 있는 가능성이 종종 무제한이고 언제든지 원하는 수량으로 구매할 수 있는 것처럼 보인다.
(5) 측정 가능한 서비스(Measured service): 클라우드 시스템들은 자원 사용을 자동으로 제어하고 최적화하는데, 서비스의 유형(예를 들어, 스토리지, 처리, 대역폭, 및 활성 사용자 계정)에 적절한 추상화 수준에서(at some level of abstraction) 계측 기능을 이용하여서 그렇게 한다. 자원 사용량은 모니터 되고, 제어되고, 그리고 보고될 수 있으며 이로써 이용하는 서비스의 제공자와 사용자 모두에게 투명성을 제공한다.
[00104] 서비스 모델들(Service Models)은 다음과 같다.
(1) 소프트웨어 서비스(Software as a Service)(SaaS): 소비자에게 제공되는 서비스는 클라우드 하부구조 상에서 실행되는 제공자의 애플리케이션들을 사용하게 해주는 것이다. 애플리케이션들은 웹 브라우저(예를 들어, 웹기반 이메일) 같은 씬(thin) 클라이언트 인터페이스를 통해 여러 클라이언트 장치들에서 액세스 가능하다. 소비자는 네트워크, 서버들, 운영 체제들, 스토리지, 또는 개별 애플리케이션 능력들을 포함하는 하부 클라우드 하부구조를 관리하거나 제어하지 않는다. 단, 제한된 사용자-특정 애플리케이션 구성 세팅들은 예외로서 가능하다.
(2) 플랫폼 서비스(Platform as a Service)(PaaS): 소비자에게 제공되는 서비스는 제공자에 의해 지원되는 프로그래밍 언어들 및 도구들을 이용하여 생성된 소비자-생성 또는 획득 애플리케이션들을 클라우드 하부구조에 배치하게 해주는 것이다. 소비자는 네트워크, 서버들, 운영 체제들, 또는 스토리지를 포함하는 하부 클라우드 하부구조를 관리하거나 제어하지 않는다. 그러나 배치된 애플리케이션들에 대해서 그리고 가능한 경우 애플리케이션 호스팅 환경 구성들에 대해서 제어할 수 있다.
(3) 하부구조 서비스(Infrastructure as a Service)(IaaS): 소비자에게 제공되는 서비스는 처리, 스토리지, 네트워크, 및 기타 기본 컴퓨팅 자원들을 제공하여 주는 것이며, 여기서 소비자는 임의의 소프트웨어를 배치 및 실행할 수 있고, 이 소프트웨어에는 운영 체제들과 애플리케이션들이 포함될 수 있다. 소비자는 하부 클라우드 하부구조를 관리하거나 제어하지 않지만, 운영 체제들, 스토리지, 배치된 애플리케이션들, 및 가능한 경우 선택된 네트워킹 컴포넌트들의 제한적인 제어(예를 들어, 호스트 방화벽들)에 대하여 제어할 수 있다.
[00105] 배치 모델들(Deployment Models)은 다음과 같다.
(1) 사설 클라우드(Private cloud): 클라우드 하부구조는 오직 한 조직(an organization)을 위해서 운영되고, 그 조직 또는 제3자에 의해 관리될 수 있으며 옥내(on-premises) 또는 옥외(off-premises)에 위치할 수 있다.
(2) 커뮤니티 클라우드(Community cloud): 클라우드 하부구조는 여러 조직들에 의해 공유되고 관심사(예를 들어, 선교, 보안 요건, 정책, 및 규정 준수 심사)를 공유하는 특정 커뮤니티를 지원한다. 클라우드 하부구조는 여러 조직들 또는 제3자에 의해 관리될 수 있으며 옥내(on-premises) 또는 옥외(off-premises)에 위치할 수 있다.
(3) 공공 클라우드(Public cloud): 클라우드 하부구조는 일반 대중 또는 대규모 산업 집단에서 이용할 수 있으며 클라우드 서비스를 판매하는 조직이 소유한다.
(4) 하이브리드 클라우드(Hybrid cloud): 클라우드 하부구조는 둘 또는 그 이상의 클라우드들(사설, 커뮤니티, 또는 공공)이 혼합된 구성이며, 이들은 고유한 주체들로 있지만 데이터 및 애플리케이션 이식가능성(portability)을 가능하게 해주는 표준화된 또는 소유권 있는 기술(예를 들어, 클라우드들 사이의 부하 균형을 위한 클라우드 버스팅(cloud bursting))에 의해 서로 결합되어 있다.
[00106] 클라우드 컴퓨팅 환경은 무국적(statelessness), 낮은 결합(low coupling), 모듈 방식(modularity), 및 의미적 상호운용성(semantic interoperability)에 집중하는 서비스를 지향한다. 클라우드 컴퓨팅의 중심에는 상호 연결된 노드들의 네트워크를 포함하는 하부구조가 있다.
[00107] 이제 도 7을 참조하면, 예시적인 클라우드 컴퓨팅 환경(750)이 도시된다. 도시된 바와 같이, 클라우드 컴퓨팅 환경(750)은 클라우드 소비자들에 의해 사용되는 로컬 컴퓨팅 디바이스들이 통신할 수 있는 하나 또는 그 이상의 클라우드 컴퓨팅 노드들(710)을 포함한다. 이들 로컬 컴퓨팅 디바이스들의 예들에는 개인 휴대 정보 단말기(PDA) 또는 셀룰러 전화(754A), 데스크톱 컴퓨터(754B), 랩톱 컴퓨터(754C) 및/또는 자동차 컴퓨터 시스템(754N)이 포함된다. 노드들(710)은 서로 통신할 수 있다. 그들은 여기에 기술된 바와 같은 사설, 커뮤니티, 공공, 또는 하이브리드 클라우드들 또는 이들의 조합 등의 하나 또는 그 이상의 네트워크들에서 물리적으로 또는 가상으로 그룹화될 수 있다(도시되지 않음). 이것은 클라우드 소비자가 로컬 컴퓨팅 디바이스 상에 자원들을 유지할 필요가 없게 클라우드 컴퓨팅 환경(750)이 하부구조, 플랫폼들 및/또는 소프트웨어를 서비스로서 제공할 수 있게 해준다. 도 7에 도시된 컴퓨팅 디바이스들(754A-N)의 유형들은 단지 예시의 목적으로 기술한 것이며 클라우드 컴퓨팅 환경(750)은 모든 유형의 네트워크 및/또는 네트워크 주소지정가능 연결을 통해서 (예를 들어, 웹 브라우저를 사용하여) 모든 유형의 컴퓨터화 된 디바이스와 통신할 수 있다는 것을 이해해야 한다.
[00108] 이제 도 8를 참조하면, (도 7의) 클라우드 컴퓨팅 환경(750)에 의해 제공되는 일 세트의 기능별 추상화 층들이 도시된다. 도 8에 도시된 컴포넌트들, 층들, 및 기능들은 단지 예시의 목적이며 실시 예들에 한정되지 않는다는 것을 미리 이해해야 한다. 도시된 바와 같이, 다음의 층들과 그에 대응하는 기능들이 제공된다:
[00109] (1) 하드웨어 및 소프트웨어 층(860)은 하드웨어 및 소프트웨어 컴포넌트들을 포함한다. 하드웨어 컴포넌트들의 예들에는: 메인프레임들(861); RISC(Reduced Instruction Set Computer) 아키텍처 기반 서버들(862); 서버들(863); 블레이드 서버들(864); 스토리지 디바이스들(865); 그리고 네트워크들 및 네트워킹 컴포넌트들(866)가 포함된다. 일부 실시예에서, 소프트웨어 컴포넌트들은 네트워크 애플리케이션 서버 소프트웨어(867) 및 데이터베이스 소프트웨어(868)를 포함한다.
[00110] (2) 가상화 층(870)은 추상화 층을 제공하며 이로부터 다음의 가상 주체들의 예들이 제공될 수 있다: 가상 서버들(871); 가상 스토리지(872); 가상 사설 네트워크를 포함하는, 가상 네트워크들(873); 가상 애플리케이션들 및 운영 체제들(874); 및 가상 클라이언트들(875).
[00111] 일 예에서, 한 예에서, 관리 층(880)은 아래에 기술하는 기능들을 제공한다. 자원 제공(Resource provisioning)(881)은 클라우드 컴퓨팅 환경 내에서 작업들을 수행하는 데 이용되는 컴퓨팅 자원들 및 기타 자원들의 동적 조달을 제공한다. 계측 및 가격 책정(Metering and Pricing)(882)은 자원들이 클라우드 컴퓨팅 환경 내에서 이용될 때 비용 추적, 및 이 자원들의 소비에 대한 요금 청구 또는 송장을 제공한다. 한 예에서, 이 자원들은 애플리케이션 소프트웨어 라이센스를 포함할 수 있다. 보안(Security)은 데이터 및 기타 자원들에 대한 보호뿐만 아니라 클라우드 소비자들과 작업들에 대한 신원 확인을 제공한다. 사용자 포털(User portal)(883)은 소비자들 및 시스템 관리자들에게 클라우드 컴퓨팅 환경에 대한 액세스를 제공한다. 서비스 수준 관리(Service level management)(884)는 요구되는 서비스 수준이 충족되도록 클라우드 컴퓨팅 자원 할당 및 관리를 제공한다. 서비스 수준 협약서(SLA) 기획 및 충족(planning and fulfillment)(885)은 SLA에 부합하는 예상되는 미래 요건에 맞는 클라우드 컴퓨팅 자원들의 사전-배치(pre-arrangement) 및 조달(procurement)을 제공한다.
[00112] 워크로드 층(890)은 클라우드 컴퓨팅 환경이 이용될 수 있는 기능들의 예들을 제공한다. 이 층에서 제공될 수 있는 워크로드들과 기능들의 예들은: 맵핑 및 네비게이션(891); 소프트웨어 개발 및 라이프사이클 관리(892); 가상 교실 교육 전달(893); 데이터 분석 처리(894); 트랜잭션 처리(895); 및 딥 러닝 클라우드 컴퓨팅 서비스 처리(896)를 포함한다. 딥 러닝 클라우드 컴퓨팅 서비스 처리(896)는 파이프라인들, 컴퓨터 모델들(예: DL 모델들) 및, 도 2의 런타임 신경 흐름 증명 엔진(230)과 같은, 런타임 신경 흐름 증명 엔진 메커니즘을 포함할 수 있으며, 이에 관해서는 설명된 예시적인 실시 예들들 중 하나 또는 그 이상과 관련하여 앞서 설명된 바와 같다.
[00113] 위에서 언급한 바와 같이, 예시적인 실시 예들은 전체 하드웨어 실시예, 전체 소프트웨어 실시예 또는 하드웨어 및 소프트웨어 엘리멘트들 모두를 포함하는 실시예의 형태를 취할 수 있음을 이해해야 한다. 하나의 예시적인 실시 예들에서, 예시적인 실시 예들들의 메커니즘은, 펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함하지만 이에 국한되지 않는, 소프트웨어 또는 프로그램 코드로 구현된다.
[00114] 프로그램 코드를 저장 및/또는 실행하기에 적합한 데이터 처리 시스템은 적어도 하나의 프로세서를 포함할 것이며, 상기 프로세서는, 예를 들어, 시스템 버스와 같은, 통신 버스를 통해 메모리 엘리멘트들에 직접 또는 간접적으로 결합될 것이다. 상기 메모리 엘리멘트들은 프로그램 코드의 실제 실행 동안 채용되는 로컬 메모리, 벌크 스토리지, 및 실행 동안 벌크 스토리지로부터 코드가 검색되어야 하는 횟수를 줄이기 위해 적어도 일부 프로그램 코드의 임시 스토리지를 제공하는 캐시 메모리를 포함할 수 있다. 상기 메모리는 ROM, PROM, EPROM, EEPROM, DRAM, SRAM, 플래시 메모리, 솔리드 스테이트 메모리 등을 포함하지만 이에 제한되지 않는 다양한 유형들일 수 있다.
[00115] 입력/출력 또는 I/O 디바이스들(키보드들, 디스플레이들, 포인팅 장치들 등을 포함하지만 이에 국한되지 않음)은 직접 또는 개입하는 유선 또는 무선 I/O 인터페이스들 및/또는 컨트롤러들, 등을 통해 시스템에 연결될 수 있다. I/O 디바이스들은, 예를 들어, 스마트폰들, 태블릿 컴퓨터들, 터치 스크린 디바이스들, 음성 인식 디바이스들, 등을 포함하지만 이에 국한되지 않는 유선 또는 무선 연결들을 통해 결합된 예를 들어 통신 디바이스들과 같은, 기존의 키보드들, 디스플레이들, 포인팅 장치들, 등과 다른 다양한 형태들을 취할 수 있다. 모든 공지되거나 이후에 개발되는 I/O 디바이스는 예시적인 실시 예들의 범위 내에 있는 것으로 의도된다.
[00116] 네트워크 어댑터들도 또한 상기 시스템에 결합되어 데이터 처리 시스템이 중개하는 사설 또는 공공 네트워크들을 통해 다른 데이터 처리 시스템들 또는 원격 프린터들 또는 스토리지 디바이스들에 연결될 수 있도록 할 수 있다. 모뎀들, 케이블 모뎀들 및 이더넷 카드들은 유선 통신들을 위한 현재 이용 가능한 유형의 네트워크 어댑터들 중 일부에 불과한다. 802.11 a/b/g/n 무선 통신 어댑터들, 블루투스 무선 어댑터들, 등을 포함하지만 이에 제한되지 않는 무선 통신 기반 네트워크 어댑터들이 사용될 수도 있다. 모든 공지되거나 이후에 개발된 네트워크 어댑터들도 본 발명의 범위 내에 있는 것으로 의도된다.
[00117] 본 발명의 설명은 예시 및 설명의 목적으로 제시되었으며, 개시된 형태의 본 발명이 전부라거나 이에 제한하도록 의도되지 않는다. 기술된 실시 예들의 범위를 벗어남이 없이 많은 수정들 및 변형들이 당업자들에게 명백할 것이다. 실시 예들은 본 발명의 원리들, 실제 적용을 가장 잘 설명하고, 당업자가 고려되는 특정 용도에 적합한 다양한 수정들을 갖는 다양한 실시 예들에 대해 본 발명을 이해할 수 있도록 하기 위해 선택되고 설명되었다. 본 명세서에서 사용된 용어들은 실시 예들의 원리들, 시장에서 발견되는 기술들에 대한 실제 응용 또는 기술적 개선을 가장 잘 설명하거나, 또는 당업자가 본 명세서에 개시된 실시예를 이해할 수 있게 하기 위해 선택되었다.

Claims (21)

  1. 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하는 데이터 처리 시스템에서, 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해서 실행되는 명령들을 포함하고, 상기 명령들이 신경 흐름 증명 엔진(a neural flow attestation engine)을 구현하도록 상기 적어도 하나의 프로세서를 구성하는 방법에 있어서, 상기 방법은:
    훈련된 컴퓨터 모델에 입력 데이터를, 상기 신경 흐름 증명 엔진에 의해, 입력하는 단계 - 상기 훈련된 컴퓨터 모델은 복수의 뉴런 층들을 포함함 -;
    상기 입력 데이터의 입력 데이터 인스턴스들 세트에 대해, 상기 훈련된 컴퓨터 모델에 의해 생성된 출력 클래스 및 상기 복수의 뉴런 층들을 통한 신경 흐름을, 상기 신경 흐름 증명 엔진에 의해, 기록하는 단계 - 이에 의해서 기록된 신경 흐름들을 생성하며, 상기 출력 클래스는 복수의 가능한 출력 클래스들 중 하나임-;
    상기 훈련된 컴퓨터 모델을 컴퓨팅 플랫폼에 배치하는 단계; 및
    상기 배치된 훈련된 컴퓨터 모델의 런타임 신경 흐름 및 상기 기록된 신경 흐름들에 기초하여 상기 배치된 훈련된 컴퓨터 모델의 무결성을, 상기 신경 흐름 증명 엔진에 의해, 검증하는 단계를 포함하는
    방법.
  2. 제1항에 있어서, 상기 방법은:
    상기 기록된 신경 흐름들에 기초하여 신경 흐름 모델을, 상기 복수의 가능한 출력 클래스들의 각 클래스에 대해, 상기 신경 흐름 증명 엔진에 의해, 생성하는 단계; 및
    각 신경 흐름 모델을 측정 데이터베이스에, 상기 신경 흐름 증명 엔진에 의해, 저장하는 단계를 더 포함하고, 상기 배치된 훈련된 컴퓨터 모델의 실행 무결성을 검증하는 단계는 상기 런타임 신경 흐름을 측정 데이터베이스에 저장된 신경 흐름 모델들 중 하나 또는 그 이상과 비교하는 단계를 포함하는
    방법.
  3. 제2항에 있어서, 상기 기록된 신경 흐름들에 기초하여 신경 흐름 모델을, 복수의 가능한 출력 클래스들의 각 클래스에 대해, 생성하는 단계는, 각 클래스에 대해, 활성화된 뉴런들 및 필터들의 세트를 식별하는 단계 또는 활성화들 및 활성화 발생 빈도를 고려하여 활성화된 뉴런들 및 필터들에 기초한 머신 러닝 모델을 훈련하는 단계 중 적어도 하나에 의해서 상기 클래스와 연관된 상기 기록된 신경 흐름들을 집계하는 단계를 포함하는
    방법.
  4. 제2항 또는 제3항에 있어서, 상기 측정 데이터베이스는 상기 훈련된 컴퓨터 모델의 제공자와 연관된 테넌트 컴퓨팅 디바이스 상에 저장되고, 상기 데이터 처리 시스템은 클라우드 컴퓨팅 플랫폼의 개별 컴퓨팅 시스템인
    방법.
  5. 제4항에 있어서, 상기 배치된 훈련된 컴퓨터 모델의 실행 무결성을 검증하는 단계는:
    상기 배치된 훈련된 컴퓨터 모델에 의해 처리된 런타임 입력 데이터에 기초하여 상기 배치된 훈련된 컴퓨터 모델의 런타임 신경 흐름을 기록하는 단계;
    상기 기록된 런타임 신경 흐름을 테넌트 컴퓨팅 디바이스로, 상기 데이터 처리 시스템으로부터, 전송하는 단계; 및
    상기 기록된 런타임 신경 흐름을 상기 런타임 입력 데이터에 대해 배치된 훈련된 컴퓨터 모델에 의해 생성된 런타임 출력 클래스와 동일한 클래스에 대응하는 상기 측정 데이터베이스의 하나 또는 그 이상의 저장된 신경 흐름 모델들과 비교하는 단계를 포함하는
    방법.
  6. 이전의 항들 중 어느 한 항에 있어서, 상기 배치된 훈련된 컴퓨터 모델의 런타임 신경 흐름 및 상기 기록된 신경 흐름들에 기초하여 상기 배치된 훈련된 컴퓨터 모델의 무결성을 검증하는 단계는:
    상기 런타임 신경 흐름과 상기 런타임 입력 데이터에 대해 상기 배치된 훈련된 컴퓨팅 모델에 의해 생성된 것과 동일한 출력 클래스에 대응하는 하나 또는 그 이상의 기록된 신경 흐름들 사이의 편차들을 결정하는 단계; 및
    상기 편차들이 미리 결정된 기준을 충족하는 것에 응답하여 상기 배치된 훈련된 컴퓨터 모델의 실행 무결성이 손상되었음(compromised)을 결정하는 단계를 포함하는
    방법.
  7. 제6항에 있어서, 상기 방법은:
    상기 배치된 훈련된 컴퓨터 모델의 무결성이 손상되었다고 결정하는 것에 응답하여, 상기 배치된 훈련된 컴퓨터 모델의 사용자에 의한 추가 액세스로부터 상기 배치된 훈련된 컴퓨터 모델을 철회하는 단계(retracting)를 더 포함하는
    방법.
  8. 이전의 항들 중 어느 한 항에 있어서, 상기 입력 데이터의 입력 데이터 인스턴스들 세트에 대해, 상기 훈련된 컴퓨터 모델에 의해 생성된 출력 클래스 및 상기 복수의 뉴런 층들을 통한 신경 흐름을 기록하는 단계는:
    상기 데이터 처리 시스템에 신뢰 실행 환경(TEE)을 생성하는 단계;
    상기 입력 데이터 인스턴스에 대해서 상기 복수의 뉴런 층들을 통해 신경 흐름을, 상기 신뢰할 수 있는 실행 환경 내에서 실행되는 신경 흐름 기록 컴포넌트에 의해, 기록하는 단계; 및
    상기 신뢰할 수 있는 실행 환경 내에서 실행되는 증명 생성 엔진에 의해, 상기 입력 데이터 인스턴스에 대해서 상기 복수의 뉴런 층들을 통해 기록된 신경 흐름 및 상기 입력 데이터 인스턴스에 대해서 상기 배치된 훈련된 컴퓨터 모델에 의해 생성된 출력 클래스를 포함하는 증명을 생성하는 단계를 포함하는
    방법.
  9. 제8항에 있어서, 상기 입력 데이터의 입력 데이터 인스턴스들 세트에 대해, 상기 훈련된 컴퓨터 모델에 의해 생성된 출력 클래스 및 상기 복수의 뉴런 층들을 통한 신경 흐름을 기록하는 단계는:
    상기 컴퓨터 모델의 제공자의 컴퓨팅 디바이스에 의해 제공되는 챌린지에 더 기초하여 상기 증명을, 상기 증명 생성 엔진에 의해, 생성하는 단계;
    상기 컴퓨터 모델 제공자의 컴퓨팅 디바이스와 상기 TEE 사이에 교환되는 보안 키에 기초하여 상기 증명을, 상기 증명 생성 엔진에 의해, 암호화하는 단계 -이에 의해서 암호화된 증명을 생성함-; 및
    상기 암호화된 증명을 상기 컴퓨터 모델 제공자의 컴퓨팅 디바이스로, 데이터 처리 시스템에 의해, 전송하는 단계를 더 포함하는
    방법.
  10. 이전의 항들 중 어느 한 항에 있어서, 상기 컴퓨팅 플랫폼은 하나 또는 그 이상의 테넌트들을 갖는 클라우드 컴퓨팅 플랫폼인
    방법.
  11. 시스템에 있어서, 상기 시스템은:
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 결합된 적어도 하나의 메모리를 포함하고, 상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서가 신경 흐름 증명 엔진을 구현하도록 하는 명령들을 포함하며, 상기 신경 흐름 증명 엔진은 동작들을 수행하도록 구성되고, 상기 동작들은:
    훈련된 컴퓨터 모델에 입력 데이터를 입력하는 단계 - 상기 훈련된 컴퓨터 모델은 복수의 뉴런 층들을 포함함 -;
    상기 입력 데이터의 입력 데이터 인스턴스들 세트에 대해, 상기 훈련된 컴퓨터 모델에 의해 생성된 출력 클래스 및 상기 복수의 뉴런 층들을 통한 신경 흐름을 기록하는 단계 - 이에 의해서 기록된 신경 흐름들을 생성하며, 상기 출력 클래스는 복수의 가능한 출력 클래스들 중 하나임-;
    상기 훈련된 컴퓨터 모델을 컴퓨팅 플랫폼에 배치하는 단계; 및
    상기 배치된 훈련된 컴퓨터 모델의 런타임 신경 흐름 및 상기 기록된 신경 흐름들에 기초하여 상기 배치된 훈련된 컴퓨터 모델의 무결성을 검증하는 단계를 포함하는
    시스템.
  12. 제11항에 있어서, 상기 신경 흐름 증명 엔진은:
    상기 기록된 신경 흐름들에 기초하여 신경 흐름 모델을, 상기 복수의 가능한 출력 클래스들의 각 클래스에 대해 생성하는 단계; 및
    각 신경 흐름 모델을 측정 데이터베이스에 저장하는 단계를 수행하도록 구성되고, 상기 배치된 훈련된 컴퓨터 모델의 실행 무결성을 검증하는 단계는 상기 런타임 신경 흐름을 측정 데이터베이스에 저장된 신경 흐름 모델들 중 하나 또는 그 이상과 비교하는 단계를 포함하는
    시스템.
  13. 제11항 또는 제12항에 있어서, 신경 흐름 증명 엔진은 상기 기록된 신경 흐름들에 기초하여 신경 흐름 모델을, 복수의 가능한 출력 클래스들의 각 클래스에 대해, 생성하는 단계를 수행하도록 구성되고, 각 클래스에 대해, 활성화된 뉴런들 및 필터들의 세트를 식별하는 단계 또는 활성화들 및 활성화 발생 빈도를 고려하여 활성화된 뉴런들 및 필터들에 기초한 머신 러닝 모델을 훈련하는 단계 중 적어도 하나에 의해서 상기 클래스와 연관된 상기 기록된 신경 흐름들을 집계하는 단계를 포함하는
    시스템.
  14. 제12항에 있어서, 상기 측정 데이터베이스는 상기 훈련된 컴퓨터 모델의 제공자와 연관된 테넌트 컴퓨팅 디바이스 상에 저장되고, 상기 데이터 처리 시스템은 클라우드 컴퓨팅 플랫폼의 개별 컴퓨팅 시스템인
    시스템.
  15. 제14항에 있어서, 상기 신경 흐름 증명 엔진은 상기 배치된 훈련된 컴퓨터 모델의 무결성을 검증하는 단계를 수행하도록 구성되고, 상기 배치된 훈련된 컴퓨터 모델의 무결성을 검증하는 단계는:
    상기 배치된 훈련된 컴퓨터 모델에 의해 처리된 런타임 입력 데이터에 기초하여 상기 배치된 훈련된 컴퓨터 모델의 런타임 신경 흐름을 기록하는 단계;
    상기 기록된 런타임 신경 흐름을 테넌트 컴퓨팅 디바이스로, 상기 데이터 처리 시스템으로부터, 전송하는 단계; 및
    상기 기록된 런타임 신경 흐름을 상기 런타임 입력 데이터에 대해 배치된 훈련된 컴퓨터 모델에 의해 생성된 런타임 출력 클래스와 동일한 클래스에 대응하는 상기 측정 데이터베이스의 하나 또는 그 이상의 저장된 신경 흐름 모델들과 비교하는 단계에 의해서 수행되는
    시스템.
  16. 제11항 내지 제15항의 항들 중 어느 한 항에 있어서, 상기 신경 흐름 증명 엔진은 상기 배치된 훈련된 컴퓨터 모델의 무결성을 검증하는 단계를 수행하도록 구성되고, 상기 배치된 훈련된 컴퓨터 모델의 무결성을 검증하는 단계는:
    상기 런타임 신경 흐름과 상기 런타임 입력 데이터에 대해 상기 배치된 훈련된 컴퓨팅 모델에 의해 생성된 것과 동일한 출력 클래스에 대응하는 하나 또는 그 이상의 기록된 신경 흐름들 사이의 편차들을 결정하는 단계; 및
    상기 편차들이 미리 결정된 기준을 충족하는 것에 응답하여 상기 배치된 훈련된 컴퓨터 모델의 실행 무결성이 손상되었음(compromised)을 결정하는 단계에 의해서 수행되는
    시스템.
  17. 제16항에 있어서, 상기 신경 흐름 증명 엔진은, 상기 배치된 훈련된 컴퓨터 모델의 실행 무결성이 손상되었다고 결정하는 것에 응답하여, 상기 배치된 훈련된 컴퓨터 모델의 사용자에 의한 추가 액세스로부터 상기 배치된 훈련된 컴퓨터 모델을 철회하는 단계(retracting)의 동작을 더 수행하도록 동작 가능한
    시스템.
  18. 제11항 내지 제17항의 항들 중 어느 한 항에 있어서, 상기 입력 데이터의 입력 데이터 인스턴스들 세트에 대해, 상기 훈련된 컴퓨터 모델에 의해 생성된 출력 클래스 및 상기 복수의 뉴런 층들을 통한 신경 흐름을 기록하는 단계는:
    상기 데이터 처리 시스템에 신뢰 실행 환경(TEE)을 생성하는 단계;
    상기 입력 데이터 인스턴스에 대해서 상기 복수의 뉴런 층들을 통해 신경 흐름을, 상기 신뢰할 수 있는 실행 환경 내에서 실행되는 신경 흐름 기록 컴포넌트에 의해, 기록하는 단계; 및
    상기 신뢰할 수 있는 실행 환경 내에서 실행되는 증명 생성 엔진에 의해, 상기 입력 데이터 인스턴스에 대해서 상기 복수의 뉴런 층들을 통해 기록된 신경 흐름 및 상기 입력 데이터 인스턴스에 대해서 상기 배치된 훈련된 컴퓨터 모델에 의해 생성된 출력 클래스를 포함하는 증명을 생성하는 단계를 포함하는
    시스템.
  19. 제18항에 있어서, 상기 입력 데이터의 입력 데이터 인스턴스들 세트에 대해, 상기 훈련된 컴퓨터 모델에 의해 생성된 출력 클래스 및 상기 복수의 뉴런 층들을 통한 신경 흐름을 기록하는 단계는:
    상기 컴퓨터 모델의 제공자의 컴퓨팅 디바이스에 의해 제공되는 챌린지에 더 기초하여 상기 증명을, 상기 증명 생성 엔진에 의해, 생성하는 단계;
    상기 컴퓨터 모델 제공자의 컴퓨팅 디바이스와 상기 TEE 사이에 교환되는 보안 키에 기초하여 상기 증명을, 상기 증명 생성 엔진에 의해, 암호화하는 단계 -이에 의해서 암호화된 증명을 생성함-; 및
    상기 암호화된 증명을 상기 컴퓨터 모델 제공자의 컴퓨팅 디바이스로, 데이터 처리 시스템에 의해, 전송하는 단계를 더 포함하는
    시스템.
  20. 신경 흐름 증명 엔진을 구현하기 위한 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 프로그램 제품은:
    처리 회로에 의해 판독 가능하고 제1항 내지 제10항의 항들 중 어느 한 항에 따른 방법을 수행하기 위해 처리 회로에 의한 실행을 위한 명령들을 저장하는 컴퓨터 판독 가능 저장 매체를 포함하는
    컴퓨터 프로그램 제품.
  21. 컴퓨터 판독 가능 매체에 저장되고 디지털 컴퓨터의 내부 메모리에 로드할 수 있는 컴퓨터 프로그램에 있어서, 상기 프로그램은, 컴퓨터에서 실행될 때, 제1항 내지 제10항의 항들 중 어느 한 항의 방법을 수행하기 위한 소프트웨어 코드 부분을 포함하는
    컴퓨터 프로그램.
KR1020227021173A 2020-01-23 2021-01-18 신경 흐름 증명 KR20220109418A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/750,328 US11783201B2 (en) 2020-01-23 2020-01-23 Neural flow attestation
US16/750,328 2020-01-23
PCT/IB2021/050346 WO2021148926A1 (en) 2020-01-23 2021-01-18 Neural flow attestation

Publications (1)

Publication Number Publication Date
KR20220109418A true KR20220109418A (ko) 2022-08-04

Family

ID=76970136

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227021173A KR20220109418A (ko) 2020-01-23 2021-01-18 신경 흐름 증명

Country Status (8)

Country Link
US (2) US11783201B2 (ko)
JP (1) JP2023511514A (ko)
KR (1) KR20220109418A (ko)
CN (1) CN115004153A (ko)
AU (1) AU2021210217B2 (ko)
DE (1) DE112021000689T5 (ko)
GB (1) GB2608033A (ko)
WO (1) WO2021148926A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11451480B2 (en) * 2020-03-31 2022-09-20 Micron Technology, Inc. Lightweight artificial intelligence layer to control the transfer of big data
US20220237503A1 (en) * 2021-01-26 2022-07-28 International Business Machines Corporation Machine learning model deployment within a database management system
CN114861912B (zh) * 2022-07-06 2022-09-16 武汉山川软件有限公司 一种基于大数据的数据验证方法和装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020193979A1 (en) 2001-05-17 2002-12-19 Paterson Thomas S. Apparatus and method for validating a computer model
WO2008063155A2 (en) 2005-10-18 2008-05-29 Drexel University Deception detection via functional near-infrared spectroscopy
US10977571B2 (en) * 2015-03-02 2021-04-13 Bluvector, Inc. System and method for training machine learning applications
CN105373785B (zh) 2015-11-30 2019-08-02 北京地平线机器人技术研发有限公司 基于深度神经网络的手势识别检测方法与装置
CN109964237B (zh) 2016-09-15 2020-07-17 谷歌有限责任公司 图像深度预测神经网络
CN107544904B (zh) 2017-08-21 2020-11-03 哈尔滨工程大学 一种基于深度cg-lstm神经网络的软件可靠性预测方法
EP3471005B1 (en) 2017-10-13 2021-11-03 Nokia Technologies Oy Artificial neural network
US10223610B1 (en) * 2017-10-15 2019-03-05 International Business Machines Corporation System and method for detection and classification of findings in images
US11301762B1 (en) * 2018-11-02 2022-04-12 Amazon Technologies, Inc. High perforamance machine learning inference framework for edge devices
US11313950B2 (en) * 2019-01-15 2022-04-26 Image Sensing Systems, Inc. Machine learning based highway radar vehicle classification across multiple lanes and speeds
US11295242B2 (en) * 2019-11-13 2022-04-05 International Business Machines Corporation Automated data and label creation for supervised machine learning regression testing
WO2021101945A1 (en) * 2019-11-19 2021-05-27 Captiv8, Inc. Systems and methods for identifying, tracking, and managing a plurality of social network users having predefined characteristcs

Also Published As

Publication number Publication date
DE112021000689T5 (de) 2022-12-08
US20210232933A1 (en) 2021-07-29
AU2021210217B2 (en) 2023-03-30
US11783201B2 (en) 2023-10-10
CN115004153A (zh) 2022-09-02
US20230394324A1 (en) 2023-12-07
GB2608033A (en) 2022-12-21
JP2023511514A (ja) 2023-03-20
GB202212229D0 (en) 2022-10-05
AU2021210217A1 (en) 2022-06-16
WO2021148926A1 (en) 2021-07-29

Similar Documents

Publication Publication Date Title
US11816575B2 (en) Verifiable deep learning training service
US10733292B2 (en) Defending against model inversion attacks on neural networks
Chen et al. Cyber security in smart cities: a review of deep learning-based applications and case studies
Vinayakumar et al. Robust intelligent malware detection using deep learning
US20220269942A1 (en) Privacy Enhancing Deep Learning Cloud Service Using a Trusted Execution Environment
US11775637B2 (en) Recurrent neural network based anomaly detection
Moustafa et al. Explainable intrusion detection for cyber defences in the internet of things: Opportunities and solutions
Charmet et al. Explainable artificial intelligence for cybersecurity: a literature survey
AU2021210217B2 (en) Neural flow attestation
Thuraisingham et al. A data driven approach for the science of cyber security: Challenges and directions
US20220100867A1 (en) Automated evaluation of machine learning models
Jabar et al. Exploration of mobile device behavior for mitigating advanced persistent threats (APT): a systematic literature review and conceptual framework
US11663329B2 (en) Similarity analysis for automated disposition of security alerts
Avci et al. Analyzing the performance of long short‐term memory architectures for malware detection models
Wei et al. Toward identifying APT malware through API system calls
Ni et al. Machine learning enabled industrial iot security: Challenges, trends and solutions
US12015691B2 (en) Security as a service for machine learning
Al-Sada et al. MITRE ATT&CK: State of the Art and Way Forward
Hisham et al. A comprehensive review of significant learning for anomalous transaction detection using a machine learning method in a decentralized blockchain network
Loaiza et al. Utility of artificial intelligence and machine learning in cybersecurity
Bertino et al. Machine Learning Techniques for Cybersecurity
Zoghi Ensemble Classifier Design and Performance Evaluation for Intrusion Detection Using UNSW-NB15 Dataset
Carvallo Security in the Cloud: an anomaly-based detection framework for the insider threats
Jiang Communication network security situation analysis based on time series data mining technology
Avila et al. Use of Security Logs for Data Leak Detection: A Systematic

Legal Events

Date Code Title Description
A201 Request for examination