KR20230097151A - 적대적 반-지도 원-샷 학습 - Google Patents

적대적 반-지도 원-샷 학습 Download PDF

Info

Publication number
KR20230097151A
KR20230097151A KR1020237018468A KR20237018468A KR20230097151A KR 20230097151 A KR20230097151 A KR 20230097151A KR 1020237018468 A KR1020237018468 A KR 1020237018468A KR 20237018468 A KR20237018468 A KR 20237018468A KR 20230097151 A KR20230097151 A KR 20230097151A
Authority
KR
South Korea
Prior art keywords
data
model
adversarial
loss
computer
Prior art date
Application number
KR1020237018468A
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 KR20230097151A publication Critical patent/KR20230097151A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/094Adversarial learning
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • 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/047Probabilistic or stochastic networks
    • 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/0475Generative networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/0895Weakly supervised learning, e.g. semi-supervised or self-supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/096Transfer learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Traffic Control Systems (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Orthopedics, Nursing, And Contraception (AREA)

Abstract

데이터 스트림을 사용하여 적대적 반-지도 원-샷 훈련을 하기 위한 방법, 컴퓨터 프로그램 제품, 및 시스템이 제공된다. 상기 방법은 관찰에 기초한 데이터 스트림을 수신하는 단계를 포함하고, 상기 데이터 스트림은 라벨이 지정되지 않은 데이터(unlabeled data) 및 라벨이 지정된 데이터(labeled data)를 포함한다. 상기 방법은 또한 분류 손실(a classification loss) 및 적대적 항(an adversarial term)에 기초한 확률적 경사 하강법(stochastic gradient descent)을 사용하여 상기 라벨이 지정된 데이터로 예측 모델을 훈련시키는 단계 및 재구성 손실(a reconstruction loss) 및 상기 적대적 항에 기초하여 상기 라벨이 지정된 데이터 및 상기 라벨이 지정되지 않은 데이터로 표현 모델(a representation model)을 훈련시키는 단계를 포함한다. 상기 적대적 항은 상기 모델들로부터의 상기 중간 층 출력 데이터 사이의 교차-엔트로피이다. 상기 분류 손실은 상기 라벨이 지정된 데이터와 상기 예측 모델로부터의 예측 출력 사이의 교차-엔트로피(a cross-entropy)이다. 상기 방법은 상기 예측 모델 및 상기 표현 모델로부터의 중간 층 출력 데이터(middle layer output data)로 그리고 변별 손실(a discrimination loss)에 기초하여 변별기(a discriminator)를 업데이트하는 단계, 및 상기 데이터 스트림을 폐기하는 단계(discarding)를 더 포함한다.

Description

적대적 반-지도 원-샷 학습
본 발명은 적대적 학습(adversarial learning)에 관한 것으로, 보다 상세하게는, 데이터 스트림을 이용한 적대적 반-지도 원-샷 학습(adversarial semi-supervised one-shot learning)에 관한 것이다.
적대적 학습은 머신 러닝 훈련 프로세스이며, 적대적 학습에서 두 모델들은 서로를 약화시키려고(weaken) 시도하고, 그 결과, 각 모델에 의해서 생성된 예측들을 개선한다. 생성적 적대적 네트워크(A generative adversarial network)는 서로 경쟁하는 두 개의 신경망들을 사용하는 일반적인 적대적 학습 접근 방식이다. 훈련 세트가 주어지면, 이 기술은 훈련 세트들과 동일한 통계들로 새로운 데이터를 생성하는 방법을 학습한다. 상기 훈련은 변별기(a discriminator)를 사용을 통한 간접 훈련을 포함하고, 이 훈련에서 신경망들은 변별기를 속이도록 훈련된다.
원-샷 학습(One-shot learning)은 머신 러닝의 한 형태이며, 원-샷 학습에서 데이터가 획득되고, 모델은 그 데이터로 훈련되며, 그 다음 그 데이터는 폐기된다. 훈련 주기 후에 데이터는 저장되지 않는다. 이와 같이, 원-샷 학습은, 지식 전달(knowledge transfer)을 지원하는 알고리즘들에 중점을 두며, 이는 학습된 카테고리들의 이전 지식을 이용하여 최소한의 훈련 예들에 대한 학습을 가능하게 한다. 지식 전달의 한 가지 방법은, 이전에 학습한 클래스와 새로 학습한 클래스 사이의 유사성에 기초하여, 모델 파라미터들을 재사용하는 것이다.
본 발명의 실시예들은 데이터 스트림을 사용하여 적대적 반-지도 원-샷 훈련을 하기 위한 컴퓨터 구현 방법을 포함한다. 상기 컴퓨터 구현 방법은 관찰에 기초한 데이터 스트림을 수신하는 단계를 포함하고, 상기 데이터 스트림은 라벨이 지정되지 않은 데이터(unlabeled data) 및 라벨이 지정된 데이터(labeled data)를 포함한다. 상기 컴퓨터 구현 방법은 또한 분류 손실(a classification loss) 및 적대적 항(an adversarial term)에 기초한 확률적 경사 하강법(stochastic gradient descent)을 사용하여 상기 라벨이 지정된 데이터로 예측 모델을 훈련시키는 단계 및 재구성 손실(a reconstruction loss) 및 상기 적대적 항에 기초하여 상기 라벨이 지정된 데이터 및 상기 라벨이 지정되지 않은 데이터로 표현 모델(a representation model)을 훈련시키는 단계를 포함한다. 상기 적대적 항은 상기 모델들로부터의 상기 중간 층 출력 데이터 사이의 교차-엔트로피이다. 상기 분류 손실은 상기 라벨이 지정된 데이터와 상기 예측 모델로부터의 출력 사이의 교차-엔트로피(a cross-entropy)이다. 상기 컴퓨터 구현 방법은 상기 예측 모델 및 상기 표현 모델로부터의 중간 층 출력 데이터(middle layer output data)로 그리고 변별 손실(a discrimination loss)에 기초하여 변별기(a discriminator)를 업데이트하는 단계, 및 상기 데이터 스트림을 폐기하는 단계(discarding)를 더 포함한다.
본 발명의 추가의 실시예들은 데이터 스트림을 사용하여 적대적 반-지도 원-샷 훈련(adversarial semi-supervised one-shot training)을 하기 위한 컴퓨터 프로그램 제품을 포함하고, 상기 컴퓨터 프로그램 제품은 구현된 프로그램 명령들을 갖는 컴퓨터 판독 가능 스토리지 매체를 포함할 수 있으며, 상기 프로그램 명령들은 프로세서에 의해 실행 가능하고, 상기 프로세서가 방법을 수행하도록 한다. 상기 방법은 관찰에 기초한 데이터 스트림을 수신하는 단계를 포함하고, 상기 데이터 스트림은 라벨이 지정되지 않은 데이터(unlabeled data) 및 라벨이 지정된 데이터(labeled data)를 포함한다. 상기 방법은 또한 분류 손실(a classification loss) 및 적대적 항(an adversarial term)에 기초한 확률적 경사 하강법(stochastic gradient descent)을 사용하여 상기 라벨이 지정된 데이터로 예측 모델을 훈련시키는 단계 및 재구성 손실(a reconstruction loss) 및 상기 적대적 항에 기초하여 상기 라벨이 지정된 데이터 및 상기 라벨이 지정되지 않은 데이터로 표현 모델(a representation model)을 훈련시키는 단계를 포함한다. 상기 적대적 항은 상기 모델들로부터의 상기 중간 층 출력 데이터 사이의 교차-엔트로피이다. 상기 분류 손실은 상기 라벨이 지정된 데이터와 상기 예측 모델로부터의 출력 사이의 교차-엔트로피(a cross-entropy)이다. 상기 방법은 상기 예측 모델 및 상기 표현 모델로부터의 중간 층 출력 데이터(middle layer output data)로 그리고 변별 손실(a discrimination loss)에 기초하여 변별기(a discriminator)를 업데이트하는 단계, 및 상기 데이터 스트림을 폐기하는 단계(discarding)를 더 포함한다.
본 발명의 다른 실시예들은 데이터 스트림을 사용하여 적대적 반-지도 원-샷 훈련(adversarial semi-supervised one-shot training)을 하기 위한 시스템에 관한 것이다. 상기 시스템은 전술한 방법들을 수행하기 위해 메모리, 프로세서, 그 위에 컴퓨터 실행 코드를 저장한, 로컬 데이터 스토리지를 포함한다. 상기 시스템은 또한 운송 수단 동작(a vehicle behavior)을 예측하도록 구성된 예측 모델(a prediction model)을 포함하고, 상기 예측 모델은 분류 손실(a classification loss) 및 적대적 항(an adversarial term)에 기초한 확률적 경사 하강법(stochastic gradient descent)을 사용하여 데이터 스트림으로부터의 라벨이 지정된 데이터로 훈련된다. 상기 시스템은 또한 상기 운송 수단 동작을 예측하도록 구성된 표현 모델(a representation model)을 포함하고, 상기 표현 모델은 재구성 손실 및 상기 적대적 항에 기초하여 상기데이터 스트림으로부터의 라벨이 지정되지 않은 데이터 및 상기 라벨이 지정된 데이터로 훈련된다. 상기 시스템은 상기 예측 모델 및 상기 표현 모델에 의해 이루어진 예측들을 예측하도록 구성된 변별기를 더 포함하고, 상기 변별기는 상기 예측 모델 및 상기 표현 모델로부터의 중간 층 출력 데이터로 그리고 변별 손실에 기초하여 훈련된다. 본 요약은 본 발명내용의 각각의 측면, 그의 모든 구현 및/또는 모든 실시예를 설명하기 위한 것이 아니다.
본 발명의 실시예들의 이들 특징들 및 다른 특징들(features), 측면들, 및 이점들은 다음의 설명, 청구된 청구항들, 및 첨부된 도면들과 관련하여 더 잘 이해될 것이다:
도 1은 본 발명의 실시예들에 따른 적대적 반-지도 원-샷 훈련 시스템을 도시한 블록도이다.
도 2는 본 발명의 실시예들에 따른 적대적 반-지도 원-샷 학습 프로세스를 도시하는 플로 다이어그램이다.
도3은 본 발명의 실시예들에 따른 본 명세서에 기술된 하나 혹은 그 이상의 방법들, 도구들, 및 모듈들, 및 임의의 관련 기능들(functions)을 구현하는 데 사용될 수 있는 컴퓨터 시스템을 도시하는 예시적인 고-수준 블록도이다.
도 4는 본 발명의 실시예에 따른 클라우드 컴퓨팅 환경을 도시한다.
도 5는 본 발명의 실시예들에 따른 추상적 모델 층을 나타낸다.
본 발명의 다양한 변형들 및 대안적 형태들이 가능하지만, 그 구체적인 내용들은 예를 들어 도면들에 도시하였고 상세하게 설명될 것이다. 그러나, 기술된 특정 실시예들을 제한하려는 의도가 아님을 이해해야 한다. 반대로, 의도는 본 발명의 범위 내에 속하는 모든 수정들, 등가물들, 및 대안들을 포괄하는 것이다. 첨부된 도면들에서 동일한 참조부호들은 동일한 부분들을 지정하기 위해 사용된다.
본 발명은 적대적 학습(adversarial learning)에 관한 것으로, 보다 상세하게는, 데이터 스트림을 이용한 적대적 반-지도 원-샷 학습(adversarial semi-supervised one-shot learning)에 관한 것이다. 본 발명이 반드시 이러한 애플리케이션로 제한되는 것은 아니지만, 본 발명의 다양한 특징들은 이러한 맥락을 사용하는 다양한 예들의 논의를 통해 이해될 수 있다.
자율 주행 운송 수단들은 운송 수단에 구현된 센서들을 사용하여 잠재적인 사고들을 줄이고 도로 안전을 향상시킬 수 있다. 센서 분석을 통해, 자율 주행 운송 수단은 다른 운송 수단들의 현재 상태를 이해하고 미래의 행동을 사전에 예측할 수 있다. 또한, 다른 운송 수단들뿐만 아니라 보행자들, 기상 조건들, 및 운전자 인식에 대한 예측들도 가능하다. 예를 들어, 센서 데이터를 사용하여 사고 위험들과 운전자 졸음을 예측할 수 있다.
센서들은 다양한 조건들을 지속적으로 모니터링하고 정보의 데이터 스트림을 생성하는 자율 주행 운송 수단에 조건들을 보고한다. 이 정보는 운송 수단 또는 클라우드 서비스를 통해 분석할 수 있으며, 운송 수단은 센서 데이터에 기초하여조치가 필요한지 여부를 결정할 수 있다. 예를 들어, 자율 주행 운송 수단은 브레이크들을 밟고, 헤드라이트들을 켜고, 물체 주위를 돌고, 가속하고, 하는 등의 동작들을(actions) 수행할 수 있다.
전형적으로, 자율 주행 운송 수단들에 의해 사용되는 머신 러닝 모델들은 정확한 라벨들을 갖는 충분한 수의 훈련 데이터 샘플들이 이용 가능할 때 훈련된다. 이러한 유형의 훈련을 배치 학습(batch learning)이라고 할 수 있다. 배치 학습에서 데이터는 일정 간격으로 수집된다(예: 센서들 관찰들의 데이터 스트림). 예를 들어, 간격들은 매초, 매분, 하루에 한 번 등일 수 있다. 간격들은 센서 유형과 관찰 중인 센서 판독값(the sensor reading being observed)에 기초하여 할 수도 있다.
자율 주행 운송 수단 머신 러닝 모델들 훈련에 관한 제한 사항들이 있다; 그러나 배치 학습은 많은 계산 자원들이 필요한 각 훈련 반복에 대해 과거 데이터를 사용해야 한다. 데이터 스트림들은 짧은 시간 동안 많은 양들의 데이터를 축적할 수 있으며 장기간에 걸쳐 모든 데이터를 유지하는 것은 불가능할 수 있다. 또한, 라벨이 지정된 데이터를 장기간 사용하지 못할 수 있으므로 모델들이 자주 업데이트되지 않을 수 있다.
본 발명의 실시예들은 적대적 반-지도 원-샷 훈련 시스템(an adversarial semi-supervised one-shot learning system)을 사용하여 위와 같은 문제 및 기타 문제를 극복할 수 있다. 적대적 반-지도 원-샷 훈련 시스템은 데이터 스트림을 사용하여 머신 러닝 모델들을 훈련한 다음, 훈련 주기가 완료되면 데이터 스트림을 폐기할 수 있다. 또한, 데이터 스트림에 항상 라벨을 지정할 필요는 없다. 라벨이 지정된 데이터를 때때로 사용할 수 있는 것은 아니므로, 적대적반-지도 원-샷 훈련 시스템은 일부 훈련 주기들 동안 라벨이 지정되지 않은 데이터만으로 머신 러닝 모델들을 훈련할 수 있다. 라벨이 지정되지 않은 데이터에 대한 유용한 정보는 감독되지 않은 표현 모델(an unsupervised representation model)에 저장할 수 있다. 라벨이 지정된 데이터를 사용할 수 있는 경우, 지도 예측 모델을 훈련할 수 있다. 이들 훈련 주기들 동안 각 모델의 예측들을 개선하기 위해 적대적 변별기 모델(an adversarial discriminator model)이 구현된다.
보다 구체적으로, 적대적 반-지도 원-샷 훈련 시스템은 자율 주행 운송 수단에서 생성된 데이터 스트림을 이용하여 그 정보를 훈련 데이터로 사용할 수 있다. 라벨이 지정되지 않은 데이터는 표현 머신 러닝 모델(a representation machine learning model)을 훈련하는 데 사용할 수 있고, 라벨이 지정된 데이터는, 가능한 경우, 예측 머신 러닝 모델을 훈련하는 데 사용될 수 있다. 두 모델들 모두 변별기 모델(a discriminator model)을 속이도록(fool) 훈련되어 있는데, 이는 표현 및 예측 모델들의 중간 층들(the middle layers)로부터 가져온 데이터로부터 훈련된다. 이 프로세스는 예측 모델이 표현 모델의 예측들과 유사하게 예측하도록 제한하며 그 반대의 경우도 마찬가지이다. 훈련 주기가 완료되면, 계산 자원들을 보존하기 위해 데이터 스트림을 폐기한다.
일부 실시예들에서, 표현 모델은 신경망에 기초한 오토인코더(an autoencoder)이다. 오토인코더는 인코딩 컴포넌트와 디코딩 컴포넌트를 포함한다. 이 형식은 표현 모델이 데이터 스트림에서 학습된 관련 정보를 저장하는 동시에 후속 훈련 주기들에서 그 정보를 유지할 필요가 없도록 지원한다. 표현 모델은 데이터 스트림과 관련된 라벨이 지정되지 않은 데이터 및 라벨이 지정된 데이터를 사용하여 그리고 훈련 시 계산된 재구성 손실 및 적대적 항에 기초하여 학습될 수 있다.
일부 실시예들에서, 예측 모델은 라벨이 지정된 훈련 데이터에 관한 확률적 경사 하강법(stochastic gradient descent)을 사용하는 신경망이다. 확률적 경사 하강법은 하나 또는 몇 개의 훈련 샘플들만 본 후 목표의 음의 경사(a negative gradient of an objective)를 따른다. 또한, 신경망 설정에서 확률적 경사 하강법을 사용하는 이유는 전체 훈련 세트에 대해 역전파를 실행하는 데 드는 비용이 높기 때문이다. 확률적 경사 하강법은 비용을 극복할 수 있고 또한 데이터의 빠른 수렴에 도달할 수 있다. 예측 모델은 훈련 시 계산된 분류 손실과 적대적 항에 기초하여 확률적 경사 하강법을 사용할 수도 있다.
일부 실시예들에서, 변별기(the discriminator)는 예측 모델의 중간 층 출력들과 표현 모델의 중간 층 출력들을 변별하도록 구성된 신경망이다. 상기 변별은 훈련 시점에 계산된 변별 손실에 기초하여 할 수도 있다. 예를 들어, 표현 모델의 중간 층 출력은 샘플을 인코딩한 후 생성된 출력일 수 있다.
적대적 학습(Adversarial learning)은 머신 러닝 훈련 프로세스이고, 이 프로세스에서 두 모델들은 서로를 약화시키고, 그 결과, 각 모델에서 생성된 예측들을 개선한다. 생성적 적대적 네트워크(A generative adversarial network)는 서로 경쟁하는 두 개의 신경망들을 사용하는 일반적인 적대적 학습 접근 방식이다. 훈련 세트가 주어지면, 이 기술은 훈련 세트들과 동일한 통계들로 새로운 데이터를 생성하는 방법을 학습한다. 상기 훈련은 변별기의 사용을 통한 간접 훈련을 포함하며, 이 훈련에서 신경망들은 변별기를 속이도록 훈련된다.
원-샷 학습은 머신 러닝의 한 형태이고, 원-샷 학습에서 데이터가 획득되고, 모델은 그 데이터로 훈련되며, 그 다음, 그 데이터는 페기된다. 훈련 주기 후에 그 데이터는 저장되지 않는다. 이와 같이, 원-샷 학습은 지식 전달을 지원하는 알고리즘들에 중점을 두며, 이는 학습된 범주들의 이전 지식을 이용하고 최소한의 훈련 예들에 관한 학습을 가능하게 한다. 지식 전달의 한 가지 방법은 이전에 학습된 클래스와 새로 학습된 클래스 사이의 유사성에 기초하여 모델 파라미터들을 재사용하는 것이다.
이제 도 1을 참조하면, 본 발명의 실시예에 따른, 데이터 스트림을 사용하는 적대적 반-지도 원-샷 훈련을 위한 적대적 반-지도 원-샷 훈련 시스템(100)의 고-레벨 블록 다이어그램이 도시되어 있다. 적대적 반-지도 원-샷 훈련 시스템(100)은 훈련 데이터세트(110), 예측 모델(120), 표현 모델(130) 및 변별기(140)를 포함한다. 표현 모델(130)은 인코더(133) 및 디코더(136)를 포함한다.
훈련 데이터세트(110)는 예측 모델(120) 및 표현 모델(130)을 훈련시키는 데 사용되도록 구성된 적대적 반-지도 원-샷 훈련 시스템(100)의 컴포넌트이다. 훈련 데이터세트(110)는 데이터 스트림으로부터 생성된 라벨이 지정되지 않은 데이터 및 라벨이 지정된 데이터를 포함한다. 데이터 스트림은 운송 수단에 위치한 센서들에서 수집된 정보일 수 있다. 예를 들어, 센서들은, 예를 들어, 운송 수단 운행 중에 센서 데이터를 수집하는 운송 수단 전체에 배치된, 3-축 센서들, 카메라들, 레이더, 및 라이다 센서들(lidar sensors)을 포함한다. 3-축 센서들은 드라이브 레코더(a drive recorder)에 관한 속도, 각도, 위도, 및 경도 정보를 포함할 수 있다. 이들 센서들에 의해 수집된 정보는 훈련 데이터세트(110)로 사용될 수 있는 데이터 스트림으로 간주될 수 있다. 일부 실시예들에서, 운송 수단의 조작자는 데이터 스트림으로부터의 샘플들에 라벨을 붙일 수 있다. 운송 수단은 클라우드 서비스에 연결되어, 운영자가 과거 운송 수단 동작 또는 이벤트에 관한 정보를 제공하도록 요청할 수 있다. 예를 들어, 운영자는 충돌, 물체, 속도 등과 같은 이벤트에 대한 정보를 제공할 수 있다. 제공된 정보는 샘플에 라벨을 지정하고 훈련 데이터세트(110)에 라벨이 지정된 샘플을 포함하는 데 사용될 수 있다. 그렇지 않으면, 데이터 스트림에서 생성된 샘플들에 라벨이 지정되지 않은 상태로 남을 수 있다. 이와 같이, 훈련 데이터세트(110)는 라벨이 지정된 데이터세트와 라벨이 지정되지 않은 데이터세트를 모두 포함한다. 라벨이 있는 데이터세트에는 운영자가 제공한 라벨이 지정된 샘플들이 포함되며, 라벨이 지정되지 않은 데이터세트에는 데이터 스트림에서 생성된 샘플들이 포함된다.
예측 모델(120)은 센서 데이터에 기초하여 운송 수단 동작을 출력하도록 구성된 적대적 반-지도 원-샷 훈련 시스템(100)의 컴포넌트이다. 예측 모델(120)은 훈련 데이터세트(110)로부터 라벨이 지정된 데이터세트를 사용하여 훈련되는 머신 러닝 모델이다. 운송 수단 동작들(Vehicle behaviors)에는, 예를 들어, 가속, 감속, 물체 회피, 후진, 차선 유지 등이 포함된다. 운송 수단 동작들은 운송 수단이 수집한 센서 데이터에 기초하여 예측 모델(120)에 의해 예측될 수 있다. 예를 들어, 센서 데이터가 도로에서 물체를 감지하면, 예측 모델(120)은 감지된 물체를 피하는 운송 수단 동작을 예측할 수 있다.
예측 모델(120)은 센서 정보에 기초하여 운송 수단 동작을 결정함에 있어 다양한 머신 러닝 기술들을 적용할 수 있다. 머신 러닝 기술들은 데이터세트에 대한 지도 훈련을 수행하고 이후에 생성된 알고리즘들 또는 모델들을 적용하여 운송 수단 동작의 조건부 확률(a conditional probability)을 생성함으로써 생성되는 알고리즘 또는 모델을 포함할 수 있다. 머신 러닝 알고리즘들에는 결정 트리 학습, 연관 규칙 학습, 인공 신경망들, 딥 러닝, 귀납적 논리 프로그래밍, 지원 벡터 머신들, 클러스터링, 베이지안 네트워크들, 강화 학습, 표현 학습, 유사성/메트릭 훈련, 스파스 사전 학습, 유전자 알고리즘들, 규칙-기반 학습, 및/또는 기타 머신 러닝 기술들 등이 포함될 수 있지만 이에 제한되지 않는다.
예를 들어, 머신 러닝 알고리즘들은 다음 예시적 기술들 중 하나 혹은 그 이상을 이용할 수 있다: K-최근접 이웃(K-nearest neighbor: KNN), 학습 벡터 양자화(LVQ), 자가-조직화 지도(elf-organizing map: SOM), 로지스틱 회귀(logistic regression), 일반 최소 제곱 회귀(ordinary least squares regression: OLSR), 선형 회귀, 단계적 회귀(stepwise regression), 다변량 적응 회귀 스플라인(, multivariate adaptive regression spline: MARS), 릿지 회귀(ridge regression), 최소 절대 수축 및 선택 연산자(least absolute shrinkage and selection operator: LASSO), 탄성망(elastic net), 최소-각도 회귀(least-angle regression: LARS), 확률적 분류기(probabilistic classifier), 나이브 베이즈 분류기(na
Figure pct00001
ve Bayes classifier), 이진 분류기, 선형 분류기, 계층적 분류기, 정준 상관 분석(canonical correlation analysis: CCA), 요인 분석(factor analysis), ICA(independent component analysis)(독립 성분 분석), 숨겨진 마르코프 모델들(hidden Markov models), 가우시안 나이브 베이즈(Gaussian na
Figure pct00002
ve Bayes), 다항 나이브 베이즈(multinomial na
Figure pct00003
ve Bayes), 평균 단일-의존 추정기들(averaged one-dependence estimators: AODE), 베이지안 네트워크(BN), 분류 및 회귀 트리(CART), 피드포워드 신경망들, 논리 학습 머신, 자기-조직화 지도(self-organizing map), 단일-연결 클러스터링(single-linkage clustering), 퍼지 클러스터링, 계층적 클러스터링, 볼츠만 머신들, 컨벌루션 신경망들, 반복 신경망들(recurrent neural networks), 계층적 시간 메모리(hierarchical temporal memory: HTM) 및/또는 기타 머신 러닝 기술들.
일부 실시예들에서, 예측 모델(120)은 아래에 설명된 수학식 1에 기초하여 훈련된 신경망이다:
Figure pct00004
수학식 1
여기서
Figure pct00005
는 예측 모델(120)을 나타낸다. 라벨이 지정된 데이터세트는 타겟 라벨
Figure pct00006
로 표시되는 운송 수단 동작을 예측하기 위해
Figure pct00007
로 표시되는 입력들의 벡터로 표시된다.
Figure pct00008
는 변별기(140)를 나타낸다.
Figure pct00009
는 훈련 중 분류 손실(a classification loss)을 나타내고
Figure pct00010
는 적대적 항(an adversarial term)을 나타낸다. N은 샘플들 수를 나타낸다. K는 클래스들 수를 나타낸다. 수학식 1은 확률적 경사 하강법을 사용하여 훈련 데이터세트(110)에서 각각의 라벨이 지정된 샘플을 최적화하는 데 사용될 수 있다. 스트림의 각 데이터 관찰에 대해, 확률적 경사 하강법(SGD)을 사용하여, 라벨이 지정된 샘플인 경우,
Figure pct00011
의 신경망에서 파라미터들을 조정함으로써 방정식 1을 최소화하고, 여기서 분류 손실은
Figure pct00012
에 의한 예측이 타겟 라벨
Figure pct00013
에 가능한 한 가까울 것을 요구하고 적대적 항은 예측 모델
Figure pct00014
의 중간 층 출력들이 표현 모델
Figure pct00015
의 중간 층 출력에 가능한 한 가까울 것을 요구한다.
라벨이 지정된 데이터를 사용하여 훈련되면, 예측 모델(120)은 운송 수단 동작의 예측을 생성하고 변별기(140)의 오류율을 증가시키려고 시도한다. 상기 오류율은 표현 모델(130)에 의해 생성되었다고 변별기(140)가 믿는 운송 수단 동작 예측들을 생성함으로써 증가된다.
표현 모델(130)은 과거 라벨이 지정되지 않은 데이터의 정보를 저장하도록 구성된 적대적 반-지도 원-샷 훈련 시스템(100)의 컴포넌트이다. 일부 실시예들에서, 표현 모델(130)은 인코더(133) 및 디코더(136)를 포함하는 오토인코더 신경망이다. 표현 모델(130)은 원래 관찰들(the original observations)이 저-차원 표현(the lower-dimensional representation)으로부터 대략적으로 재구성될 수 있도록 고-차원 관찰들(high-dimensional observations)(예를 들어, 라벨이 지정되지 않은 데이터)에서 저-차원 표현 공간으로의 매핑을 학습할 수 있다. 표현 모델(130)의 인코더(133)는 잠재적인 노이즈를 무시하도록 네트워크를 훈련함으로써 라벨이 지정되지 않은 데이터에 대한 표현을 학습할 수 있다. 디코더(136)는 인코더(133)에 의해 생성된 감소된 인코딩에 기초하여 원래 입력에 가능한 한 가까운 표현을 생성할 수 있다. 본질적으로, 인코더(133)는 라벨이 지정되지 않은 데이터를 표현 모델(130)의 코드로 매핑하고, 디코더(136)는 코드를 원래 라벨이 지정되지 않은 데이터의 재구성으로 매핑한다.
표현 모델(130)은 라벨이 지정되지 않은 과거 데이터의 정보를 저장하기 위해 오토인코더의 변형들을 구현할 수 있다. 이들 변형들은, 예를 들어, 정규화된 오토인코더들 및 변형 오토인코더들을 포함한다. 정규화된 오토인코더들은, 예를 들어, 희소 오토인코더(sparse autoencoder: SAE), 노이즈 제거 오토인코더(denoising autoencoders: DAE), 및 수축성 오토인코더(contractive autoencoders: CAE)를 포함한다. SAE들은 입력보다 더 많은 숨겨진 유닛들을 학습할 수 있지만, 한 번에 적은 수의 숨겨진 유닛들만 활성화할 수 있다. 특히, SAE는 코드 층 내 희소성 페널티(a sparsity penalty)와 관련된 훈련 기준을 포함한다. SAE의 변형은 가장 강한 은닉 유닛 활성화들(the strongest hidden unit activations)을 제외한 모든 것을 수동으로 0으로 만드는 k-희소 인코더(a k-sparse encoder)를 포함한다. 활동을 정렬하고 제1 k-값들만 유지함으로써 가장 강한 은닉 유닛 활성화들 식별이 달성될 수 있다. DAE는 부분적으로 손상된 입력을 가져와서 입력 노이즈 제거를 통해 왜곡되지 않은 입력을 복구할 수 있다.
변형 오토인코더들은, 생성적 적대 신경망들과 같은, 생성적 모델들이다. 변형 오토인코더들은 오토인코더와-유사한 아키텍처로부터의 신경망에 의해 후방이 근사화되는 방향성 확률 그래픽 모델들(directed probabilistic graphical models)이다.
일부 실시예들에서, 표현 모델(130)은 아래에 정의된 수학식 2에 기술된 바와 같이 훈련된다:
Figure pct00016
수학식 2
여기서
Figure pct00017
은 디코더(136)를 나타내고
Figure pct00018
는 인코더(133)를 나타낸다. 라벨이 지정된 데이터세트는 라벨이 지정되지 않은 데이터세트를 입력들
Figure pct00019
의 벡터로 사용하여 타겟
Figure pct00020
로 표현되는 운송 수단 동작을 예측하기 위해
Figure pct00021
)로 표현되는 입력들의 벡터로 표시된다.
Figure pct00022
는 변별기(140)를 나타낸다.
Figure pct00023
는 훈련 동안의 재구성 손실을 나타내고
Figure pct00024
는 적대적 항을 나타낸다. N은 샘플들 수를 나타낸다. 수학식 2는 확률적 경사 하강법을 사용하여 훈련 데이터세트(110)에서 각각의 라벨이 지정된 샘플 및 라벨이 지정되지 않은 샘플을 최적화하는 데 사용될 수 있다. 스트림의 각 데이터 관찰에 대해, 확률적 경사 하강법(SGD)을 사용하여, 인코더
Figure pct00025
및 디코더
Figure pct00026
로 구성된 오토인코더의 파라미터들을 조정하여 수학식 2를 최소화하고, 여기서 재구성 손실은
Figure pct00027
Figure pct00028
,
Figure pct00029
에 의한 재구성이 가능한 한 입력
Figure pct00030
에 가까울 것을 요구하고 적대적 항은 표현 모델
Figure pct00031
의 중간 층 출력들이 예측 모델
Figure pct00032
의 중간 층 출력들에 가능한 한 가까울 것을 요구한다.
일단 훈련되면, 표현 모델(130)은 운송 수단 동작의 예측을 생성하고 변별기(140)의 오류율을 증가시키려고 시도한다. 오류율은 변별기가 예측 모델(120)에 의해 생성되었다고 믿는 운송 수단 동작 예측들을 생성함으로써 증가된다.
변별기(140)는 예측 모델(120)과 표현 모델(130)에 의해 이루어진 예측들을 구별하도록 구성된 적대적 반-지도 원-샷 훈련 시스템의 컴포넌트이다. 변별기(140)는 예측 모델(120) 또는 표현 모델(130)에 의해 생성된 운송 수단 동작 예측들을 변별하는 것을 목표로 정함으로써 예측 모델(120) 및 표현 모델(130)의 훈련을 용이하게 한다. 예를 들어, 변별기(140)는 모델들 중 어느것이 예측을 생성했는지 예측한다. 예측 모델(120)과 표현 모델(130)은 변별기(140)와 경쟁하며, 예측 모델(120)과 표현 모델(130)은 서로의 운송 수단 예측들에 가능한 한 근접하게 대응하는 운송 수단 동작 예측들을 제공하도록 조정되거나 최적화되어, 이에 의해 변별기(140)의 오류율을 증가시킨다. 훈련 프로세스에서, 변별기(140)는 예측 모델(120)과 표현 모델(130)에 의해 생성된 중간 층 출력들을 사용하여 훈련된다. 예를 들어, 인코더(133)에 의해 생성된 출력은 변별기(140)가 다른 모델들에 의해 이루어진 운송 수단 동작 예측들을 구별하는 성공률을 증가시키도록 훈련시키는 데 사용될 수 있다.
일부 실시예들에서, 변별기(140)는 아래에 정의된 수학식 3에 기술된 바와 같이 훈련된다:
Figure pct00033
수학식 3
여기서
Figure pct00034
는 변별기(140)를 나타내고 훈련 데이터세트(110)는
Figure pct00035
로 표현된 입력들의 벡터로 표현되어 훈련 데이터세트를 입력들
Figure pct00036
의 벡터로 사용하여 타겟
Figure pct00037
로 표현된 변별을 예측한다.
Figure pct00038
는 훈려 중 변별 손실을 나타낸다. 수학식 3은 확률적 경사 하강법을 사용하여, 훈련 데이터세트(110)에서 각각의 라벨이 지정된 샘플 및 라벨이 지정되지 않은 샘플을 최적화하는 데 사용될 수 있다. 또한,
Figure pct00039
는 라벨
Figure pct00040
에 대해 예측 모델(120)에 의해 생성된 중간 층 출력을 나타내고,
Figure pct00041
는 라벨
Figure pct00042
에 대해 표현 모델(130)에 의해 생성된 중간 층 출력을 나타낸다. N은 샘플들 수를 나타낸다. 스트림의 각 데이터 관찰에 대해, 확률적 경사 하강법(SGD)을 사용하여, 식별
Figure pct00043
의 파라미터를 조정하여 수학식 3을 최소화하고, 여기서 변별 손실은
Figure pct00044
에 의한 변별이 인코더
Figure pct00045
에 의해 생성된 중간 층 출력으로부터 예측 모델
Figure pct00046
에 의해 생성된 중간 층 출력을 가능한 한 정확하게 변별할 것을 요구한다.
도 1은 예시적인 적대적 반-감독 원-샷 훈련 시스템(100)의 주요 대표 컴포넌트들을 묘사하기 위한 것임을 주목해야 한다. 그러나, 일부 실시예들에서, 개별 컴포넌트들은 도 1에 표시된 것보다 더 크거나 덜 복잡할 수 있고, 도 1에 표시된 것 이외의 컴포넌트들이 존재할 수 있으며 그러한 컴포넌트들의 수, 유형, 및 구성은 가변할 수 있다.
도 2는 본 발명의 실시예들에 따른 적대적 반-지도 원-샷 학습의 프로세스(200)를 예시하는 플로 다이어그램이다. 프로세스(200)는 하드웨어, 펌웨어, 프로세서 상에서 실행되는 소프트웨어, 에지 디바이스들(예를 들어, 운송 수단), 클라우드 서비스들, 또는 이들의 조합에 의해 수행될 수 있다. 예를 들어, 프로세스(200)의 일부 또는 모든 단계들은 컴퓨팅 디바이스에 내장된 하나 혹은 그 이상의 프로세서들에 의해 수행될 수 있다.
프로세스(200)는 자율 주행 운송 수단에 관한 데이터 스트림을 수신함으로써 시작된다. 데이터 스트림은 데이터 스트림으로부터 생성되고 훈련 데이터세트(110)로 사용되는 라벨이 지정되지 않은 데이터 및 라벨이 지정된 데이터를 포함한다. 이것은 단계(210)에 도시되어 있다. 데이터 스트림은 운송 수단에 위치한 센서들로부터 수집된 정보일 수 있다. 예를 들어, 센서들은, 운송 수단 운행 중에 센서 데이터를 수집하는 운송 수단 전체에 배치된 3-축 센서들, 카메라들, 레이더, 및 라이다 센서들을 포함한다. 운송 수단 운영자는 데이터 스트림의 샘플들에 라벨을 지정할 수 있다. 운송 수단은 클라우드 서비스에 연결되어, 운영자가 과거 운송 수단 동작 또는 이벤트에 관한 정보를 제공하도록 요청할 수 있다. 예를 들어, 운영자는 충돌, 물체, 속도 등과 같은 이벤트에 대한 정보를 제공할 수 있다. 제공된 정보는 샘플에 라벨을 지정하고 훈련 데이터세트(110)에 라벨이 지정된 샘플을 포함하는 데 사용될 수 있다.
예측 모델(120)은 데이터 스트림에 의해 생성된 훈련 데이터세트(110)로부터 라벨이 지정된 데이터세트를 사용하여 훈련된다. 이는 단계(220)에 도시되어 있다. 예측 모델(120)은 라벨이 지정된 데이터의 확률적 경사 하강법을 사용하여 훈련될 수 있다. 또한, 훈련은 분류 손실 및 적대적 항에 기초하여 할 수 있다. 일부 실시예들에서, 분류 손실 및 적대적 항은 위에서 정의된 수학식 1에 기초한다. 분류 손실은 라벨이 지정된 데이터세트와 예측 모델(120)에 의해 생성된 예측들 사이의 교차-엔트로피일 수 있다. 적대적 항은 또한 표현 모델(130)의 중간 층 출력과 예측 모델(120)에 의해 생성된 예측들 사이의 교차-엔트로피일 수 있다. 예측 모델(120)의 훈련 시, 예측 모델(120)의 성능을 향상시키기 위해 각 훈련 주기 동안, 분류 손실은 최소화되고, 적대적 항이 최대화된다.
표현 모델(130)은 데이터 스트림에 의해 생성된 훈련 데이터세트(110)를 사용하여 훈련된다. 이것은 단계(230)에 도시되어 있다. 일부 실시예들에서, 훈련 데이터세트(110)는 라벨이 지정되지 않은 데이터세트만을 갖는다. 표현 모델(130)은 라벨이 지정되지 않은 데이터세트만을 사용하여 여전히 훈련될 수 있다. 그러나, 라벨이 지정된 데이터세트가 이용 가능하다면, 표현 모델(130)은 훈련 데이터세트(110)로부터의 라벨이 지정되지 않은 데이터세트와 라벨이 지정된 데이터세트 모두로 훈련될 수 있다. 표현 모델(130)은 훈련 데이터세트(110)에 대한 확률적 경사 하강법을 사용하여 훈련 데이터세트(110)로 훈련된다. 또한, 훈련은 재구성 손실 및 적대적 항에 기초하여 할 수 있다. 일부 실시예들에서, 재구성 손실 및 적대 항은 위에서 정의된 수학식 2에 기초한다. 재구성 손실은 훈련 데이터세트(110)와 표현 모델(130)에 의해 생성된 예측들 사이의 제곱 손실(a squared loss)일 수 있다. 적대적 항은 예측 모델(120)의 중간 층 출력들과 표현 모델(130)에 의해 만들어진 예측 사이의 교차-엔트로피일 수 있다. 표현 모델(130)의 훈련 시, 표현 모델(130)의 성능을 향상시키기 위해 각 훈련 주기 동안, 재구성 손실을 최소화하고, 적대적 항은 최대화된다.
변별기(140)는 예측 모델(120) 및 표현 모델(130)에 의해 생성된 중간 층 출력들을 사용하여 업데이트된다. 이것은 단계(240)에 도시되어 있다. 표현 모델(130)과 유사하게, 변별기(140)는 라벨이 지정되지 않은 데이터세트만 사용할 수 있는 경우에도 여전히 훈련될 수 있다. 그러나, 라벨이 지정된 데이터세트가 사용 가능한 경우 여전히 변별기(140)는 업데이트될 수 있다. 변별기(140)는 예측 모델(120) 및 표현 모델(130)에 의해 생성된 중간 층 출력들에 확률적 경사 하강법을 적용함으로써 업데이트된다. 또한, 훈련은 변별 손실에 기초하여 할 수 있다. 일부 실시예들에서, 변별 손실은 위에서 정의된 수학식 3에 기초한다. 변별 손실은 예측 모델(120)의 중간 층 출력들과 표현 모델(130)의 중간 층 출력들 사이의 교차-엔트로피일 수 있다. 변별기(140)를 업데이트하는 동안, 변별기(140)의 성능을 향상시키기 위해 각 훈련 주기 동안 변별 손실을 최소화한다.
예측 모델(120) 및 표현 모델(130) 예측은 그들의 운송 수단 동작 예측들이 변별기(140)에 의한 변별 오류율 임계값(a discrimination error rate threshold)을 생성하는지(result in)를 결정하기 위해 분석된다. 이것은 단계(250)에 도시되어 있다. 오류율 임계값은 모델들이 만족스럽게 훈련되도록 설정된 미리 결정된 임계값일 수 있다. 예를 들어, 오류율 임계값은 변별기(140) 예측들에 대해 75% 오류율에 설정될 수 있다. 변별기(140)가 어떤 예측들이 어느 모델에 의해 75% 비율에서 생성되었는지 변별할 수 없다면, 그 모델들은 충분히 훈련된 것으로 볼 수 있다. 모델들이 임계값을 초과하면, 데이터 스트림은 폐기되고, 훈련은 완료된다. 이것은 단계(260)에 도시되어 있다. 그러나, 임계값에 도달하지 않았다면, 훈련 주기는 단계(210)으로 돌아가서 모델들에서 훈련 결과들이 임계값에 도달할 때까지 반복된다. 훈련은 또한 예측 모델(120) 및 표현 모델(130)의 개선된 성능을 달성하기 위해 데이터 스트림에 관한 관찰이 발생할 때 발생할 수 있다.
지금 도 3을 참조하면, 본 발명의 실시 예들에 따라, 예시적 컴퓨터 시스템(300)(예: 적대적 반-지도 원-샷 훈련 시스템(100))의 고-수준 블록도가 도시되어 있으며, 컴퓨터 시스템(300)은, 본 발명의 실시예들에 따라, 여기서 설명된 방법들, 도구들, 모듈들, 및 모든 관련 기능들 중 하나 또는 그 이상을 구현(예를 들어,상기 컴퓨터의 하나 또는 그 이상의 프로세서 회로들 또는 컴퓨터 프로세서들을 사용하여)하는 데 사용될 수 있다. 일부 실시예들에서, 컴퓨터 시스템(600)의 주요 컴포넌트들은 하나 또는 그 이상의 프로세서들(302), 메모리(304), 터미널 인터페이스(312), I/O(입/출력) 디바이스 인터페이스(314), 스토리지 인터페이스(316), 및 네트워크 인터페이스(318)를 포함할 수 있고, 이들은 모두는 메모리 버스(303), I/O 버스(308), 및 I/O 버스 인터페이스(310)를 통해 컴포넌트간 통신을 위해 직접 또는 간접적으로 통신 가능하게 결합될 수 있다.
컴퓨터 시스템(300)은 하나 또는 그 이상의 범용 프로그램가능 중앙 처리 유닛들(CPU들)(302-1, 302-2, 302-3, 302-N)를 포함할 수 있으며, 이들을 여기서는 일반적으로 프로세서(302)라고 한다. 일부 실시예들에서, 컴퓨터 시스템(300)은 비교적 큰 시스템의 전형적인 다수의 프로세서들을 포함할 수 있다; 그러나, 다른 실시예들에서, 컴퓨터 시스템(300)은 대안으로 단일 CPU 시스템일 수 있다. 각 프로세서(302)는 메모리(304)에 저장된 명령들을 실행할 수 있고 하나 또는 그 이상의 레벨들의 온-보드 캐시를 포함할 수 있다.
메모리(304)는 랜덤 액세스 메모리(RAM)(322) 또는 캐시 메모리(324)와 같은 휘발성 메모리 형태의 컴퓨터 시스템 판독 가능 매체를 포함할 수 있다. 컴퓨터 시스템(300)은 다른 착탈식/비-착탈식, 휘발성/비휘발성 컴퓨터 시스템 스토리지 매체를 더 포함할 수 있다. 단지 예로서, 스토리지 시스템(326)은 "하드 드라이브"와 같은 비-착탈식, 비휘발성 자기 매체로부터 읽기 및 자기 매체로 쓰기를 위해 제공될 수 있다. 도시되지는 않았지만, 착탈식 비휘발성 자기 디스크(예: "플로피 디스크")에서 읽고 자기 디스크에 쓰기 위한 자기 디스크 드라이브 또는 CD-ROM, DVD-ROM 또는 기타 광학 매체와 같은 착탈식 비휘발성 광학 디스크에서 읽거나 광학 디스크에 쓰기 위한 광학 디스크 드라이브 디스크가 제공될 수 있다. 또한, 메모리(304)는 플래시 메모리, 예를 들어, 플래시 메모리 스틱 드라이브 또는 플래시 드라이브를 포함할 수 있다. 메모리 디바이스들은 하나 또는 그 이상의 데이터 매체 인터페이스에 의해 메모리 버스(303)에 연결될 수 있다. 메모리(304)는 다양한 실시예들의 기능들을 수행하도록 구성된 프로그램 모듈들의 세트(예를 들어, 적어도 하나)를 갖는 적어도 하나의 프로그램 제품을 포함할 수 있다.
메모리 버스(303)는, 프로세서(302), 메모리(304), 및 I/O 버스 인터페이스(310) 사이에 직접적인 통신 경로를 제공하는 단일 버스 구조로서 도 3에 도시되어 있지만, 메모리 버스(303)는, 일부 실시예들에서, 다수의 다양한 버스들 또는 통신 경로들을 포함할 수 있으며, 이들은 계층, 스타 또는 웹 구성들에서 포인트-투-포인트 링크들(point-to-point links in hierarchical, star or web configurations), 다수의 계층 버스들, 병렬 및 중복 경로들, 또는 기타 적절한 유형의 구성과 같은, 다양한 형태들 중 어느 하나로 구성될 수 있다. 또한, I/O 버스 인터페이스(310) 및 I/O 버스(308)가 단일 개별 유닛들으로 도시되어 있지만, 컴퓨터 시스템(300)은, 일부 실시예들에서, 다수의 I/O 버스 인터페이스 유닛들, 다수의 I/O 버스들 또는 이들 둘 모두를 포함할 수 있다. 또한, 다양한 I/O 디바이스들로 실행되는 다양한 통신 경로들로부터 I/O 버스(308)를 분리하는, 다수의 I/O 인터페이스 유닛들이 도시되어 있지만, 다른 실시예들에서 I/O 디바이스들의 일부 또는 전부는 하나 또는 그 이상의 시스템 I/O 버스들에 직접 연결될 수 있다.
일부 실시예들에서, 컴퓨터 시스템(300)은 직접적인 사용자 인터페이스가 거의 또는 전혀 없지만 다른 컴퓨터 시스템들(클라이언트들)로부터 요청들을 수신하는 다수-사용자 메인프레임 컴퓨터 시스템, 단일 사용자 시스템, 또는 서버 컴퓨터 또는 유사한 디바이스일 수 있다. 또한, 일부 실시예들에서, 컴퓨터 시스템(300)은 데스크탑 컴퓨터, 휴대용 컴퓨터, 랩탑 또는 노트북 컴퓨터, 태블릿 컴퓨터, 포켓 컴퓨터, 전화, 스마트폰, 네트워크 스위치들 또는 라우터들, 또는 모든 다른 적절한 유형의 전자 디바이스로서 구현될 수 있다.
도 3은 예시적인 컴퓨터 시스템(300)의 대표적인 주요 컴포넌트들을 묘사하도록 의도된 것임을 유의해야 한다. 그러나, 일부 실시예들에서, 개별 컴포넌트들은 도 3에 도시된 것보다 더 큰 복잡성을 갖거나 더 적은 복잡성을 가질 수 있고, 도 3에서 도시된 것 이외의 컴포넌트들 또는 이에 추가된 컴포넌트들이 존재할 수 있으며, 그러한 컴포넌트들의 수, 유형 및 구성은 다를 수 있다.
하나 또는 그 이상의 프로그램/유틸리티들(328), 각각은 프로그램 모듈들(330)의 적어도 하나의 세트(적대적 반-지도 원-샷 훈련 시스템(100))를 갖고, 메모리(304)에 저장될 수 있다. 프로그램/유틸리티들(328)은 하이퍼바이저(또한 가상 머신 모니터라고도 함), 하나 또는 그 이상의 운영 체제들, 하나 또는 그 이상의 애플리케이션 프로그램들, 기타 프로그램 모듈들 및 프로그램 데이터 이들의 일부 조합은 네트워킹 환경의 구현을 포함할 수 있다. 프로그램들(328) 및/또는 프로그램 모듈(330)은 일반적으로 다양한 실시예들의 기능들 또는 방법들을 수행한다.
본 발명은 클라우드 컴퓨팅에 관해서 상세한 설명들을 포함하지만, 여기서 설명된 그러한 기술적 사상들의 구현은 클라우드 컴퓨팅 환경에만 한정되는 것은 아님을 이해하여야 한다. 오히려, 본 발명의 실시 예들은 지금 알려져 있거나 또는 나중에 개발될 모든 다른 유형의 컴퓨팅 환경과 함께 구현될 수 있다.
클라우드 컴퓨팅은, 최소한의 관리 노력 또는 서비스 제공자와의 상호작용으로 빠르게 제공되고 해제될 수 있는, 구성 가능한(configurable) 컴퓨팅 자원들(예를 들어, 네트워크들, 네트워크 대역폭, 서버들, 처리, 메모리, 스토리지, 애플리케이션들, 가상 머신들, 및 서비스들)의 공유 풀에 대한 편리한 주문형(on-demand) 네트워크 액세스를 가능하게 하는 서비스 전달 모델이다. 이 클라우드 모델은 적어도 5가지의 특성(characteristics), 적어도 3가지 서비스 모델(service models), 및 적어도 4가지 배치 모델(deployment models)을 포함할 수 있다.
클라우드 컴퓨팅 특성들은 다음과 같다:
주문형 셀프-서비스(On-demand self-service): 클라우드 소비자는, 서비스 제공자와의 인적 상호작용을 필요로 하지 않고 필요한 만큼 자동적으로, 서버 시간(server time) 및 네트워크 스토리지 같은 컴퓨팅 용량들을 일방적으로 제공(provision)할 수 있다.
광역 네트워크 액세스(Broad network access): 혼성의 씬 또는 씩 클라이언트 플랫폼들(heterogeneous thin or thick client platforms)(예를 들어, 모바일폰들, 랩탑들, 및 PDA들)에 의한 사용을 장려하는 표준 메커니즘들을 통해 액세스되는 기능들을 네트워크를 통해서 이용할 수 있다.
자원 풀링(Resource pooling): 제공자의 컴퓨팅 자원들은, 각기 다른 물리적 및 가상 자원들을 요구(demand)에 따라 동적으로 할당 및 재할당하는, 멀티-테넌트 모델(a multi-tenant model)을 사용하는 다수의 소비자들에게 서비스할 수 있도록 풀에 넣어둔다(pooled). 소비자는 일반적으로 제공된 자원들의 정확한 위치를 제어할 수 없거나 그에 대한 지식이 없지만 더 높은 추상 수준에서(예를 들어, 국가, 주, 또는 데이터센터) 위치를 명시할 수 있다는 점에서 위치 독립성이 있다.
기민한 탄력성(Rapid elasticity): 용량들(capabilities)이 기민하게 탄력적으로 제공되어 (어떤 경우엔 자동으로) 신속히 규모를 확장할 수도 있고(scale out) 그리고 탄력적으로 해제되어 신속히 규모를 축소할 수도 있다(scale in). 소비자에게 제공할 수 있는 가능성이 종종 무제한이고 언제든지 원하는 수량으로 구매할 수 있는 것처럼 보인다.
측정 가능 서비스(Measured service): 클라우드 시스템들은 자원 사용을 자동으로 제어하고 최적화하는데, 서비스의 유형(예를 들어, 스토리지, 처리, 대역폭, 및 활성 사용자 계정)에 적절한 추상화 수준에서(at some level of abstraction) 계측 기능을 이용하여서 그렇게 한다. 자원 사용량은 모니터 되고, 제어되고, 그리고 보고될 수 있으며 이로써 이용하는 서비스의 제공자와 사용자 모두에게 투명성을 제공한다.
서비스 모델들(Service Models)은 다음과 같다:
소프트웨어 서비스(Software as a Service)(SaaS): 소비자에게 제공되는 서비스는 클라우드 하부구조 상에서 실행되는 제공자의 애플리케이션들을 사용하게 해주는 것이다. 애플리케이션들은 웹 브라우저(예를 들어, 웹기반 이메일) 같은 씬(thin) 클라이언트 인터페이스를 통해 여러 클라이언트 장치들에서 액세스 가능하다. 소비자는 네트워크, 서버들, 운영 체제들, 스토리지, 또는 개별 애플리케이션 능력들을 포함하는 하부 클라우드 하부구조를 관리하거나 제어하지 않는다. 단, 제한된 사용자-특정 애플리케이션 구성 세팅들은 예외로서 가능하다.
플랫폼 서비스(Platform as a Service)(PaaS): 소비자에게 제공되는 서비스는 제공자에 의해 지원되는 프로그래밍 언어들 및 도구들을 이용하여 생성된 소비자-생성 또는 획득 애플리케이션들을 클라우드 하부구조에 배치하게 해주는 것이다. 소비자는 네트워크, 서버들, 운영 체제들, 또는 스토리지를 포함하는 하부 클라우드 하부구조를 관리하거나 제어하지 않는다. 그러나 배치된 애플리케이션들에 대해서 그리고 가능한 경우 애플리케이션 호스팅 환경 구성들에 대해서 제어할 수 있다.
하부구조 서비스(Infrastructure as a Service)(IaaS): 소비자에게 제공되는 서비스는 처리, 스토리지, 네트워크, 및 기타 기본 컴퓨팅 자원들을 제공하여 주는 것이며, 여기서 소비자는 임의의 소프트웨어를 배치 및 실행할 수 있고, 이 소프트웨어에는 운영 체제들과 애플리케이션들이 포함될 수 있다. 소비자는 하부 클라우드 하부구조를 관리하거나 제어하지 않지만, 운영 체제들, 스토리지, 배치된 애플리케이션들, 및 가능한 경우 선택된 네트워킹 컴포넌트들의 제한적인 제어(예를 들어, 호스트 방화벽들)에 대하여 제어할 수 있다.
배치 모델들(Deployment Models)은 다음과 같다:
사설 클라우드(Private cloud): 클라우드 하부구조는 오직 한 조직(an organization)을 위해서 운영되고, 그 조직 또는 제3자에 의해 관리될 수 있으며 옥내(on-premises) 또는 옥외(off-premises)에 위치할 수 있다.
커뮤니티 클라우드(Community cloud): 클라우드 하부구조는 여러 조직들에 의해 공유되고 관심사(예를 들어, 선교, 보안 요건, 정책, 및 규정 준수 심사)를 공유하는 특정 커뮤니티를 지원하며, 여러 조직들 또는 제3자에 의해 관리될 수 있으며 옥내(on-premises) 또는 옥외(off-premises)에 위치할 수 있다.
공공 클라우드(Public cloud): 클라우드 하부구조는 일반 대중 또는 대규모 산업 집단에서 이용할 수 있으며 클라우드 서비스를 판매하는 조직이 소유한다.
하이브리드 클라우드(Hybrid cloud): 클라우드 하부구조는 둘 또는 그 이상의 클라우드들(사설, 커뮤니티, 또는 공공)이 혼합된 구성이며, 이들은 고유한 주체들로 있지만 데이터 및 애플리케이션 이식가능성(portability)을 가능하게 해주는 표준화된 또는 소유권 있는 기술(예를 들어, 클라우드들 사이의 부하 균형을 위한 클라우드 버스팅(cloud bursting))에 의해 서로 결합되어 있다.
클라우드 컴퓨팅 환경은 무국적(statelessness), 낮은 결합(low coupling), 모듈 방식(modularity), 및 의미적 상호운용성(semantic interoperability)에 집중하는 서비스를 지향한다. 클라우드 컴퓨팅의 중심에는 상호 연결된 노드들의 네트워크를 포함하는 하부구조가 있다.
이제 도 4을 참조하면, 예시적인 클라우드 컴퓨팅 환경(400)이 도시된다. 도시된 바와 같이, 클라우드 컴퓨팅 환경(400)은, 예를 들어, 개인 휴대 정보 단말기(PDA) 또는 휴대폰(420-1), 데스크탑 컴퓨터(420-2), 랩탑 컴퓨터(420-3), 및/또는 자동차용 컴퓨터 시스템(420-4)과 통신할 수 있는 것과 같이, 클라우드 소비자가 사용하는 로컬 컴퓨팅 디바이스가 하나 또는 그 이상의 클라우드 컴퓨팅 노드들(410)을 포함한다. 노드들(410)은 서로 통신할 수 있다. 이들은 여기에 기술된 바와 같은 사설, 커뮤니티, 공공, 또는 하이브리드 클라우드들 또는 이들의 조합 등의 하나 또는 그 이상의 네트워크들에서 물리적으로 또는 가상으로 그룹화될 수 있다(도시되지 않음). 이것은 클라우드 소비자가 로컬 컴퓨팅 장치 상에 자원들을 유지할 필요가 없게 클라우드 컴퓨팅 환경(400)이 하부구조, 플랫폼들 및/또는 소프트웨어를 서비스로서 제공할 수 있게 해준다. 도 4에 도시된 컴퓨팅 디바이스들(420-1 내지 420-4)의 유형들은 단지 예시의 목적으로 기술한 것이며 컴퓨팅 노드들(410)과 클라우드 컴퓨팅 환경(400)은 모든 유형의 네트워크 및/또는 네트워크 주소지정가능 연결을 통해서 (예를 들어, 웹 브라우저를 사용하여) 모든 유형의 컴퓨터화된 디바이스와 통신할 수 있다는 것을 이해해야 한다.
이제 도 5을 참조하면, 클라우드 컴퓨팅 환경(400) (도 4)에 의해 제공되는 일 세트의 기능별 추상화 층들(500)이 도시된다. 도 5에 도시된 컴포넌트들, 층들, 및 기능들은 단지 예시의 목적이며 본 발명의 바람직한 실시 예들은 이것에 한정되지 않는다는 것을 미리 이해해야 한다. 도시된 바와 같이, 다음의 층들과 그에 대응하는 기능들이 제공된다:
 하드웨어 및 소프트웨어 층(510)은 하드웨어 및 소프트웨어 컴포넌트들을 포함한다. 하드웨어 컴포넌트들의 예들에는: 메인프레임들(511); RISC(Reduced Instruction Set Computer) 아키텍처 기반 서버들(512); 서버들(513); 블레이드 서버들(514); 스토리지 디바이스들(515); 그리고 네트워크 및 네트워킹 컴포넌트들(516)이 포함된다. 일부 실시 예들에서, 소프트웨어 컴포넌트들은 네트워크 애플리케이션 서버 소프트웨어(517) 및 데이터베이스 소프트웨어(518)를 포함한다.
 가상화 층(520)은 추상화 층을 제공하며 이로부터 다음의 가상 주체들의 예들이 제공될 수 있다: 가상 서버들(521); 가상 스토리지(522); 가상 사설 네트워크를 포함하는, 가상 네트워크들(523); 가상 애플리케이션들 및 운영 체제들(524); 및 가상 클라이언트들(525).
한 예에서, 관리 층(530)은 아래에 기술하는 기능들을 제공한다. 자원 제공(Resource provisioning)(831)은 클라우드 컴퓨팅 환경 내에서 작업들을 수행하는 데 이용되는 컴퓨팅 자원들 및 기타 자원들의 동적 조달을 제공한다. 계측 및 가격 책정(Metering and Pricing)(532)은 자원들이 클라우드 컴퓨팅 환경 내에서 이용될 때 비용 추적, 및 이 자원들의 소비에 대한 요금 청구 또는 송장을 제공한다. 한 예에서, 이 자원들은 애플리케이션 소프트웨어 라이센스를 포함할 수 있다. 보안(Security)은 데이터 및 기타 자원들에 대한 보호뿐 아니라 클라우드 소비자들과 작업들에 대한 신원 확인을 제공한다. 사용자 포털(User portal)(533)은 소비자들 및 시스템 관리자들에게 클라우드 컴퓨팅 환경에 대한 액세스를 제공한다. 서비스 수준 관리(Service level management)(534)는 요구되는 서비스 수준이 충족되도록 클라우드 컴퓨팅 자원 할당 및 관리를 제공한다. 서비스 수준 협약서(SLA) 기획 및 충족(planning and fulfillment)(535)은 SLA에 부합하는 예상되는 미래 요건에 맞는 클라우드 컴퓨팅 자원들의 사전-배치(pre-arrangement) 및 조달(procurement)을 제공한다.
워크로드 층(540)은 클라우드 컴퓨팅 환경이 이용될 수 있는 기능들의 예들을 제공한다. 이 층에서 제공될 수 있는 워크로드들과 기능들의 예들은 다음을 포함한: 맵핑 및 네비게이션(541); 소프트웨어 개발 및 라이프사이클 관리(542); 가상 교실 훈련 전달(543); 데이터 분석 처리(544); 트랜잭션 처리(545); 및 정밀 집단 분석(precision cohort analytics)(546).
본 발명의 실시 예들은 통합의 모든 기술적 세부 수준에서 시스템, 방법, 및/또는 컴퓨터 프로그램 제품이 될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 스토리지 매체(또는 매체)를 포함할 수 있으며, 이 매체 상에 프로세서가 본 발명의 실시 예들을 수행하도록 하는 컴퓨터 판독 가능 프로그램 명령들을 갖는다.
상기 컴퓨터 판독 가능 스토리지 매체는 명령 실행 장치에 의해 사용될 명령들을 유지 및 저장할 수 있는 유형의(tangible) 디바이스일 수 있다. 상기 컴퓨터 판독 가능 스토리지 매체는, 예를 들면, 전자 스토리지 디바이스, 자기 스토리지 디바이스, 광 스토리지 디바이스, 전자기 스토리지 디바이스, 반도체 스토리지 디바이스, 또는 전술한 것들의 모든 적절한 조합일 수 있으며, 그러나 이에 한정되지는 않는다. 컴퓨터 판독 가능 스토리지 매체의 더 구체적인 예들의 비포괄적인 목록에는 다음이 포함될 수 있다: 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 소거 및 프로그램가능 판독-전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 컴팩트 디스크 판독-전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD), 메모리 스틱, 플로피 디스크, 천공-카드들 또는 명령들이 기록된 홈에 있는 융기된 구조들 같이 머신적으로 인코드 된 장치, 및 전술한 것들의 모든 적절한 조합. 본 명세서에서 사용될 때, 컴퓨터 판독 가능 스토리지 매체는 무선 전파들이나 다른 자유롭게 전파되는 전자기파들, 도파관이나 기타 전송 매체(예를 들어, 광섬유 케이블을 통해 전달되는 광 펄스들)를 통해 전파되는 전자기파들, 또는 선(wire)을 통해 전송되는 전기 신호들 같이 그 자체로 일시적인(transitory) 신호들로 해석되지는 않는다.
본 명세서에 기술되는 컴퓨터 판독 가능 명령들은, 예를 들어, 인터넷, 근거리 통신망, 광역 통신망 및/또는 무선 네트워크 등의 통신망(네트워크)을 통해 컴퓨터 판독 가능 스토리지 매체로부터 각각 컴퓨팅/처리 디바이스들로 또는 외부 스토리지 디바이스로부터 외부 컴퓨터로 다운로드 될 수 있다. 상기 통신망은 구리 전송 케이블들, 광 전송 섬유들, 무선 전송, 라우터들, 방화벽들, 스위치들, 게이트웨이 컴퓨터들 및/또는 엣지 서버들을 포함할 수 있다. 각 컴퓨팅/처리 유닛 내 네트워크 어댑터 카드 또는 네트워크 인터페이스는 상기 통신망으로부터 컴퓨터 판독 가능 프로그램 명령들을 수신하고 그 컴퓨터 판독 가능 프로그램 명령들을 각각의 컴퓨팅/처리 디바이스 내의 컴퓨터 판독 가능 스토리지 매체에 저장하기 위해 전송한다.
본 발명의 연산들을 실행하기 위한 컴퓨터 판독 가능 프로그램 명령들은 Smalltalk, C++ 또는 그와 유사 언어 등의 객체 지향 프로그래밍 언어와 "C" 프로그래밍 언어 또는 그와 유사한 프로그래밍 언어 등의 종래의 절차적 프로그래밍 언어들을 포함하여, 하나 또는 그 이상의 프로그래밍 언어들을 조합하여 작성된(written) 어셈블러 명령들, 명령-세트-아키텍처(ISA) 명령들, 머신 명령들, 머신 종속 명령들, 마이크로코드, 펌웨어 명령들, 상태-셋팅 데이터, 집적회로를 위한 구성 데이터, 또는 소스 코드나 목적 코드일 수 있다. 상기 컴퓨터 판독 가능 프로그램 명령들은 전적으로 사용자의 컴퓨터상에서, 부분적으로 사용자의 컴퓨터상에서, 독립형(stand-alone) 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터상에서 그리고 부분적으로 원격 컴퓨터상에서 또는 전적으로 원격 컴퓨터나 서버상에서 실행될 수 있다. 위에서 마지막의 경우에, 원격 컴퓨터는 근거리 통신망(LAN) 또는 광역 통신망(WAN)을 포함한 모든 종류의 네트워크를 통해서 사용자의 컴퓨터에 접속될 수 있고, 또는 이 접속은 (예를 들어, 인터넷 서비스 제공자를 이용한 인터넷을 통해서) 외부 컴퓨터에 이루어질 수도 있다. 일부 실시 예들에서, 예를 들어 프로그램 가능 로직 회로, 필드-프로그램 가능 게이트 어레이들(FPGA), 또는 프로그램 가능 로직 어레이들(PLA)을 포함한 전자 회로는 본 발명의 실시 예들을 수행하기 위해 전자 회로를 맞춤화하도록 상기 컴퓨터 판독 가능 프로그램 명령들의 상태 정보를 활용하여 상기 컴퓨터 판독 가능 프로그램 명령들을 실행할 수 있다.
본 발명의 특징들이 본 발명의 실시 예들에 따른 방법들, 장치들(시스템들), 및 컴퓨터 프로그램 제품들의 플로 차트 예시도들 및/또는 블록도들을 참조하여 기술된다. 플로 차트 예시도들 및/또는 블록도들의 각 블록과 플로 차트 예시도들 및/또는 블록도들 내 블록들의 조합들은 컴퓨터 판독 가능 프로그램 명령들에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다.
이들 컴퓨터 판독 가능 프로그램 명령들은 범용 컴퓨터, 특수목적용 컴퓨터, 또는 기타 프로그램가능 데이터 처리 유닛의 프로세서에 제공되어 머신(machine)을 생성하고, 그렇게 하여 그 명령들이 상기 컴퓨터 또는 기타 프로그램가능 데이터 처리 유닛의 프로세서를 통해서 실행되어, 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현하기 위한 수단을 생성할 수 있다. 이들 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터 판독 가능 스토리지 매체에 저장될 수 있으며, 컴퓨터, 프로그램가능 데이터 처리 유닛 및/또는 기타 디바이스들에 지시하여 명령들이 저장된 상기 컴퓨터 판독 가능 스토리지 매체가 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능/동작의 특징들을 구현하는 명령들을 포함하는 제조품(an article of manufacture)을 포함하도록 특정한 방식으로 기능하게 할 수 있다.
상기 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터, 기타 프로그램가능 데이터 처리 장치들, 또는 다른 디바이스에 로드 되어, 상기 컴퓨터, 기타 프로그램가능 장치 또는 다른 디바이스에서 일련의 동작 단계들이 수행되게 하여 컴퓨터 구현 프로세스를 생성하며, 그렇게 하여 상기 컴퓨터, 기타 프로그램가능 장치, 또는 다른 디바이스 상에서 실행되는 명령들이 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현할 수 있다.
도면들의 플로차트 및 블록도는 본 발명의 다양한 실시예들에 따른 시스템들, 방법들, 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능, 및 동작을 예시한다. 이와 관련하여, 플로차트 또는 블록도들의 각 블록은, 특정 논리 기능(들)을 구현하기 위한 하나 혹은 그 이상의 실행 가능한 명령들을 포함하는, 모듈, 세그먼트, 또는 명령들의 일부를 나타낼 수 있다. 일부 대안적인 구현들에서, 블록들에 언급된 기능들은 도면들에 언급된 순서와 다르게 발생할 수 있다. 예를 들어, 연속적으로 도시된 2개의 블록들은 한 단계로서 달성되거나, 동시에 실행되거나, 실질적으로 동시에 실행되거나, 부분적으로 혹은 전체적으로 일시적으로 중복 방식으로 실행될 수 있거나, 또는 상기 블록들은, 관련된 기능에 따라, 때때로 역순으로 실행될 수 있다. 또한 블록도들 및/또는 플로차트의 각 블록, 및 블록도들 및/또는 플로차트 그림의 블록들의 조합들은, 특정 기능들을 수행하거나 특수 목적 하드웨어와 컴퓨터 명령들의 조합들을 수행하거나 수행하는 특수 목적 하드웨어-기반 시스템들에 의해 구현될 수 있다.
본 출원에서 사용된 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 본 명세서에서 사용된 단수형은 문맥상 명백하게 다르게 나타내지 않는 한 복수형도 포함하는 것으로 의도된다. "포함하다" 및/또는 "포함하는"이라는 용어는 본 명세서에서 사용될 때 명시된 특징, 정수, 단계, 동작, 요소 및/또는 컴포넌트의 존재를 명시하지만, 하나 이상의 다른 기능, 정수, 단계, 작업, 요소, 컴포넌트 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는다. 다양한 실시예들의 예시적인 실시예들에 대한 이전의 상세한 설명에서, 첨부된 도면들(동일한 번호는 유사한 요소를 나타냄)을 참조하였으며, 이는 본 명세서의 일부를 형성하고, 다양한 실시예들이 실시될 수 있는 특정 예시적 실시예들을 예시로 도시한다. 이들 실시예들은 당업자가 실시예를 실시할 수 있도록 충분히 상세하게 설명되었지만, 다른 실시예들가 사용될 수 있고, 다양한 실시예들의 범위를 벗어나지 않고 논리적, 기계적, 전기적 및 기타 변경들이 이루어질 수 있다. 이전의 설명에서, 다양한 실시예들에 대한 완전한 이해를 제공하기 위해 다수의 구체적인 세부사항이 제시되었다. 그러나 다양한 실시예들은 이들 특정 세부사항들 없이 실시될 수 있다. 다른 경우들에서, 잘 알려진 회로, 구조 및 기술은 실시예를 모호하게 하지 않기 위해 자세히 나타내지 않았다.
서로 다른 참조 번호들이 공통 번호 뒤에 다른 문자들(예: 100a, 100b, 100c) 또는 구두점 뒤에 다른 숫자들(예: 100-1, 100-2 또는 100.1, 100.2)이 있는 경우, 문자 또는 다음 숫자들(예: 100)이 없는 참조 캐릭터는 요소들 그룹 전체, 그룹의 하위 집합 또는 그룹의 예시 표본을 나타낼 수 있다.
또한, 항목들 목록과 함께 사용될 때 "중 적어도 하나"라는 문구는 나열된 항목들 중 하나 이상의 다른 조합이 사용될 수 있고, 목록의 각 항목 중 하나만 필요할 수 있음을 의미한다. 즉, "최소한 하나"는 항목의 조합과 항목 수를 목록에서 사용할 수 있지만 목록의 모든 항목이 필수는 아님을 의미한다. 항목은 특정 객체, 사물 또는 범주일 수 있다.
예를 들어, 제한 없이 "항목 A, 항목 B 또는 항목 C 중 적어도 하나"는 항목 A, 항목 A 및 항목 B 또는 항목 B를 포함할 수 있다. 이 예에는 항목 A, 항목 B, 항목 C 또는 항목 B와 항목 C를 포함할 수 있다. 물론 이들 항목들의 모든 조합이 존재할 수 있다. 일부 예시적인 예에서, "중 적어도 하나"는, 예를 들어 항목 A 중 2개; 항목 B 중 하나; 항목 C 중 10개; 항목 B 중 4개 및 항목 C 중 7개; 또는 기타 적합한 조합을, 제한없이, 포함할 수 있다.
본 명세서 내에서 사용되는 단어 "실시예"의 다른 경우들은 반드시 동일한 실시예를 지칭하지는 않지만, 그럴 수도 있다. 본 명세서에 예시되거나 설명된 모든 데이터 및 데이터 구조는 단지 예일뿐이며, 다른 실시예들에서, 상이한 양의 데이터, 데이터 유형, 필드, 수 및 필드 유형, 필드 이름, 행의 수 및 유형, 레코드, 또는 데이터의 조직이 사용될 수 있다. 또한 어떠한 데이터도 로직과 결합할 수 있으므로 별도의 데이터 구조가 반드시 필요하지 않을 수 있다. 따라서, 이전의 상세한 설명은 제한적인 의미로 받아들여져서는 안 된다.
본 발명의 다양한 실시예들에 대한 설명은 예시의 목적으로 제시되었지만, 개시된 실시예들이 전부라거나 이들에 제한되도록 의도된 것은 아니다. 기술된 실시예들의 범위 및 정신을 벗어나지 않으면서 많은 수정들 및 변형들이 당업자에게 명백할 것이다. 여기에 사용된 용어는 실시예들의 원리들, 시장에서 발견되는 기술들에 대한 실제 적용 또는 기술적 개선을 가장 잘 설명하거나 당업자가 여기에 개시된 실시예들을 이해할 수 있도록 선택되었다.
본 발명이 특정 실시예의 관점에서 설명되었지만, 본 발명의 변경들 및 수정이 당업자에게 자명할 것으로 예상된다. 따라서, 다음의 청구범위는 본 발명의 진정한 범위에 속하는 모든 그러한 변경들 및 수정들을 포함하는 것으로 해석되어야 한다.

Claims (20)

  1. 데이터 스트림을 사용하여 적대적 반-지도 원-샷 훈련(adversarial semi-supervised one-shot training)을 하기 위한 컴퓨터-구현 방법에 있어서, 상기 컴퓨터-구현 방법은:
    관찰에 기초한 데이터 스트림을 수신하는 단계 - 상기 데이터 스트림은 라벨이 지정되지 않은 데이터(unlabeled data) 및 라벨이 지정된 데이터(labeled data)를 포함함 -;
    분류 손실(a classification loss) 및 적대적 항(an adversarial term)에 기초한 확률적 경사 하강법(stochastic gradient descent)을 사용하여 상기 라벨이 지정된 데이터로 예측 모델을 훈련시키는 단계;
    재구성 손실(a reconstruction loss) 및 상기 적대적 항에 기초하여 상기 라벨이 지정된 데이터 및 상기 라벨이 지정되지 않은 데이터로 표현 모델(a representation model)을 훈련시키는 단계;
    상기 예측 모델 및 상기 표현 모델로부터의 중간 층 출력 데이터(middle layer output data)로 그리고 변별 손실(a discrimination loss)에 기초하여 변별기(a discriminator)를 업데이트하는 단계; 및
    데이터 스트림을 폐기하는 단계(discarding)를 포함하는
    컴퓨터-구현 방법.
  2. 제1항에 있어서, 상기 분류 손실은 상기 라벨이 지정된 데이터와 상기 예측 모델로부터의 예측 출력 사이의 교차-엔트로피(a cross-entropy)인
    컴퓨터-구현 방법.
  3. 제1항에 있어서, 상기 적대적 항은 상기 예측 모델로부터의 상기 중간 층 출력 데이터와 상기 표현 모델 사이의 교차-엔트로피인
    컴퓨터-구현 방법.
  4. 제1항에 있어서, 상기 재구성 손실은 상기 데이터 스트림과 상기 표현 모델에 의한 재구성 출력 사이의 제곱 손실(a squared loss)인
    컴퓨터-구현 방법.
  5. 제1항에 있어서, 상기 변별 손실은 상기 예측 모델의 상기 중간 층 출력 데이터와 상기 표현 모델 간의 교차 엔트로피인
    컴퓨터-구현 방법.
  6. 제1항에 있어서, 상기 표현 모델은 신경망에 기초한 오토인코더(an autoencoder)인
    컴퓨터-구현 방법.
  7. 제1항에 있어서, 상기 예측 모델은 인코더로서 바닥 층을 갖는 신경망인
    컴퓨터-구현 방법.
  8. 제1항에 있어서, 상기 변별기는 상기 예측 모델의 중간 층 출력들과 상기 표현 모델의 중간 층 출력들 사이를 변별하도록(discriminate) 구성된 신경망인
    컴퓨터-구현 방법.
  9. 데이터 스트림을 사용하여 적대적 반-지도 원-샷 훈련(adversarial semi-supervised one-shot training)을 하기 위한 시스템에 있어서, 상기 시스템은:
    메모리;
    프로세서;
    그 위에 컴퓨터 실행 코드를 저장한 로컬 데이터 스토리지;
    운송 수단 동작(a vehicle behavior)을 예측하도록 구성된 예측 모델 - 상기 예측 모델은 분류 손실(a classification loss) 및 적대적 항(an adversarial term)에 기초한 확률적 경사 하강법(stochastic gradient descent)을 사용하여 데이터 스트림으로부터의 라벨이 지정된 데이터로 훈련됨 -;
    상기 운송 수단 동작을 예측하도록 구성된 표현 모델 - 상기 표현 모델은 재구성 손실 및 상기 적대적 항에 기초하여 상기데이터 스트림으로부터의 라벨이 지정되지 않은 데이터 및 상기 라벨이 지정된 데이터로 훈련됨 -; 및
    상기 예측 모델 및 상기 표현 모델에 의해 이루어진 예측들을 예측하도록 구성된 변별기를 포함하고, 상기 변별기는 상기 예측 모델 및 상기 표현 모델로부터의 중간 층 출력 데이터로 그리고 변별 손실에 기초하여 훈련되는
    시스템.
  10. 제9항에 있어서, 상기 분류 손실은 상기 라벨이 지정된 데이터와 상기 예측 모델로부터의 예측 출력 사이의 교차-엔트로피인
    시스템.
  11. 제9항에 있어서, 상기 적대적 항은 상기 예측 모델로부터의 상기 중간 층 출력 데이터와 상기 표현 모델 사이의 교차-엔트로피인
    시스템.
  12. 제9항에 있어서, 상기 재구성 손실은 상기 데이터 스트림과 상기 표현 모델에 의한 재구성 출력 사이의 제곱 손실인
    시스템.
  13. 제9항에 있어서, 상기 변별 손실은 상기 예측 모델의 상기 중간 층 출력 데이터와 상기 표현 모델 사이의 교차-엔트로피인
    시스템.
  14. 제9항에 있어서, 상기 표현 모델은 신경망에 기초한 오토인코더인
    시스템.
  15. 제9항에 있어서, 상기 예측 모델은 인코더로서 바닥 층을 갖는 신경망인
    시스템.
  16. 제9항에 있어서, 상기 변별기는 상기 예측 모델의 중간 층과 상기 표현 모델의 중간 계의 출력들을 변별하도록 구성된 신경망인
    시스템.
  17. 데이터 스트림을 사용하여 적대적 반-지도 원-샷 훈련(adversarial semi-supervised one-shot training)을 하기 위한 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 프로그램 제품은:
    하나 혹은 그 이상의 컴퓨터 판독 가능 스토리지 매체, 및 상기 하나 혹은 그 이상의 컴퓨터 판독 가능 스토리지 매체에 저장된 프로그램 명령들을 포함하고, 상기 프로그램 명령은:
    관찰에 기초한 데이터 스트림을 수신하는 단계 - 상기 데이터 스트림은 라벨이 지정되지 않은 데이터(unlabeled data) 및 라벨이 지정된 데이터(labeled data)를 포함함 -;
    분류 손실(a classification loss) 및 적대적 항(an adversarial term)에 기초한 확률적 경사 하강법(stochastic gradient descent)을 사용하여 상기 라벨이 지정된 데이터로 예측 모델을 훈련시키는 단계;
    재구성 손실(a reconstruction loss) 및 상기 적대적 항에 기초하여 상기 라벨이 지정된 데이터 및 상기 라벨이 지정되지 않은 데이터로 표현 모델(a representation model)을 훈련시키는 단계;
    상기 예측 모델 및 상기 표현 모델로부터의 중간 층 출력 데이터(middle layer output data)로 그리고 변별 손실(a discrimination loss)에 기초하여 변별기(a discriminator)를 업데이트하는 단계; 및
    데이터 스트림을 폐기하는 단계(discarding)를 수행하도록 구성된 프로그램 명령들을 포함하는
    컴퓨터 프로그램 제품.
  18. 제17항에 있어서, 상기 분류 손실은 상기 라벨이 지정된 데이터와 상기 예측 모델로부터의 예측 출력 사이의 교차-엔트로피(a cross-entropy)인
    컴퓨터 프로그램 제품.
  19. 제17항에 있어서, 상기 적대적 항은 상기 예측 모델로부터의 상기 중간 층 출력 데이터와 상기 표현 모델 사이의 교차-엔트로피인
    컴퓨터 프로그램 제품.
  20. 제17항에 있어서, 상기 재구성 손실은 상기 데이터 스트림과 상기 표현 모델에 의한 재구성 출력 사이의 제곱 손실(a squared loss)인
    컴퓨터 프로그램 제품.
KR1020237018468A 2020-12-08 2021-11-24 적대적 반-지도 원-샷 학습 KR20230097151A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/114,957 US11875270B2 (en) 2020-12-08 2020-12-08 Adversarial semi-supervised one-shot learning
US17/114,957 2020-12-08
PCT/IB2021/060921 WO2022123380A1 (en) 2020-12-08 2021-11-24 Adversarial semi-supervised one-shot learning

Publications (1)

Publication Number Publication Date
KR20230097151A true KR20230097151A (ko) 2023-06-30

Family

ID=81849292

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237018468A KR20230097151A (ko) 2020-12-08 2021-11-24 적대적 반-지도 원-샷 학습

Country Status (11)

Country Link
US (1) US11875270B2 (ko)
JP (1) JP2023552068A (ko)
KR (1) KR20230097151A (ko)
CN (1) CN116635872A (ko)
AU (1) AU2021396607B2 (ko)
CA (1) CA3194463A1 (ko)
DE (1) DE112021005569T5 (ko)
GB (1) GB2616227A (ko)
IL (1) IL301852A (ko)
MX (1) MX2023006490A (ko)
WO (1) WO2022123380A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230208761A1 (en) * 2021-12-28 2023-06-29 International Business Machines Corporation Ai-based compensation of resource constrained communication
CN115130929B (zh) * 2022-08-29 2022-11-15 中国西安卫星测控中心 基于机器学习分类的资源池智能生成方法
CN116087814B (zh) * 2023-01-28 2023-11-10 上海玫克生储能科技有限公司 一种提高电压采样精度的方法、装置及电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11003995B2 (en) * 2017-05-19 2021-05-11 Huawei Technologies Co., Ltd. Semi-supervised regression with generative adversarial networks
GB201710877D0 (en) 2017-07-06 2017-08-23 Nokia Technologies Oy A method and an apparatus for evaluating generative machine learning model
CN108256561B (zh) 2017-12-29 2020-06-16 中山大学 一种基于对抗学习的多源域适应迁移方法及***
CN109800785B (zh) 2018-12-12 2021-12-28 中国科学院信息工程研究所 一种基于自表达相关的数据分类方法和装置

Also Published As

Publication number Publication date
US20220180204A1 (en) 2022-06-09
DE112021005569T5 (de) 2023-08-17
MX2023006490A (es) 2023-06-20
US11875270B2 (en) 2024-01-16
GB202309403D0 (en) 2023-08-09
JP2023552068A (ja) 2023-12-14
IL301852A (en) 2023-06-01
CA3194463A1 (en) 2022-06-16
CN116635872A (zh) 2023-08-22
WO2022123380A1 (en) 2022-06-16
AU2021396607B2 (en) 2023-10-05
GB2616227A (en) 2023-08-30
AU2021396607A1 (en) 2023-06-15

Similar Documents

Publication Publication Date Title
CN111247532B (zh) 利用多任务学习进行特征提取
Qian et al. Orchestrating the development lifecycle of machine learning-based IoT applications: A taxonomy and survey
AU2021396607B2 (en) Adversarial semi-supervised one-shot learning
US11875253B2 (en) Low-resource entity resolution with transfer learning
US11526802B2 (en) Model training using a teacher-student learning paradigm
US11663486B2 (en) Intelligent learning system with noisy label data
US11468334B2 (en) Closed loop model-based action learning with model-free inverse reinforcement learning
US11966993B2 (en) Land use planning recommendations using heterogeneous temporal datasets
AU2021215386B2 (en) Dynamically modifying shared location information
US20180357564A1 (en) Cognitive flow prediction
US11507890B2 (en) Ensemble model policy generation for prediction systems
US20180060737A1 (en) Adaptive analytical modeling tool
US20200027032A1 (en) Reducing computational costs to perform machine learning tasks
US11948101B2 (en) Identification of non-deterministic models of multiple decision makers
US20220147852A1 (en) Mitigating partiality in regression models
US11704542B2 (en) Convolutional dynamic Boltzmann Machine for temporal event sequence
US20230316151A1 (en) Feature segmentation-based ensemble learning for classification and regression
US20230169358A1 (en) Continuous knowledge graph for links and weight predictions
US11222177B2 (en) Intelligent augmentation of word representation via character shape embeddings in a neural network
US20220013239A1 (en) Time-window based attention long short-term memory network of deep learning
JP2023535202A (ja) コンテキスト・アウェア・アノマリ検出
US11740726B2 (en) Touch sensitivity management
US11966776B2 (en) Learning agent based application scheduling
US20230129390A1 (en) Data processing application system management in non-stationary environments
US20220414521A1 (en) Automated machine learning model transformation using artificial intelligence