KR20170068360A - 분산 기계 학습을 위한 저장 장치 및 그것의 기계 학습 방법 - Google Patents

분산 기계 학습을 위한 저장 장치 및 그것의 기계 학습 방법 Download PDF

Info

Publication number
KR20170068360A
KR20170068360A KR1020160053264A KR20160053264A KR20170068360A KR 20170068360 A KR20170068360 A KR 20170068360A KR 1020160053264 A KR1020160053264 A KR 1020160053264A KR 20160053264 A KR20160053264 A KR 20160053264A KR 20170068360 A KR20170068360 A KR 20170068360A
Authority
KR
South Korea
Prior art keywords
machine learning
data
present
devices
storage
Prior art date
Application number
KR1020160053264A
Other languages
English (en)
Other versions
KR102611454B1 (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 KR20170068360A publication Critical patent/KR20170068360A/ko
Application granted granted Critical
Publication of KR102611454B1 publication Critical patent/KR102611454B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine 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
    • G06F15/18
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • G06F17/30194
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/09Supervised learning
    • G06N99/005

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Human Computer Interaction (AREA)
  • Image Analysis (AREA)

Abstract

저장 장치는 로컬 데이터(local data), 및 기계 학습 명령어(machine learning instruction)들의 제1 세트(set)를 저장하도록 구성되는 스토리지, 기계 학습 명령어들의 제1 세트를 이용하여, 로컬 데이터에 대한 기계 학습을 수행하고, 로컬 데이터에 대한 기계 학습을 수행한 후에, 기계 학습 모델(machine learning model)을 생성하거나 갱신하도록 구성되는 프로세서, 및 생성되거나 갱신된 기계 학습 모델을 포함하는 갱신 메시지(update message)를 다른 저장 장치들로 전송하도록 구성되는 통신 인터페이스를 포함한다.

Description

분산 기계 학습을 위한 저장 장치 및 그것의 기계 학습 방법{STORAGE DEVICE FOR DECENTRALIZED MACHINE LEARNING AND MACHINE LEARNING METHOD THEREOF}
본 발명은 기계 학습을 위한 저장 장치에 관한 것으로, 좀 더 구체적으로, 분산 기계 학습을 위한 저장 장치 및 그것의 동작 방법에 관한 것이다.
사물 인터넷(Internet of Things, IoT)은 전자 장치, 소프트웨어, 센서들 및 네트워크 연결과 같은 컴퓨팅 리소스(computing resource)들과 임베디드(embedded)된 "사물들"을 연결하는 분산 네트워크를 의미한다. IoT는 물질계 및 컴퓨터 기반 시스템들 사이의 통합을 제공하면서, 기존의 네트워크 인프라(network infrastructure)(예를 들어, 인터넷)에 걸쳐 서로 데이터를 교환하고, 감지하고, 수집하기 위해 “사물들"(또는 IoT 장치들)을 활성화할 수 있다. "사물들"은 웹캠(webcam)들, 보안 카메라(security camera)들, 감시 카메라(surveillance camera)들, 온도 조절 장치(thermostat)들, 심박 모니터(heart rate monitor)들, 스마트 가전(smart appliance)들, 스마트 자동차(smart car)들, 필드 구동 장치(field operation device)들, 및 다양한 센서들과 같은 다양한 장치들을 참조할 수 있다.
일반적으로, IoT 장치들은 다양한 종류의 정보를 수집한다. IoT 장치들은 집중형 데이터 스토리지(centralized data storage) 프로세싱(processing) 및 분석을 위한 집중형 서버로 수집된 정보를 전송한다. IoT 에 의해 수집된 데이터의 편집에서 일반적인 기계 학습은 여러 기술, 자본 및 법적 문제에 의해 제한된다. 예를 들어, 딥 러닝(deep learning)(기계 학습의 대상)은 높은 연산력을 갖는 집중형 서버 및 연산, 저장 및 많은 양의 데이터의 공유에 대한 저장 용량을 요구한다.
통신 인프라(communication infrastructure)는 IoT 장치들 및 서버 사이의 많은 양의 데이터의 교환을 허용하기 위한 높은 대역폭을 가져야 한다. 프라이버시(privacy) 및 장치에 의해 수집된 데이터의 제어, 저장, 관리, 및 배포에 관한 법적 문제가 있다. 더 나아가, 일반적인 기계 학습에서, 집중형 서버는 연산, 분석, 데이터의 교환, 스토리지, 저장 장치들의 데이터의 액세스(access), 및 학습 결과들에 대한 책임이 있다.
본 발명은 기계 학습을 분산하여 수행하기 위한 저장 장치 및 그것의 동작 방법에 관한 것이다.
본 발명의 실시 예에 따른 저장 장치는 로컬 데이터(local data), 및 기계 학습 명령어(machine learning instruction)들의 제1 세트(set)를 저장하도록 구성되는 스토리지, 기계 학습 명령어들의 제1 세트를 이용하여, 로컬 데이터에 대한 기계 학습을 수행하고, 로컬 데이터에 대한 기계 학습을 수행한 후에, 기계 학습 모델(machine learning model)을 생성하거나 갱신하도록 구성되는 프로세서, 및 생성되거나 갱신된 기계 학습 모델을 포함하는 갱신 메시지(update message)를 다른 저장 장치들로 전송하도록 구성되는 통신 인터페이스를 포함한다.
몇몇 실시 예로서, 통신 인터페이스는 다른 저장 장치로부터 추가 갱신 메시지를 수신하고, 추가 갱신 메시지를 이용하여 로컬 데이터에 대한 기계 학습을 수행하도록 더 구성된다.
몇몇 실시 예로서, 제1 갱신된 메시지를 제1 저장 장치로 전송하기 위해 준비하고, 제2 저장 장치로부터 수신되는 제2 갱신된 메시지(updated message)를 처리하기 위한 통신 데몬(communication daemon)을 더 포함한다.
몇몇 실시 예로서, 저장 장치는 카메라를 더 포함하되, 로컬 데이터는 카메라에 의해 촬영되는 이미지들을 포함하고, 기계 학습 모델은 이미지들과 관련되는 태그(tag)들을 포함한다.
몇몇 실시 예로서, 저장 장치는 하나 이상의 심박 센서(heartrate sensor), 만보계 센서(pedometer sensor), 가속도계(accelerometer), 포도당 센서(glucose sensor), 온도 센서(temperature sensor), 습도 센서(humidity sensor), 및 점유 센서(occupancy sensor)를 더 포함한다.
몇몇 실시 예로서, 저장 장치는 하나 이상의 온도 센서, 습도 센서 및 점유 센서를 더 포함한다.
몇몇 실시 에로서, 통신 인터페이스는 생성되거나 갱신된 기계 학습 모델을 포함하는 갱신 메시지를 서버(server)로 전송하도록 더 구성되고, 서버는 복수의 저장 장치로부터 수신되는 복수의 갱신 기계 학습 모델을 이용하여 딥 러닝(deep learning)을 수행하도록 구성된다.
몇몇 실시 예로서, 통신 인터페이스는 외부 저장 장치로부터 트레이닝 데이터(training data)를 수신하도록 더 구성된다.
몇몇 실시 예로서, 통신 인터페이스는 외부 저장 장치로부터 기계 학습 명령어들의 제2 세트를 수신하도록 더 구성되고, 프로세서는 트레이닝 데이터, 및 기계 학습 명령어들의 제2 세트를 이용하여, 로컬 데이터에 대한 기계 학습을 수행하도록 더 구성된다.
몇몇 실시 예로서, 프로세서는 기계 학습을 수행하고, 로컬 데이터에 대한 패턴(pattern)을 식별하고, 로컬 데이터와 관련되는 메타데이터(metadata)로서 패턴 라벨(pattern label)을 저장하고, 패턴 라벨을 라벨 인덱스에 추가하도록 더 구성된다.
몇몇 실시 예로서, 통신 인터페이스는 검색 데이터 라벨(search data label)을 수신하고, 검색 데이터 라벨과 일치하는 라벨 인덱스를 검색하고, 라벨 인덱스와 관련되는 데이터를 서버로 전송하도록 더 구성된다.
몇몇 실시 예로서, 스토리지는 로컬 데이터에 기초하여 생성되는 알람(alarm)들 및 기계 학습 모델을 저장하도록 더 구성된다.
본 발명의 실시 예에 따른 저장 장치의 기계 학습 방법은 로컬 데이터(local data), 및 기계 학습 명령어(machine learning instruction)들의 제1 세트(set)를 저장 장치에 저장하는 단계, 기계 학습 명령어들의 제1 세트를 이용하여, 로컬 데이터에 대한 기계 학습(machine learning)을 수행하는 단계, 기계 학습 모델을 생성하거나 갱신하는 단계, 및 생성되거나 갱신된 기계 학습 모델을 포함하는 갱신 메시지(update message)를 다른 저장 장치들로 전송하는 단계를 포함한다.
몇몇 실시 예로서, 다른 저장 장치로부터 추가 갱신 메시지를 수신하는 단계, 및 추가 갱신 메시지를 이용하여, 로컬 데이터에 대한 기계 학습을 수행하는 단계를 더 포함한다.
몇몇 실시 예로서, 제1 갱신된 메시지(updated message)를 제1 저장 장치로 전송하기 위해 준비하는 단계, 및 제2 저장 장치로부터 수신된 제2 갱신된 메시지를 처리하는 단계를 더 포함한다.
몇몇 실시 예로서, 저장 장치는 카메라를 포함하고, 로컬 데이터는 카메라에 의해 촬영되는 이미지들을 포함하고, 기계 학습 모델은 이미지들과 관련되는 태그(tag)들을 포함한다.
몇몇 실시 예로서, 저장 장치는 하나 이상의 심박 센서(heartrate sensor), 만보계 센서(pedometer sensor), 가속도계(accelerometer), 포도당 센서(glucose sensor), 온도 센서(temperature sensor), 습도 센서(humidity sensor), 및 점유 센서(occupancy sensor)를 포함한다.
몇몇 실시 예로서, 저장 장치는 하나 이상의 온도 센서, 습도 센서, 및 점유 센서를 포함한다.
몇몇 실시 예로서, 생성되거나 갱신된 기계 학습 모델을 포함하는 갱신 메시지를 서버(server)로 전송하는 단계, 및 복수의 저장 장치로부터 수신되는 복수의 갱신 기계 학습 모델(update machine learning model)을 이용하여, 서버에서 딥 러닝(server deep learning)을 수행하는 단계를 더 포함한다.
몇몇 실시 예로서, 외부 저장 장치로부터 트레이닝 데이터(training data)를 수신하는 단계를 더 포함한다.
몇몇 실시 예로서, 외부 저장 장치로부터 기계 학습 명령어들의 제2 세트를 수신하는 단계, 및 트레이닝 데이터, 및 기계 학습 명령어들의 제2 세트를 이용하여, 로컬 데이터에 대한 기계 학습을 수행하는 단계를 더 포함한다.
몇몇 실시 예로서, 기계 학습을 수행하는 단계, 로컬 데이터에 대한 패턴(pattern)을 식별하는 단계, 로컬 데이터와 관련되는 메타데이터(metadata)로서 패턴 라벨(pattern label)을 저장하는 단계, 및 패턴 라벨을 라벨 인덱스(label index)에 추가하는 단계를 더 포함한다.
몇몇 실시 예로서, 검색 데이터 라벨(search data label)을 수신하는 단계, 검색 데이터 라벨과 일치하는 라벨 인덱스를 검색하는 단계, 및 라벨 인덱스와 관련되는 데이터를 서버로 전송하는 단계를 더 포함한다.
몇몇 실시 예로서, 로컬 데이터에 기초하여 생성된 알람(alarm)들 및 기계 학습 모델을 저장하는 단계를 더 포함한다.
본 발명의 실시 예에 따르면, 저장 장치의 기계 학습 효율 및 데이터 처리 속도가 향상될 수 있다.
도 1a는 집중형 기계 학습 시스템을 보여주는 블록도이다.
도 1b는 본 발명의 시리 예에 따른 기계 학습 장치의 분산 기계 학습 시스템을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 분산 기계 학습 프로세스를 보여주는 개념도이다.
도 3은 본 발명의 실시 예에 따른 기계 학습 장치에 의한 분산 기계 학습 방법을 보여주는 순서도이다.
도 4는 본 발명의 실시 예에 따른 새로운 데이터의 처리 방법을 보여주는 순서도이다.
도 5는 본 발명의 실시 예에 따른 새롭게 갱신된 트레이닝 데이터의 처리 방법을 보여주기 위한 순서도이다.
도 6은 본 발명의 실시 예에 따른 새로운 알고리즘을 처리하기 위한 방법을 보여주는 순서도이다.
도 7은 본 발명의 실시 예에 따른 데이터 검색 방법을 보여주는 순서도이다.
도 8은 본 발명의 실시 예에 따른 스토리지 장치들 사이의 통신을 설명하기 위한 개념도이다.
이하, 도면들을 참조하여 본 발명의 실시 예들을 보다 상세하게 설명하기로 한다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 첨부된 도면에 있어서, 구성 요소들의 크기는 본 발명의 명확성을 기하기 위하여 실제보다 확대하여 도시한 것이다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 또한, 층, 막, 영역, 판 등의 부분이 다른 부분 “위에” 있다고 할 경우, 이는 다른 부분 “바로 위에” 있는 경우뿐만 아니라 그 중간에 또 다른 부분이 있는 경우도 포함한다. 반대로 층, 막, 영역, 판 등의 부분이 다른 부분 “아래에” 있다고 할 경우, 이는 다른 부분 “바로 아래에” 있는 경우뿐만 아니라 그 중간에 또 다른 부분이 있는 경우도 포함한다.
중앙 서버에 의한 일반적인 기계 학습은 IoT 시스템과 같은 분산 네트워크 시스템에서 구현될 때, 다양한 문제들을 가질 수 있다. 예를 들어, 법률 및 개인 정보 보호 문제는 IoT 장치들에 의해 수집된 기본 데이터의 소유권, 권한 부여, 관치 및 배포를 둘러싸고 발생될 수 있다. 일부 개인 정보는 다른 장치들에 복사 및 배포로부터 보호 또는 적절한 권한을 요구할 수 있다. 일부 개인 데이터는 집중형 데이터 처리를 위한 서버로 자유롭게 복사되거나 이동될 수 있다. 그리고, 데이터가 개인 정보의 추출 정보를 나타내는 경우(예로서, 이미지 태그(image tag)들인 경우), 일부 개인 데이터는 분석될 수 있다.
스마트 솔리드-스테이트 드라이브(Smart Solid-State Drive)는 저장 및 내부에 구현되는 컴퓨팅 성능을 갖는 장치를 의미한다(스마트 SSD는 스마트 장치 또는 기계 학습 저장 장치를 의미한다.). 이러한 스마트 장치들의 예시들은 웹캠(webcam)들, 베이비 모니터(baby monitor)들, 감시 카메라(surveillance camera)들, 보안 카메라(security camera)들, 무인 자동차 카메라(autonomous car camera)들, 대시 카메라(dash camera)들, 백-업 카메라(back-up camera)들, 드론(drone)들, 스마트 워치(smart watch)들, 온도 조절 장치(thermostat)들, 심박 모니터(heart rate monitor)들, 계보기(pedometer)들, 스마트 가전(smart appliance)들, 스마트 자동차(smart car)들, 필드 동작 장치(field operation device)들, 및 넓은 영역에 걸쳐 분포되는 다양한 종류들의 센서(sensor)들(센서 영역 네트워크)(sensor area network, SAN)을 포함한다. 스마트 장치의 컴퓨팅 성능은 중앙 서버에 전용되는 일반적 기계 학습 스킴(scheme)과는 대조적으로, 장치 레벨에서 분산 기계 학습을 사용할 수 있다.
몇몇 실시 예로서, 복수의 스마트 장치는 분산될 수 있다. 그리고 복수의 스마트 장치는 기계 학습 시스템 성능의 성능을 향상시킬 수 있다. 복수의 스마트 장치는 일반적인 집중형 기계 학습에서 발생하는 법률, 사생활, 및 비용 문제들을 해결할 수 있다. 복수의 스마트 장치를 포함하는 분산 기계 학습 시스템은 국부적으로 생성되는 데이터로부터 추상화 정보를 추출할 수 있다. 그리고 분산 기계 학습 시스템은 중앙 서버의 원시의 처리되지 않은 데이터를 전송하는 대신 신뢰할 수 있는 스마트 장치들로 추상화 정보를 전송할 수 있다. 분산 기계 학습 시스템은 분산 기계 학습 프로세스를 위한 기존의 로컬 컴퓨팅 리소스(local computing resource)들을 이용할 수 있으므로, 실행, 동작 및 유지를 위한 비용이 감소될 수 있다. 중앙 서버는 데이터 분산의 무거운 사용을 감시할 수 있고, 프로세싱은 국부적으로 학습 및 트레이닝된 데이터를 사용하여 더 높은 레벨의 학습을 위해 이용될 수 있다.
딥 러닝(deep learning)(또는 딥 머신 러닝)은 여러 처리 계층 또는 데이터의 여러 비선형 변환들을 포함하는 다른 것들을 이용하여, 데이터에 의해 표현되는 높은 레벨의 추상화들을 모델링하는 것을 시도하는 기계 학습의 주체이다. 예를 들어, 카메라에 의해 캡쳐된 이미지는 픽셀 당 밝기 값들의 벡터, 또는 에지(edge)들의 세트로서 더 추상적인 방법, 특정 모양의 영역들과 같은 다양한 방법들로 나타내질 수 있다. 데이터의 몇몇 표현들은 다른 이미지들 또는 트레이닝(training) 데이터의 예시들로부터 작업(예를 들어, 얼굴 영역 또는 얼굴 표정 인식)을 학습할 수 있다. 딥 러닝은 매뉴얼 태깅(manual tagging)과 같은 수동 특징 학습을, 비 자율 또는 반 자율 특징 학습을 위한 효율적인 알고리즘들, 및 원시 데이터로부터의 계층 특징 추출로 대체할 수 있다. 딥 러닝이 널리 이용되는 반면, 기계 학습에 대한 분산 어플리케이션의 구현은 명백하지 않다.
본 발명은 다른 스마트 장치들 및/또는 호스트/클라이언트(host/client) 컴퓨터와 함께 독립적으로 분산 기계 학습할 수 있는 스마트 장치를 제공한다.
일 실시 예에 따르면, 본 발명의 스마트 장치는 온보드 프로세서(onboard processor), 메모리(memory), 원시 데이터를 저장하기 위한 데이터 스토리지(data storage), 트레이닝 데이터, 레이블 훈련 데이터, 훈련 레이블 인덱스들(label indices), 및 학습 알고리즘들과 같은 다양한 컴퓨팅 리소스들을 포함할 수 있다. 학습 알고리즘들은 자기 학습 알고리즘들, 및 다른 스마트 장치들 또는 호스트/클라이언트 컴퓨터로부터 수신한 알고리즘들을 포함할 수 있다. 본 발명의 스마트 장치는 임베디드(embedded) 센서를 사용하여 다양한 종류의 주변 정보를 수집할 수 있다. 예를 들어, 스마트 워치는 심박 센서, 만보계 센서, 가속도계 및 사용자의 심박, 활동, 피부 전기 활동(electrodermal activity) 및 포도당 수준을 모니터링하기 위한 포도당 센서와 같은 센서들 중 적어도 하나를 포함할 수 있다.
본 발명의 스마트 장치는, 기계 학습을 채용함으로써, 사용자의 초기 상태, 또는 이상 상태를 판단하고 분류할 수 있다. 임베디드 센서의 다른 예시들은 이미지 센서(또는 카메라), 온도 센서, 습도 센서, 및 점유 센서를 포함할 수 있다. 다른 예시들로서, 본 발명의 스마트 장치는 임베디드 센서를 포함하는 대신 외부의 센서와 연결될 수 있다. 본 발명의 스마트 장치의 컴퓨팅 성능은 트레이닝 및 트레이닝된 데이터(예를 들어 이미지 태그들)를 발생시키고, 원시 데이터를 처리하기 위한 중앙 서버에 의해 처리되는 기계 학습을 오프로드(offload)할 수 있다. 스마트 장치는 다른 장치들 및/또는 호스트/클라이언트 컴퓨터와 통신하기 위해 통신 메커니즘(mechanism)(예를 들어, 학습, 알람, 교환에 대한 메시지들)을 포함할 수 있다.
분산 기계 학습을 위해, 본 발명의 스마트 장치의 온보드 프로세서는 컴퓨팅 리소스들 및 분산 기계 학습을 수행하기 위한 전력을 포함할 수 있다. 데이터 스토리지는 플래시 메모리(flash memory), 위상 변화 메모리(phase change memory, PCM), 스핀 전달 토크 마그네틱 RAM(Spin-Transfer Torque Magnetic RAM, STT-MRAM)과 같은 불휘발성 메모리를 포함할 수 있다. 메모리는 다이나믹 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM)과 같은 휘발성 메모리일 수 있다. 몇몇 예들로서, 온보드 프로세서는 효율적인 데이터 교환 및 분석을 위해, 메모리 및/또는 데이터 스토리지와 같은 다이(die) 상에 있을 수 있다. "단순" 스토리지 장치(또는 시스템)와 연결된 일반적인 기계 학습 시스템의 호스트 프로세서 및 스토리지 인프라(storage infrastructure)(예를 들어 PCI 익스프레스 버스(Peripheral Component Interconnect Express bus, PCIe bus))를 통한 통신들과 비교하면, 본 발명의 스마트 장치는 일반적인 기계 학습 시스템의 스토리지 인프라보다 훨씬 높은 장치 및 온-다이(on-die) 통신 대역폭을 가질 수 있다.
더 나아가, 본 발명의 스마트 장치의 온보드 프로세서는 데이터를 추적하고 유지하기 위해 더 적은 오버헤드를 요구하고, 더 효율적으로 기계 학습 활동들을 수행할 수 있다. 분산 기계 학습은 호스트 프로세서를 해방시킬 수 있고, 높은 레벨의 그리고 더 유용한 딥 머신 러닝 활동을 수행하기 위해 호스트 프로세서를 활용할 수 있다.
몇몇 실시 예들에 따르면, 본 발명의 스마트 장치는 학습 명령어들 및 데이터를 수신할 수 있다. 그리고, 본 발명의 스마트 장치는 수신된 명령어들 및 데이터를 적용할 수 있고, 학습 명령어들에 기초한 학습 결과들을 수신자에게 제공할 수 있다 수신자는 호스트 컴퓨터, 클라이언트 컴퓨터 데이터 스토리지, 또는 추가 프로세싱을 위한 다른 스마트 장치 중 하나일 수 있다. 본 발명의 스마트 장치는 수신자와 더 효율적인 데이터 교환을 허용하기 위한 데이터 입출력 성능을 가진다. 본 발명의 장치는 자체적으로 계산을 수행할 수 있으므로, I/O 성능 적은 부분은 호스트 요청들의 수신에 전념할 수 있다. 그리고 I/O 성능의 대부분은 유용한 데이터의 수신 및/또는 유용한 결과들을 다른 수신자들에게 전달하기 위해 사용될 수 있다.
몇몇 스마트 장치들은 데이터를 전송하기 위한 데이터 출력 성능만을 가질 수 있고, 몇몇 다른 스마트 장치들은 데이터 입력 및 출력 성능들을 모두 가질 수 있다. 스마트 장치들 및 (분산된) 기계 학습 장치들에 대한 용어는 특별히 언급되지 않는 한 상호 교환적으로 사용될 수 있다.
도 1a는 집중형 기계 학습 시스템을 보여주는 블록도이다. 중앙 서버(100)는 I/O 인터페이스(110)(예로서 이더넷(Ethernet))를 포함할 수 있다. I/O 인터페이스(110)는 장치들(101a-101n)과 통신할 수 있다. 장치들(101a-101n)은 센싱(sensing) 장치들 또는 자립형 컴퓨터 노드(computer node)들일 수 있다. 장치들(101a-101n)에 의해 발생되는 데이터는 중앙 서버(100)의 I/O 인터페이스(110)에 의해 수신된다. 그리고 데이터는 입력 스트리밍 모듈(streaming module)(114)로 스트림된다. 입력 스트리밍 모듈(114)은 데이터 저장을 위해 스트림 데이터를 파일 시스템(file system)(111)으로 전송할 수 있다. 뿐만 아니라, 입력 스트리밍 모듈(114)은 추가 데이터 처리를 위해 스트림 프로세싱 모듈(stream processing module)(115)로 스트림 데이터를 전송할 수 있다. 스트림 데이터는 파일 시스템(1110)에 원시 데이터 또는 압축된 데이터로 저장될 수 있다. 파일 시스템(111)에 저장된 데이터는 암호화 키(encryption key)를 사용하여 암호화될 수 있다. 암호화된 데이터는 다른 장치들과 공유될 수 있고, 일치하는 해독 키를 가질 수 있다.
스트림 프로세싱 모듈(115)은 입력 스트리밍 모듈(114)로부터 수신된 스트림 데이터를 처리할 수 있다. 그리고, 스트림 프로세싱 모듈(115)은 알람(alarm)과 같은 스트림 데이터에 의해 식별된 이벤트를 나타내는 레코드(record)들 발생시킬 수 있다. 입력 스트리밍 모듈(114)이 스트림 데이터를 파일 시스템(111)에 저장하는 동안에, 스트림 프로세싱 모듈(115)은 스트림 데이터를 동시에 처리할 수 있다.
예를 들어, 스트림 프로세싱 모듈(115)은 보안 카메라에 의해 생성된 이미지를 처리할 수 있다. 그리고, 스트림 프로세싱 모듈(115)는 동시에 알람을 발생시킬 수 있다. 예를 들어, 알람은 출력 포트(port)를 통해 지정된 장치(예로서, 스마트 폰(smartphone) 또는 사용자(예로서, 집주인 또는 보안 회사)에게 알림 메시지 형태로 전송될 수 있다. 스트림 프로세싱 모듈(115)은 처리된 데이터를 데이터베이스(113)에 저장할 수 있다. 일 예로서, 데이터베이스(113)는 아파치 HBase(Apache HBase) 또는 NoSQL 데이터베이스(NoSQL database)일 수 있다. 하지만, 데이터베이스(113)의 종류는 이에 한정되지 않는다.
중앙 서버(100)는 기계 학습 모듈(112)을 더 포함할 수 있다. 기계 학습 모듈(112)은 파일 시스템(111) 및 데이터베이스(113)와 연결될 수 있다. 기계 학습 모듈(112)은 다양한 유형의 기계 학습 활동들을 수행할 수 있다. 기계 학습 활동들의 예시들은 입력 스트림 데이터의 태깅(tagging) 및 분석을 포함할 수 있다. 스트림 프로세싱 모듈(115)에 의해 처리된 데이터 및 기계 학습 모듈(112)은 데이터베이스(113)에 저장될 수 있다. 데이터베이스(113)는 키-값(key-value, KV) 데이터베이스일 수 있다. 그리고, 데이터베이스(113)는 키-값 쌍들의 모음으로써 데이터를 나타내기 위해 관련 어레이(예로서, 맵(map), 사전)를 저장할 수 있다. 데이터베이스(113)에 저장된 데이터는 외부 시스템(미 도시)에서 이용 가능하게 될 수 있다. 외부 시스템은 데이터베이스(113)에 저장된 데이터의 특정 조각에 접근할 수 있는 권한이 있다.
중앙 서버(100)의 기계 학습 모듈(112), 입력 스트리밍 모듈(114), 및 스트림 프로세싱 모듈(115)은 소프트웨어(software) 또는 펌웨어(firmware)에서 실행될 수 있다. 소프트웨어 또는 펌웨어의 명령어들은 로컬 스토리지(local storage)(미 도시)에 저장될 수 있다. 그리고 중앙 서버(100)의 프로세서에 의해 처리될 수 있다. 소프트웨어 또는 펌웨어의 명령어들은 외부 시스템 또는 기계 학습 모듈(112) 내부에서 갱신될 수 있다.
학습된 결과는 데이터베이스(113)에 저장될 수 있다. 예를 들어, 스트리밍 프로세싱 모듈(115)은 얼굴 인식 기능을 포함할 수 있다. 그리고 데이터베이스(113)에 저장된 등록된 얼굴 모델들(models)을 더 나타낼 수 있다. 보안 카메라로부터 수신된 이미지들로부터 얼굴 이미지들을 식별할 때, 스트림 프로세싱 모듈(115)은 등록된 사용자의 얼굴들로부터 등록되지 않은 사용자들의 얼굴들을 구분할 수 있다. 그리고, 스트림 프로세싱 모듈(115)은 이에 따른 알람들을 생성할 수 있다. 몇몇 예시들로서, 스트림 프로세싱 모듈(115)은 용의자의 얼굴 및 행동들을 인식함으로써 의심스러운 행동들을 구분하기 위해 스트리밍 이미지들을 더 처리할 수 있다.
중앙 서버(100)의 기계 학습 모듈(112), 입력 스트리밍 모듈(114), 스트림 프로세싱 모듈(115)은 하드웨어에서 실행될 수 있다. 각각의 하드웨어는 전용 컴퓨팅 리소스들을 가질 수 있다. 멀티코어 시스템(multicore system)의 각각의 프로세서는 입력 스트리밍 모듈(114) 및 스트림 프로세싱 모듈(115)를 위해 지정된 작업들을 가질 수 있다. 이러한 경우, 멀티코어 시스템의 프로세서들은 프로세스 간 통신(inter-process communication, IPC)보다 더 효율적인 공유된 메모리를 통해 통신할 수 있다.
도 1b는 본 발명의 시리 예에 따른 기계 학습 장치의 분산 기계 학습 시스템을 보여주는 블록도이다. 분산 기계 학습 시스템(150)은 복수의 기계 학습 장치(151a-151c)를 포함할 수 있다. 본 발명을 설명하기 위한 분산 기계 학습 시스템(150)은 세 개의 기계 학습 장치들(151a-151c)을 포함한 것으로 도시되었다. 본 발명은 이에 한정되지 않고, 분산 기계 학습 시스템(150)은 임의의 개수의 기계 학습 장치들(151)을 포함할 수 있다. 기계 학습 장치들(151a-151c) 각각은 기계 학습 모듈(162), 입력 스트리밍 모듈(164), 스트림 프로세싱 모듈(165), 파일 시스템(161), 및 I/O 인터페이스(106)를 포함할 수 있다.
도 1A에 도시된 중앙 기계 학습 스킴의 예시와 비교하면, 분산 기계 학습 시스템(150)은 다양한 장치들로부터 데이터를 수집하고, 집중화 방법으로 기계학습을 수행하기 위한 중앙 서버(100)를 필요로 하지 않는다. 그러나, 분산 기계 학습 시스템(150)은 집합적 딥 머신 러닝(deep machine learning)을 위한, 하나 이상의 서버 시스템들(미 도시)을 포함할 수 있다. 집합적 딥 머신 러닝은 일정 기간에 걸쳐 복수의 기계 학습 장치들(151)로부터 수신된 누적 데이터를 요구할 수 있다.
일 예로서, 기계 학습 장치들(151a-151c)은 몇몇 유사한 구성 요소들을 공유할 수 있다. 공유된 구성 요소들의 예시들은 프로세서, 메모리 로컬 스토리지 및 통신 인터페이스를 포함할 수 있다. 기능 구성 요소들은 입/출력(input/output, I/O) 인터페이스, 분산 기계 학습 모듈, 다른 기계 학습 장치들(151)로/로부터 훈련된 결과들을 전송/수신하기 위한 메커니즘(mechanism)을 포함할 수 있다.
일 예로서, 기계 학습 장치들(151a-151c)은 다양한 종류들 동일한 유형의 장치(예로서, 카메라들)일 수 있다. 예를 들어, 제1 기계 학습 장치(151a)는 보안 카메라일 수 있다. 제2 기계 학습 장치(151b)는 웹캠일 수 있다. 그리고 제3 기계 학습 장치(151c)는 베이비 모니터일 수 있다. 다른 예로서, 기계 학습 장치들(151a-151c)은 유사하지 않은 장치들일 수 있다. 예를 들어, 제1 기계 학습 장치(151a)는 냉장고일 수 있고, 제2 기계 학습 장치(151b)는 온도조절기일 수 있다. 그리고 제3 기계 학습 장치(151c)는 보안 카메라일 수 있다. 기계 학습 장치들의 임의의 유형이 본 발명의 범위를 벗어나지 않고, 다른 기계 학습 장치들과 함께 사용될 수 있음을 알 수 있다.
제1 기계 학습 장치(151a)의 I/O 인터페이스(160)는 다른 기계 학습 장치들(151b, 151c) 및 호스트/클라이언트 서버와 통신을 용이하게 하도록 구성될 수 있다. 제1 기계 학습 장치(151a)는 임베디드 센서(170)(예로서, 이미지 센서(카메라), 온도 센서, 습도 센서, 점유 센서 등) 또는 제1 기계 학습 장치(151a)와 연결된 외부 센서(180)를 포함할 수 있다. 임베디드 및/또는 외부 센서를 사용함으로써, 제1 기계 학습 장치(151a)는 데이터를 발생시킬 수 있다. 제1 기계 학습 장치(151a)는 자기 생성 데이터를 전송할 수 있다. 그리고, 제1 기계 학습 장치(151a)는 I/O 인터페이스(160)를 통해 다른 기게 학습 장치들(151b, 151c)로부터 데이터(가르침 데이터, 알람들)을 수신할 수 있다.
데이터는 입력 스트리밍 모듈(164)로 스트림될 수 있다. 입력 스트리밍 모듈(164)은 데이터 저장을 위해 파일 시스템(161)으로 스트림 데이터를 전송할 수 있다. 뿐만 아니라, 입력 스트리밍 모듈(164)은 추가 데이터 처리를 위해 스트림 프로세싱 모듈(165)로 스트림 데이터를 전송할 수 있다. 스트림 데이터는 파일 시스템(161)에 원시 데이터 또는 압축된 데이터로서 저장될 수 있다. 파일 시스템(161)에 저장된 데이터는 암호화 키를 이용하여 개인정보를 위해 암호화될 수 있다.
스트림 프로세싱 모듈(165)은 입력 스트리밍 모듈(164)로부터 수신된 스트림 데이터를 처리할 수 있다. 그리고 스트림 프로세싱 모듈(165)은 알람과 같은 이벤트를 나타내기 위한 레코드들을 생성할 수 있다. 입력 스트리밍 모듈(164)에서 파일 시스템(161)으로 스트림 데이터를 저장할 때, 스트림 프로세싱 모듈(165)은 동시에 스트림 데이터를 처리할 수 있다. 예를 들어, 스트림 프로세싱 모듈(165)은 보안 카메라에 의해 생성된 이미지를 처리할 수 있고, 알람을 발생시킬 수 있다. 알람은 출력 포트를 통해 지정된 장치(예로서, 스마트 폰 또는 사용자(예로서, 집주인 또는 보안 회사)에게 알림 메시지 형태로 전송될 수 있다.
기계 학습 모듈(162)은 파일 시스템(161)과 연결될 수 있다. 기계 학습 모듈(162)은 다양한 유형의 기계 학습 활동들을 수행할 수 있다. 기계 학습 활동들의 예시들은 입력 스트림 데이터의 태깅(tagging) 및 분석을 포함할 수 있다. 스트림 프로세싱 모듈(165)에 의해 처리된 데이터는 다른 기계 학습 장치들(151) 또는 추가 또는 더 정밀한 처리 및 저장을 수행하기 위한 서버로 전송될 수 있다. 일 예로서, 기계 학습 장치들로부터 처리된 데이터는 중앙 데이터베이스(미 도시) 또는 추가 처리를 위해 제1 기계 학습 장치(151a)의 로컬 데이터 베이스로 전송될 수 있다.
데이터베이스는 키-값(key-value, KV) 데이터베이스일 수 있다. 그리고, 데이터베이스는 키-값 쌍들의 모음으로써 데이터를 나타내기 위해 관련 어레이(예로서, 맵(map), 사전)를 저장할 수 있다. 데이터베이스에 저장된 데이터는 외부 시스템(미 도시)에서 이용 가능하게 될 수 있다. 외부 시스템은 데이터베이스에 저장된 데이터의 특정 조각에 접근할 수 있는 권한이 있다.
일 예로서, 제1 기계 학습 장치(151a)의 기계 학습 모듈(162), 입력 스트리밍 모듈(164), 및 스트림 프로세싱 모듈(165)은 소프트웨어 또는 하드웨어에서 실행될 수 있다. 소프트웨어 또는 펌웨어의 명령어들은 로컬 스토리지(166)에 저장 될 수 있고, 프로세서(167)에 의해 처리될 수 있다. 소프트웨어 또는 펌웨어의 명령어들은 외부 시스템 또는 제1 기계 학습 장치(151a) 내부에서 갱신될 수 있다.
예로서, 스트리밍 프로세싱 모듈(115)은 얼굴 인식 기능을 구현할 수 있다. 그리고, 스트리밍 프로세싱 모듈(115)은 학습된 결과들(예로서, 태그들과 얼굴 이미지들)을 생성하고, 다른 기계 학습 장치들로 전송할 수 있다. 내부 및 분산 기계 학습 모듈(162)을 사용함으로써, 제1 기계학습 장치(151a)는 다른 기계 학습 장치들과 독립적으로, 스스로 학습 결과를 생성할 수 있다. 또는 제1 기계학습 장치(151a)는 다른 기계 학습 장치들로부터 학습된 결과들과 관련하여 스스로 학습한 결과를 생성할 수 있다. 데이터 수집 및 을 위해 중앙 기계 학습을 위해 중앙 서버에 의존하는 대신, 분산 기계 학습 시스템(150)은 각각의 기계 학습 장치들(151)을 독립적이고, 집합적으로 학습하도록 허용한다.
원시 데이터는 중앙 서버로 전송될 필요가 없기 때문에, 오직 학습된 결과들만이 집합적 기계 학습을 위해, 기계 학습 장치들(151) 사이에서 교환될 수 있다. 분산 기계 학습 시스템(150)은 장치 레벨에서 기계 학습을 분산시키고, 시스템 레벨에서 유용하고 집합적인 기계 학습을 위한 중앙 기계 학습을 사용함으로써 전체 시스템의 효율을 향상시키면서 데이터 트래픽(data traffic)을 감소시킬 수 있다.
다른 실시 예로서, 제1 기계 학습 장치(151a)의 기계 학습 모듈(162), 입력 스트리밍 모듈(164), 스트림 프로세싱 모듈(165)은 하드웨어에서 실행될 수 있다. 각각의 하드웨어는 전용 컴퓨팅 리소스들을 포함할 수 있다. 예로서, 멀티코어 시스템의 각각의 프로세서는 입력 스트리밍 모듈(164) 및 스트림 프로세싱 모듈(165)를 위해 지정된 작업들을 가질 수 있다. 이러한 경우, 멀티코어 시스템의 프로세서들은 프로세스 간 통신(inter-process communication, IPC)보다 더 효율적인 공유된 메모리를 통해 통신할 수 있다.
도 2는 본 발명의 실시 예에 따른 분산 기계 학습 프로세스를 보여주는 개념도이다. 분산 기계 학습 시스템(200)은 하나 이상의 기계 학습 장치들(250)(예로서, 250a 및 250b) 및 하나 이상의 호스트/클라이언트 컴퓨터(200)를 포함할 수 있다. 본 발명의 실시 예는 하나의 호스트/클라이언트 컴퓨터(200) 및 두 개의 기계 학습 장치들(250a, 및 250b)을 도시였지만, 호스트/클라이언트 컴퓨터들 및 기계 학습 장치들의 개수는 본 발명의 범위를 벗어나지 않고, 분산 기계 학습 시스템(200)에 포함될 수 있다.
일 예로서, 제1 기계 학습 장치(250a)는 장치 인터페이스(251), 스토리지 컨트롤러(252), 프로세서(253), 및 메모리(254)를 포함할 수 있다. 프로세서(253)는 임베디드 센서(255) 제1 기계 학습 장치(250a)에 연결된 외부 센서(256)로부터 입력들에 기초하여 기계 학습을 수행할 수 있다. 프로세서(253) 및 기계 학습 장치(250)의 메모리(254)는 내부적으로 데이터를 추적하고 관리할 수 있고, 기계 학습 활동을 더욱 효율적으로 수행할 수 있다.
스토리지 컨트롤러(252)는 저장된 기계 학습에 대한 자기 학습 데이터 및 알고리즘들이 저장되는 스토리지(260)로 및 로부터의 액세스를 제어할 수 있다. 스토리지(260)는 트레이닝 데이터(training data)(261), 데이터와 라벨(262), 라벨 인덱스(263), 및 알고리즘(264)을 포함할 수 있다. 트레이닝 데이터(261)는 제1 기계 학습 장치(250a)에 의해 트레이닝된 데이터(예로서, 보안 카메라의 경우, 얼굴 인식)를 포함할 수 있다. 데이터와 라벨(262)은 제1 기계 학습 장치(250a) 라벨 또는 태그 데이터(예로서, 태그들을 포함하는 이미지들)를 포함할 수 있다. 라벨 인덱스(263)는 트레이닝된 데이터의 인덱스들을 포함할 수 있다. 트레이닝 데이터(261), 데이터와 라벨(262), 및 라벨 인덱스(263)는 트레이닝된 데이터를 집합적으로 포함할 수 있다. 그리고 제1 기계 학습 장치(250a)는 트레이닝된 데이터를 다른 장치(예로서, 제2 기계 학습 장치(250b)) 및/또는 호스트/클라이언트 컴퓨터(200)로 전송할 수 있다.
알고리즘(264)은 제1 기계 학습 장치(250a)가 스스로 학습하거나, 다른 장치들로부터 수신한 다양한 알고리즘들을 포함할 수 있다. 제1 기계 학습 장치(250a)는 스스로 학습 및 다른 장치들이 학습하고 전달된 알고리즘들에 기초한 새로운 알고리즘을 학습할 수 있다. 몇몇 예로서, 호스트/클라이언트 컴퓨터(200)는 트레이닝 데이터(261), 데이터와 라벨(262), 및 라벨 인덱스(263)에 기초하여 알고리즘들 및 연결된 장치들(250)로부터 수신된 알고리즘(254)을 학습할 수 있다. 그리고, 호스트/클라이언트 컴퓨터(200)는 새로운 알고리즘들을 장치들(250)로 전송할 수 있다.
일 예로서, 호스트/클라이언트 컴퓨터(200)는 장치 인터페이스(201), 프로세서(203), 메모리(204), 및 패턴 인식 구성 요소(210)를 포함할 수 있다. 패턴 인식 구성 요소(210)는 트레이닝 데이터(211), 새로운 데이터(212), 및 알고리즘(들)(213)을 포함할 수 있다. 프로세서(203)는 연결된 기계 학습 장치들(250)로부터 입력들에 기초하여 시스템 레벨의 기계 학습을 수행할 수 있다.
호스트/클라이언트 컴퓨터(200)의 프로세서(203) 및 메모리(204)는 트레이닝 데이터(211) 및 연결된 기계 학습 장치들(250)로부터 수신된 새로운 데이터(212)를 추적하고 유지할 수 있다. 그리고, 호스트/클라이언트 컴퓨터(200)의 프로세서(203) 및 메모리(204)는 새로운 알고리즘(213)을 발생시킬 수 있다. 장치 프로세서(253)가 내부적으로 데이터를 유지하고 추적하기 위해 작은 오버헤드를 갖기 때문에, 호스트 프로세서(203)는 시스템 레벨에서 더 높은 레벨의 딥 머신 러닝 활동을 수행할 수 있다. 기계 학습 장치들(250) 및 호스트/클라이언트 컴퓨터(200)는 인터넷(Internet)과 같은 임의의 통신 네트워크(270)를 통해 통신할 수 있다.
도 3은 본 발명의 실시 예에 따른 기계 학습 장치에 의한 분산 기계 학습 방법을 보여주는 순서도이다. 예로서, 본 발명의 기계 학습 장치는 카메라를 포함하고, 이미지들(301)을 촬영하고, 로컬 기계 학습 프로세스(local machine learning process)(302)를 수행할 수 있다. 기계 학습 프로세스(302)는 패턴 인식 및 카테고리들(categories)에 기초한 이미지 태깅 및 사진들에서 식별된 객체들을 포함할 수 있다.
일 예로서, 본 발명의 기계 학습 장치는 이미지(301)와 관련된 메타데이터로써 태그들(303)(얘를 들어, 캡셔닝(captioning)/키워드(keyword)들)을 할당할 수 있다. 본 발명의 기계 학습 장치는 이미지(301) 및 이미지(301)의 태그와 관련된 다양한 캡셔닝/키워드들을 식별할 수 있다. 태그들(303)는 아이, 꽃, 여성, 어린이, 나무 등을 포함할 수 있다.
분산 기계 학습 프로세스의 다른 예는 시각적 유사 검색이다. 본 발명의 기계 학습 장치는 검색 태그와 관련된 관련 이미지들을 검색하기 위해서 처리된 이미지들과 관련된 검색된 태그들을 사용할 수 있다. 태그되고 검색된 이미지들은 특정 기계 학습 장치의 로컬 스토리지의 내부에 위치할 수 있다.
몇몇 예로서, 기계 학습 장치는 지역적으로 동일한 검색을 수행하기 위해서 다른 신뢰 기계 학습 장치를 요청하고 다른 신뢰 기계 학습 장치들에 의해 검색 결과들을 수신함으로써 검색을 수행할 수 있다. 이러한 경우, 시각적 유사 검색은 호스트/클라이언트 컴퓨터에 의한 중단 없이 분산 방법으로 수행될 수 있다. 본 발명의 기계 학습 장치는 사용자에 의해 제공되는 로컬 스토리지 또는 이미지들에 존재하는 이미지들의 자동 태깅을 수행할 수 있다. 몇몇 예시들로서, 자동 태깅은 후술되는 바와 같이 메시지를 통해 외부 기계 학습 장치에 의해 수행될 수 있다.
상술된 바와 같이, 본 발명의 기계 학습 장치는 이미지들에 대한 스토리지 저장소로써 설정될 수 있다. 그리고 본 발명의 기계 학습 장치는 쉬운 탐색 및 검색을 위해 내부에 포함된 각각의 이미지 태그들을 적용하는 기계 학습 테스크(task)가 주어질 수 있다. 기계 학습 테스크를 완수하기 위해서, 본 발명의 기계 학습 장치는 작업할 데이터의 초기 설정을 받을 수 있다.
다음으로, 본 발명의 기계 학습 장치는 외부 에이전트(agent)(도 2에 도시된 호스트 프로세서(203) 또는 다른 기계 학습 장치)에 의해 지정된 테스크(예로서 태그 이미지들)를 직접 수행할 수 있다. 만약 본 발명의 기계 학습 장치가 지정된 테스크를 수행하기 위한 알고리즘을 미리 가지고 있지 않으면, 본 발명의 기계 학습 장치는 특정 알고리즘을 알려진 위치(예로서, 도 2에 도시된 호스트/클라이언트 컴퓨터(200)의 알고리즘 데이터(213))로부터 다운로드(download)할 수 있다.
이와 같이, 본 발명의 기계 학습 장치가 특정 알고리즘과 관련된 트레이닝 데이터를 미리 가지고 있지 않으면, 본 별명의 기계 학습 장치는 알려진 위치(예를 들어, 도 2에 도시된 호스트/클라이언트 컴퓨터(200)의 트레이닝 데이터(211))로부터 특정 트레이닝 데이터를 다운로드할 수 있다.
본 발명의 기계 학습 장치는 도 2에 도시된 자신의 프로세서(253)를 사용하여 데이터의 알고리즘을 실행할 수 있다. 이러한 경우, 본 발명의 기계 학습 장치의 로컬 프로세서(253)는 샘플 데이터(sample data)를 트레이닝 시킬 수 있고, 워킹 데이터(working data)(예로서 이미지들)를 태그할 수 있다. 태그들 및/또는 태그된 이미지들은 추가적으로 외부 파티(party)(예로서, 다른 기계 학습 장치들 또는 호스트/클라이언트 컴퓨터)로 내보내질 수 있고, 나중의 검색을 위해 본 발명의 기계 학습 장치의 일부분에 저장될 수 있다. 이러한 분산 기계 학습 활동들에 대한 프로세스들의 예시들은 도 4 내지 도 6을 참조하여 자세하게 설명된다.
도 4는 본 발명의 실시 예에 따른 새로운 데이터의 처리 방법을 보여주는 순서도이다. 401단계에서, 본 발명의 기계 학습 장치는 새로운 데이터를 수신한다. 그리고 402단계에서, 본 발명의 기계 학습 장치는 새로운 데이터를 처리하기 위한 알고리즘이 사용 가능한지 판단한다.
만약 알고리즘이 사용 가능하지 않는 경우, 421단계에서, 본 발명의 기계 학습 장치는 호스트/클라이언트 컴퓨터로부터 알고리즘을 다운로드할 수 있다. 만약 알고리즘이 내부적으로 사용 가능한 경우, 403 단계에서, 본 발명의 기계 학습 장치는 새로운 데이터를 프로세싱하기 위한 트레이닝 데이터가 사용 가능한지 더 판단할 수 있다. 401, 402 및 403 단계들(그리고 추가적으로 421 및 422 단계들)은 다른 순서로 또는 서로 독립적으로 수행될 수 있다.
예로서, 본 발명의 기계 학습 장치는 먼저, 알고리즘 및 알고리즘과 관련된 트레이닝 데이터를 판단할 수 있다. 본 발명의 기계 학습 장치는 알고리즘 및 알고리즘과 관련된 트레이닝 데이터가 내부에 존재하지 않으면, 알고리즘 및 알고리즘과 관련된 트레이닝 데이터를 다운로드할 수 있다. 그리고, 본 발명의 기계 학습 장치는 새로운 데이터를 수신할 수 있다. 401, 402 및 403 단계들(해당되는 421 및 422 단계들)의 수행의 다른 순서는 본 발명의 범위를 벗어나지 않는 범위에서 사용될 수 있다.
트레이닝 데이터가 사용 가능하지 않는 경우, 422단계에서, 본 발명의 기계 학습 장치는 호스트/클라이언트 컴퓨터로부터 트레이닝 데이터를 다운로드할 수 있다. 도 2를 참조하면, 알고리즘(213) 및 트레이닝 데이터(211)는 기계 학습 장치(250)에 의한 검색을 위해 호스트/클라이언트 컴퓨터(200)의 패턴 인식 구성 요소(210)에 저장될 수 있다.
411 단계에서, 본 발명의 기계 학습 장치는 로컬 스토리지에 새로운 데이터를 저장할 수 있다. 404 단계에서, 본 발명의 기계 학습 장치는 로컬 프로세스를 사용하여 새로운 데이터에 알고리즘을 적용할 수 있다. 405 단계에서, 본 발명의 기계 학습 장치는 새로운 데이터로부터 패턴이 발견되는지 판단할 수 있다.
패턴이 새로운 데이터로부터 발견되는 경우, 406 단계에서, 본 발명의 기계 학습 장치는 메타데이터로써 패턴 라벨(262)에 덧붙여 데이터를 저장하고, 로컬 스토리지(260)의 발견된 패턴을 라벨 인덱스(263)에 추가할 수 있다. 410 단계에서, 알고리즘을 실행하고, 새로운 데이터에서 발견한 패턴을 수행한 후, 본 발명의 기계 학습 시스템은 새로운 데이터의 프로세싱을 완료한다.
도 5는 본 발명의 실시 예에 따른 새롭게 갱신된 트레이닝 데이터의 처리 방법을 보여주기 위한 순서도이다. 501 단계에서, 본 발명의 기계 학습 장치는 새로운 데이터를 수신한다. 502 단계에서, 본 발명의 기계 학습 장치는 새로운 데이터를 프로세싱하기 위한 알고리즘이 사용 가능한지 판단한다. 만약 알고리즘이 사용 가능하지 않는 경우, 521 단계에서, 본 발명의 기계 학습 장치는 호스트/클라이언트 컴퓨터로부터 알고리즘을 다운로드할 수 있다. 501 및 502 단계들(그리고 추가적으로 521단계)은 다른 순서로 또는 서로 독립적으로 수행될 수 있다.
예로서, 본 발명의 기계 학습 장치는 먼저, 알고리즘 및 알고리즘과 관련된 트레이닝 데이터를 판단할 수 있다. 본 발명의 기계 학습 장치는 알고리즘 및 알고리즘과 관련된 트레이닝 데이터가 내부에 존재하지 않으면, 알고리즘 및 알고리즘과 관련된 트레이닝 데이터를 다운로드할 수 있다. 그리고, 본 발명의 기계 학습 장치는 새로운 데이터를 수신할 수 있다. 501 및 502 단계들(해당되는 521 단계)의 수행의 다른 순서는 본 발명의 범위를 벗어나지 않는 범위에서 사용될 수 있다.
알고리즘이 사용 가능한 경우, 504 단계에서, 본 발명의 기계 학습 장치는 로컬 프로세서에서 알고리즘을 실행할 수 있다. 505 단계에서, 본 발명의 기계 학습 장치는 새로운 데이터로부터 패턴의 발견 여부를 판단할 수 있다. 새로운 데이터로부터 패턴이 발견되면, 506 단계에서, 본 발명의 기계 학습 장치는 메타데이터로써 패턴 라벨(262)에 덧붙여 데이터를 저장하고, 로컬 스토리지(260)의 라벨 인덱스(263)에 발견된 패턴을 추가할 수 있다.
본 발명의 기계 학습 장치는 선택된 알고리즘을 사용하여 처리되는 데이터가 더 이상 없을 때까지 추가적인 데이터에서 알고리즘을 실행하기 위해 더 많은 데이터가 있는지 여부를 판단(504 내지 507 단계들을 통해서)할 수 있다. 새로운 데이터에서 검색한 패턴을 수행하고 알고리즘을 실행한 후, 510 단계에서, 본 발명의 기계 학습 시스템은 새롭게 갱신된 트레이닝 데이터의 프로세스를 완료할 수 있다.
도 6은 본 발명의 실시 예에 따른 새로운 알고리즘을 처리하기 위한 방법을 보여주는 순서도이다. 601 단계에서, 본 발명의 기계 학습 장치는 다른 기계 학습 장치들 또는 호스트/클라이언트 컴퓨터로부터 새로운 알고리즘을 수신한다. 602 단계에서, 본 발명의 기계 학습 장치는 로컬 스토리지에 트레이닝 데이터가 사용 가능한지 여부를 판단한다. 트레이닝 데이터가 로컬 스토리지에서 사용 가능하지 않으면, 621 단계에서, 본 발명의 기계 학습 장치는 호스트/클라이언트 컴퓨터로부터 트레이닝 데이터를 다운로드할 수 있다. 601 및 602 단계들(그리고 추가적으로 621단계)은 다른 순서로 또는 서로 독립적으로 수행될 수 있다.
예로서, 본 발명의 기계 학습 장치는 먼저, 알고리즘 및 알고리즘과 관련된 트레이닝 데이터를 판단할 수 있다. 본 발명의 기계 학습 장치는 알고리즘 및 알고리즘과 관련된 트레이닝 데이터가 내부에 존재하지 않으면, 알고리즘 및 알고리즘과 관련된 트레이닝 데이터를 다운로드할 수 있다. 그리고, 본 발명의 기계 학습 장치는 새로운 데이터를 수신할 수 있다. 601 및 602 단계들(해당되는 621 단계)의 수행의 다른 순서는 본 발명의 범위를 벗어나지 않는 범위에서 사용될 수 있다.
트레이닝 데이터가 로컬 스토리지에 포함되어 있으면, 604 단계에서, 본 발명의 기계 학습 장치는 로컬 프로세서에 새로운 알고리즘을 실행시킬 수 있다. 605 단계에서, 본 발명의 기계 학습 장치는 새로운 알고리즘을 사용하는 트레이닝 데이터로부터 패턴이 발견되는지 여부를 판단할 수 있다. 새로운 데이터로부터 패턴이 발견되면, 606 단계에서, 본 발명의 기계 학습 장치는 메타데이터로써 패턴 라벨(262)에 덧붙여 데이터를 저장하고, 로컬 스토리지(260)의 라벨 인덱스(263)에 발견된 패턴을 추가할 수 있다.
본 발명의 기계 학습 장치는 선택된 알고리즘을 사용하여 처리되는 데이터가 더 이상 없을 때까지 추가적인 데이터에서 알고리즘을 실행하기 위해 더 많은 데이터가 있는지 여부를 판단(604 내지 607 단계들을 통해서)할 수 있다. 510 단계에서, 본 발명의 기계 학습 시스템은 새롭게 갱신된 트레이닝 데이터의 프로세스를 완료할 수 있다.
도 7은 본 발명의 실시 예에 따른 데이터 검색 방법을 보여주는 순서도이다. 701 단계에서, 본 발명의 기계 학습 장치는 호스트/클라이언트 컴퓨터 또는 다른 기계 학습 장치와 같은 검색 요청자로부터 검색 데이터 라벨을 수신한다. 702 단계에서, 본 발명의 기계 학습 장치는 로컬 검색 라벨 인덱스(263)를 검색할 수 있다.
703 단계에서, 검색 데이터 라벨이 발견되면, 704 단계에서, 본 발명의 기계 학습 장치는 관련 데이터를 검색 요청자로 전송한다. 라벨 인덱스를 검색하고, 데이터를 호스트/클라이언트로 전송한 후, 705 단계에서, 본 발명의 기계 학습 시스템은 데이터 검색을 완료한다.
전술한 바와 같이, 본 발명의 기계 학습 장치는 기계 학습 활동들을 국부적으로 수행할 수 있다. 그리고 본 발명의 기계 학습 장치는 호스트/클라이언트 컴퓨터의 액티브(active) 간섭 없이 유사 또는 동일한 분산 기계 학습 성능들을 갖는 다른 기계 학습 장치들과 함께 공동 기계 학습 활동들을 조정할 수 있다. 호스트/클라이언트 컴퓨터는 복수의 기계 학습 장치들로부터 국부적 트레이닝된 데이터를 수신할 수 있다. 그리고 호스트/클라이언트 컴퓨터는 더 유용하고 더 높은 레벨의 기계 학습 활동들을 수행할 수 있다.
도 8은 본 발명의 실시 예에 따른 스토리지 장치들 사이의 통신을 설명하기 위한 개념도이다. 기계 학습 장치들(850a, 및 850b) 각각은 송출기(801), 통신 데몬(communication daemon)(802), 갱신 라벨 모듈(803), 수신기(811) 및 모델(813) 및 조건들(conditions)(814)에 대한 스토리지를 포함할 수 있다.
예로서, 제1 기계 학습 장치(850a) 및 제2 기계 학습 장치(850b)는 상이한 구성 요소들 및 기능 모듈들을 가질 수 있다. 그러나, 제1 기계 학습 장치(850a) 및 제2 기계 학습 장치(850b)는 유사 또는 동일한 구성 요소들 및 기능 모듈들을 포함할 수 있다. 예로서, 제1 기계 학습 장치(850a) 및 제2 기계 학습 장치(850b) 모두 송출기(801), 통신 데몬(802), 갱신 라벨 모듈(803), 수신기(811) 및 모델(813) 및 조건들(814)에 대한 스토리지를 포함한다.
일 예로서, 제2 기계 학습 장치(850b)가 수신기로 동작하는 동안에, 제1 기계 학습 장치(850a)는 송출기로 동작할 수 있다. 그러므로 제1 기계 학습 장치(850a) 및 제2 기계 학습 장치(850b)는 그들의 역할과 관련된 구성 요소들만 포함하도록 도시된다. 그러나 기계 학습 장치들(850a 및 850b) 모두는 의도된 작업을 수행하기 위한 다른 일반적인 및/또는 공유 구성 요소들을 더 포함할 수 있다.
제1 기계 학습 장치(850a)는 국부적으로 생성된 데이터를 처리하고, 기계 학습을 수행한 후에 학습된 특징들에 기초하여 갱신된 라벨(803)을 포함할 수 있다. 제1 기계 학습 장치(850a)는 갱신된 라벨(803)에 기초하여, 메시지를 통신 데몬(802a)를 통해 다른 기계 학습 장치들로 전송하기 위해 준비할 수 있다.
메시지는 갱신된 티치(teach) 및 알람 조건들을 포함할 수 있다. 송출기(801)를 사용하여, 통신 데몬(802a)은 제2 기계 학습 장치(850b)의 수신기로 메시지를 전송할 수 있다. 제1 기계 학습 장치(850a)는 다른 기계 학습 장치들로 메시지를 브로드케스트(broadcast) 수 있다. 또는 제1 기계 학습 장치(850a)는 점 대 점 통신 규약(point-to-point protocol)을 통해, 지정된 기계 학습 장치(예로서, 제2 기계 학습 장치(850b)로 메시지를 전송할 수 있다.
제2 기계 학습 장치(850b)는 수신기(811)를 사용하여 메시지를 수신(브로드케스트 메시지 또는 점 대 점 메시지를 수신)할 수 있다. 수신기(811)는 통신 데몬(802b)으로 수신된 메시지를 전송할 수 있다. 통신 데몬(802b)은 수신된 메시지가 티치 케이스(case) 또는 알람 케이스를 포함하는지를 판단할 수 있다. 티치 케이스는 모델(813)을 갱신하기 위해 사용될 수 있다. 그리고 알람 케이스는 알람 조건(814)을 갱신하기 위해 사용될 수 있다. 또는 알람 케이스는 다른 기계 학습 장치들 및/또는 호스트/클라이언트 컴퓨터(미 도시)로 알람 조건(814)을 확대할 수 있다.
기계 학습 장치들(850a 및 850b) 각각은 송출기(801) 및 수신기(811)를 포함하여 통신 인터페이스들을 통해 다른 기계 학습 장치들로 통신 메시지들을 전달하기 위한 기본 기능을 제공하는 독립 서비스로서 통신 데몬(802)을 국부적으로 실행시킬 수 있다. 몇몇 예들로서, 메시지 통신은 호스트 할당 통신 포트를 활용할 수 있다. 이와 같이, 중요한 이벤트가 하나의 기계 학습 장치에서 발생할 때, 정보는 호스트 할당 통신 포트를 통해 통해 다른 기계 학습 장치들과 공유될 수 있다.
예로서, 이미지 인식 및 태깅을 수행하는 동안, 제1 기계 학습 장치(850a)는 새로운 기능을 학습하는 경우, 제1 기계 학습 장치(850a)는 갱신된 학습 모델을 다른 기계 학습 장치들과 공유할 수 있다. 다른 기계 학습 장치들은 제1 기계 학습 장치(850)에 의해 새롭게 학습된 기능에 기초하여 유사 또는 동일한 이미지 인식 및 태깅 업무를 수행할 수 있다. 이와 같이, 제1 기계 학습 장치(850a)가 에러(error) 또는 알람 케이스를 경험하는 경우, 제1 기계 학습 장치(850a)는 다른 기계 학습 장치들이 에러 또는 알람 케이스에 응답할 수 있도록, 이러한 상황을 나타내는 메시지들을 다른 기계 학습 장치들로 전송할 수 있다.
일 실시 예로서, 통신 및 학습의 제어는 새로운 서비스가 시작될 때 설정되는 노드 허용 테이블을 통해 될 수 있다. 노트 허용 테이블은 기계 학습 장치들의 신뢰할 수 있는 노드들을 통해 전파된 분산 방법에 갱신될 수 있다.
더 나아가, 노드 허용 테이블은 학습 설정들을 추적하기 위해 사용될 수 있다. 일 예로서, 기계 학습 장치의 학습률은 원격 호스트/클라이언트 컴퓨터로부터 설정될 수 있다. 예를 들어, 학습률은 0에서 1의 범위를 가질 수 있다. 0은 기계 학습 장치가 전혀 학습하지 않았음을 나타낸다. 그리고 1은 기계 학습 장치가 항상 학습함을 나타낸다.
다른 실시 예로서, 기계 학습 장치의 갱신율은 원격 호스트/클라이언트 컴퓨터로부터 설정될 수 있다. 갱신율은 기계 학습 장치의 학습 모델 갱신들의 브로드케스트의 빈도를 제어할 수 있다. 예로서, 0의 갱신율은 기계 학습 장치가 원격 노드로 기능들을 갱신하지 않았음을 의미한다. 그리고 1의 갱신율은 기계 학습 장치가 항상 브로드케스트함을 의미한다.
일 예로서, 스마트 장치들은 분산 기계 학습과 관련된 다양한 기능들을 포함할 수 있다. 예로서, 스마트 장치들은 LEARN, ML_EXCHANGE 및 SEARCH와 같은 새로운 벤더 커맨드(vendor command)들을 지원할 수 있다. LEARN 커맨드는 기계 학습 알고리즘 및 기증들에 대한 메타데이터의 입력 스트림에 할당될 수 있다. ML_EXCANGE 커맨드는 피어(peer)들 및 정책 논의들을 제공하기 위해 사용될 수 있다. SEARCH 커맨드는 지정된 이벤트 또는 데이터 검색 로컬 데이터베이스 및/또는 스마트 기기들과 함께 사용될 수 있다. 스마트 장치들은 벤더 커맨드들을 위해 새로운 응용 프로그램 인터페이스들(application programming interfaces, APIs)을 지원할 수 있다. 스마트 장치들은 APIs를 이용하여 커맨드들을 위한 새로운 서비스들을 설정할 수 있다. 스마트 장치들은 커맨드들, APIs 및 서비스들을 위한 스토리지 인터페이스들을 더 지원할 수 있다.
일 예로서, 스토리지 장치는 프로세서, 스토리지 및 통신 인터페이스를 포함할 수 있다. 스토리지는 스토리지 로컬 데이터 및 기계 학습 명령어들의 제1 세트로 구성된다. 프로세서는 기계 학습 명령어들의 제1 세트를 이용하여 로컬 데이터에서 기계 학습을 수행한다. 그리고 로컬 데이터에서 기계 학습의 수행 후, 프로세서는 기계 학습 모델을 발생 및/또는 갱신한다. 통신 인터페이스는 생성된 또는 갱신된 기계 학습 모델을 포함하는 갱신 메시지를 다른 스토리지 장치들로 전송한다.
통신 인터페이스는 다른 스토리지 장치로부터 제2 갱신 메시지를 수신한다. 그리고 통신 인터페이스는 제2 갱신 메시지를 사용하여 로컬 데이터에서 기계 학습을 수행한다.
스토리지 장치는 제1 갱신된 메시지를 제1 스토리지 장치로의 전송을 준비하고, 제2 스토리지 장치로부터 수신된 제2 갱신된 메시지를 처리하기 위해 통신 데몬을 더 포함한다.
스토리지 장치는 카메라를 포함할 수 있다. 로컬 데이터는 카메라를 통해 찍힌 이미지들을 포함할 수 있다. 그리고 기계 학습 모델은 이미지들과 관련된 태그들을 포함할 수 있다.
스토리지 장치는 하나 이상의 심박 센서, 계보기 센서, 가속도계, 포도당 센서, 온도 센서, 습도 센서 및 점유 센서를 포함할 수 있다.
통신 인터페이스는 생성된 또는 갱신된 기계 학습 모델을 포함하는 갱신 메시지를 서버로 전송할 수 있다. 그리고 서버는 복수의 스토리지 장치로부터 수신한 복수의 갱신 기계 학습 모델을 사용하여 딥 러닝을 수행할 수 있다.
통신 인터페이스는 제2 스토리지 장치로부터 트레이닝 데이터를 수신하도록 더 구성될 수 있다.
통신 인터페이스는 제2 스토리지 장치로부터 기계 학습 명령어들의 제2 세트를 수신하도록 더 구성된다. 프로세서는 기계 학습 명령어들의 제2 세트 및 트레이닝 데이터를 사용하여 로컬 데이터에서 기계 학습을 수행하도록 더 구성된다.
프로세서는 기계 학습을 수행하고, 로컬 데이터에서 패턴을 식별하고, 로컬 데이터와 관련된 메타데이터로서 패턴 라벨을 저장하고, 패턴 라벨을 라벨 인덱스로 추가할 수 있다.
통신 인터페이스는 검색 데이터 라벨을 수신하도록 더 구성된다. 통신 인터페이스는 검색 데이터 라벨과 일치하는 라벨 인덱스를 검색하고 라벨 인덱스와 관련된 데이터를 서버로 전송하도록 더 구성된다.
스토리지는 로컬 데이터에 기초하여 생성된 기계 학습 모델 및 알람들을 저장하도록 더 구성된다.
이상에서와 같이 도면과 명세서에서 최적 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100: 중앙 서버
150: 분산 기계 학습 시스템
200: 호스트/클라이언트 컴퓨터

Claims (10)

  1. 로컬 데이터(local data), 및 기계 학습 명령어(machine learning instruction)들의 제1 세트(set)를 저장하도록 구성되는 스토리지;
    상기 기계 학습 명령어들의 상기 제1 세트를 이용하여, 상기 로컬 데이터에 대한 기계 학습을 수행하고, 상기 로컬 데이터에 대한 상기 기계 학습을 수행한 후에, 기계 학습 모델(machine learning model)을 생성하거나 갱신하도록 구성되는 프로세서; 및
    상기 생성되거나 갱신된 기계 학습 모델을 포함하는 갱신 메시지(update message)를 다른 저장 장치들로 전송하도록 구성되는 통신 인터페이스를 포함하는 저장 장치.
  2. 제 1 항에 있어서,
    상기 통신 인터페이스는 다른 저장 장치로부터 추가 갱신 메시지를 수신하고, 상기 추가 갱신 메시지를 이용하여 상기 로컬 데이터에 대한 상기 기계 학습을 수행하도록 더 구성되는 저장 장치.
  3. 제 1 항에 있어서,
    제1 갱신된 메시지를 제1 저장 장치로 전송하기 위해 준비하고, 제2 저장 장치로부터 수신되는 제2 갱신된 메시지(updated message)를 처리하기 위한 통신 데몬(communication daemon)을 더 포함하는 저장 장치.
  4. 제 1 항에 있어서,
    카메라를 더 포함하되,
    상기 로컬 데이터는 상기 카메라에 의해 촬영되는 이미지들을 포함하고,
    상기 기계 학습 모델은 상기 이미지들과 관련되는 태그(tag)들을 포함하는 저장 장치.
  5. 제 1 항에 있어서,
    상기 통신 인터페이스는 상기 생성되거나 갱신된 기계 학습 모델을 포함하는 상기 갱신 메시지를 서버(server)로 전송하도록 더 구성되고,
    상기 서버는 복수의 저장 장치로부터 수신되는 복수의 갱신 기계 학습 모델을 이용하여 딥 러닝(deep learning)을 수행하도록 구성되는 저장 장치.
  6. 제 1 항에 있어서,
    상기 통신 인터페이스는 외부 저장 장치로부터 트레이닝 데이터(training data)를 수신하도록 더 구성되는 저장 장치.
  7. 제 6 항에 있어서,
    상기 통신 인터페이스는 상기 외부 저장 장치로부터 기계 학습 명령어들의 제2 세트를 수신하도록 더 구성되고,
    상기 프로세서는 상기 트레이닝 데이터, 및 상기 기계 학습 명령어들의 상기 제2 세트를 이용하여, 상기 로컬 데이터에 대한 상기 기계 학습을 수행하도록 더 구성되는 저장 장치.
  8. 제 1 항에 있어서,
    상기 프로세서는 상기 기계 학습을 수행하고, 상기 로컬 데이터에 대한 패턴(pattern)을 식별하고, 상기 로컬 데이터와 관련되는 메타데이터(metadata)로서 패턴 라벨(pattern label)을 저장하고, 상기 패턴 라벨을 라벨 인덱스에 추가하도록 더 구성되는 저장 장치.
  9. 제 8 항에 있어서,
    상기 통신 인터페이스는 검색 데이터 라벨(search data label)을 수신하고, 상기 검색 데이터 라벨과 일치하는 상기 라벨 인덱스를 검색하고, 상기 라벨 인덱스와 관련되는 데이터를 서버로 전송하도록 더 구성되는 저장 장치.
  10. 저장 장치의 기계 학습 방법에 있어서,
    로컬 데이터(local data), 및 기계 학습 명령어(machine learning instruction)들의 제1 세트(set)를 상기 저장 장치에 저장하는 단계;
    상기 기계 학습 명령어들의 상기 제1 세트를 이용하여, 상기 로컬 데이터에 대한 기계 학습(machine learning)을 수행하는 단계;
    기계 학습 모델을 생성하거나 갱신하는 단계; 및
    상기 생성되거나 갱신된 기계 학습 모델을 포함하는 갱신 메시지(update message)를 다른 저장 장치들로 전송하는 단계를 포함하는 기계 학습 방법.


KR1020160053264A 2015-12-09 2016-04-29 분산 기계 학습을 위한 저장 장치 및 그것의 기계 학습 방법 KR102611454B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562265192P 2015-12-09 2015-12-09
US62/265,192 2015-12-09
US15/040,954 2016-02-10
US15/040,954 US20170169358A1 (en) 2015-12-09 2016-02-10 In-storage computing apparatus and method for decentralized machine learning

Publications (2)

Publication Number Publication Date
KR20170068360A true KR20170068360A (ko) 2017-06-19
KR102611454B1 KR102611454B1 (ko) 2023-12-07

Family

ID=59019885

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160053264A KR102611454B1 (ko) 2015-12-09 2016-04-29 분산 기계 학습을 위한 저장 장치 및 그것의 기계 학습 방법

Country Status (2)

Country Link
US (1) US20170169358A1 (ko)
KR (1) KR102611454B1 (ko)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190029800A (ko) * 2017-08-28 2019-03-21 에스케이텔레콤 주식회사 개인정보 보호가 가능한, 영상 인식을 위한 단말 장치, 서버 장치 및 시스템
KR101966750B1 (ko) * 2017-11-23 2019-04-08 가천대학교 산학협력단 이미지 데이터로부터 기계학습에 의한 시정거리 예측 장치, 시스템, 및 방법
KR20190093737A (ko) * 2018-01-10 2019-08-12 주식회사 마크애니 스마트방송 콘텐츠를 위한 인공지능으로 학습된 모델 데이터의 디지털 권리 보호에 관한 장치 및 방법
KR102156828B1 (ko) * 2019-10-30 2020-09-16 주식회사 이디티 소방 안전 점검 장치 및 방법
US10970631B2 (en) 2017-08-09 2021-04-06 Autocrypt Co., Ltd. Method and apparatus for machine learning
KR20210063762A (ko) 2019-11-25 2021-06-02 숭실대학교산학협력단 이기종 뉴로모픽 아키텍처를 지원하기 위한 추상화 구조 설계 방법, 이를 수행하기 위한 기록 매체 및 호스트 장치
WO2022114489A1 (ko) * 2020-11-30 2022-06-02 라온피플 주식회사 딥러닝 지원 디바이스 및 딥러닝 지원 방법
US11521067B2 (en) 2018-11-30 2022-12-06 International Business Machines Corporation Decentralized distributed deep learning
US11868904B2 (en) 2018-10-15 2024-01-09 University-Industry Cooperation Group Of Kyung-Hee University Prediction model training management system, method of the same, master apparatus and slave apparatus for the same
WO2024063316A1 (ko) * 2022-09-23 2024-03-28 삼성전자 주식회사 모바일 장치 및 그 동작 방법

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI4070729T3 (fi) 2009-08-31 2024-06-04 Abbott Diabetes Care Inc Lääkinnällisen laitteen näyttöjä
WO2014085602A1 (en) 2012-11-29 2014-06-05 Abbott Diabetes Care Inc. Methods, devices, and systems related to analyte monitoring
US10878318B2 (en) 2016-03-28 2020-12-29 Google Llc Adaptive artificial neural network selection techniques
US10460255B2 (en) 2016-07-29 2019-10-29 Splunk Inc. Machine learning in edge analytics
US11087236B2 (en) 2016-07-29 2021-08-10 Splunk Inc. Transmitting machine learning models to edge devices for edge analytics
US10536351B2 (en) * 2016-07-29 2020-01-14 Splunk Inc. Analytics for edge devices
KR102567525B1 (ko) * 2016-11-17 2023-08-16 삼성전자주식회사 이동 로봇 시스템, 이동 로봇 및 이동 로봇 시스템의 제어 방법
US10740563B2 (en) * 2017-02-03 2020-08-11 Benedict R. Dugan System and methods for text classification
US10436615B2 (en) 2017-04-24 2019-10-08 Carnegie Mellon University Virtual sensor system
US10496335B2 (en) * 2017-06-30 2019-12-03 Intel Corporation Method and apparatus for performing multi-object transformations on a storage device
CN107330522B (zh) * 2017-07-04 2021-06-08 北京百度网讯科技有限公司 用于更新深度学习模型的方法、装置及系统
CN107395960A (zh) * 2017-07-07 2017-11-24 珠海市魅族科技有限公司 拍照方法及装置、计算机装置和计算机可读存储介质
WO2019036035A1 (en) * 2017-08-16 2019-02-21 ODH, Inc. DATA PROCESSING APPARATUS FOR ACCESSING A SHARED MEMORY IN PROCESSING STRUCTURED DATA FOR MODIFYING A DATA STRUCTURE OF A PARAMETER VECTOR
US10217028B1 (en) * 2017-08-22 2019-02-26 Northrop Grumman Systems Corporation System and method for distributive training and weight distribution in a neural network
EP3503117A1 (en) * 2017-12-20 2019-06-26 Nokia Technologies Oy Updating learned models
US11182694B2 (en) 2018-02-02 2021-11-23 Samsung Electronics Co., Ltd. Data path for GPU machine learning training with key value SSD
US20190279082A1 (en) * 2018-03-07 2019-09-12 Movidius Ltd. Methods and apparatus to determine weights for use with convolutional neural networks
US11940958B2 (en) * 2018-03-15 2024-03-26 International Business Machines Corporation Artificial intelligence software marketplace
EP3565218B1 (en) 2018-04-30 2023-09-27 Hewlett Packard Enterprise Development LP System and method of decentralized management of multi-owner nodes using blockchain
EP3564873B1 (en) 2018-04-30 2022-11-30 Hewlett Packard Enterprise Development LP System and method of decentralized machine learning using blockchain
EP3564883B1 (en) 2018-04-30 2023-09-06 Hewlett Packard Enterprise Development LP System and method of decentralized management of device assets outside a computer network
KR102615443B1 (ko) * 2018-05-25 2023-12-20 에스케이하이닉스 주식회사 머신 러닝 장치 및 이를 이용한 머신 러닝 시스템
US11068544B2 (en) 2018-07-31 2021-07-20 Marvell Asia Pte, Ltd. Systems and methods for generating metadata describing unstructured data objects at the storage edge
US10691337B2 (en) 2018-10-18 2020-06-23 Netapp, Inc. Artificial intelligence and machine learning systems and methods for a storage system
CN111368991B (zh) * 2018-12-25 2023-05-26 杭州海康威视数字技术股份有限公司 深度学习模型的训练方法、装置及电子设备
US11966818B2 (en) 2019-02-21 2024-04-23 Hewlett Packard Enterprise Development Lp System and method for self-healing in decentralized model building for machine learning using blockchain
US10832393B2 (en) * 2019-04-01 2020-11-10 International Business Machines Corporation Automated trend detection by self-learning models through image generation and recognition
US11232327B2 (en) 2019-06-19 2022-01-25 Western Digital Technologies, Inc. Smart video surveillance system using a neural network engine
US11218293B2 (en) 2020-01-27 2022-01-04 Hewlett Packard Enterprise Development Lp Secure parameter merging using homomorphic encryption for swarm learning
US11748835B2 (en) 2020-01-27 2023-09-05 Hewlett Packard Enterprise Development Lp Systems and methods for monetizing data in decentralized model building for machine learning using a blockchain
KR102304929B1 (ko) 2020-02-07 2021-09-24 삼성전자 주식회사 모델 정보를 저장하는 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템 및 스토리지 시스템의 동작 방법
JP7458903B2 (ja) * 2020-05-25 2024-04-01 株式会社日立製作所 性能分析装置および性能分析方法
CN111880568A (zh) * 2020-07-31 2020-11-03 深圳前海微众银行股份有限公司 无人机自动控制的优化训练方法、装置、设备及存储介质
US11146617B1 (en) * 2020-10-05 2021-10-12 Cujo LLC Application detection
CN112394866A (zh) * 2020-11-18 2021-02-23 德联易控科技(北京)有限公司 培训处理方法及装置
US11760376B2 (en) * 2020-12-29 2023-09-19 Ford Global Technologies, Llc Machine learning updating with sensor data
KR20240046523A (ko) * 2021-10-06 2024-04-09 엘지전자 주식회사 사용자 맞춤형 컨텐츠를 제공하는 인공지능 디바이스 및, 그 디바이스를 제어하는 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021438A (en) * 1997-06-18 2000-02-01 Wyatt River Software, Inc. License management system using daemons and aliasing
US20130290223A1 (en) * 2012-04-27 2013-10-31 Yahoo! Inc. Method and system for distributed machine learning
US20150067471A1 (en) * 2013-09-05 2015-03-05 Anurag Bhardwaj Correlating image annotations with foreground features
US20150242760A1 (en) * 2014-02-21 2015-08-27 Microsoft Corporation Personalized Machine Learning System
US20160275395A1 (en) * 2015-03-18 2016-09-22 International Business Machines Corporation Implementing a neural network algorithm on a neurosynaptic substrate based on metadata associated with the neural network algorithm

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021438A (en) * 1997-06-18 2000-02-01 Wyatt River Software, Inc. License management system using daemons and aliasing
US20130290223A1 (en) * 2012-04-27 2013-10-31 Yahoo! Inc. Method and system for distributed machine learning
US20150067471A1 (en) * 2013-09-05 2015-03-05 Anurag Bhardwaj Correlating image annotations with foreground features
US20150242760A1 (en) * 2014-02-21 2015-08-27 Microsoft Corporation Personalized Machine Learning System
US20160275395A1 (en) * 2015-03-18 2016-09-22 International Business Machines Corporation Implementing a neural network algorithm on a neurosynaptic substrate based on metadata associated with the neural network algorithm

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10970631B2 (en) 2017-08-09 2021-04-06 Autocrypt Co., Ltd. Method and apparatus for machine learning
KR20190029800A (ko) * 2017-08-28 2019-03-21 에스케이텔레콤 주식회사 개인정보 보호가 가능한, 영상 인식을 위한 단말 장치, 서버 장치 및 시스템
KR101966750B1 (ko) * 2017-11-23 2019-04-08 가천대학교 산학협력단 이미지 데이터로부터 기계학습에 의한 시정거리 예측 장치, 시스템, 및 방법
KR20190093737A (ko) * 2018-01-10 2019-08-12 주식회사 마크애니 스마트방송 콘텐츠를 위한 인공지능으로 학습된 모델 데이터의 디지털 권리 보호에 관한 장치 및 방법
US11868904B2 (en) 2018-10-15 2024-01-09 University-Industry Cooperation Group Of Kyung-Hee University Prediction model training management system, method of the same, master apparatus and slave apparatus for the same
US11521067B2 (en) 2018-11-30 2022-12-06 International Business Machines Corporation Decentralized distributed deep learning
KR102156828B1 (ko) * 2019-10-30 2020-09-16 주식회사 이디티 소방 안전 점검 장치 및 방법
KR20210063762A (ko) 2019-11-25 2021-06-02 숭실대학교산학협력단 이기종 뉴로모픽 아키텍처를 지원하기 위한 추상화 구조 설계 방법, 이를 수행하기 위한 기록 매체 및 호스트 장치
WO2022114489A1 (ko) * 2020-11-30 2022-06-02 라온피플 주식회사 딥러닝 지원 디바이스 및 딥러닝 지원 방법
KR20220075965A (ko) * 2020-11-30 2022-06-08 라온피플 주식회사 딥러닝 지원 디바이스 및 딥러닝 지원 방법
WO2024063316A1 (ko) * 2022-09-23 2024-03-28 삼성전자 주식회사 모바일 장치 및 그 동작 방법

Also Published As

Publication number Publication date
US20170169358A1 (en) 2017-06-15
KR102611454B1 (ko) 2023-12-07

Similar Documents

Publication Publication Date Title
KR102611454B1 (ko) 분산 기계 학습을 위한 저장 장치 및 그것의 기계 학습 방법
US12013842B2 (en) Web services platform with integration and interface of smart entities with enterprise applications
US11610156B1 (en) Transmitting machine learning models to edge devices for edge analytics
George et al. Mez: An adaptive messaging system for latency-sensitive multi-camera machine vision at the iot edge
US20190221187A1 (en) System, apparatus and methods for adaptive data transport and optimization of application execution
JP2022084814A (ja) 第1のノードがその他のノードに向けてコレクタとしてのそれ自体またはセンサデータをパブリッシュすることができる無線センサネットワークにおける分散データ収集法
WO2019052266A1 (zh) 一种智能物联网管理系统、方法以及服务器
CN108683877B (zh) 基于Spark的分布式海量视频解析系统
US10754869B2 (en) Managing data format of data received from devices in an internet of things network
CN110710153B (zh) 第一节点设备、可读存储介质和计算机实现的方法
CN104025070A (zh) 用于管理工业过程的系统和方法
US9600494B2 (en) Line rate visual analytics on edge devices
CN107301353B (zh) 一种流式密集型数据脱敏方法及其数据脱敏设备
EP3462708B1 (en) Network infrastructure system and method for data processing and data sharing using the same
US20190095517A1 (en) Web services platform with integration of data into smart entities
US10635704B2 (en) Automatic ontology generation for internet of things applications
US20090240556A1 (en) Anticipating merchandising trends from unique cohorts
US9043053B2 (en) Aircraft information management system
CN109417552A (zh) 用于执行安全通信的方法和工业计算装置
JP2024507765A (ja) エッジデバイスに展開されたモデルによる機械学習への自己教師あり共同アプローチ
US11070425B2 (en) Method and system of detecting device rearrangement in manufacturing field
Chiang et al. A tangle-based high performance architecture for large scale IoT solutions
CN112564984A (zh) 基于大数据的物联网的分布式安全运维的方法
CN115699039A (zh) 用于分散机群分析的技术
US11824938B1 (en) External sensor integration at edge device for delivery of data to intake system

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