KR102557956B1 - 딥 러닝 모델들의 분산 훈련을 위한 시스템들 및 방법들 - Google Patents

딥 러닝 모델들의 분산 훈련을 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR102557956B1
KR102557956B1 KR1020197007900A KR20197007900A KR102557956B1 KR 102557956 B1 KR102557956 B1 KR 102557956B1 KR 1020197007900 A KR1020197007900 A KR 1020197007900A KR 20197007900 A KR20197007900 A KR 20197007900A KR 102557956 B1 KR102557956 B1 KR 102557956B1
Authority
KR
South Korea
Prior art keywords
local
deep learning
input data
delete delete
learning model
Prior art date
Application number
KR1020197007900A
Other languages
English (en)
Other versions
KR20190110519A (ko
Inventor
데이비드 몰로니
Original Assignee
모비디어스 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 모비디어스 리미티드 filed Critical 모비디어스 리미티드
Publication of KR20190110519A publication Critical patent/KR20190110519A/ko
Application granted granted Critical
Publication of KR102557956B1 publication Critical patent/KR102557956B1/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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • G06F18/24137Distances to cluster centroïds
    • G06F18/2414Smoothing the distance, e.g. radial basis function networks [RBFN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • 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/0464Convolutional networks [CNN, ConvNet]
    • 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/0499Feedforward networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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/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/09Supervised 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/098Distributed learning, e.g. federated learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/95Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/96Management of image or video recognition tasks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Neurology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Feedback Control In General (AREA)

Abstract

딥 러닝 모델들의 분산 훈련을 위한 시스템들 및 방법들이 개시된다. 딥 러닝 모델들을 훈련하는 예시적인 로컬 디바이스는, 훈련 데이터를 생성하기 위해 로컬 디바이스에서 수신되는 입력 데이터를 라벨링하는 기준 생성기, 로컬 딥 러닝 모델을 훈련하고 복수의 로컬 디바이스들로부터 복수의 로컬 딥 러닝 모델들을 수신하는 서버 ― 서버는 글로벌 딥 러닝 모델에 대한 가중값 세트를 결정함 ― 에 로컬 딥 러닝 모델을 송신하는 트레이너, 및 서버로부터 수신되는 가중값 세트에 기초하여 로컬 딥 러닝 모델을 업데이트하는 업데이터를 포함한다.

Description

딥 러닝 모델들의 분산 훈련을 위한 시스템들 및 방법들
관련 출원
본 특허는 "Systems and Methods for Distributed Training of Deep Learning Models"라는 명칭의 2016년 8월 19일자로 출원된 미국 특허 가출원 제62/377,094호의 이익을 주장한다. 미국 특허 가출원 제62/377,094호는 그 전부가 참조로 본 명세서에 포함된다.
개시내용의 분야
본 출원은 대체로 머신 러닝에 관한 것이고 더 상세하게는 딥 러닝 모델들의 분산 훈련을 위한 시스템들 및 방법들에 관한 것이다.
딥 러닝은 컴퓨터 비전, 스피치 프로세싱, 자연 언어 프로세싱, 및 오디오 인식을 포함하는 많은 애플리케이션들에서 최첨단 성능을 제공하는 머신 러닝의 분야이다. 딥 러닝은 두뇌에서의 뉴런들의 아키텍처와 유사한 컴퓨테이션 모델을 사용한다. 특히, 딥 러닝 모델이라고 이하에서 지칭되는 딥 러닝의 컴퓨테이션 모델은, 컴퓨테이션 모델의 원하는 기능을 모델링하기 위해 "인공 뉴런들"의 계층들을 사용한다. 인공 뉴런들의 각각은 하나 이상의 가중값들과 연관되는데, 그 가중값들은 인공 뉴런들이 집성체로 동작될 때 원하는 기능을 제공하도록 조정될(예컨대, 훈련될) 수 있다.
딥 러닝 모델에서의 가중값들은 훈련 데이터를 사용하여 훈련될 수 있다. 훈련 데이터는 입력 데이터와 입력 데이터에 연관된 라벨을 포함할 수 있다. 딥 러닝 모델에서의 가중값들은, 딥 러닝 모델이 입력 데이터를 수신할 때 딥 러닝 모델이 입력 데이터에 대응하는 라벨을 출력하는 방식으로, 훈련될(결정될) 수 있다.
개시된 발명의 주제의 다양한 목적들, 특징들, 및 이점들은, 비슷한 참조 번호들이 비슷한 엘리먼트들을 식별하는 다음의 도면들에 관련하여 고려될 때, 개시된 발명의 주제의 다음의 상세한 설명을 참조하여 더 충분히 이해될 수 있다.
도 1은 일부 실시예들에 따른, 호스트 서버와 복수의 로컬 디바이스들을 포함하는 예시적인 분산 딥 러닝 훈련 플랫폼의 블록도이다.
도 2는 일부 실시예들에 따른 로컬 디바이스의 예시적인 구현예의 블록도이다.
도 3은 도 1 및/또는 도 2의 로컬 디바이스 및 호스트 서버를 구현하기 위해 실행될 수 있는 머신 판독가능 명령들을 나타내는 흐름도이다.
도 4 및 도 5는 일부 실시예들에 따른 로컬 디바이스의 예시적인 구현예들의 블록도들이다.
도 6은 일부 실시예들에 따른 도면의 오퍼레이터 콘솔을 위한 사용자 인터페이스의 예시적인 레이아웃을 도시한다.
도 7은 일부 실시예들에 따른 도 1의 로컬 디바이스들 및 호스트 서버에 의해 지원되는 예시적인 애플리케이션 프로그래밍 인터페이스(API)를 도시한다.
도 8 및 도 9는 도 1 및/또는 도 2의 로컬 디바이스 및 호스트 서버를 구현하기 위해 도 3의 명령들을 실행하도록 구조화된 예시적인 프로세싱 플랫폼들의 블록도들이다.
다음의 설명에서, 수많은 특정 세부사항들이 개시된 발명의 주제의 철저한 이해를 제공하기 위하여, 개시된 발명의 주제의 시스템들 및 방법들과 이러한 시스템들 및 방법들이 동작할 수 있는 환경 등에 관해 언급된다. 그러나, 발명의 주제는 이러한 특정 세부사항들 없이 실시될 수 있고, 본 기술분야에서 널리 공지된 소정의 특징들이 개시된 발명의 주제의 복잡화를 피하기 위하여 상세히 설명되지 않는다는 것이 본 기술분야의 통상의 기술자에게 명백할 것이다. 덧붙여서, 아래에서 제공되는 실시예들은 예들이고, 개시된 발명의 주제의 범위 내에 있는 다른 시스템들 및 방법들이 존재할 것으로 생각된다는 것이 이해될 것이다.
딥 러닝에서의 도전과제들 중 하나는 딥 러닝 모델에서의 가중값들을 훈련하는 것이다. 딥 러닝 모델에서의 가중값들은 집중식 딥 러닝 훈련 플랫폼을 사용하여 일반적으로 훈련된다. 집중식 딥 러닝 훈련 플랫폼은 호스트 서버와 복수의 로컬 디바이스들을 포함한다. 로컬 디바이스들의 각각은 입력 데이터를 수집하고 입력 데이터를 호스트 서버에 송신한다. 호스트 서버는 로컬 디바이스들의 각각으로부터 수신된 입력 데이터를 집성하며, 원하는 라벨들과 집성된 입력 데이터를 연관시킴으로써 집성된 입력 데이터로부터 훈련 데이터 세트를 생성하고, 그 훈련 데이터 세트를 사용하여 딥 러닝 모델(예컨대, 딥 러닝 모델에 대한 가중값들)을 훈련시킬 수 있다.
유감스럽게도, 집중식 딥 러닝 훈련 플랫폼은, 특히 훈련 데이터 세트가 큰 경우 컴퓨테이션적으로 비싼데, 왜냐하면 훈련 데이터 세트에서 입력 데이터에 대한 올바른 라벨들을 결정하고 연관시키는 것이 어렵기 때문이다. 이러한 막대한 라벨링 노력은 다량의 리소스들을 갖는 엔티티들에 대해서만 현실적이다. 또한, 집중식 딥 러닝 훈련 플랫폼은 대량의 데이터 통신 대역폭을 요구하는데 왜냐하면 호스트 서버가 다수의 로컬 디바이스들로부터 다량의 입력 데이터를 수신해야 하기 때문이다. 덧붙여서, 집중식 딥 러닝 훈련 플랫폼은 프라이버시 침해가 발생하기 쉬운데 왜냐하면 로컬 디바이스들이 개인 정보를 포함할 수 있는 원시 입력 데이터를 호스트 서버와 공유해야 하기 때문이다.
집중식 훈련과 함께하는 이들 이슈들을 해결하기 위해, 본 명세서에서 개시되는 시스템들 및 방법들은 딥 러닝 모델을 훈련하기 위한 분산 훈련 플랫폼을 제공한다. 예시적인 분산 훈련 플랫폼은 호스트 서버와 복수의 로컬 디바이스들을 포함한다. 복수의 로컬 디바이스들의 각각은 입력 데이터를 수신하도록 구성된다. 집중식 접근법과는 대조적으로, 분산 시스템에서의 예시적인 로컬 디바이스들의 각각은 입력 데이터를 로컬적으로 라벨링하여 로컬 훈련 데이터 세트를 생성하고 로컬 훈련 데이터 세트를 사용하여 로컬 딥 러닝 모델을 훈련하도록 구성된다. 훈련 데이터 세트가 로컬 디바이스들에서 로컬적으로 생성되기 때문에, 호스트 서버는 라벨들을 결정하고 다량의 입력 데이터에 연관시킬 필요가 없다. 그러므로, 호스트 서버는 큰 훈련 데이터 세트를 생성하는 컴퓨테이션적으로 비싼 프로세스로부터 해방된다.
일단 로컬 딥 러닝 모델이 훈련되면(예컨대, 로컬 딥 러닝 모델의 가중값들이 결정되면), 로컬 디바이스들의 각각은 자신의 로컬 딥 러닝 모델의 가중값들을 호스트 서버에 송신할 수 있다. 이는 로컬 디바이스가 원시 입력 데이터를 호스트 서버에 전송했던 집중식 접근법과는 대조적이다. 입력 데이터 자체가 호스트 서버에 전송되지 않기 때문에, 로컬 디바이스는 입력 데이터에서의 개인 정보를 공유하도록 강제되지 않음으로써, 프라이버시 침해의 가능성을 감소시킨다.
호스트 서버가 로컬 디바이스들로부터의 가중값들을 수신할 때, 호스트 서버는 가중값들을 집성하여 집성된 가중값들을 결정할 수 있다. 집성된 가중값들은, 호스트 서버가 로컬 디바이스들에 의해 사용되는 모든 훈련 데이터 세트들을 사용하여 딥 러닝 모델을 훈련했었다면 획득되었을 딥 러닝 모델의 가중값들과 근사하다. 로컬 디바이스들에 의한 가중값들의 분산형 컴퓨테이션을 활용함으로써, 호스트 서버는, 딥 러닝 모델을 그 자체로 실제로 훈련하는 일 없이, 딥 러닝 모델의 근사화된 가중값들을 결정할 수 있다. 어떤 의미에서, 호스트 서버는 로컬 디바이스들로부터의 딥 러닝 모델의 훈련을 크라우드-소싱(crowd-sourcing)하고 있다.
일부 예들에서, 개시된 분산 훈련 플랫폼은 유익한데 왜냐하면 (1) 호스트 서버가 모든 가용 정보(예컨대, 훈련 데이터)를 고려하여 딥 러닝 모델을 학습시키고 전역-학습된 딥 러닝 모델을 로컬 디바이스들에 제공하는 것을 허용하고, (2) 로컬 디바이스들이 전역-학습된 딥 러닝 모델을 채택하고 임의의 로컬 변동들을 또한 고려하는 것을 허용하기 때문이다. 그러므로, 개시된 분산 훈련 플랫폼은 "전역적으로 훈련하며, 로컬적으로 적응시키기" 위한 딥 러닝 패러다임을 제공한다.
일부 실시예들에서, 분산 딥 러닝 훈련 플랫폼은 기본 원시 입력 이미지들을 프로세싱하기 위한 자동 화이트 밸런스 또는 다른 이미지 프로세싱 시스템들을 위해 딥 러닝 모델들을 훈련하는데 사용될 수 있다. 다른 실시예들에서, 분산 딥 러닝 훈련 플랫폼은 가속도계 입력 신호를 사용하여 움직임의 스테이터스(예컨대, 정지, 걷기, 또는 달리기)를 검출하기 위한 딥 러닝 모델들을 훈련하는데 사용될 수 있다. 다른 실시예들에서, 분산 딥 러닝 훈련 플랫폼은 오디오 커맨드들 또는 이벤트들을 검출하기 위한 딥 러닝 모델들을 훈련하는데 사용될 수 있다. 개시된 딥 러닝 훈련 플랫폼은, 대안적으로, 머신 러닝이 요망되는 임의의 태스크를 위해 사용될 수 있다.
도 1은 일부 실시예들에 따른, 예시적인 분산 딥 러닝 훈련 플랫폼(100)의 블록도이다. 예시적인 플랫폼(100)은 예시적인 네트워크(106)를 통해 예시적인 호스트 서버(104)와 통신적으로 커플링되는 복수의 예시적인 로컬 디바이스들(102)을 포함한다. 도시된 예에 따르면, 호스트 서버(104)는 오퍼레이터가 호스트 서버(104)의 동작을 제어하는 것을 허용하기 위해 예시적인 오퍼레이터 단말(108)과 커플링된다. 명료화를 위해, 본 개시내용의 전체에 걸쳐, 복수의 로컬 디바이스들(102)의 하나 이상을 나타내는 단일 로컬 디바이스(102)가 참조된다.
예시적인 로컬 디바이스(102)는 입력 데이터를 수신하며, 로컬 딥 러닝 모델을 훈련하고, 로컬 딥 러닝 모델(또는 그것의 특성들)을 호스트 서버에 송신하는 컴퓨팅 디바이스이다. 도시된 예에 따르면, 입력 데이터는 예시적인 호스트 서버(104)를 통과하는 일 없이, 첫 번째 로컬 디바이스에서 직접적으로 수신된다. 본 명세서에서 사용되는 바와 같이, 입력 데이터가 로컬 디바이스(102)에서 직접적으로 수신된다는 것은 데이터 소스로부터 직접적으로 또는 간접적으로 데이터를 수신하며 그 데이터는 딥 러닝 훈련을 수행하고 있는 호스트 서버(예컨대, 호스트 서버(104))를 통과하지 않는다는 것을 의미하는 것으로 정의된다. 일부 예들에서, 입력 데이터는 로컬 디바이스(102)의 센서(예컨대, 측정 디바이스, 데이터 입력, 데이터 수집기, 사용자 입력을 받는 사용자 인터페이스 등)로부터 수신될 수 있으며, 로컬 디바이스(102)에 통신적으로 커플링된(예컨대, 로컬 디바이스에 직접적으로 커플링된, 하나 이상의 중간 디바이스들(예컨대, 호스트 서버(104) 외의 중간 디바이스)을 통해 로컬 디바이스(102)에 커플링된 등의) 센서로부터 수신될 수 있다는 등등이다.
예시적인 디바이스(102)는 도 2와 연계하여 더 상세히 설명된다.
예시적인 호스트 서버(104)는 복수의 로컬 디바이스들(102)로부터 수신된 로컬 딥 러닝 모델 데이터를 집성하고 집성된 결과들을 다시 복수의 로컬 디바이스들(102)에 분배한다. 예시적인 호스트 서버(104)는 예시적인 가중값 집성기(110), 예시적인 가중값 분배기(112), 및 예시적인 글로벌 딥 러닝 트레이너(114)를 포함한다.
예시적인 가중값 집성기(110)는 복수의 로컬 디바이스들(102)로부터 로컬 딥 러닝 모델들의 가중값들을 수신하고 가중값들을 집성하여 집성된 가중값들을 결정한다. 예시적인 가중값 집성기(110)는 로컬 디바이스들(102)로부터 수신된 대응하는 가중값들을 평균함으로써 가중값들을 집성한다. 예를 들어, 가중값 집성기(110)가 제1 로컬 디바이스(102)로부터의 제1 가중값 세트(a_1, b_1, c_1)와 제2 로컬 디바이스(102)로부터의 제2 가중값 세트(a_2, b_2, c_2)를 수신할 때, 예시적인 가중값 집성기(110)는 다음과 같이 로컬 디바이스들(102)로부터의 대응 가중값들을 평균하여 집성된 가중값들을 결정한다: ((a_1 + a_2)/2, (b_1 + b_2)/2, (c_1 + c_2)/2). 일부 예들에서, 가중값 집성기(110)는 딥 러닝 모델에서의 더 깊은 계층들에 연관된 가중값들만을 집성함으로써 가중값 집성 프로세스를 단순화시킬 수 있다.
일단 가중값 집성기(110)가 집성된 가중값들을 결정하면, 예시적인 가중값 집성기(110)는 집성된 가중값들을 예시적인 가중값 분배기(112)에 제공한다.
예시적인 가중값 분배기(112)는 로컬 디바이스들(102)이 집성된 가중값들을 사용하여 자신들 소유의 로컬 딥 러닝 모델들을 업데이트할 수 있도록 집성된 가중값들을 로컬 디바이스들(102)에 제공한다. 예시적인 가중값 분배기(112)는 집성된 가중값들을 예시적인 네트워크(106)를 통해 복수의 로컬 디바이스들(102)에 송신하기 위한 네트워크 인터페이스(예컨대, 유선 네트워크 인터페이스 및/또는 무선 네트워크 인터페이스)를 포함한다. 대안적으로, 가중값 분배기(112)는 집성된 가중값들을 직접 접속을 통해, 착탈식 저장 디바이스를 통해 등으로 로컬 디바이스들에 전달할 수 있다.
예시적인 호스트 서버(104)는 훈련 데이터를 사용하여 글로벌 딥 러닝 모델을 훈련하는 예시적인 글로벌 딥 러닝 트레이너(114)를 포함한다. 글로벌 딥 러닝 트레이너(114)는, 예를 들어 후방 전파, 대조적 발산, 교번 방향 승수법(alternative direction method of multipliers)(ADMM), 및/또는 텐서 분해(tensor factorization)를 포함하는, 다양한 훈련 기법들을 사용하여 글로벌 딥 러닝 모델을 훈련하도록 구성될 수 있다. 예를 들어, 호스트 서버(104)는 로컬 디바이스들(102)이 입력 데이터를 예시적인 호스트 서버(104)에 제공할 때 글로벌 딥 러닝 트레이너(114)를 포함할 수 있다. 대안적으로, 일부 예들에서, 호스트 서버(104)는 글로벌 딥 러닝 트레이너(114)를 포함하지 않을 수 있다.
일부 예들에서, 가중값 집성기(110)는 집성된 가중값들을 가중값 분배기(112)에 제공하는 것에 더하여 또는 그 대안으로서 집성된 가중값들을 글로벌 딥 러닝 트레이너(114)에 제공한다. 예를 들어, 글로벌 딥 러닝 트레이너(114)는 호스트 서버(104)에서 이용 가능한 임의의 훈련 데이터로 집성된 가중값들을 업데이트하고, 업데이트된 집성된 가중값들을 로컬 디바이스들(102)에 분배하기 위해 가중값 분배기(112)에 제공할 수 있다.
일부 예들에서, 호스트 서버(104)와 복수의 로컬 디바이스들(102)은 서로 협업하여 모든 로컬 디바이스들(102) 및/또는 호스트 서버(104)에 이용 가능한 모든 훈련 데이터 세트들을 고려한 글로벌 딥 러닝 모델을 생성한다.
예시적인 네트워크(106)는 로컬 디바이스들(102)을 호스트 서버(104)에 통신적으로 커플링하는 광역 네트워크이다. 예를 들어, 네트워크(106)는 인터넷일 수 있다. 대안적으로, 예를 들어, 로컬 영역 네트워크, 무선 네트워크, 유선 네트워크, 또는 임의의 조합의 네트워크(들)와 같은 임의의 다른 유형의 네트워크가 이용될 수 있다.
예시적인 오퍼레이터 단말(108)은 인간 오퍼레이터가 호스트 서버(104)와 상호작용하고 그 호스트 서버의 동작을 제어할 수 있는 사용자 인터페이스를 제공하는 컴퓨팅 디바이스이다. 예를 들어, 인간 오퍼레이터는 가중값 집성 프로세스를 검토하며, 동작 스테이터스 등을 볼 수 있다. 오퍼레이터 단말(108)을 위한 예시적인 사용자 인터페이스가 도 6과 연계하여 설명된다.
플랫폼(100)의 예시적인 동작에서, 로컬 디바이스들(102)은 (예컨대, 로컬 디바이스들(102)에 커플링된 센서들 또는 다른 입력들로부터의) 입력 데이터를 수신한다. 프라이버시, 대역폭 사용 제한 등을 보장하기 위해, 로컬 디바이스들(102)은 이 예에 따라 입력 데이터를 호스트 서버(104)에 송신하지 않는다. 예시적인 로컬 디바이스들(102)은 입력 데이터를 사용하여 각각의 로컬 딥 러닝 모델들을 훈련한다. 예시적인 로컬 디바이스들(102)은 각각의 로컬 딥 러닝 모델들의 가중값들 및/또는 다른 세부사항들을 예시적인 호스트 서버(104)에 송신한다. 예시적인 호스트 서버(104)의 예시적인 가중값 집성기(110)는 그 가중값들을 집성하여 글로벌 가중값 세트를 전개한다. 예시적인 가중값 분배기(112)는 전역적으로 집성된 가중값들로 각각의 로컬 딥 러닝 모델들을 업데이트하기 위해 집성된 가중값들을 다시 로컬 디바이스들(102)에 분배한다. 예를 들어, 로컬 디바이스들(102)은 그때 테스트 데이터(예컨대, 분류되어 있지 않거나 또는 분류가 요망되는 데이터)를 분류하기 위해 각각의 로컬 딥 러닝 모델들을 전역적으로 업데이트할 수 있다.
도 2는 도 1의 로컬 디바이스(102)의 예시적인 구현예의 블록도이다. 예시적인 로컬 디바이스(102)는 예시적인 데이터 수신기(202); 예시적인 입력 샘플러들(204), 예시적인 샘플 제어기(206), 예시적인 기준 생성기(210); 예시적인 딥 러닝 모델(214)을 포함하는 예시적인 딥 러너(212), 예시적인 출력 샘플러들(215), 예시적인 트레이너(216), 및 예시적인 업데이터(218)를 포함한다.
예시적인 데이터 수신기(202)는 예시적인 로컬 디바이스(102)에 의해 프로세싱될 입력 데이터를 수신한다. 예를 들어, 데이터 수신기(202)는 센서, 측정 디바이스, 네트워크 인터페이스, 사용자 입력 디바이스, 착탈식 저장 디바이스를 위한 커넥션 등일 수 있다. 예를 들어, 입력 데이터는 이미지 센서, 오디오 센서, 데이터 통신 채널, 사용자 인터페이스, 및/또는 데이터를 로컬 디바이스(102)에 제공할 수 있는 임의의 소스로부터 수신될 수 있다.
도시된 예에 따르면, 데이터 수신기(202)는 수신된 입력 데이터를 예시적인 샘플 제어기(206)에 의해 제어되는 예시적인 입력 샘플러들(204)을 통해 예시적인 기준 생성기(210) 및 예시적인 딥 러너(212)에 제공한다. 예를 들어, 입력 데이터는 입력 데이터의 사이즈를 감소시키고 훈련 프로세스를 단순화하기 위해 입력 샘플러들(204)에 의해 샘플링될 수 있다.
예시적인 샘플 제어기(206)는 입력 데이터가 어떻게 샘플링되어야하는 지를 결정한다. 일부 예들에서, 샘플 제어기(206)는 미리 결정된 사이즈를 갖는 입력 데이터의 하나 이상의 랜덤 세그먼트들을 선택하고 그 랜덤 세그먼트(들)를 예시적인 기준 생성기(210) 및 예시적인 딥 러너(212)에 제공하도록 구성된다. 예를 들어, 샘플 제어기(206)는 입력 데이터의 의사-랜덤 부분을 선택하도록 구성되는 선형 피드백 시프트 레지스터(linear-feedback shift register)(LFSR)를 사용하여 구현될 수 있다. 입력 데이터의 의사-랜덤 선택은 예시적인 딥 러너(212)의 예시적인 트레이너(216)가 로컬 딥 러닝 모델(214)을 훈련하기 위한 적절한 분포의 샘플들을 사용하는 것을 허용한다. 일부 구현예들에서, LFSR은 하드웨어, 이를테면 프로그램가능 하드웨어로 구현될 수 있다. 다른 구현예들에서, LFSR은 메모리 디바이스에 저장되는 컴퓨터 명령들의 세트를 포함하는 소프트웨어 모듈로서 구현될 수 있다.
예를 들어, 입력 데이터가 이미지(들)이면, 샘플 제어기(206)는 입력 이미지의 하나 이상의 부분들을 랜덤하게 크로핑하고 크로핑된 부분(들)을 기준 생성기(210) 및 딥 러너(212)에 제공할 수 있다. 다른 경우들에서, 입력 데이터가 이미지일 때, 샘플 제어기(206)는 입력 이미지를 다운 샘플링하고 다운 샘플링된 입력 이미지를 기준 생성기(210) 및 딥 러너(212)에 제공할 수 있다.
예시적인 기준 생성기(210)는 입력 데이터(또는 샘플링된 입력 데이터)에 연관된 라벨을 결정하기 위해 입력 데이터를 프로세싱한다. 예를 들어, 훈련을 위해 사용될 입력 데이터는 라벨, 분류, 결과 등의 표시를 포함할 수 있다. 일부 예들에서, 기준 생성기(210)는 입력 데이터에 대한 라벨을 식별하는 사용자 입력을 수신할 수 있다(예컨대, 입력 데이터는 사용자 인터페이스를 통해 제시될 수 있고 사용자는 그 데이터에 대한 적절한 라벨을 선택할 수 있다). 기준 생성기(210)는 입력 데이터를 예시적인 딥 러닝 모델(214)에 적용한 결과와 비교하기 위한 라벨링된 데이터를 출력한다. 기준 생성기(210)의 출력은 예시적인 출력 샘플러(215)에 의해 샘플링될 수 있다.
예시적인 로컬 딥 러닝 모델(214)은 입력 데이터(또는 샘플링된 입력 데이터)를 수신하고 입력 데이터를 프로세싱하여 출력을 결정한다. 예를 들어, 로컬 딥 러닝 모델(214)은 기준 생성기(210)에 의해 이용되는 동일한 라벨 세트를 사용하여 동작할 수 있다. 딥 러닝 모델(214)의 출력은 예시적인 출력 샘플러(215)에 의해 샘플링될 수 있다. 로컬 딥 러닝 모델(214)은, 예를 들어, 깊은 신경망들, 콘볼루션 깊은 신경망, 딥 빌리프 네트워크들, 순환 신경망들 등의 구현을 포함할 수 있다.
도시된 예에 따르면, 트레이너(216)가 (1) 기준 생성기(210)에 의해 결정된 라벨 및 (2) 딥 러닝 모델(214)의 출력을 분석하기 전에, 딥 러닝 모델(214)의 라벨 및 출력은 출력 샘플러들(215)에 의해 샘플링된다. 예를 들어, 출력 샘플러들(215)은 수행될 훈련의 양이, 예를 들어, 계산 강도, 전력 소모 또는 둘 다의 측면에서 임베디드 플랫폼에 대해 너무 부담스러울 때 이용될 수 있다. 예를 들어, 이미지와 비디오 입력 데이터는 출력들을 샘플링함으로써 감소될 수 있는 계산 복잡도를 나타낼 수 있다.
예시적인 트레이너(216)는 (1) 기준 생성기(210)에 의해 결정된 라벨과 (2) 예시적인 딥 러닝 모델(214)의 출력 사이의 차이를 결정한다. 예시적인 트레이너는 그 차이를 사용하여 예시적인 로컬 딥 러닝 모델(214)을 훈련/조정한다. 예를 들어, 트레이너(216)는, 예를 들어 후방 전파, 대조적 발산, 교번 방향 승수법(ADMM), 및/또는 텐서 분해를 포함하는 다양한 훈련 기법들을 사용하여 로컬 딥 러닝 모델(214)을 훈련시킬 수 있다.
도시된 예에 따르면, 트레이너(216)는 로컬 딥 러닝 모델(214)에 연관된 가중값들을 호스트 서버(104)에 송신한다. 대안적으로, 예시적인 트레이너(216)는 로컬 딥 러닝 모델(214) 및/또는 입력 데이터를 예시적인 호스트 서버(104)에 송신할 수 있다. 일부 구현예들에서, 트레이너(216)는 로컬 디바이스(102)가 가중값들을 호스트 서버(104)에 전송하도록 요청될 때 가중값들을 송신한다. 대안적으로, 트레이너(216)는 딥 러너(212)가 로컬 딥 러닝 모델(214)의 훈련을 완료할 때 가중값들을 송신할 수 있다.
일부 예들에서, 트레이너(216)가 가중값들을 호스트 서버(104)에 송신할 때, 트레이너(216)는 (1) 딥 러너(212)에 의해 수행된 훈련 구간들의 수(예컨대, 훈련의 반복수) 및/또는 (2) 시간 경과에 따른 오류 수렴을 기술하는 시계열 데이터를 또한 전송할 수 있다. 일부 경우들에서, 로컬 딥 러닝 모델(214) 상에서 훈련하기 어려웠던 임의의 입력 데이터가 있었다면, 트레이너(216)는 그 입력 데이터, 또는 로컬 딥 러닝 모델(214)에 의해 출력되었던 하나 이상의 라벨들을 또한 송신한다. 예를 들어, 트레이너(216)는 로컬 딥 러닝 모델(214)이 입력 데이터에 대한 유사한 신뢰 수준들을 갖는 둘 이상의 라벨들을 출력할 때 입력 데이터가 로컬 딥 러닝 모델(214) 상에서 훈련하도록 도전되고 있었다고 결정할 수 있다.
예시적인 업데이터(218)는 호스트 서버(104)로부터 집성된 가중값들을 수신하고 집성된 가중값들로 로컬 딥 러닝 모델(214)의 가중값들을 업데이트한다. 예를 들어, 업데이터(218)는 로컬 딥 러닝 모델(214)의 가중값들을 집성된 가중값들로 대체할 수 있다. 다른 예로서, 업데이터(218)는 로컬 딥 러닝 모델(214)의 가중값들을 (1) 로컬 딥 러닝 모델(214)의 가중값들 및 (2) 호스트 서버(104)로부터 수신된 집성된 가중값들의 가중된 평균으로 대체할 수 있다.
일부 예들에서, 기준 생성기(210)와 딥 러너(212)는 새로운 입력 데이터를 그것이 이용 가능해짐에 따라 프로세싱한다. 로컬 딥 러닝 모델(214)의 훈련이 완료되었다고 트레이너(216)가 결정할 때, 딥 러너(212)는 추가적인 훈련을 중지하도록 구성될 수 있다. 예를 들어, 트레이너(216)는 딥 러닝 모델(214)의 정확도가 임계 레벨에 도달했다고 결정할 때, 정확도가 증가를 실질적으로 중지시켰을 때 등에 추가적인 훈련을 중지할 수 있다. 대안적으로, 기준 생성기(210)로부터의 추가적인 입력 데이터 및 라벨들이 제시되는 한 트레이너(216)는 훈련을 계속할 수 있다.
도 1의 로컬 디바이스(102)를 구현하는 예시적인 방식이 도 2에 예시되지만, 도 4에 도시된 하나 이상의 엘리먼트들, 프로세스들 및/또는 디바이스들은 임의의 다른 방식으로 조합, 분리, 재배열, 생략, 제거 및/또는 구현될 수 있다. 게다가, 예시적인 데이터 수신기(202), 예시적인 입력 샘플러들(204), 예시적인 샘플 제어기(206), 예시적인 기준 생성기(210), 예시적인 트레이너(216), 예시적인 업데이터(218)(및/또는, 더 일반적으로, 예시적인 딥 러너(212)), 예시적인 출력 샘플러들(215), 및/또는, 더 일반적으로, 도 1의 예시적인 로컬 디바이스(102)는 하드웨어, 소프트웨어, 펌웨어 및/또는 하드웨어, 소프트웨어 및/또는 펌웨어의 임의의 조합에 의해 구현될 수 있다. 따라서, 예를 들어, 예시적인 데이터 수신기(202), 예시적인 입력 샘플러들(204), 예시적인 샘플 제어기(206), 예시적인 기준 생성기(210), 예시적인 트레이너(216), 예시적인 업데이터(218) (및/또는, 더 일반적으로, 예시적인 딥 러너(212)), 예시적인 출력 샘플러들(215), 및/또는, 더 일반적으로, 도 1의 예시적인 로컬 디바이스(102) 중 임의의 것이 하나 이상의 아날로그 또는 디지털 회로(들), 로직 회로들, 프로그램가능 프로세서(들), 주문형 집적회로(들)(ASIC(들)), 프로그램가능 로직 디바이스(들)(PLD(들)) 및/또는 필드 프로그램가능 로직 디바이스(들)(FPLD(들))에 의해 구현될 수 있다. 본 특허의 장치 또는 시스템 청구항들 중 임의의 것을 순수 소프트웨어 및/또는 펌웨어 구현예를 커버하는 것으로 이해할 때, 예시적인 데이터 수신기(202), 예시적인 입력 샘플러들(204), 예시적인 샘플 제어기(206), 예시적인 기준 생성기(210), 예시적인 트레이너(216), 예시적인 업데이터(218)(및/또는, 더 일반적으로, 예시적인 딥 러너(212)), 및/또는 예시적인 출력 샘플러들(215) 중 적어도 하나는 소프트웨어 및/또는 펌웨어를 포함하는 메모리, 디지털 다기능 디스크(DVD), 콤팩트 디스크(CD), 블루레이 디스크 등과 같은 비-일시적 컴퓨터 판독가능 저장 디바이스 또는 저장 디스크를 포함하도록 본 명세서에서 명시적으로 정의된다. 추가로, 도 1의 예시적인 로컬 디바이스(102)는 도 2에 도시된 것들에 추가하여, 또는 그것들 대신, 하나 이상의 엘리먼트들, 프로세스들 및/또는 디바이스들을 포함할 수 있으며, 그리고/또는 예시된 엘리먼트들, 프로세스들 및 디바이스들 중 하나를 초과하는 임의의 것들 또는 모두를 포함할 수 있다.
도 1 및/또는 도 2의 로컬 디바이스(102) 그리고/또는 도 1의 호스트 서버(104)를 구현하기 위한 예시적인 머신 판독가능 명령들을 나타내는 흐름도가 도 3에 도시된다. 이 예에서, 머신 판독가능 명령들은 도 8 및 도 9에 관련하여 아래에서 논의되는 예시적인 프로세서 플랫폼(800) 및/또는 예시적인 프로세서 플랫폼(900)에 도시된 프로세서(812) 및/또는 프로세서(912)와 같은 프로세서에 의한 실행을 위한 프로그램을 포함한다. 프로그램은 CD-ROM, 플로피 디스크, 하드 드라이브, 디지털 다기능 디스크(DVD), 블루-레이 디스크와 같은 비-일시적 컴퓨터 판독가능 저장 매체, 또는 메모리 프로세서(812, 912)에 연관된 메모리 상에 저장된 소프트웨어로 구현될 수 있지만, 전체 프로그램 및/또는 그것의 부분들은 대안적으로는 프로세서(812,912) 외의 디바이스에 의해 실행되며 그리고/또는 펌웨어 또는 전용 하드웨어로 구현될 수 있다. 게다가, 비록 예시적인 프로그램이 도 3에 도시된 흐름도를 참조하여 설명되지만, 예시적인 로컬 디바이스(102) 및/또는 호스트 서버(104)를 구현하는 많은 다른 방법들이 대안적으로 사용될 수 있다. 예를 들어, 블록들의 실행 순서는 변경될 수 있으며, 그리고/또는 설명된 블록들의 일부는 변경, 제거, 또는 결합될 수 있다. 부가적으로 또는 대안적으로, 블록들 중 임의의 것 또는 모두가 소프트웨어 또는 펌웨어를 실행하는 일 없이 대응 동작을 수행하도록 구조화된 하나 이상의 하드웨어 회로들(예컨대, 이산 및/또는 집적 아날로그 및/또는 디지털 회로부, 필드 프로그램가능 게이트 어레이(FPGA), 주문형 집적회로(ASIC), 비교기, 연산증폭기(op-amp), 로직 회로 등)에 의해 구현될 수 있다.
위에서 언급된 바와 같이, 도 3의 예의 프로세스들은 정보가 임의의 지속기간 동안(예컨대, 연장된 시구간들 동안, 영구적으로, 짧은 인스턴스들 동안, 일시 버퍼링 동안, 및/또는 정보의 캐싱 동안) 저장되는 하드 디스크 드라이브, 플래시 메모리, 판독전용 메모리, 콤팩트 디스크, 디지털 다기능 디스크, 캐시, 랜덤-액세스 메모리 및/또는 임의의 다른 저장 디바이스 또는 저장 디스크와 같은 비-일시적 컴퓨터 및/또는 머신 판독가능 매체 상에 저장되는 코딩된 명령들(예컨대, 컴퓨터 및/또는 머신 판독가능 명령들)을 사용하여 구현될 수 있다. 본 명세서에서 사용되는 바와 같이, 비-일시적 컴퓨터 판독가능 매체라는 용어는 임의의 유형의 컴퓨터 판독가능 저장 디바이스 및/또는 저장 디스크를 포함하는 그리고 전파하는 신호들을 배제하는 그리고 송신 매체를 배제하는 것으로 명시적으로 정의된다. "구비하는" 및 "포함하는"(과 그것의 모든 형태들 및 시제들)은 개방형(open ended) 용어들로서 본 명세서에서 사용된다. 따라서, 청구항이 "구비한다" 또는 "포함한다"의 임의의 형태(예컨대, 포함한다, 구비한다, 포함하는, 구비하는 등)를 따르는 무언가를 나열할 때마다, 추가적인 엘리먼트들, 용어들 등이 대응 청구항의 범위 밖에 놓이는 일 없이 존재할 수 있다는 것이 이해되어야 한다. 본 명세서에서 사용되는 바와 같이, "적어도"라는 문구가 청구항의 전제부에서의 전이 용어로서 사용될 때, 그것은 "포함하는" 및 "구비하는"이라는 용어가 개방형인 것과 동일한 방식으로 개방형이다.
도 3의 프로그램은 예시적인 로컬 디바이스(102)의 예시적인 데이터 수신기(202)가 입력 데이터를 수신할 때 블록 302에서 시작한다. 입력 데이터는, 예를 들어 이미지 센서, 오디오 센서, 데이터 통신 채널, 사용자 인터페이스, 및/또는 제1 로컬 디바이스(102)에 데이터를 제공할 수 있는 임의의 소스를 포함하는 다양한 데이터 소스들로부터 수신될 수 있다.
예시적인 기준 생성기(210)는 입력 데이터에 연관된 라벨을 결정한다(블록 304). 예를 들어, 기준 생성기(210)는 예시적인 입력 샘플러(304) 및 예시적인 샘플 제어기(206)에 의한 샘플링 후 입력 데이터에 대한 라벨들을 결정할 수 있다. 일부 예들에서, 기준 생성기(210)는 입력 데이터가 기준 시스템 상에서 동작되게 함으로써 라벨들을 결정할 수 있다. 기준 시스템은 딥 러닝 모델에 의해 모델링될 타겟 시스템일 수 있다. 다르게 말하면, 기준 시스템은 글로벌 DLM에 의해 학습될 입출력 관계(예컨대, 전달 함수)를 지칭할 수 있다. 일부 실시예들에서, 기준 시스템은 집적된 칩과 같은 하드웨어로서 구현될 수 있으며; 다른 실시예들에서, 기준 시스템은 프로세서에 의해 실행 가능한 컴퓨터 명령 세트를 포함하는 소프트웨어 모듈로서 구현될 수 있다.
예시적인 트레이너(216)는 예시적인 로컬 딥 러닝 모델(214)을 훈련한다(블록 306). 예를 들어, 도 2의 도시된 예에 따르면, 트레이너(216)는 예시적인 기준 생성기(210)에 의해 표시된 라벨과 예시적인 딥 러닝 모델(214)에 인가된 입력 데이터의 출력 사이의 차이에 기초하여 딥 러닝 모델(214)을 훈련한다.
로컬 디바이스(102)의 예시적인 트레이너(216)는 로컬 딥 러닝 모델(214)에 연관된 가중값들을 호스트 서버(104)에 송신한다(블록 308). 예를 들어, 트레이너(216)는 호스트 서버(104)로부터의 요청에 응답하여 가중값들을 전달할 수 있으며, 일단 트레이너(216)가 로컬 딥 러닝 모델(214)의 훈련이 완료되었다고 결정하면 가중값들을 전달할 수 있다는 등등이다.
도시된 예에 따르면, 블록들(302~308)의 프로세스는 다수의 로컬 디바이스들(102)에 의해 병렬로 수행된다.
예시적인 호스트 서버(104)의 예시적인 가중값 집성기(110)가 로컬 디바이스들(102)로부터 가중값들을 수신할 때, 예시적인 가중값 집성기(110)는 로컬 디바이스들(102)로부터의 수신된 가중값들을 집성한다(블록 310). 도시된 예에 따르면, 가중값 집성기(110)는 가중값들의 평균을 계산하여 집성된 가중값들을 결정한다. 다른 예들에서, 가중값 집성기(110)는 개개의 가중값들에 대한 표준 편차들을 생성하고 아웃라이어들을 필터링함으로써 가중값들을 집성한다.
예시적인 가중값 분배기(112)는 집성된 가중값들을 로컬 디바이스들(102)에 송신한다(블록 312).
일부 예들에서, 개개의 가중값들에 대해 다수의 분포들이 있는 이벤트 시, 이들 개개의 분포들로부터의 아웃라이어들은 가중값 집성기(110)에 의해 필터링될 수 있고 필터링된 분포들 중 각각의 분포에 대해 하나씩 상이한 가중값들을 갖는 별도의 파생 네트워크들이 생성될 수 있고 가중값 분배기(112)는 로컬 디바이스들(102)의 관련 있는 서브-그룹들에 다시 각각의 가중값들을 송신할 수 있다.
로컬 디바이스(102)의 업데이터(218)가 호스트 서버(104)로부터 집성된 가중값들을 수신할 때, 예시적인 업데이터(218)는 복수의 로컬 디바이스들(102)에 의해 생성된 로컬 훈련 데이터 세트들의 모두를 고려한 집성된 가중값들을 사용하여 로컬 딥 러닝 모델(214)의 가중값들을 업데이트한다(블록 314). 도시된 예에 따르면, 업데이터(218)는 로컬 디바이스들(102)이 글로벌 딥 러닝 모델에 액세스할 수 있도록 로컬 딥 러닝 모델(214)의 가중값들을 집성된 가중값들로 대체한다. 다른 예들에서, 업데이터(218)는 로컬 딥 러닝 모델(214)의 가중값들을 (1) 로컬 딥 러닝 모델(214)의 가중값들 및 (2) 예시적인 호스트 서버(104)로부터 수신된 집성된 가중값들의 가중된 평균으로 업데이트한다.
도 3의 프로세스는 그 다음에 종료된다. 대안적으로, 도 3의 프로세스는 블록 302에서 재시작할 수 있으며, 새로운 입력 데이터가 수신될 때 블록 302에서 재시작할 수 있다는 등등이다.
도 4는 로컬 디바이스(102)의 다른 구현예의 블록도이다. 도 4의 로컬 디바이스(102)의 구현예는, 도 4의 로컬 디바이스(102)가 글로벌 딥 러닝 모델(402)을 또한 포함한다는 것을 제외하면, 도 2의 로컬 디바이스(102)의 구현예와 유사하다. 글로벌 딥 러닝 모델(402)은 호스트 서버(104)에서 훈련된 딥 러닝 모델이다. 도 4의 로컬 디바이스(102)의 업데이터(218)가 호스트 서버(104)로부터 집성된 가중값들을 수신할 때, 예시적인 업데이터(218)는 수신된 집성된 가중값들을 사용하여 글로벌 딥 러닝 모델(402)에서의 가중값들을 대체한다.
도 4의 글로벌 딥 러닝 모델(402)이 모든 로컬 디바이스들에 이용 가능한 모든 정보를 사용하여 훈련되기 때문에, 글로벌 딥 러닝 모델(402)은 특정 로컬 디바이스(102)에 이용 가능한 로컬 입력 데이터의 특성들을 처리하도록 맞춤화되지 않을 수 있다. 이 이슈를 해결하기 위해, 트레이너(216)는 글로벌 딥 러닝 모델(402)을 증강시키도록 구성되는 로컬 딥 러닝 모델(214)을 훈련하고 유지한다. 특히, 로컬 딥 러닝 모델(214)은 글로벌 딥 러닝 모델(402) 및 로컬 딥 러닝 모델(214)이 훈련 데이터의 글로벌 특성들 및 로컬 변동들 양쪽 모두를 함께 캡처할 수 있도록 특정 로컬 디바이스(102)에 이용 가능한 로컬 입력 데이터의 특성들을 캡처하도록 구성될 수 있다.
도 4의 시스템의 동작은 입력 데이터가 (예컨대, 입력 샘플러(204)를 통해) 글로벌 딥 러닝 모델(402)에 또한 제공된다는 것을 제외하면 도 2의 시스템의 동작과 실질적으로 유사하다. 도 4의 도시된 예의 예시적인 트레이너(216)는 (1) 기준 생성기(210)에 의해 결정된 라벨과 (2) 로컬 딥 러닝 모델(214)의 출력 및 글로벌 딥 러닝 모델(402)의 출력의 합 사이의 차이를 결정한다. 예시적인 트레이너(216)는 그 차이를 사용하여 로컬 딥 러닝 모델(214)을 훈련한다.
도 5는 로컬 디바이스(102)의 다른 구현예의 블록도이다. 도 5의 로컬 디바이스(102)의 구현예는, 도 5의 로컬 디바이스(102)가 로컬 딥 러닝 모델(214)을 훈련함에 있어서 상이한 가중값들을 또한 인가한다는 점을 제외하면, 도 3의 로컬 디바이스(102)의 구현예와 유사하다. 예를 들어, 로컬 딥 러닝 모델(214) 및 글로벌 딥 러닝 모델(402)의 출력들에는, 훈련에 대한 모델들 및 기준 데이터의 영향을 제어하기 위해 기준 생성기(210)의 출력과는 상이한 가중값들이 주어질 수 있다. 부가적으로 또는 대안적으로, 상이한 가중값들이 로컬 딥 러닝 모델(214)의 출력 및 글로벌 딥 러닝 모델(402)의 출력의 각각에 인가될 수 있다.
도 6은 예시적인 오퍼레이터 단말(108)에 의해 제시될 수 있는 예시적인 사용자 인터페이스(600)를 도시한다. 예시적인 사용자 인터페이스(600)는 개개의 가중값들의 레벨에 이르기까지의 딥 러닝 모델들의 시각화를 제시한다. 예시적인 사용자 인터페이스(600)는 특정 로컬 디바이스들(102) 및 로컬 디바이스들(102)의 클러스터들과 거기서 동작하는 액티브 딥 러닝 모델들의 시각화를 로컬 디바이스들(102)과의 보안 접속을 통해 제시할 수 있다. 보안 접속은 도 7에 나열된 예시적인 커맨드들(700)을 갖는 간단한 애플리케이션 프로그래밍 인터페이스(API)를 통해 다른 정보(예컨대, 입력 데이터) 없이 가중값들의 양방향 송신만을 허용할 수 있다. 보안 접속은 로컬 디바이스들(102) 중 하나의 로컬 디바이스 또는 로컬 디바이스들(102)의 클러스터와의 보안 인증된 통신을 가능하게 할 수 있고, 로컬 디바이스(102)의 상태, 로컬 디바이스(102)로부터 업데이트될 로컬 딥 러닝 모델들(214), 및 글로벌 딥 러닝 모델(들)을 송신 또는 수신할 수 있다. 보안 접속은 하나 이상의 커맨드들을 사용하여 닫힐 수 있다. 사용자 인터페이스(600)는 로컬 디바이스들(102)의 상태들 뿐만 아니라 인가된 인간 오퍼레이터에 대한 정밀한 지리적 포지션이 시각화되는 것을 허용한다.
사용자 인터페이스(600) 및/또는 오퍼레이터 단말(108)은 호스트 서버(104)의 인간 오퍼레이터가 호스트 서버(104)에 의해 채용될 가중값 집성 전략을 선택하는 것을 허용한다. 예를 들어, 사용자 인터페이스(600)는 메뉴 시스템(도 6에 도시된 바와 같음), 외부 파일, 커맨드 라인 옵션, 및/또는 임의의 다른 메커니즘들을 포함할 수 있다. 오퍼레이터는 로컬 디바이스들(102)로부터의 가중값들이 다수의 분포들을 갖는 것으로 판명되는 경우 분산 로컬 딥 러닝 모델들(214) 전체에 걸쳐 전문화하는데 또는 오퍼레이터가 합리적인 거래라고 판단하는 경우 평균 또는 다른 수학적 수단에 의해 가중값들의 집성을 강제하는데 사용될 파생 네트워크들의 생성을 또한 특정할 수 있다.
일부 예들에서, 사용자 인터페이스(600)는 라벨링된 데이터의 시각화를 로컬 디바이스들(102)에 의해 호스트 서버(104)와 공유되는 이벤트 시에 제시한다. 예를 들어, 로컬 딥 러닝 모델(214)이 네트워크에 의해 생성된 상위 N 개의 최대 공산 분류들의 경우에서 사용자 정의된 임계값 미만의 분류 정밀도들을 생성하면, 또는 예를 들면 상위 N 개의 분류들에서의 차이 또는 표준 편차가 사용자 정의된 임계값 미만이면, 오퍼레이터가 라벨링된 데이터의 공유에 참여하기로 하면, 로컬 디바이스(102)는 사용자 인터페이스(600)와의 시각화를 위해 라벨링된 데이터를 호스트 서버(104)에 업로드할 수 있다.
도 8은 도 1의 호스트 서버(104)를 구현하기 위해 도 3의 명령들을 실행할 수 있는 예시적인 프로세서 플랫폼(800)의 블록도이다. 프로세서 플랫폼(800)은, 예를 들어, 서버, 개인용 컴퓨터, 모바일 디바이스(예컨대, 셀 폰, 스마트 폰, iPadTM과 같은 태블릿), 개인 정보 단말기(PDA), 인터넷 어플라이언스, DVD 플레이어, CD 플레이어, 디지털 비디오 레코더, 블루레이 플레이어, 게이밍 콘솔, 개인 비디오 레코더, 셋탑 박스, 또는 임의의 다른 유형의 컴퓨팅 디바이스일 수 있다.
도시된 예의 프로세서 플랫폼(800)은 프로세서(812)를 포함한다. 도시된 예의 프로세서(812)는 하드웨어이다. 예를 들어, 프로세서(812)는 임의의 원하는 패밀리 또는 제조자로부터의 하나 이상의 집적 회로들, 로직 회로들, 마이크로프로세서들 또는 제어기들에 의해 구현될 수 있다. 하드웨어 프로세서는 반도체 기반(예컨대, 실리콘 기반) 디바이스일 수 있다. 이 예에서, 프로세서(812)는 예시적인 가중값 집성기(110), 예시적인 가중값 분배기(112), 및 예시적인 글로벌 트레이너(114)를 구현한다.
도시된 예의 프로세서(812)는 로컬 메모리(813)(예컨대, 캐시)를 포함한다. 도시된 예의 프로세서(812)는 휘발성 메모리(814) 및 비휘발성 메모리(816)를 포함하는 메인 메모리와 버스(818)를 통해 통신한다. 휘발성 메모리(814)는 동기식 동적 랜덤 액세스 메모리(SDRAM), 동적 랜덤 액세스 메모리(DRAM), 램버스 동적 랜덤 액세스 메모리(RDRAM) 및/또는 임의의 다른 유형의 랜덤 액세스 메모리 디바이스에 의해 구현될 수 있다. 비휘발성 메모리(816)는 플래시 메모리 및/또는 임의의 다른 원하는 유형의 메모리 디바이스에 의해 구현될 수 있다. 메인 메모리(814, 816)에의 액세스는 메모리 제어기에 의해 제어된다.
도시된 예의 프로세서 플랫폼(800)은 인터페이스 회로(820)를 또한 포함한다. 인터페이스 회로(820)는 임의의 유형의 인터페이스 표준, 이를테면 이더넷 인터페이스, 유니버셜 직렬 버스(USB), 및/또는 PCI 익스프레스 인터페이스에 의해 구현될 수 있다.
도시된 예에서, 하나 이상의 입력 디바이스들(822)은 인터페이스 회로(820)에 접속된다. 입력 디바이스(들)(822)는 사용자가 데이터 및/또는 커맨드들을 프로세서(812) 속에 입력하는 것을 허용한다. 입력 디바이스(들)는, 예를 들어, 오디오 센서, 마이크로폰, 카메라(스틸 또는 비디오), 키보드, 버튼, 마우스, 터치스크린, 트랙패드, 트랙볼, 아이소포인트(isopoint) 및/또는 음성인식 시스템에 의해 구현될 수 있다.
하나 이상의 출력 디바이스들(824)은 도시된 예의 인터페이스 회로(820)에 또한 접속된다. 출력 디바이스들(824)은, 예를 들어, 디스플레이 디바이스들(예컨대, 발광 다이오드(LED), 유기 발광 다이오드(OLED), 액정 디스플레이, 음극선관 디스플레이(CRT), 터치스크린, 촉각 출력 디바이스, 프린터 및/또는 스피커들)에 의해 구현될 수 있다. 도시된 예의 인터페이스 회로(820)는, 따라서, 그래픽 드라이버 카드, 그래픽 드라이버 칩 및/또는 그래픽 드라이버 프로세서를 통상적으로 포함한다.
도시된 예의 인터페이스 회로(820)는 네트워크(826)(예컨대, 이더넷 접속, 디지털 가입자 회선(DSL), 전화선, 동축 케이블, 셀룰러 전화기 시스템 등)을 통한 외부 머신들(예컨대, 임의의 종류의 컴퓨팅 디바이스들)과의 데이터의 교환을 용이하게 하는 송신기, 수신기, 트랜시버, 모뎀 및/또는 네트워크 인터페이스 카드와 같은 통신 디바이스를 또한 포함한다.
도시된 예의 프로세서 플랫폼(800)은 소프트웨어 및/또는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들(828)을 또한 포함한다. 이러한 대용량 저장 디바이스들(828)의 예들은 플로피 디스크 드라이브들, 하드 드라이브 디스크들, 콤팩트 디스크 드라이브들, 블루레이 디스크 드라이브들, RAID 시스템들, 및 디지털 다기능 디스크(DVD) 드라이브들을 포함한다.
도 3의 코딩된 명령들(832)은 대용량 저장 디바이스(828)에, 휘발성 메모리(814)에, 비휘발성 메모리(816)에, 및/또는 CD 또는 DVD와 같은 착탈식 유형의 컴퓨터 판독가능 저장 매체 상에 저장될 수 있다.
도 9는 도 1, 도 2, 도 4, 및/또는 도 5의 로컬 디바이스(102)를 구현하기 위해 도 3의 명령들을 실행할 수 있는 예시적인 프로세서 플랫폼(900)의 블록도이다. 프로세서 플랫폼(900)은, 예를 들어, 서버, 개인용 컴퓨터, 모바일 디바이스(예컨대, 셀 폰, 스마트 폰, iPadTM과 같은 태블릿), 개인 정보 단말기(PDA), 인터넷 어플라이언스, DVD 플레이어, CD 플레이어, 디지털 비디오 레코더, 블루레이 플레이어, 게이밍 콘솔, 개인 비디오 레코더, 셋탑 박스, 또는 임의의 다른 유형의 컴퓨팅 디바이스일 수 있다.
도시된 예의 프로세서 플랫폼(900)은 프로세서(912)를 포함한다. 도시된 예의 프로세서(912)는 하드웨어이다. 예를 들어, 프로세서(912)는 임의의 원하는 패밀리 또는 제조자로부터의 하나 이상의 집적 회로들, 로직 회로들, 마이크로프로세서들 또는 제어기들에 의해 구현될 수 있다. 하드웨어 프로세서는 반도체 기반(예컨대, 실리콘 기반) 디바이스일 수 있다. 이 예에서, 프로세서(912)는 예시적인 데이터 수신기(202), 예시적인 입력 샘플러들(204), 예시적인 샘플 제어기(206), 예시적인 기준 생성기(210), 예시적인 출력 샘플러들(215), 예시적인 트레이너(216), 및 예시적인 업데이터(218)를 구현한다.
도시된 예의 프로세서(912)는 로컬 메모리(913)(예컨대, 캐시)를 포함한다. 도시된 예의 프로세서(912)는 휘발성 메모리(914) 및 비휘발성 메모리(916)를 포함하는 메인 메모리와 버스(918)를 통해 통신한다. 휘발성 메모리(914)는 동기식 동적 랜덤 액세스 메모리(SDRAM), 동적 랜덤 액세스 메모리(DRAM), 램버스 동적 랜덤 액세스 메모리(RDRAM) 및/또는 임의의 다른 유형의 랜덤 액세스 메모리 디바이스에 의해 구현될 수 있다. 비휘발성 메모리(916)는 플래시 메모리 및/또는 임의의 다른 원하는 유형의 메모리 디바이스에 의해 구현될 수 있다. 메인 메모리(914, 916)에의 액세스는 메모리 제어기에 의해 제어된다.
도시된 예의 프로세서 플랫폼(900)은 인터페이스 회로(920)를 또한 포함한다. 인터페이스 회로(920)는 임의의 유형의 인터페이스 표준, 이를테면 이더넷 인터페이스, 유니버셜 직렬 버스(USB), 및/또는 PCI 익스프레스 인터페이스에 의해 구현될 수 있다.
도시된 예에서, 하나 이상의 입력 디바이스들(922)은 인터페이스 회로(920)에 접속된다. 입력 디바이스(들)(922)는 사용자가 데이터 및/또는 커맨드들을 프로세서(912) 속에 입력하는 것을 허용한다. 입력 디바이스(들)는, 예를 들어, 오디오 센서, 마이크로폰, 카메라(스틸 또는 비디오), 키보드, 버튼, 마우스, 터치스크린, 트랙패드, 트랙볼, 아이소포인트 및/또는 음성인식 시스템에 의해 구현될 수 있다.
하나 이상의 출력 디바이스들(924)은 도시된 예의 인터페이스 회로(920)에 또한 접속된다. 출력 디바이스들(924)은, 예를 들어, 디스플레이 디바이스들(예컨대, 발광 다이오드(LED), 유기 발광 다이오드(OLED), 액정 디스플레이, 음극선관 디스플레이(CRT), 터치스크린, 촉각 출력 디바이스, 프린터 및/또는 스피커들)에 의해 구현될 수 있다. 도시된 예의 인터페이스 회로(920)는, 따라서, 그래픽 드라이버 카드, 그래픽 드라이버 칩 및/또는 그래픽 드라이버 프로세서를 통상적으로 포함한다.
도시된 예의 인터페이스 회로(920)는 네트워크(926)(예컨대, 이더넷 접속, 디지털 가입자 회선(DSL), 전화선, 동축 케이블, 셀룰러 전화기 시스템 등)을 통한 외부 머신들(예컨대, 임의의 종류의 컴퓨팅 디바이스들)과의 데이터의 교환을 용이하게 하는 송신기, 수신기, 트랜시버, 모뎀 및/또는 네트워크 인터페이스 카드와 같은 통신 디바이스를 또한 포함한다.
도시된 예의 프로세서 플랫폼(900)은 소프트웨어 및/또는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들(928)을 또한 포함한다. 이러한 대용량 저장 디바이스들(928)의 예들은 플로피 디스크 드라이브들, 하드 드라이브 디스크들, 콤팩트 디스크 드라이브들, 블루레이 디스크 드라이브들, RAID 시스템들, 및 디지털 다기능 디스크(DVD) 드라이브들을 포함한다.
도 3의 코딩된 명령들(932)은 대용량 저장 디바이스(928)에, 휘발성 메모리(914)에, 비휘발성 메모리(916)에, 및/또는 CD 또는 DVD와 같은 착탈식 유형의 컴퓨터 판독가능 저장 매체 상에 저장될 수 있다.
전술한 바로부터, 복수의 로컬 디바이스들에 의한 딥 러닝 모델의 훈련을 가능하게 하는 예시적인 방법들, 장치 및 제조품들이 개시되었음이 이해될 것이다. 다수의 로컬 디바이스들을 이용하면 복수의 디바이스들 중에서의 분산 프로세싱을 용이하게 한다. 덧붙여서, 각각의 로컬 디바이스에서 수신된 입력 데이터는 입력 데이터를 프로세싱을 위한 중앙 서버에 전달하는 대역폭 비용을 피하기 위해 각각의 로컬 디바이스에서 프로세싱될 수 있다. 덧붙여서, 로컬적으로 수신된 입력 데이터의 프라이버시는 중앙 서버로 전달하는 대신 로컬 디바이스들에서의 프로세싱까지 유지될 수 있다.
본 특허는 2016년 8월 19일자로 출원되었고, 그 전부가 참조로 본 명세서에 포함되는 미국 특허 출원 제62/377,094호를 우선권 주장한다는 것에 주의한다.
전자 데이터에서의 비정상성을 검출하는 예시적인 방법들, 장치, 시스템들 및 제조품들이 본 명세서에서 개시된다. 추가의 예들 및 그 조합들은 다음과 같다:
예 1은 딥 러닝 모델들을 훈련하는 로컬 디바이스인데, 그 로컬 디바이스는, 훈련 데이터를 생성하기 위해 로컬 디바이스에서 수신되는 입력 데이터를 라벨링하는 기준 생성기, 로컬 딥 러닝 모델을 훈련하고 복수의 로컬 디바이스들로부터 복수의 로컬 딥 러닝 모델들을 수신하는 서버 ― 서버는 글로벌 딥 러닝 모델에 대한 가중값 세트를 결정함 ― 에 로컬 딥 러닝 모델을 송신하는 트레이너, 및 서버로부터 수신되는 가중값 세트에 기초하여 로컬 딥 러닝 모델을 업데이트하는 업데이터를 포함한다.
예 2는, 로컬 디바이스에서 직접적으로 입력 데이터를 수신하는 데이터 수신기를 더 포함하는, 청구항 1에서 정의된 바와 같은 로컬 디바이스를 포함한다.
예 3은, 로컬 디바이스는 입력 데이터를 서버에 송신하지 않는, 청구항 1에서 정의된 바와 같은 로컬 디바이스를 포함한다.
예 4는, 가중값 세트는 복수의 로컬 디바이스들로부터의 복수의 로컬 딥 러닝 모델들에 기초한 집성된 가중값들인, 청구항 1에서 정의된 바와 같은 로컬 디바이스를 포함한다
예 5는, 입력 데이터를 샘플링하는 샘플 제어기를 더 포함하는, 예 1 내지 예 4 중 어느 한 예에서 정의된 바와 같은 로컬 디바이스를 포함한다.
예 6은, 샘플 제어기는 입력 데이터의 의사-랜덤 부분을 선택함으로써 입력 데이터를 샘플링하는 것인, 청구항 5에서 정의된 바와 같은 로컬 디바이스를 포함한다.
예 7은, 샘플 제어기는 입력 데이터의 데이터 사이즈를 감소시키기 위해 입력 데이터를 다운 샘플링함으로써 입력 데이터를 샘플링하는 것인, 청구항 5에서 정의된 바와 같은 로컬 디바이스를 포함한다.
예 8은, 트레이너는 라벨링에 의해 결정된 라벨과 로컬 딥 러닝 모델의 출력 사이의 차이를 추가로 결정하는 것인, 예 1 내지 예 4 중 어느 한 예에서 정의된 바와 같은 로컬 디바이스를 포함한다.
예 9는, 트레이너가 차이를 결정하기 전에 로컬 딥 러닝 모델의 출력을 샘플링하는 샘플 제어기를 더 포함하는, 예 8에서 정의된 바와 같은 로컬 디바이스를 포함한다.
예 10은, 트레이너는 차이에 기초하여 로컬 딥 러닝 모델을 추가로 조정하는 것인, 예 8에서 정의된 바와 같은 로컬 디바이스를 포함한다.
예 11은, 실행될 때, 로컬 디바이스로 하여금 적어도, 훈련 데이터를 생성하기 위해 로컬 디바이스에서 수신되는 입력 데이터를 라벨링하게 하며, 로컬 딥 러닝 모델을 훈련하게 하며, 서버 ― 서버는 복수의 로컬 디바이스들로부터 복수의 로컬 딥 러닝 모델들을 수신하며, 서버는 글로벌 딥 러닝 모델에 대한 가중값 세트를 결정함 ― 에 로컬 딥 러닝 모델 송신하게 하고, 서버로부터 수신되는 가중값 세트에 기초하여 로컬 딥 러닝 모델을 업데이트하게 하는 명령들을 포함하는, 비-일시적 컴퓨터 판독가능 매체이다.
예 12는, 입력 데이터는 로컬 디바이스에서 직접적으로 수신되는, 예 11에서 정의된 바와 같은 비-일시적 컴퓨터 판독가능 매체를 포함한다.
예 13은, 입력 데이터는 서버에 송신되지 않는, 예 11에서 정의된 바와 같은 비-일시적 컴퓨터 판독가능 매체를 포함한다.
예 14는, 가중값 세트는 복수의 로컬 디바이스들로부터의 복수의 로컬 딥 러닝 모델들에 기초한 집성된 가중값들인, 예 11에서 정의된 바와 같은 비-일시적 컴퓨터 판독가능 매체를 포함한다.
예 15는, 명령들은, 실행될 때, 로컬 디바이스로 하여금 입력 데이터를 샘플링하게 하는, 예 11 내지 예 14 중 어느 한 예에서 정의된 바와 같은 비-일시적 컴퓨터 판독가능 매체를 포함한다.
예 16은, 명령들은, 실행될 때, 로컬 디바이스로 하여금, 입력 데이터의 의사-랜덤 부분을 선택함으로써 입력 데이터를 샘플링하게 하는, 예 15에서 정의된 바와 같은 비-일시적 컴퓨터 판독가능 매체를 포함한다.
예 17은, 명령들은, 실행될 때, 로컬 디바이스로 하여금, 입력 데이터의 데이터 사이즈를 감소시키기 위해 입력 데이터를 다운 샘플링함으로써 입력 데이터를 샘플링하게 하는, 예 15에서 정의된 바와 같은 비-일시적 컴퓨터 판독가능 매체를 포함한다.
예 18은, 명령들은, 실행될 때, 로컬 디바이스로 하여금, 라벨링에 의해 결정된 라벨과 로컬 딥 러닝 모델의 출력 사이의 차이를 결정하게 하는, 예 11 내지 예 14 중 어느 한 예에서 정의된 바와 같은 비-일시적 컴퓨터 판독가능 매체를 포함한다.
예 19는, 명령들은, 실행될 때, 로컬 디바이스로 하여금, 로컬 디바이스가 차이를 결정하기 전에 로컬 딥 러닝 모델의 출력을 샘플링하게 하는, 예 18에서 정의된 바와 같은 비-일시적 컴퓨터 판독가능 매체를 포함한다.
예 20은, 명령들은, 실행될 때, 로컬 디바이스로 하여금, 차이에 기초하여 로컬 딥 러닝 모델을 조정하게 하는, 예 18에서 정의된 바와 같은 비-일시적 컴퓨터 판독가능 매체를 포함한다.
예 21은, 딥 러닝 모델들을 훈련하는 방법인데, 그 방법은, 로컬 디바이스에서 적어도 하나의 프로세서로 명령을 실행함으로써, 훈련 데이터를 생성하기 위해 로컬 디바이스에서 수신된 입력 데이터를 라벨링하는 단계, 적어도 하나의 프로세서로 명령을 실행함으로써, 로컬 딥 러닝 모델을 훈련하는 단계, 서버 ― 서버는 복수의 로컬 디바이스들로부터 복수의 로컬 딥 러닝 모델들을 수신하며, 서버는 글로벌 딥 러닝 모델에 대한 가중값 세트를 결정함 ― 에 로컬 딥 러닝 모델을 송신하는 단계, 및 로컬 디바이스에서 적어도 하나의 프로세서로 명령을 실행함으로써, 서버로부터 수신되는 가중값 세트에 기초하여 로컬 딥 러닝 모델을 업데이트하는 단계를 포함한다.
예 22는, 입력 데이터는 로컬 디바이스에서 직접적으로 수신되는, 예 21에서 정의된 바와 같은 방법을 포함한다.
예 23은, 입력 데이터는 서버에 송신되지 않는, 예 21에서 정의된 바와 같은 방법을 포함한다.
예 24는, 가중값 세트는 복수의 로컬 디바이스들로부터의 복수의 로컬 딥 러닝 모델들에 기초한 집성된 가중값들인, 예 21에서 정의된 바와 같은 방법을 포함한다.
예 25는, 입력 데이터를 샘플링하는 단계를 더 포함하는, 예 21 내지 예 24 중 한 예에서 정의된 바와 같은 방법을 포함한다.
예 26은, 입력 데이터를 샘플링하는 단계는 입력 데이터의 의사-랜덤 부분을 선택하는 단계를 포함하는, 예 25에서 정의된 바와 같은 방법을 포함한다.
예 27은, 입력 데이터를 샘플링하는 단계는 입력 데이터의 데이터 사이즈를 감소시키기 위해 입력 데이터를 다운 샘플링하는 단계를 포함하는, 예 25에서 정의된 바와 같은 방법을 포함한다.
예 28은, 라벨링에 의해 결정된 라벨과 딥 러닝 모델의 출력 사이의 차이를 결정하는 단계를 더 포함하는, 예 21 내지 예 24 중 한 예에서 정의된 바와 같은 방법을 포함한다.
예 29는, 차이를 결정하는 단계 전에 딥 러닝 모델의 출력을 샘플링하는 단계를 더 포함하는, 예 28에서 정의된 바와 같은 방법을 포함한다.
예 30은, 차이에 기초하여 딥 러닝 모델을 조정하는 단계를 더 포함하는, 예 28에서 정의된 바와 같은 방법을 포함한다.
예 31은, 복수의 로컬 디바이스들로부터 수신되는 복수의 로컬 딥 러닝 모델들의 가중값들을 집성하는 가중값 집성기와, 집성된 가중값들을 복수의 로컬 디바이스들에 분배하는 가중값 분배기를 포함하는, 서버이다.
예 32는, 집성된 가중값들에 기초하여 글로벌 딥 러닝 모델을 훈련하는 글로벌 딥 러닝 트레이너를 더 포함하는, 예 31에서 정의된 바와 같은 서버를 포함한다.
예 33은, 서버는 복수의 로컬 딥 러닝 모델들을 생성하기 위해 복수의 로컬 디바이스들에 의해 이용되는 입력 데이터를 수신하지 않는, 예 31 또는 예 32에서 정의된 바와 같은 서버를 포함한다.
예 34는, 가중값 집성기는 복수의 로컬 딥 러닝 모델들의 가중값들을 평균함으로써 가중값 세트를 집성하는 것인, 예 31 또는 예 32에서 정의된 바와 같은 서버를 포함한다.
예 35는, 실행될 때, 서버로 하여금 적어도, 복수의 로컬 디바이스들로부터 수신되는 복수의 로컬 딥 러닝 모델들의 가중값들을 집성하게 하고, 집성된 가중값들을 복수의 로컬 디바이스들에 송신하게 하는 명령들을 포함하는, 비-일시적 컴퓨터 판독가능 매체이다.
예 36은, 명령들은, 실행될 때, 서버로 하여금, 집성된 가중값들에 기초하여 글로벌 딥 러닝 모델을 훈련하게 하는, 예 35에서 정의된 바와 같은 비-일시적 컴퓨터 판독가능 매체를 포함한다.
예 37은, 서버는 복수의 로컬 딥 러닝 모델들을 생성하기 위해 복수의 로컬 디바이스들에 의해 이용되는 입력 데이터를 수신하지 않는, 예 35 또는 예 36에서 정의된 바와 같은 비-일시적 컴퓨터 판독가능 매체를 포함한다.
예 38은, 명령들은, 실행될 때, 서버로 하여금, 복수의 로컬 딥 러닝 모델들의 가중값들을 평균함으로써 가중값 세트를 집성하게 하는, 예 35 또는 예 36에서 정의된 바와 같은 비-일시적 컴퓨터 판독가능 매체를 포함한다.
예 40은, 딥 러닝 모델들을 훈련하는 방법인데, 그 방법은, 서버의 적어도 하나의 프로세서로 명령을 실행함으로써, 복수의 로컬 디바이스들로부터 수신되는 복수의 로컬 딥 러닝 모델들의 가중값들을 집성하는 단계와, 집성된 가중값들을 복수의 로컬 디바이스들에 송신하는 단계를 포함한다.
예 41은, 집성된 가중값들에 기초하여 글로벌 딥 러닝 모델을 훈련하는 단계를 더 포함하는, 예 40에서 정의된 바와 같은 방법을 포함한다.
예 42는, 서버는 복수의 로컬 딥 러닝 모델들을 생성하기 위해 복수의 로컬 디바이스들에 의해 이용되는 입력 데이터를 수신하지 않는, 예 40 또는 예 41에서 정의된 바와 같은 방법을 포함한다.
예 43은, 집성하는 단계는 복수의 로컬 딥 러닝 모델들의 가중값들을 평균하는 단계를 포함하는, 예 40 또는 예 41에서 정의된 바와 같은 방법을 포함한다.
예 44는, 딥 러닝 모델들을 훈련하는 시스템인데, 그 시스템은, 각각, 훈련 데이터를 생성하기 위해 대응 로컬 디바이스에서 수신되는 입력 데이터를 라벨링하며, 로컬 딥 러닝 모델을 훈련하며, 네트워크를 통해 로컬 딥 러닝 모델을 송신하는 로컬 디바이스들과, 로컬 디바이스들로부터 수신되는 로컬 딥 러닝 모델들의 가중값들을 집성하고, 집성된 가중값들을 로컬 디바이스들 ― 로컬 디바이스들은 서버로부터 수신되는 가중값 세트에 기초하여 로컬 딥 러닝 모델을 업데이트함 ― 에 송신하는 서버를 포함한다.
예 45는, 입력 데이터는 로컬 디바이스들에서 직접적으로 수신되는, 예 44에서 정의된 바와 같은 시스템을 포함한다.
예 46은, 입력 데이터는 서버에 송신되지 않는, 예 44에서 정의된 바와 같은 시스템을 포함한다.
예 47은, 로컬 디바이스들은 입력 데이터를 추가로 샘플링하는 것들인, 예 44 내지 예 46 중 한 예에서 정의된 바와 같은 시스템을 포함한다.
예 48은, 로컬 디바이스들은 입력 데이터의 의사-랜덤 부분을 선택함으로써 각각의 입력 데이터를 샘플링하는 것들인, 예 47에서 정의된 바와 같은 시스템을 포함한다.
예 49는, 로컬 디바이스들은 입력 데이터의 데이터 사이즈를 감소시키기 위해 입력 데이터를 다운 샘플링함으로써 각각의 입력 데이터를 샘플링하는 것들인, 예 47에서 정의된 바와 같은 시스템을 포함한다.
예 50은, 로컬 디바이스들은 각각의 로컬 디바이스에서의 라벨링에 의해 결정된 라벨과 각각의 로컬 디바이스에서의 로컬 딥 러닝 모델의 출력 사이의 차이를 추가로 결정하는 것들인, 예 44 내지 예 46 중 한 예에서 정의된 바와 같은 시스템을 포함한다.
예 51은, 로컬 디바이스들은 로컬 디바이스들이 차이를 결정하기 전에 각각의 로컬 디바이스에서 각각의 로컬 딥 러닝 모델의 출력을 추가로 샘플링하는 것들인, 예 50에서 정의된 바와 같은 시스템을 포함한다.
예 52는, 로컬 디바이스들은 차이에 기초하여 로컬 딥 러닝 모델을 추가로 조정하는 것들인, 예 50에서 정의된 바와 같은 시스템을 포함한다.
예 53은 딥 러닝 모델들을 훈련하는 장치인데, 그 장치는, 훈련 데이터를 생성하기 위해 로컬 디바이스에서 수신된 입력 데이터를 라벨링하는 수단, 제1 로컬 딥 러닝 모델을 훈련하는 수단, 서버 ― 서버는 복수의 로컬 디바이스들로부터 복수의 로컬 딥 러닝 모델들을 수신하며, 복수의 로컬 딥 러닝 모델들은 제1 딥 러닝 모델을 포함하며, 상기 서버는 글로벌 딥 러닝 모델에 대한 가중값 세트를 결정함 ― 에 로컬 딥 러닝 모델을 송신하는 수단, 및 서버로부터 수신되는 가중값 세트에 기초하여 제1 로컬 딥 러닝 모델을 업데이트하는 수단을 포함한다.
예 54는, 로컬 디바이스에서 직접적으로 입력 데이터를 수신하는 수단을 더 포함하는, 예 53에서 정의된 바와 같은 장치를 포함한다.
예 55는, 입력 데이터가 서버를 통과하지 않는, 예 1의 로컬 디바이스, 예 11의 비-일시적 컴퓨터 판독가능 매체, 또는 예 21의 예시적인 방법을 포함한다.
예 56은, 로컬 디바이스가 입력 데이터를 수집하는 센서를 포함하는, 예 1의 로컬 디바이스, 예 11의 비-일시적 컴퓨터 판독가능 매체, 또는 예 21의 예시적인 방법을 포함한다.
예 57은, 로컬 디바이스 및/또는 데이터 수신기가 입력 데이터를 수집하고 로컬 디바이스에 입력 데이터를 송신하는 센서에 통신적으로 커플링되는, 예 1의 로컬 디바이스, 예 11의 비-일시적 컴퓨터 판독가능 매체, 또는 예 21의 예시적인 방법을 포함한다.
비록 특정한 예시적인 방법들, 장치 및 제조품들이 본 명세서에서 개시되었지만, 본 특허의 커버리지의 범위는 그것으로 제한되지 않는다. 반면에, 본 특허는 본 특허의 청구항들의 범위 내에 타당하게 속하는 모든 방법들, 장치 및 제조품들을 커버한다.

Claims (62)

  1. 딥 러닝 모델들을 훈련하는 로컬 디바이스로서,
    메모리;
    명령들; 및
    프로그램가능 회로부 - 상기 프로그램가능 회로부는 상기 명령들을 실행하여,
    훈련 데이터를 생성하기 위해 상기 로컬 디바이스에서 수신된 입력 데이터를 라벨링하는 기준 생성기 회로부;
    로컬 딥 러닝 모델을 훈련하고 복수의 로컬 디바이스들로부터 복수의 로컬 딥 러닝 모델들을 수신하는 서버 ― 상기 서버는 글로벌 딥 러닝 모델에 대한 가중값 세트를 결정함 ― 에 상기 로컬 딥 러닝 모델을 송신하는 트레이너 회로부;
    상기 로컬 딥 러닝 모델의 출력을 샘플링하는 샘플 제어기 회로부; 및
    상기 서버로부터 수신되는 상기 가중값 세트에 기초하여 상기 로컬 딥 러닝 모델을 업데이트하는 업데이터 회로부를 구현함 -
    를 포함하는, 로컬 디바이스.
  2. 제1항에 있어서, 상기 로컬 디바이스에서 직접적으로 상기 입력 데이터를 수신하는 데이터 수신기를 더 포함하는, 로컬 디바이스.
  3. 제2항에 있어서, 상기 입력 데이터는 상기 서버를 통과하지 않는, 로컬 디바이스.
  4. 제2항에 있어서, 상기 로컬 디바이스는 상기 입력 데이터를 수집하는 센서를 포함하는, 로컬 디바이스.
  5. 제2항에 있어서, 상기 데이터 수신기는 상기 입력 데이터를 수집하고 상기 입력 데이터를 상기 로컬 디바이스에 송신하는 센서에 통신적으로 커플링되는, 로컬 디바이스.
  6. 제1항에 있어서, 상기 로컬 디바이스는 상기 입력 데이터를 상기 서버에 송신하지 않는, 로컬 디바이스.
  7. 제1항에 있어서, 상기 가중값 세트는 상기 복수의 로컬 디바이스들로부터의 상기 복수의 로컬 딥 러닝 모델들에 기초한 집성된 가중값들인, 로컬 디바이스.
  8. 제1항에 있어서, 상기 샘플 제어기 회로부는 상기 입력 데이터를 샘플링하는 것인, 로컬 디바이스.
  9. 제8항에 있어서, 상기 샘플 제어기 회로부는 상기 입력 데이터의 의사-랜덤 부분을 선택함으로써 상기 입력 데이터를 샘플링하는 것인, 로컬 디바이스.
  10. 제8항에 있어서, 상기 샘플 제어기 회로부는 상기 입력 데이터의 데이터 사이즈를 감소시키기 위해 상기 입력 데이터를 다운 샘플링함으로써 상기 입력 데이터를 샘플링하는 것인, 로컬 디바이스.
  11. 제1항에 있어서, 상기 트레이너 회로부는 상기 라벨링에 의해 결정된 라벨과 상기 로컬 딥 러닝 모델의 상기 출력 사이의 차이를 추가로 결정하는 것인, 로컬 디바이스.
  12. 제11항에 있어서, 상기 샘플 제어기 회로부는 상기 트레이너 회로부가 상기 차이를 결정하기 전에 상기 로컬 딥 러닝 모델의 상기 출력을 샘플링하는 것인, 로컬 디바이스.
  13. 제11항에 있어서, 상기 트레이너 회로부는 상기 차이에 기초하여 상기 로컬 딥 러닝 모델을 추가로 조정하는 것인, 로컬 디바이스.
  14. 비-일시적 컴퓨터 판독가능 매체로서,
    실행될 때, 로컬 디바이스로 하여금 적어도,
    훈련 데이터를 생성하기 위해 상기 로컬 디바이스에서 수신된 입력 데이터를 라벨링하게 하며;
    로컬 딥 러닝 모델을 훈련하게 하며;
    서버 ― 상기 서버는 복수의 로컬 디바이스들로부터 복수의 로컬 딥 러닝 모델들을 수신하며, 상기 서버는 글로벌 딥 러닝 모델에 대한 가중값 세트를 결정함 ― 에 상기 로컬 딥 러닝 모델을 송신하게 하며;
    상기 로컬 딥 러닝 모델의 출력을 샘플링하게 하며;
    상기 서버로부터 수신되는 상기 가중값 세트에 기초하여 상기 로컬 딥 러닝 모델을 업데이트하게 하는 명령들을 포함하는, 비-일시적 컴퓨터 판독가능 매체.
  15. 제14항에 있어서, 상기 입력 데이터는 상기 로컬 디바이스에서 직접적으로 수신되는, 비-일시적 컴퓨터 판독가능 매체.
  16. 제15항에 있어서, 상기 입력 데이터는 상기 서버를 통과하지 않는, 비-일시적 컴퓨터 판독가능 매체.
  17. 제15항에 있어서, 상기 로컬 디바이스는 상기 입력 데이터를 수집하는 센서를 포함하는, 비-일시적 컴퓨터 판독가능 매체.
  18. 제15항에 있어서, 상기 로컬 디바이스는 상기 입력 데이터를 수집하고 상기 입력 데이터를 상기 로컬 디바이스에 송신하는 센서에 통신적으로 커플링되는, 비-일시적 컴퓨터 판독가능 매체.
  19. 제14항에 있어서, 상기 입력 데이터는 상기 서버에 송신되지 않는, 비-일시적 컴퓨터 판독가능 매체.
  20. 제14항에 있어서, 상기 가중값 세트는 상기 복수의 로컬 디바이스들로부터의 상기 복수의 로컬 딥 러닝 모델들에 기초한 집성된 가중값들인, 비-일시적 컴퓨터 판독가능 매체.
  21. 제14항에 있어서, 상기 명령들은, 실행될 때, 상기 로컬 디바이스로 하여금 상기 입력 데이터를 샘플링하게 하는, 비-일시적 컴퓨터 판독가능 매체.
  22. 제21항에 있어서, 상기 명령들은, 실행될 때, 상기 로컬 디바이스로 하여금, 상기 입력 데이터의 의사-랜덤 부분을 선택함으로써 상기 입력 데이터를 샘플링하게 하는, 비-일시적 컴퓨터 판독가능 매체.
  23. 제21항에 있어서, 상기 명령들은, 실행될 때, 상기 로컬 디바이스로 하여금, 상기 입력 데이터의 데이터 사이즈를 감소시키기 위해 상기 입력 데이터를 다운 샘플링함으로써 상기 입력 데이터를 샘플링하게 하는, 비-일시적 컴퓨터 판독가능 매체.
  24. 삭제
  25. 삭제
  26. 삭제
  27. 딥 러닝 모델들을 훈련하는 방법으로서,
    로컬 디바이스에서 적어도 하나의 프로세서로 명령을 실행함으로써, 훈련 데이터를 생성하기 위해 상기 로컬 디바이스에서 수신된 입력 데이터를 라벨링하는 단계;
    상기 적어도 하나의 프로세서로 명령을 실행함으로써, 로컬 딥 러닝 모델을 훈련하는 단계;
    서버 ― 상기 서버는 복수의 로컬 디바이스들로부터 복수의 로컬 딥 러닝 모델들을 수신하며, 상기 서버는 글로벌 딥 러닝 모델에 대한 가중값 세트를 결정함 ― 에 상기 로컬 딥 러닝 모델을 송신하는 단계;
    상기 로컬 딥 러닝 모델의 출력을 샘플링하는 단계; 및
    상기 로컬 디바이스에서 상기 적어도 하나의 프로세서로 명령을 실행함으로써, 상기 서버로부터 수신되는 상기 가중값 세트에 기초하여 상기 로컬 딥 러닝 모델을 업데이트하는 단계를 포함하는, 방법.
  28. 제27항에 있어서, 상기 입력 데이터는 상기 로컬 디바이스에서 직접적으로 수신되는, 방법.
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
KR1020197007900A 2016-08-19 2017-08-19 딥 러닝 모델들의 분산 훈련을 위한 시스템들 및 방법들 KR102557956B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662377094P 2016-08-19 2016-08-19
US62/377,094 2016-08-19
PCT/IB2017/055024 WO2018033890A1 (en) 2016-08-19 2017-08-19 Systems and methods for distributed training of deep learning models

Publications (2)

Publication Number Publication Date
KR20190110519A KR20190110519A (ko) 2019-09-30
KR102557956B1 true KR102557956B1 (ko) 2023-07-21

Family

ID=59930659

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197007900A KR102557956B1 (ko) 2016-08-19 2017-08-19 딥 러닝 모델들의 분산 훈련을 위한 시스템들 및 방법들

Country Status (5)

Country Link
US (3) US11580380B2 (ko)
EP (2) EP3500985A1 (ko)
KR (1) KR102557956B1 (ko)
CN (2) CN110268423A (ko)
WO (1) WO2018033890A1 (ko)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
DE112014000709B4 (de) 2013-02-07 2021-12-30 Apple Inc. Verfahren und vorrichtung zum betrieb eines sprachtriggers für einen digitalen assistenten
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
CN110268423A (zh) * 2016-08-19 2019-09-20 莫维迪乌斯有限公司 用于深度学习模型的分布式训练的系统和方法
WO2018173121A1 (ja) * 2017-03-21 2018-09-27 株式会社Preferred Networks サーバ装置、学習済モデル提供プログラム、学習済モデル提供方法及び学習済モデル提供システム
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
US11042155B2 (en) 2017-06-06 2021-06-22 Plusai Limited Method and system for closed loop perception in autonomous driving vehicles
US11488054B2 (en) * 2017-12-06 2022-11-01 Google Llc Systems and methods for distributed on-device learning with data-correlated availability
KR102435595B1 (ko) * 2017-12-15 2022-08-25 한국전자통신연구원 분산 처리 환경에서의 학습 파라미터의 압축 및 전송을 제공하는 방법 및 장치
US10574890B2 (en) 2018-01-12 2020-02-25 Movidius Ltd. Methods and apparatus to operate a mobile camera for low-power usage
US20190279082A1 (en) * 2018-03-07 2019-09-12 Movidius Ltd. Methods and apparatus to determine weights for use with convolutional neural networks
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US10915995B2 (en) 2018-09-24 2021-02-09 Movidius Ltd. Methods and apparatus to generate masked images based on selective privacy and/or location tracking
JP7075056B2 (ja) * 2018-12-27 2022-05-25 オムロン株式会社 画像判定装置、画像判定方法及び画像判定プログラム
EP3691186A1 (en) * 2019-01-31 2020-08-05 Nokia Solutions and Networks Oy Method and apparatus for predicting the bitrate of a repaired communication channel
WO2020207696A1 (en) 2019-04-09 2020-10-15 Asml Netherlands B.V. Systems and methods for adjusting prediction models between facility locations
CN111832591B (zh) * 2019-04-23 2024-06-04 创新先进技术有限公司 机器学习模型训练方法及装置
US11887585B2 (en) * 2019-05-31 2024-01-30 Apple Inc. Global re-ranker
JP7393882B2 (ja) * 2019-06-18 2023-12-07 キヤノンメディカルシステムズ株式会社 医用情報処理装置及び医用情報処理システム
JP7372076B2 (ja) * 2019-08-07 2023-10-31 ファナック株式会社 画像処理システム
CN110443375B (zh) * 2019-08-16 2021-06-11 深圳前海微众银行股份有限公司 一种联邦学习方法及装置
US12045716B2 (en) * 2019-09-19 2024-07-23 Lucinity ehf Federated learning system and method for detecting financial crime behavior across participating entities
CN110782340B (zh) * 2019-10-25 2021-09-07 深圳前海微众银行股份有限公司 决策树模型的交互式建模方法、装置、设备及存储介质
US11500929B2 (en) * 2019-11-07 2022-11-15 International Business Machines Corporation Hierarchical federated learning using access permissions
US11379727B2 (en) * 2019-11-25 2022-07-05 Shanghai United Imaging Intelligence Co., Ltd. Systems and methods for enhancing a distributed medical network
US11941519B2 (en) * 2019-12-02 2024-03-26 Waymo Llc Machine learning training platform
CN110955915B (zh) * 2019-12-14 2022-03-25 支付宝(杭州)信息技术有限公司 一种隐私数据的处理方法及装置
US20210202258A1 (en) * 2019-12-27 2021-07-01 SCREEN Holdings Co., Ltd. Substrate treatment apparatus, substrate treatment method, substrate treatment system, and learning data generation method
WO2021136944A1 (en) 2020-01-03 2021-07-08 Tractable Ltd Method of universal automated verification of vehicle damage
US20210241183A1 (en) * 2020-01-31 2021-08-05 Hewlett Packard Enterprise Development Lp Adaptively synchronizing learning of multiple learning models
US11871244B2 (en) 2020-02-27 2024-01-09 CACI, Inc.—Federal Primary signal detection using distributed machine learning in multi-area environment
CN111460478B (zh) * 2020-03-30 2022-05-13 西安电子科技大学 一种面向协同深度学习模型训练的隐私保护方法
US11652831B2 (en) * 2020-04-14 2023-05-16 Hewlett Packard Enterprise Development Lp Process health information to determine whether an anomaly occurred
US20210334646A1 (en) * 2020-04-28 2021-10-28 International Business Machines Corporation Robustness-aware quantization for neural networks against weight perturbations
US11651293B2 (en) * 2020-07-22 2023-05-16 International Business Machines Corporation Hierarchical decentralized distributed deep learning training
KR20220098949A (ko) 2021-01-05 2022-07-12 한국과학기술원 딥러닝 모델 분산 학습 시스템 및 방법
CN112990483B (zh) * 2021-03-17 2022-11-08 北京理工大学 一种基于概率性抽样的大规模边缘机器学习训练方法
KR102577937B1 (ko) * 2021-06-08 2023-09-14 한국과학기술연구원 이벤트 교착 상태 없는 멀티 코어 뉴로모픽 시스템을 위한 이벤트 중재기 및 이벤트 중재 방법
US20230274641A1 (en) * 2022-02-25 2023-08-31 Toyota Motor Engineering & Manufacturing North America, Inc. Hierarchical transfer learning system
KR102714528B1 (ko) * 2023-01-19 2024-10-08 가천대학교 산학협력단 원격의료를 위한 개인 맞춤형 관리시스템 및 그 제어방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013073301A (ja) * 2011-09-27 2013-04-22 Hitachi Ltd 分散計算機システム及び分散計算機システムの制御方法
US20150242760A1 (en) * 2014-02-21 2015-08-27 Microsoft Corporation Personalized Machine Learning System

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070089174A1 (en) * 2005-10-14 2007-04-19 David M. Bader Content management system and method for DRM enforcement in a client-server system
US8521664B1 (en) * 2010-05-14 2013-08-27 Google Inc. Predictive analytical model matching
US9390370B2 (en) 2012-08-28 2016-07-12 International Business Machines Corporation Training deep neural network acoustic models using distributed hessian-free optimization
US9256838B2 (en) * 2013-03-15 2016-02-09 International Business Machines Corporation Scalable online hierarchical meta-learning
US9679491B2 (en) * 2013-05-24 2017-06-13 Qualcomm Incorporated Signaling device for teaching learning devices
US9727824B2 (en) * 2013-06-28 2017-08-08 D-Wave Systems Inc. Systems and methods for quantum processing of data
US9324022B2 (en) * 2014-03-04 2016-04-26 Signal/Sense, Inc. Classifying data with deep learning neural records incrementally refined through expert input
US10579922B2 (en) * 2014-04-08 2020-03-03 Microsoft Technology Licensing, Llc Deep learning using alternating direction method of multipliers
US20150324690A1 (en) 2014-05-08 2015-11-12 Microsoft Corporation Deep Learning Training System
US20150324686A1 (en) 2014-05-12 2015-11-12 Qualcomm Incorporated Distributed model learning
US10289962B2 (en) * 2014-06-06 2019-05-14 Google Llc Training distilled machine learning models
US9405960B2 (en) * 2014-06-17 2016-08-02 Beijing Kuangshi Technology Co., Ltd. Face hallucination using convolutional neural networks
US10824958B2 (en) * 2014-08-26 2020-11-03 Google Llc Localized learning from a global model
CN105488515B (zh) * 2014-09-17 2019-06-25 富士通株式会社 一种对图像进行分类的图像处理方法和图像处理装置
US10417525B2 (en) * 2014-09-22 2019-09-17 Samsung Electronics Co., Ltd. Object recognition with reduced neural network weight precision
EP3796235B1 (en) * 2014-12-17 2024-09-04 Google LLC Generating numeric embeddings of images
US20190180196A1 (en) * 2015-01-23 2019-06-13 Conversica, Inc. Systems and methods for generating and updating machine hybrid deep learning models
US11663409B2 (en) * 2015-01-23 2023-05-30 Conversica, Inc. Systems and methods for training machine learning models using active learning
CN104992430B (zh) * 2015-04-14 2017-12-22 杭州奥视图像技术有限公司 基于卷积神经网络的全自动的三维肝脏分割方法
US10540588B2 (en) 2015-06-29 2020-01-21 Microsoft Technology Licensing, Llc Deep neural network processing on hardware accelerators with stacked memory
US10726340B2 (en) * 2015-09-29 2020-07-28 Cognitive Scale, Inc. Cognitive learning system having a knowledge model
US10402469B2 (en) * 2015-10-16 2019-09-03 Google Llc Systems and methods of distributed optimization
CN105447866A (zh) * 2015-11-22 2016-03-30 南方医科大学 基于卷积神经网络的x线胸片骨抑制处理方法
GB2544786A (en) * 2015-11-27 2017-05-31 Univ Of East Anglia Method and system for generating an output image from a plurality of corresponding input image channels
US9639777B1 (en) 2015-12-17 2017-05-02 Linear Algebra Technologies Limited Systems and methods for providing an image classifier
CN105630882B (zh) * 2015-12-18 2019-09-20 哈尔滨工业大学深圳研究生院 基于遥感数据深度学习的近海污染物识别与跟踪方法
CN105678332B (zh) * 2016-01-08 2020-01-10 昆明理工大学 火焰图像cnn识别建模的转炉炼钢终点判断方法及系统
US20170262933A1 (en) * 2016-03-10 2017-09-14 Khai Gan Chuah Offline to online management system
US10536351B2 (en) * 2016-07-29 2020-01-14 Splunk Inc. Analytics for edge devices
US11087236B2 (en) * 2016-07-29 2021-08-10 Splunk Inc. Transmitting machine learning models to edge devices for edge analytics
CN110268423A (zh) * 2016-08-19 2019-09-20 莫维迪乌斯有限公司 用于深度学习模型的分布式训练的系统和方法
CN108289330B (zh) * 2017-01-09 2022-12-02 中兴通讯股份有限公司 上行参考信号信息的指示方法及装置
US10146768B2 (en) * 2017-01-25 2018-12-04 Google Llc Automatic suggested responses to images received in messages using language model
US10810317B2 (en) * 2017-02-13 2020-10-20 Protegrity Corporation Sensitive data classification
US11170309B1 (en) * 2017-11-22 2021-11-09 Amazon Technologies, Inc. System for routing machine learning model inferences

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013073301A (ja) * 2011-09-27 2013-04-22 Hitachi Ltd 分散計算機システム及び分散計算機システムの制御方法
US20150242760A1 (en) * 2014-02-21 2015-08-27 Microsoft Corporation Personalized Machine Learning System

Also Published As

Publication number Publication date
US20230127542A1 (en) 2023-04-27
US20210287080A1 (en) 2021-09-16
CN110268423A (zh) 2019-09-20
US20240013056A1 (en) 2024-01-11
WO2018033890A1 (en) 2018-02-22
KR20190110519A (ko) 2019-09-30
EP4300381A3 (en) 2024-03-20
CN117556888A (zh) 2024-02-13
US11580380B2 (en) 2023-02-14
EP3500985A1 (en) 2019-06-26
US11769059B2 (en) 2023-09-26
EP4300381A2 (en) 2024-01-03

Similar Documents

Publication Publication Date Title
KR102557956B1 (ko) 딥 러닝 모델들의 분산 훈련을 위한 시스템들 및 방법들
US20230367809A1 (en) Systems and Methods for Geolocation Prediction
WO2022083536A1 (zh) 一种神经网络构建方法以及装置
US20200143467A1 (en) Modeling method and device for evaluation model
US10410428B1 (en) Providing technical support in an augmented reality environment
CN111046027B (zh) 时间序列数据的缺失值填充方法和装置
US20190228294A1 (en) Method and system for processing neural network model using plurality of electronic devices
WO2017114168A1 (en) Method and device for target detection
TW202226030A (zh) 促進持續學習的方法及設備
US11417096B2 (en) Video format classification and metadata injection using machine learning
EP3797381A1 (en) Methods, systems, articles of manufacture and apparatus to reconstruct scenes using convolutional neural networks
CN112424789A (zh) 利用神经网络的视频监视
CN112380392A (zh) 用于分类视频的方法、装置、电子设备及可读存储介质
CN111630568A (zh) 电子装置及其控制方法
CN112084959A (zh) 一种人群图像处理方法及装置
US11989939B2 (en) System and method for enhancing machine learning model for audio/video understanding using gated multi-level attention and temporal adversarial training
CN110276404A (zh) 模型训练方法、装置及存储介质
EP4300947A1 (en) Systems, apparatus, articles of manufacture, and methods for eye gaze correction in camera image streams
CN116341976A (zh) 导航地图生产线的指标数据调整方法、装置及设备
CN113762585B (zh) 数据的处理方法、账号类型的识别方法及装置
US20220284353A1 (en) Methods and apparatus to train a machine learning model
EP3798779A1 (en) Method, apparatus, and computer program product for determining burner operating state
CN115393652B (zh) 基于对抗网络的人工智能模型更新方法、识别方法和设备
CN111310901B (zh) 用于获取样本的方法及装置
US20230229119A1 (en) Robotic process automation (rpa)-based data labelling

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant