KR102637133B1 - 온-디바이스 활동 인식 - Google Patents

온-디바이스 활동 인식 Download PDF

Info

Publication number
KR102637133B1
KR102637133B1 KR1020210136870A KR20210136870A KR102637133B1 KR 102637133 B1 KR102637133 B1 KR 102637133B1 KR 1020210136870 A KR1020210136870 A KR 1020210136870A KR 20210136870 A KR20210136870 A KR 20210136870A KR 102637133 B1 KR102637133 B1 KR 102637133B1
Authority
KR
South Korea
Prior art keywords
motion data
computing device
data
motion
neural networks
Prior art date
Application number
KR1020210136870A
Other languages
English (en)
Other versions
KR20220113242A (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 KR20220113242A publication Critical patent/KR20220113242A/ko
Application granted granted Critical
Publication of KR102637133B1 publication Critical patent/KR102637133B1/ko

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B24/00Electric or electronic controls for exercising apparatus of preceding groups; Controlling or monitoring of exercises, sportive games, training or athletic performances
    • A63B24/0003Analysing the course of a movement or motion sequences during an exercise or trainings sequence, e.g. swing for golf or tennis
    • A63B24/0006Computerised comparison for qualitative assessment of motion sequences or the course of a movement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/70ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for mining of medical data, e.g. analysing previous cases of other patients
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/0002Remote monitoring of patients using telemetry, e.g. transmission of vital signals via a communication network
    • A61B5/0015Remote monitoring of patients using telemetry, e.g. transmission of vital signals via a communication network characterised by features of the telemetry system
    • A61B5/0022Monitoring a patient using a global network, e.g. telephone networks, internet
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/103Detecting, measuring or recording devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
    • A61B5/11Measuring movement of the entire body or parts thereof, e.g. head or hand tremor, mobility of a limb
    • A61B5/1118Determining activity level
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/68Arrangements of detecting, measuring or recording means, e.g. sensors, in relation to patient
    • A61B5/6801Arrangements of detecting, measuring or recording means, e.g. sensors, in relation to patient specially adapted to be attached to or worn on the body surface
    • A61B5/6802Sensor mounted on worn items
    • A61B5/681Wristwatch-type devices
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/72Signal processing specially adapted for physiological signals or for diagnostic purposes
    • A61B5/7235Details of waveform analysis
    • A61B5/7264Classification of physiological signals or data, e.g. using neural networks, statistical classifiers, expert systems or fuzzy systems
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B24/00Electric or electronic controls for exercising apparatus of preceding groups; Controlling or monitoring of exercises, sportive games, training or athletic performances
    • A63B24/0062Monitoring athletic performances, e.g. for determining the work of a user on an exercise apparatus, the completed jogging or cycling distance
    • 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
    • G06F18/2155Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the incorporation of unlabelled data, e.g. multiple instance learning [MIL], semi-supervised techniques using expectation-maximisation [EM] or naïve labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H20/00ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance
    • G16H20/30ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance relating to physical therapies or activities, e.g. physiotherapy, acupressure or exercising
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H40/00ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
    • G16H40/60ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices
    • G16H40/67ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices for remote operation
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/20ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for computer-aided diagnosis, e.g. based on medical expert systems
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/50ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for simulation or modelling of medical disorders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/33Security of mobile devices; Security of mobile applications using wearable devices, e.g. using a smartwatch or smart-glasses
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B24/00Electric or electronic controls for exercising apparatus of preceding groups; Controlling or monitoring of exercises, sportive games, training or athletic performances
    • A63B24/0062Monitoring athletic performances, e.g. for determining the work of a user on an exercise apparatus, the completed jogging or cycling distance
    • A63B2024/0071Distinction between different activities, movements, or kind of sports performed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Medical Informatics (AREA)
  • Public Health (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Pathology (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Epidemiology (AREA)
  • Primary Health Care (AREA)
  • Animal Behavior & Ethology (AREA)
  • Veterinary Medicine (AREA)
  • Surgery (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physical Education & Sports Medicine (AREA)
  • Physiology (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Dentistry (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Bioethics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Psychiatry (AREA)

Abstract

컴퓨팅 디바이스는 하나 이상의 모션 센서들에 의해 감지된 움직임에 대응하는 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신할 수 있다. 컴퓨터 디바이스는 차등 프라이버시로 트레이닝된 하나 이상의 신경 네트워크들을 사용하여, 상기 모션 데이터에 대응하는 물리적 활동을 인식하기 위해 온-디바이스 활동 인식을 수행할 수 있다. 컴퓨터 디바이스는 상기 모션 데이터에 대응하는 물리적 활동을 인식함에 응답하여, 상기 물리적 활동과 연관된 동작을 수행할 수 있다.

Description

온-디바이스 활동 인식{ON-DEVICE ACTIVITY RECOGNITION}
일부 모바일 및 웨어러블 컴퓨팅 디바이스는 사용자 활동을 추적하여 사용자가 더 건강하고 활동적인 라이프스타일을 유지하도록 지원할 수 있다. 예를 들어, 모바일 컴퓨팅 디바이스는 사용자가 물리적 활동에 참여하고 있음을 나타낼 수 있는 센서 데이터를 제공하는 하나 이상의 센서 컴포넌트를 포함할 수 있다. 모바일 컴퓨팅 디바이스는 센서 데이터에 기초하여 사용자에 의해 수행되고 있는 물리적 활동을 식별하기 위한 프로세싱을 위해 하나 이상의 센서 컴포넌트에 의해 제공되는 데이터를 클라우드 컴퓨팅 시스템과 같은 오프-디바이스에 보낼 수 있다.
일반적으로, 본 개시의 기법들은 차등 프라이버시로 트레이닝되는 하나 이상의 신경 네트워크들을 사용하여 컴퓨팅 디바이스의 사용자가 참여하는 활동의 온-디바이스 인식을 수행하는 것에 관한 것이다. 컴퓨팅 디바이스는 외부 컴퓨팅 시스템(예를 들어, 클라우드)에 센서 데이터를 전송하지 않고 하나 이상의 센서 컴포넌트에 의해 제공되는 센서 데이터에 기초하여 사용자의 활동을 인식할 수 있다. 대신에, 컴퓨팅 디바이스는 하나 이상의 센서 컴포넌트들에 의해 제공되는 센서 데이터에 기초하여 온-디바이스 활동 인식을 수행하기 위해 활동 인식을 수행하도록 트레이닝된 하나 이상의 신경 네트워크들을 사용할 수 있다.
하나 이상의 신경 네트워크들 서버-사이드 활동 인식을 수행하는 신경 네트워크과 비교하여 더 적은 컴퓨팅 리소스를 사용하는 방식(예: 더 적은 프로세싱 주기 및 더 적은 메모리 사용)으로 활동 인식을 수행하도록 오프-디바이스에서 트레이닝될 수 있으므로 컴퓨팅 디바이스는 하나 이상의 신경 네트워크들을 사용하여 온-디바이스 활동 인식을 수행할 수 있다. 온-디바이스 활동 인식을 수행하기 위해 하나 이상의 신경 네트워크들을 사용함으로써, 컴퓨팅 디바이스는 서버-사이드 활동 인식을 수행하는 외부 컴퓨팅 시스템에 데이터를 보내고 받을 필요 없이 사용자의 활동을 정확하게 인식할 수 있다. 대신에, 하나 이상의 센서 컴포넌트들에 의해 제공되는 센서 데이터는 컴퓨팅 디바이스에서 유지될 수 있으며, 이에 의해 사용자의 프라이버시를 보존할 수 있다. 또한, 온-디바이스 활동 인식을 수행하는 것은 아래에서 추가로 설명되는 바와 같이 컴퓨팅 디바이스의 성능을 향상시킬 수 있다.
차등 프라이버시를 사용하여 하나 이상의 신경 네트워크들을 트레이닝하면 하나 이상의 신경 네트워크들의 트레이닝 데이터 세트에서 개별 예제를 숨기기 위해 노이즈가 추가된다. 하나 이상의 신경 네트워크들을 차등 프라이버시로 트레이닝함으로써, 하나 이상의 신경 네트워크들은 하나 이상의 신경 네트워크들이 하나 이상의 신경 네트워크들을 트레이닝하는데 사용된 데이터를 가진 임의의 특정 사용자에 대한 세부 정보를 학습하거나 기억하지 않는다는 강력한 수학적 보장을 제공한다. 예를 들어, 차등 프라이버시는 악의적인 행위자가 하나 이상의 신경 네트워크들을 트레이닝하는 동안 특정 데이터 조각이 사용되었는지 여부를 정확하게 결정하는 것을 방지할 수 있으며, 이에 따라 하나 이상의 신경 네트워크들을 트레이닝하는데 사용된 데이터를 가진 사용자의 프라이버시를 보호할 수 있다. 이와 같이, 차등 프라이버시로 하나 이상의 신경 네트워크들을 트레이닝하는 것은 하나 이상의 신경 네트워크들을 트레이닝하는데 사용된 데이터를 가진 사용자의 프라이버시를 보존함으로써 사용자들로부터의 자유로운 생활 데이터에 기초하여 하나 이상의 신경 네트워크들이 트레이닝되는 것을 가능하게 할 수 있다.
일부 예시에서, 방법은: 컴퓨팅 디바이스에 의해, 하나 이상의 모션 센서들에 의해 감지된 움직임에 대응하는 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신하는 단계; 상기 컴퓨팅 디바이스에 의해, 차등 프라이버시로 트레이닝된 하나 이상의 신경 네트워크들을 사용하여, 상기 모션 데이터에 대응하는 물리적 활동을 인식하기 위해 온-디바이스 활동 인식을 수행하는 단계; 및 상기 컴퓨팅 디바이스에 의해, 상기 모션 데이터에 대응하는 물리적 활동을 인식함에 응답하여, 상기 물리적 활동과 연관된 동작을 수행하는 단계를 포함한다.
일부 예시에서, 컴퓨팅 디바이스는 메모리 및 하나 이상의 프로세서를 포함하며, 상기 하나 이상의 프로세서는: 하나 이상의 모션 센서들에 의해 감지된 움직임에 대응하는 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신하고; 차등 프라이버시로 트레이닝된 하나 이상의 신경 네트워크들을 사용하여, 상기 모션 데이터에 대응하는 물리적 활동을 인식하기 위해 온-디바이스 활동 인식을 수행하고; 그리고 상기 모션 데이터에 대응하는 물리적 활동을 인식함에 응답하여, 상기 물리적 활동과 연관된 동작을 수행하도록 구성된다.
일부 예시에서, 명령어가 저장된 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 명령어는 실행시 컴퓨팅 디바이스의 하나 이상의 프로세서로 하여금: 하나 이상의 모션 센서들에 의해 감지된 움직임에 대응하는 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신하게 하고; 차등 프라이버시로 트레이닝된 하나 이상의 신경 네트워크들을 사용하여, 상기 모션 데이터에 대응하는 물리적 활동을 인식하기 위해 온-디바이스 활동 인식을 수행하게 하고; 그리고 상기 모션 데이터에 대응하는 물리적 활동을 인식함에 응답하여, 상기 물리적 활동과 연관된 동작을 수행하게 하도록 구성된다.
일부 예시에서, 장치는: 하나 이상의 모션 센서들에 의해 감지된 움직임에 대응하는 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신하기 위한 수단들; 차등 프라이버시로 트레이닝된 하나 이상의 신경 네트워크들을 사용하여, 상기 모션 데이터에 대응하는 물리적 활동을 인식하기 위해 온-디바이스 활동 인식을 수행하기 위한 수단들; 및 상기 모션 데이터에 대응하는 물리적 활동을 인식함에 응답하여, 상기 물리적 활동과 연관된 동작을 수행하기 위한 수단들을 포함한다.
하나 이상의 예시들의 세부 사항은 첨부 도면과 아래의 설명에서 기술된다. 본 개시의 다른 구성, 오브젝트 및 이점은 설명, 도면 및 청구항으로부터 명백해질 것이다.
도 1은 본 개시의 하나 이상의 양태들에 따른, 차등 프라이버시를 사용하여 트레이닝된 하나 이상의 신경 네트워크들을 사용하여 물리적 활동의 온-디바이스 인식을 수행할 수 있는 컴퓨팅 디바이스(110)를 도시하는 개념도이다.
도 2는 본 개시의 하나 이상의 양태들에 따른, 차등 프라이버시를 사용하여 트레이닝된 활동 인식 모델을 사용하여 온-디바이스 활동 인식을 수행하는 컴퓨팅 디바이스의 추가 세부사항들을 도시하는 블록도이다.
도 3a 내지 도 3e는 본 개시의 예시적 구현예들에 따른, 차등 프라이버시를 사용하여 트레이닝된 예시적 기계 학습 모델의 양태들을 도시하는 개념도이다.
도 4는 본 개시의 하나 이상의 양태들에 따라, 차등 프라이버시를 사용하여 트레이닝된 활동 인식 모델을 사용하여 온-디바이스 활동 인식을 수행하는 컴퓨팅 디바이스의 예시적 동작들을 도시하는 흐름도이다.
도 1은 본 개시의 하나 이상의 양태들에 따른, 차등 프라이버시를 사용하여 트레이닝된 하나 이상의 신경 네트워크들을 사용하여 물리적 활동의 온-디바이스 인식을 수행할 수 있는 컴퓨팅 디바이스(110)를 도시하는 개념도이다. 도 1에 도시된 바와 같이, 컴퓨팅 디바이스(110)는 모바일 전화(스마트폰 포함), 랩톱 컴퓨터, 태블릿 컴퓨터, 웨어러블 컴퓨팅 디바이스, 개인 휴대 정보 단말기(PDA) 또는 사용자의 활동을 검출하는데 적합한 임의의 다른 컴퓨팅 디바이스와 같은 모바일 컴퓨팅 디바이스일 수 있다. 일부 예시에서, 컴퓨팅 디바이스(110)는 컴퓨터화된 시계, 컴퓨터화된 피트니스 밴드/트래커, 컴퓨터화된 안경류, 컴퓨터화된 헤드웨어, 컴퓨터화된 장갑 또는 사람의 몸 또는 옷에 부착/착용될 수 있는 임의의 다른 유형의 모바일 컴퓨팅 디바이스와 같은 웨어러블 컴퓨팅 디바이스일 수 있다.
일부 예시에서, 컴퓨팅 디바이스(110)는 존재-감응형 디스플레이(112)를 포함할 수 있다. 컴퓨팅 디바이스(110)의 존재-감응형 디스플레이(112)는 컴퓨팅 디바이스(110)에 대한 입력 디바이스 및 출력 디바이스로서 기능할 수 있다. 존재-감응형 디스플레이(112)는 다양한 기술들을 사용하여 구현될 수 있다. 예를 들어, 존재-감응형 디스플레이(112)는 저항성 터치스크린, 표면 탄성파 터치스크린, 용량성 터치스크린, 투영 커패시턴스 터치스크린, 압력 감지 스크린, 음향 펄스 인식 터치스크린과 같은 존재-감응형 입력 컴포넌트 또는 기타 존재-감응형 기술을 사용하는 입력 디바이스로서 기능할 수 있다. 존재-감응형 디스플레이(112)는 LCD 디스플레이, 도트 매트릭스 디스플레이, LED 디스플레이, 마이크로 LED, OLED 디스플레이, e-ink와 같은 임의의 하나 이상의 디스플레이 디바이스 또는 컴퓨팅 디바이스(110)의 사용자에게 가시적 정보를 출력할 수 있는 유사한 모노크롬 또는 컬러 디스플레이를 사용하여 출력(예를 들어, 디스플레이) 디바이스로서 기능할 수 있다.
컴퓨팅 디바이스(110)는 또한 하나 이상의 센서 컴포넌트들(114)을 포함할 수 있다. 일부 예시에서, 센서 컴포넌트는 컴퓨팅 디바이스(110)를 포함하는 환경의 환경 정보를 획득하는 입력 컴포넌트일 수 있다. 센서 컴포넌트는 컴퓨팅 디바이스(110)의 사용자의 생리학적 정보를 획득하는 입력 컴포넌트일 수 있다. 일부 예시에서, 센서 컴포넌트는 컴퓨팅 디바이스(110)의 물리적 포지션, 움직임, 및/또는 위치 정보를 획득하는 입력 컴포넌트일 수 있다. 예를 들어, 센서 컴포넌트(114)는 모션 센서(예를 들어, 가속도계, 자이로스코프 등) 심박수 센서, 온도 센서, 포지션 센서, 압력 센서(예를 들어, 기압계), 근접 센서(예를 들어, 적외선 센서), 주변 빛 감지기, 위치 센서(예: 글로벌 포지셔닝 시스템 센서) 또는 기타 유형의 감지 컴포넌트를 포함하나 이에 한정되지 않는다. 본 개시에서 추가로 설명되는 바와 같이, 활동 인식 모듈(118)은 웨어러블 컴퓨팅 디바이스(110)의 하나 이상의 센서 컴포넌트(114) 및/또는 하나 이상의 센서 컴포넌트(108)에 의해 생성된 센서 데이터에 기초하여, 컴퓨팅 디바이스(110)의 사용자에 의해 수행된 하나 이상의 물리적 활동들을 결정할 수 있다.
일부 예시에서, 컴퓨팅 디바이스(110)는 하나 이상의 웨어러블 컴퓨팅 디바이스(100)에 통신 가능하게 결합될 수 있다. 예를 들어, 컴퓨팅 디바이스(110)는 웨어러블 컴퓨팅 디바이스(100)와 데이터를 송수신하기 위해 하나 이상의 통신 프로토콜을 사용할 수 있다. 일부 예시적 예에서, 통신 프로토콜은 Bluetooth®, 근거리 통신(Near-Field Communication), WiFi® 또는 임의의 다른 적절한 통신 프로토콜을 포함할 수 있다.
도 1의 예에서, 웨어러블 컴퓨팅 디바이스(100)는 컴퓨터화된 시계이다. 그러나, 다른 예에서, 웨어러블 컴퓨팅 디바이스(100)는 컴퓨터화된 피트니스 밴드/트래커, 컴퓨터화된 안경류, 컴퓨터화된 헤드웨어, 컴퓨터화된 장갑 등일 수 있다. 다른 예에서, 웨어러블 컴퓨팅 디바이스(100)는 사람의 몸이나 옷에 부착할 수 있는 임의의 유형의 모바일 컴퓨팅 디바이스일 수 있다.
도 1에 도시된 바와 같이, 일부 예시에서, 웨어러블 컴퓨팅 디바이스(100)는 부착 컴포넌트(102) 및 전기 하우징(104)을 포함할 수 있다. 웨어러블 컴퓨팅 디바이스(100)의 하우징(104)은 하드웨어, 소프트웨어, 펌웨어 및/또는 웨어러블 컴퓨팅 디바이스(100)의 다른 전기 컴포넌트의 조합을 수용하는 웨어러블 컴퓨팅 디바이스의 물리적 부분을 포함한다. 예를 들어, 도 1은 하우징(104) 내에서 웨어러블 컴퓨팅 디바이스(100)가 센서 컴포넌트(108) 및 존재-감응형 디스플레이(106)를 포함할 수 있음을 보여준다.
존재-감응형 디스플레이(106)는 존재-감응형 디스플레이(112)에 대해 설명된 바와 같은 존재-감응형 디스플레이일 수 있고, 센서 컴포넌트(108)는 센서 컴포넌트(114)에 대해 설명된 바와 같은 센서 컴포넌트일 수 있다. 하우징(104)은 또한 도 1에 도시되지 않은 하나 이상의 프로세서, 메모리, 운영 체제, 애플리케이션 등과 같은 다른 하드웨어 컴포넌트 및/또는 소프트웨어 모듈을 포함할 수 있다.
부착 컴포넌트(102)는 사용자가 웨어러블 컴퓨팅 디바이스(100)를 착용하고 있을 때(비록, 일부 예에서 하우징(104)의 부분은 또한 사용자의 신체와 접촉할 수 있다.), 사용자의 몸(예: 조직, 근육, 피부, 머리카락, 옷 등)과 접촉하는 웨어러블 컴포넌트의 물리적 부분을 포함할 수 있다. 예를 들어, 웨어러블 컴퓨팅 디바이스(100)가 시계인 경우에, 부착 컴포넌트(102)는 사용자의 손목 둘레에 맞고 사용자의 피부와 접촉하는 시계 밴드일 수 있다. 웨어러블 컴퓨팅 디바이스(100)가 안경류 또는 헤드웨어인 예시에서, 부착 컴포넌트(102)는 사용자의 머리 주위에 맞는 안경류 또는 헤드웨어의 프레임의 일부일 수 있고, 웨어러블 컴퓨팅 디바이스(100)가 장갑인 경우, 부착 컴포넌트(102)는 사용자의 손가락과 손에 맞는 장갑의 물질일 수 있다. 일부 예시에서, 웨어러블 컴퓨팅 디바이스(100)는 하우징(104) 및/또는 부착 컴포넌트(102)로부터 파지 및 유지될 수 있다.
도 1에 도시된 바와 같이, 컴퓨팅 디바이스(110)는 활동 인식 모듈(118)을 포함할 수 있다. 활동 인식 모듈(118)은 하나 이상의 센서 컴포넌트(114)에 의해 생성된 센서 데이터 또는 컴퓨팅 디바이스(110)가 웨어러블 컴퓨팅 디바이스(100)에 통신 가능하게 연결된 경우, 웨어러블 컴퓨팅 디바이스(100)의 하나 이상의 센서 컴포넌트(108) 또는 하나 이상의 센서 컴포넌트(114) 및 하나 이상의 센서 컴포넌트(108)의 조합에 의해 생성된 센서 데이터에 기초하여 사용자의 하나 이상의 활동을 결정할 수 있다. 활동 인식 모듈(118)에 의해 검출된 활동은 자전거 타기, 달리기, 정지 상태(예를 들어, 앉거나 서 있음), 계단 오르기, 걷기, 수영, 요가, 역도 등을 포함할 수 있지만 이에 한정되지 않는다.
활동 인식 모듈(118)이 예시 목적으로 컴퓨팅 디바이스(110)에서 구현되고 동작하는 것으로 설명되었지만, 웨어러블 컴퓨팅 디바이스(100)는 활동 인식 모듈(118)과 관련하여 설명된 기능을 포함하는 활동 인식 모듈을 구현 및/또는 동작할 수 있다. 일부 예시에서, 컴퓨팅 디바이스(110)의 사용자가 웨어러블 컴퓨팅 디바이스(100)를 착용하고 있는 경우, 활동 인식 모듈(118)은 웨어러블 컴퓨팅 디바이스(100)의 하나 이상의 센서 컴포넌트(108)에 의해 생성된 센서 데이터에 기초하여 사용자의 하나 이상의 활동들을 결정할 수 있다.
일반적으로, 컴퓨팅 디바이스(110)의 활동 인식 모듈(118)이 웨어러블 컴퓨팅 디바이스(100)의 하나 이상의 센서 컴포넌트(108)에 의해 생성된 센서 데이터에 기초하여 사용자의 하나 이상의 활동들을 결정하면, 컴퓨팅 디바이스(110) 및 웨어러블 컴퓨팅 디바이스(100) 둘 모두는 동일한 사용자의 제어 하에 있을 수 있다. 즉, 웨어러블 컴퓨팅 디바이스(100)를 착용한 동일한 사용자는 컴퓨팅 디바이스(110)를 사용 및/또는 제어하는 동일한 사용자일 수 있다. 예를 들어, 웨어러블 컴퓨팅 디바이스(100)를 착용한 사용자는 또한 컴퓨팅 디바이스(110)를 휴대하거나 들고 있을 수 있거나 사용자의 물리적 부근(예를 들어, 동일한 방에) 내에 컴퓨팅 디바이스(110)를 가지고 있을 수 있다. 이와 같이, 컴퓨팅 디바이스(110)는 예를 들어 웨어러블 컴퓨팅 디바이스(100)의 하나 이상의 센서 컴포넌트(108)에 의해 생성된 센서 데이터에 기초하여 활동 인식을 원격으로 수행하기 위해 인터넷을 통해 웨어러블 컴퓨팅 디바이스(100)와 통신하는 원격 컴퓨팅 서버 또는 클라우드 컴퓨팅 시스템이 아닐 수 있다.
일부 예시에서, 웨어러블 컴퓨팅 디바이스(100)에서 구현 및/또는 동작하는 활동 인식 모듈은 유선 또는 무선 통신을 통해 활동 인식 모듈(118)에 정보를 송수신할 수 있다. 활동 인식 모듈(118)은 정보가 컴퓨팅 디바이스(110)에서 로컬적으로 생성된 것처럼 본 개시의 기법에 따라 웨어러블 컴퓨팅 디바이스(100)로부터 수신된 이러한 정보를 사용할 수 있다.
활동 인식 모듈(118)은 하나 이상의 센서 컴포넌트(114) 및/또는 하나 이상의 센서 컴포넌트(108)에 대응하는 센서 데이터를 수신하고, 사용자가 관여하고 있는 하나 이상의 물리적 활동을 결정할 수 있다. 일부 예시에서, 활동 인식 모듈(118)은 센서 프로세싱 모듈로부터 센서 데이터를 수신할 수 있다(예를 들어, 도 2에서 추가로 설명되는 바와 같이). 센서 프로세싱 모듈은 센서 컴포넌트(114)를 구현하는 하드웨어와 센서 데이터를 추가로 프로세싱하는 활동 인식 모듈(118)과 같은 모듈 사이에 인터페이스를 제공할 수 있다. 예를 들어, 센서 프로세싱 모듈은 특정한 센서 컴포넌트를 구현하는 하드웨어의 출력을 표현하거나 이와 달리 그에 대응하는 센서 데이터를 생성할 수 있다. 예시로서, 가속도계 센서 컴포넌트에 대한 센서 프로세싱 모듈은 좌표계의 상이한 축(예를 들어, x, y 및 z 축)에 따른 가속도 값을 포함하는 센서 데이터를 생성할 수 있다.
활동 인식 모듈(118)은 센서 데이터에 기초하여 사용자의 물리적 활동의 온-디바이스 인식을 수행할 수 있다. 즉, 활동 인식 모듈(118)은 센서 데이터와 같은 정보를 클라우드 컴퓨팅 시스템과 같은 오프-디바이스로 전송하지 않고 사용자의 활동을 식별할 수 있다. 대신에, 활동 인식 모듈(118)은 센서 데이터에 기초하여 사용자의 활동을 결정하기 위해 하나 이상의 신경 네트워크들을 구현하고 사용할 수 있다. 활동 인식 모듈(118)이 사용자의 물리적 활동의 온-디바이스 인식을 수행하기 위해 사용할 수 있는 센서 데이터의 예는 하나 이상의 모션 센서에 의해 생성된 모션 데이터를 포함할 수 있다. 본 명세서에 설명된 바와 같이, 모션 데이터는 하나 이상의 다축 가속도계에 의해 생성된 좌표계의 상이한 축을 따른 가속도 값, 심박수 센서에 의해 생성된 심박수 데이터, 위치 센서에 의해 생성된 위치 데이터(예를 들어, 글로벌 포지셔닝 시스템(GPS) 센서), 산소 포화도 센서에 의해 생성된 산소 포화도 데이터(예: 주변 산소 포화도) 등을 포함할 수 있다. 본 명세서에 설명된 바와 같이, 모션 데이터를 생성하기 위한 모션 센서는 이러한 다축 가속도계, 심박수 센서, 위치 센서, 산소 포화도 센서, 자이로스코프 등을 포함할 수 있다.
일반적으로, 활동 인식 모듈(118)에 의해 구현되는 하나 이상의 신경 네트워크는 다수의 상호 연결된 노드를 포함할 수 있고, 각 노드는 하나 이상의 함수를 하나 이상의 피처에 대응하는 입력 값 세트에 적용하고, 하나 이상의 대응하는 출력 값을 제공할 수 있다. 하나 이상의 피처들은 센서 데이터일 수 있고, 하나 이상의 신경 네트워크의 하나 이상의 대응하는 출력 값은 센서 데이터에 대응하는 사용자의 활동의 표시일 수 있다.
하나 이상의 대응하는 출력 값은 일부 예시에서 사용자의 활동의 확률을 포함할 수 있다. 따라서, 활동 인식 모듈(118)은 사용자 입력의 피처에 기초하여 사용자의 활동의 확률을 결정하기 위해 하나 이상의 신경 네트워크들을 사용할 수 있고, 대응하는 확률에 기초하여 가장 높은 확률을 갖는 사용자의 활동을 사용자의 활동으로의 표시를 결정 및 출력할 수 있다.
일부 예시에서, 하나 이상의 신경 네트워크들은 피처에 기초하여 사용자의 물리적 활동일 확률이 가장 높은 물리적 활동을 보다 정확하게 결정하기 위해 활동 인식 모듈(118)에 의해 온-디바이스 트레이닝될 수 있다. 예를 들어, 하나 이상의 신경 네트워크들은 피처들에 적용되는 하나 이상의 학습 가능한 파라미터 또는 "가중치"를 포함할 수 있다. 활동 인식 모듈(118)은 하나 이상의 신경 네트워크가 센서 데이터에 대응하는 사용자의 물리적 활동을 결정하는 정확도를 개선하기 위해 및/또는 활동이 수행되는 방식의 서브 피처를 학습하는 것과 같이 임의의 다른 적절한 목적을 위해 트레이닝 동안 이러한 학습가능한 파라미터들을 조정할 수 있다. 예를 들어, 사용자가 사용자의 실제 물리적 활동을 나타내기 위해 사용자 입력을 제공하는지 여부에 기초하여, 활동 인식 모듈(118)은 학습가능한 파라미터를 조정할 수 있다.
일부 예에서, 하나 이상의 신경 네트워크들은 오프-디바이스(off-device)로 트레이닝되고 컴퓨팅 디바이스(110)에 다운로드되거나 컴퓨팅 디바이스에 설치될 수 있다. 특히, 하나 이상의 신경 네트워크들은 차등 프라이버시를 사용하여 트레이닝될 수 있다. 즉, 하나 이상의 신경 네트워크들은 트레이닝 데이터에서 개별 예시들을 숨기기 위해 하나 이상의 신경 네트워크들의 트레이닝 데이터에 노이즈를 추가하는 것과 같이, 상기 하나 이상의 신경 네트워크들이 상기 데이터가 상기 하나 이상의 신경 네트워크들을 트레이닝하는데 사용된 임의의 특정 사용자에 관한 세부사항들을 학습하거나 기억하지 않는 프라이버시 보장으로도 지칭되는 강력한 수학적 보장을 제공하는 방식으로 트레이닝될 수 있다. 차등 프라이버시를 사용하여 상기 하나 이상의 신경 네트워크들을 트레이닝함으로써 악의적 행위자가 하나 이상의 신경 네트워크들의 트레이닝 동안에 특정 데이터 조각이 사용되었는지 또는 하나 이상의 신경 네트워크들이 어떻게 트레이닝되었는지 정확하게 결정하는 것을 방지하여, 데이터가 하나 이상의 신경 네트워크들을 트레이닝하는데 사용된 사용자들의 프라이버시를 보존한다.
하나 이상의 신경 네트워크들은 사용자 집단에 의해 사용되는 컴퓨팅 디바이스의 센서 컴포넌트에 의해 제공되는 센서 데이터를 포함할 수 있는 트레이닝 데이터를 사용하여 트레이닝될 수 있다. 예를 들어, 트레이닝 데이터는 자전거 타기, 달리기, 가만있기(예: 움직이지 않음), 걷기 등과 같은 다양한 물리적 활동을 수행하는 동안 사용자에 의해 사용되는 컴퓨팅 디바이스의 센서 컴포넌트에 의해 제공되는 센서 데이터를 포함할 수 있다. 결과적으로 트레이닝된 하나 이상의 신경 네트워크들은 활동 인식을 수행하기 위해 컴퓨팅 디바이스(110)와 같은 모바일 컴퓨팅 디바이스에 하나 이상의 신경 네트워크들이 설치될 수 있도록 양자화 및 압축될 수 있다. 예를 들어, 하나 이상의 신경 네트워크의 모델 가중치는 보다 효율적인 온-디바이스 추론을 위해 8비트 정수로 압축될 수 있다.
활동 인식 모듈(118)은 센서 데이터에 기초하고 하나 이상의 신경 네트워크들을 사용하여 하나 이상의 물리적 활동에 대응하는 확률 분포와 같은 하나 이상의 확률을 생성할 수 있다. 즉, 활동 인식 모듈(118)은 특정 기간의 센서 데이터에 대해 각각의 물리적 활동에 대한 각각의 확률을 생성할 수 있다. 활동 인식 모듈(118)은 센서 컴포넌트(114) 중 하나 이상, 센서 컴포넌트(108) 중 하나 이상 및/또는 센서 컴포넌트(114)와 센서 컴포넌트(108) 중 임의의 것의 조합에 의해 생성된 센서 데이터를 사용할 수 있다. 예를 들어, 활동 인식 모듈(118)은 센서 데이터에 대해 사용자가 걷고 있을 확률 0.6, 사용자가 달리고 있을 확률 0.2, 사용자가 자전거를 타고 있을 확률 0.2 및 사용자가 가만히 있을(즉, 움직이지 않음) 확률 0.0을 생성할 수 있다.
활동 인식 모듈(118)은 하나 이상의 물리적 활동에 대응하는 하나 이상의 확률에 적어도 부분적으로 기초하여 센서 데이터에 대응하는 물리적 활동을 결정할 수 있다. 예를 들어, 활동 인식 모듈(118)은 하나 이상의 확률 중에서 가장 높은 확률을 갖는 활동(예를 들어, 위에서 설명된 예에서 0.6의 확률을 갖는 걷기의 물리적 활동)에 대해 대응하는 확률이 임계치를 만족하는지(예를 들어, 확률이 임계값보다 크거나, 크거나 같거나, 작거나, 작거나 같거나 같음) 여부를 결정할 수 있다. 임계치는 하드 코딩된 값, 사용자가 설정한 값 또는 동적으로 변경되는 값일 수 있다. 일부 예시에서, 활동 인식 모듈(118)은 상이한 활동들에 대해 상이한 임계치를 저장하거나 달리 사용할 수 있다. 임의의 경우에, 활동 인식 모듈(118)은 임계값 활동에 대한 확률이 임계치를 만족하는지 여부를 결정할 수 있다. 일부 예에서, 활동 인식 모듈(118)이 물리적 활동에 대한 확률이 임계치를 만족한다고 결정하면, 활동 인식 모듈(118)은 사용자가 특정한 물리적 활동에 참여할 가능성이 있다고 결정할 수 있고, 따라서 특정한 물리적 활동을 센서 데이터에 대응하는 물리적 활동으로 인식할 수 있다.
일부 예에서, 활동 인식 모듈(118)은 물리적 활동 인식에 응답하여, 컴퓨팅 디바이스(110)로 하여금 연관된 활동에 대한 특정 센서로부터 특정 데이터를 수집하는 것과 같이, 물리적 활동과 연관된 하나 이상의 동작을 수행하게 할 수 있다. 일부 예에서, 활동 인식 모듈(118)은 센서들의 세트로부터 데이터를 수집할 수 있고, 데이터를 인식된 물리적 활동과 연관된 물리적 활동 정보로서(예를 들어, 도 2에 도시된 바와 같이 물리적 활동 정보 데이터 저장소(228)에) 저장할 수 있다. 물리적 활동 정보는 특정한 물리적 활동을 기술하는 데이터를 포함할 수 있다. 물리적 활동 정보의 몇 가지 예를 들면, 이러한 데이터의 예는 물리적 활동 시간, 사용자가 물리적 활동을 수행하는 지리적 위치, 심박수, 사용자가 걸은 걸음 수, 사용자가 이동하는 속도 또는 변화 속도, 사용자 또는 사용자의 환경의 온도, 사용자가 활동을 수행하는 고도 또는 높이를 포함하나 이에 한정되지 않는다.
일부 예시에서, 활동 인식 모듈(118)은 인식된 물리적 활동과 연관된 물리적 활동 정보를 그래픽 사용자 인터페이스에서 사용자에게 출력할 수 있다. 일부 예시에서, 활동 인식 모듈(118)은 집계 값, 평균 값 등을 포함하는 다양한 통계적 메트릭을 결정하는 것과 같은 물리적 활동 정보에 대한 분석을 수행할 수 있다. 일부 예시에서, 활동 인식 모듈(118)은 물리적 활동 정보를 사용자의 사용자 계정과 연관시키는 원격 서버에 보낼 수 있다. 또 다른 예시에서, 활동 인식 모듈(118)은 하나 이상의 서드파티 애플리케이션에 통지할 수 있다. 예를 들어, 서드파티 피트니스 애플리케이션은 활동 인식 모듈(118)에 등록할 수 있고, 서드파티 피트니스 애플리케이션은 사용자에 대한 물리적 활동 정보를 기록할 수 있다.
도 2은 본 개시의 하나 이상의 양태에 따라, 온-디바이스 활동 인식을 수행하는 컴퓨팅 디바이스(210)의 추가 세부 내용을 도시하는 블록도이다. 도 2의 컴퓨팅 디바이스(210)는 도 1에 도시된 컴퓨팅 디바이스(110)의 예로서 아래에서 설명된다. 도 2는 컴퓨팅 디바이스(210)의 단지 하나의 특정한 예시를 도시하며, 컴퓨팅 디바이스(210)의 많은 다른 예시들이 다른 경우들에 사용될 수 있고, 예시적 컴퓨팅 디바이스(210)에 포함된 컴포넌트들의 서브셋을 포함하거나 또는 도 2에서 도시되지 않은 추가적인 컴포넌트들을 포함할 수 있다.
도 2의 예에 도시된 바와 같이, 컴퓨팅 디바이스(210)는 존재-감응형 디스플레이(212), 하나 이상의 프로세서(240), 하나 이상의 입력 컴포넌트(242), 하나 이상의 통신 유닛(244), 하나 이상의 출력 컴포넌트(246) 및 하나 이상의 저장 컴포넌트(248)를 포함한다. 존재-감응형 디스플레이(PSD)(212)는 디스플레이 컴포넌트(202) 및 존재-감응형 입력 컴포넌트(204)를 포함한다. 입력 컴포넌트(242)는 센서 컴포넌트(214)를 포함한다. 컴퓨팅 디바이스(210)의 저장 컴포넌트(248)는 또한 활동 인식 모듈(218), 활동 검출 모델(220), 애플리케이션 모듈(224), 센서 프로세싱 모듈(226) 및 물리적 활동 정보 데이터저장소(228)를 포함한다.
통신 채널들(250)은 컴포넌트 간 통신을 위해(물리적으로, 통신적으로 및/또는 동작적으로) 각각의 컴포넌트들(240, 212, 202, 204, 244, 246, 242, 214, 248, 218, 220, 224, 226, 및 228)와 상호연결될 수 있다. 일부 예시에서, 통신 채널들(250)은 시스템 버스, 네트워크 연결, 프로세스 간 통신 데이터 구조 또는 데이터를 통신하기 위한 임의의 기타 방법을 포함할 수 있다.
컴퓨팅 디바이스(210)의 하나 이상의 입력 컴포넌트들(242)은 입력을 수신할 수 있다. 입력의 예는 촉각, 오디오 및 비디오 입력이다. 일 예에서, 컴퓨팅 디바이스(210)의 입력 컴포넌트(242)는 존재-감응형 디스플레이, 터치-감응형 스크린, 마우스, 키보드, 음성 응답 시스템, 비디오 카메라, 마이크로폰 또는 사람 또는 기계로부터의 입력을 검출하기 위한 임의의 기타 유형의 디바이스를 포함한다.
하나 이상의 입력 컴포넌트(242)는 하나 이상의 센서 컴포넌트(214)를 포함한다. 센서 컴포넌트(214)의 수많은 예가 존재하고 컴퓨팅 디바이스(210)를 둘러싼 환경에 대한 환경 정보 및/또는 컴퓨팅 디바이스(210) 사용자의 활동 상태 및/또는 신체적 웰빙을 정의하는 생리학적 정보를 획득하도록 구성된 임의의 입력 컴포넌트를 포함한다. 일부 예시에서, 센서 컴포넌트는 컴퓨팅 디바이스(210)의 물리적 포지션, 움직임, 및/또는 위치 정보를 획득하는 입력 컴포넌트일 수 있다. 예를 들어, 센서 컴포넌트(214)는 하나 이상의 위치 센서(214A)(GPS 컴포넌트, Wi-Fi 컴포넌트, 셀룰러 컴포넌트), 하나 이상의 온도 센서(214B), 하나 이상의 모션 센서(214C)(예를 들어, 다축 가속도계, 자이로), 하나 이상의 압력 센서(214D)(예를 들어, 기압계), 하나 이상의 주변 광 센서(214E) 및 하나 이상의 다른 센서(214F)(예를 들어, 마이크로폰, 카메라, 적외선 근접 센서, 습도계 등)를 포함할 수 있다. 기타 센서들은 몇 가지 다른 비-한정적인 예를 들면, 심장 박동 센서, 자력계, 포도당 센서, 습도계 센서, 후각 센서, 나침반 센서, 스텝 카운터 센서를 포함할 수 있다.
컴퓨팅 디바이스(210)의 하나 이상의 출력 컴포넌트들(246)은 출력을 생성할 수 있다. 출력의 예는 촉각, 오디오 및 비디오 출력이다. 일 예시에서, 컴퓨팅 디바이스(210)의 출력 컴포넌트들(246)은 존재-감응형 디스플레이, 사운드 카드, 비디오 그래픽 어댑터 카드, 스피커, 음극선관(CRT) 모니터, 액정 디스플레이(LCD)또는 사람 또는 기계에 출력을 생성하기 위한 임의의 기타 유형의 디바이스를 포함한다.
컴퓨팅 디바이스(210)의 하나 이상의 통신 유닛(244)은 하나 이상의 네트워크상에서 네트워크 신호를 송신 및/또는 수신함으로써 하나 이상의 유선 및/또는 무선 네트워크를 통해 외부 디바이스들과 통신할 수 있다. 통신 유닛(244)의 예시들은(이더넷 카드와 같은) 네트워크 인터페이스 카드, 광학적 트랜스시버, 라디오 주파수 트랜스시버, GPS 수신기 또는 정보를 송신 및/또는 수신할 수 있는 임의의 기타 유형의 디바이스를 포함한다. 통신 유닛들(244)의 다른 예시들은 단파 라디오, 셀룰러 데이터 라디오, 무선 네트워크 라디오 뿐만 아니라 USB 제어기를 포함할 수 있다.
컴퓨팅 디바이스(200)의 존재-감응형 디스플레이(212)는 디스플레이 컴포넌트(202) 및 존재-감응형 입력 컴포넌트(204)를 포함한다. 디스플레이 컴포넌트(202)는 정보가 PSD(212)에 의해 디스플레이되는 화면일 수 있고, 존재-감응형 입력 컴포넌트(204)는 디스플레이 컴포넌트(202)에서 및/또는 그 부근에서 오브젝트를 검출할 수 있다. 하나의 예시적 범위로서, 존재-감응형 입력 컴포넌트(204)는 디스플레이 컴포넌트(202)의 2인치 또는 그 이하 내에 있는 손가락 또는 스타일러스와 같은 오브젝트를 검출할 수 있다. 존재-감응형 입력 컴포넌트(204)는 오브젝트가 검출된 디스플레이 컴포넌트(202)의 위치(예를 들어, (x, y) 좌표)를 결정할 수 있다. 다른 예시적 범위에서, 존재-감응형 입력 컴포넌트(204)는 디스플레이 컴포넌트(202)로부터 6인치 또는 그 이하 내에 있는 오브젝트를 검출할 수 있으며, 다른 범위도 가능하다. 존재-감응형 입력 컴포넌트(204)는 용량성, 유도성 및/또는 광학 인식 기술을 사용하여 사용자의 손가락에 의해 선택된 디스플레이 컴포넌트(202)의 위치를 결정할 수 있다. 일부 예에서, 존재-감응형 입력 컴포넌트(204)는 또한 디스플레이 컴포넌트(202)와 관련하여 기술된 바와 같이 촉각적, 오디오 또는 비디오 자극을 사용하여 사용자에게 출력을 제공한다. 도 2의 예에서, PSD(212)는 사용자 인터페이스를 제시한다.
컴퓨팅 디바이스(210)의 내부 컴포넌트로서 도시되어 있지만, 존재-감응형 디스플레이(212)는 입력 및 출력을 송신 및/또는 수신하기 위해 컴퓨팅 디바이스(210)와 데이터 경로를 공유하는 외부 컴포넌트를 나타낼 수 있다. 예를 들어, 일 예시에서, PSD(212)는 컴퓨팅 디바이스(210)의 외부 패키징(예를 들어, 모바일폰 상의 스크린) 내에 위치되고 물리적으로 연결된 컴퓨팅 디바이스(210)의 내장 컴포넌트를 나타낼 수 있다. 다른 예시에서, PSD(212)는 컴퓨팅 디바이스(210)의 패키징(예를 들어, 태블릿 컴퓨터와 유선 및/또는 무선을 데이터 경로를 공유하는 모니터, 프로젝터)의 외부에 위치되고 물리적으로 분리된 컴퓨팅 디바이스(210)의 외부 컴포넌트를 나타낼 수 있다.
컴퓨팅 디바이스(210)의 PSD(210)는 컴퓨팅 디바이스(110)의 사용자로부터 촉각적 입력을 수신할 수 있다. PSD(212)는 컴퓨팅 디바이스(210)의 사용자로부터 하나 이상의 제스처들을 검출함으로써 촉각적 입력의 표시들을 수신할 수 있다(예를 들어, 사용자가 PSD(212)의 하나 이상의 위치들을 손가락 또는 스타일러스 펜으로 터치하거나 포인팅). PSD(212)는 사용자에게 출력을 제시할 수 있다. PSD(212)는 컴퓨팅 디바이스(210)에 의해 제공되는 기능과 연관될 수 있는 그래픽 사용자 인터페이스로서 출력을 제시할 수 있다. 예를 들어, PSD(212)는 컴퓨팅 디바이스(210)에서 실행되거나 이에 의해 액세스 가능한 컴퓨팅 플랫폼, 운영 체제, 애플리케이션 또는 서비스(예를 들어, 전자 메시지 애플리케이션, 내비게이션 애플리케이션, 인터넷 브라우저 애플리케이션, 모바일 운영 체제 등)의 컴포넌트의 다양한 사용자 인터페이스들을 제시할 수 있다. 사용자는 컴퓨팅 디바이스(210)가 기능과 관련된 동작을 수행하도록 하기 위해 각각의 사용자 인터페이스와 인터렉션할 수 있다.
컴퓨팅 디바이스(210)의 PSD(212)는 컴퓨팅 디바이스(210)의 사용자로부터의 입력으로서 2차원 및/또는 3차원 제스처를 검출할 수 있다. 예를 들어, PSD(212)의 센서는 PSD(212)의 센서의 임계 거리 내에서 사용자의 움직임(예를 들어, 손, 팔, 펜, 스타일러스의 이동 등)을 검출할 수 있다. PSD(212)는 움직임의 2차원 또는 3차원 벡터 표현을 결정할 수 있고, 벡터 표현을 다중 차원을 갖는 제스처 입력(예, 손 흔들기, 핀치, 박수, 펜 스트로크 등)과 상관시킬 수 있다. 다시 말해서, PSD(212)는 사용자가 PSD(212)가 디스플레이하기 위한 정보를 출력하는 스크린 또는 표면에서 또는 그 부근에서 제스처를 할 것을 요구하지 않고 다차원 제스처를 검출할 수 있다. 대신에, PSD(212)는 PSD(212)가 디스플레이하기 위한 정보를 출력하는 스크린 또는 표면 근처에 위치되거나 또는 위치되지 않을 수 있는 센서에서 또는 그 부근에서 수행된 다차원 제스처를 검출할 수 있다.
하나 이상의 프로세서들(240)은 기능을 구현하고 및/또는 컴퓨팅 디바이스(210) 내의 명령어들을 실행할 수 있다. 예를 들면, 컴퓨팅 디바이스(210) 상의 프로세서(240)는 모듈들(218, 224, 226 및/또는 228) 및 모델(220)의 기능을 실행하는 저장 컴포넌트들(248)에 의해 저장된 명령어들을 수신하고 실행할 수 있다. 프로세서(240)에 의해 실행되는 명령어들은 컴퓨팅 디바이스(210)로 하여금 프로그램 실행 중에 저장 컴포넌트들(248) 내에 정보를 저장하게 한다. 프로세서들(240)의 예들은 어플리케이션 프로세서, 디스플레이 제어기, 센서 허브 및 프로세싱 유닛으로서 기능하도록 구성된 임의의 다른 하드웨어를 포함한다. 프로세서(240)는 모듈(218, 224, 226, 및/또는 228) 및 모델(220)의 명령어를 실행하여 PSD(212)로 하여금 디스플레이 데이터의 콘텐츠 부분을 PSD(212)에서 사용자 인터페이스 스크린 샷 중 하나로 렌더링하게 할 수 있다. 모듈들(218, 224, 226 및 228) 및 모델(220)은 컴퓨팅 디바이스(210)의 다양한 액션들 또는 기능들을 수행하기 위해 프로세서들(240)에 의해 동작 가능할 수 있다.
컴퓨팅 디바이스(210) 내의 하나 이상의 저장 컴포넌트(248)는 컴퓨팅 디바이스(210)의 동작 동안 프로세싱을 위한 정보를 저장할 수 있다(예를 들어, 컴퓨팅 디바이스(210)는 컴퓨팅 디바이스(210)에서의 실행 중에 모듈들(218, 224, 226 및/또는 228) 및 모델(220)에 의해 액세스되는 데이터를 저장할 수 있다). 일부 예시에서, 저장 컴포넌트(248)는 저장 컴포넌트(248)의 주목적이 장기간 저장이 아님을 의미하는 임시적 메모리이다. 컴퓨팅 디바이스(210) 상의 저장 컴포넌트들(248)은 휘발성 메모리로서 정보의 단기 저장을 위해 구성될 수 있고, 따라서 전원이 꺼지면 저장된 콘텐츠를 보유하지 않는다. 휘발성 메모리들의 예시들은 RAM(random access memory), DRAM(dynamic random access memory), SRAM(static random access memory) 및 당업계에서 공지된 기타 형태의 휘발성 메모리를 포함할 수 있다.
일부 예시에서, 저장 컴포넌트들(248)은 하나 이상의 컴퓨터 판독가능 저장 매체를 포함한다. 저장 컴포넌트들(248)은 휘발성 메모리보다 많은 양의 정보를 저장하도록 구성될 수 있다. 저장 컴포넌트들(248)은 비휘발성 메모리 공간으로서 정보의 장기 저장을 위해 구성될 수 있고 전원 켜짐/꺼짐 순환 이후에도 정보를 보유한다. 비휘발성 메모리의 예시들은 자기적 하드 디스크, 광학 디스크, 플로피 디스크, 플래시 메모리 또는 EPROM 또는 EEPROM의 형태를 포함한다. 저장 컴포넌트들(248)은 모듈(224, 226, 224 및/또는 228), 모델(220) 및 데이터 저장소들(280)과 연관된 프로그램 명령어들 및/또는 정보(예를 들어, 데이터)를 저장할 수 있다.
애플리케이션 모듈(224)은 컴퓨팅 디바이스(210)에서 실행되는 모든 다양한 개별 애플리케이션 및 서비스를 나타낸다. 컴퓨팅 디바이스(210)의 사용자는 하나 이상의 애플리케이션 모듈(224)과 연관된 인터페이스(예를 들어, 그래픽 사용자 인터페이스)와 인터렉션하여 컴퓨팅 디바이스(210)가 기능을 수행하게 할 수 있다. 애플리케이션 모듈(224)의 수많은 예가 존재할 수 있고, 피트니스 애플리케이션, 캘린더 애플리케이션, 퍼스널 어시스턴트 또는 예측 엔진, 검색 애플리케이션, 지도 또는 내비게이션 애플리케이션, 운송 서비스 애플리케이션(예를 들어, 버스 또는 기차 추적 애플리케이션), 소셜 미디어 애플리케이션, 게임 애플리케이션, 이메일 애플리케이션, 메시징 애플리케이션, 인터넷 브라우저 애플리케이션 또는 컴퓨팅 디바이스(210)에서 실행될 수 있는 임의의 모든 기타 애플리케이션을 포함할 수 있다. 애플리케이션 모듈들(224)과 별도로 도시되어 있지만, 활동 인식 모듈(218)은 하나 이상의 애플리케이션 모듈들(224) 내에 포함될 수 있다(예를 들어, 피트니스 애플리케이션 내에 포함됨).
도 2에 도시된 바와 같이, 컴퓨팅 디바이스(210)는 센서 프로세싱 모듈(226)을 포함할 수 있다. 일부 예에서, 센서 프로세싱 모듈(226)은 센서 컴포넌트들(214)로부터 출력을 수신하고 출력을 나타내는 센서 데이터를 생성할 수 있다. 예를 들어, 센서 컴포넌트(214) 각각은 대응하는 센서 프로세싱 모듈을 가질 수 있다. 예로서, 위치 센서 컴포넌트(214A)에 대한 센서 프로세싱 모듈은 센서 데이터(예를 들어, 객체)에서 GPS 좌표 값을 생성할 수 있으며, 여기서 GPS 좌표는 위치 센서 컴포넌트(214A)의 하드웨어 출력에 기초한다. 다른 예로서, 모션 센서 컴포넌트(214C)를 위한 센서 프로세싱 모듈은 모션 데이터에서 좌표 시스템의 상이한 축을 따라 모션 및/또는 가속도 값을 생성할 수 있으며, 여기서 모션 및/또는 가속도 값은 모션 센서 컴포넌트(214C)의 하드웨어 출력에 기초한다.
도 2에서, 활동 인식 모듈(218)은 하나 이상의 모션 센서에 의해 생성된 모션 데이터를 수신할 수 있다. 예를 들어, 활동 인식 모듈(218)은 모션 센서(214C)에 의해 생성된 모션 데이터를 수신할 수 있으며, 이는 모션 센서(214C)에 의해 생성된 센서 데이터 또는 모션 센서(214C)에 의해 생성된 센서 데이터에 기초하여 센서 프로세싱 모듈(226)에 의해 생성된 모션 데이터일 수 있다. 일부 예에서, 활동 인식 모듈(218)은 도 1에 도시된 웨어러블 컴퓨팅 디바이스(100)와 유사한 웨어러블 컴퓨팅 디바이스와 같은 컴퓨팅 디바이스(210)에 통신 가능하게 연결된 웨어러블 컴퓨팅 디바이스의 하나 이상의 모션 센서에 의해 생성된 모션 데이터를 수신할 수 있다.
모션 센서(214C) 또는 웨어러블 컴퓨팅 디바이스의 하나 이상의 모션 센서와 같은 하나 이상의 모션 센서에 의해 생성되고 활동 인식 모듈(218)에 의해 수신되는 모션 데이터는 3축 가속도계 데이터와 같은 다축 가속도계 데이터의 형태일 수 있다. 예를 들어, 3축 가속도계 데이터는 x, y 및 z축을 따라 하나 이상의 모션 센서에 의해 측정된 가속도를 특정하는 부동 소수점 수의 3개 채널 형태일 수 있다.
하나 이상의 모션 센서에 의해 생성되고 활동 인식 모듈(218)에 의해 수신된 모션 데이터는 일정 기간 동안 하나 이상의 모션 센서에 의해 감지된 모션 데이터일 수 있다. 예를 들어, 모션 데이터는 대략 10초의 기간에 걸쳐 하나 이상의 센서에 의해 감지된 모션 데이터일 수 있다. 25 헤르츠의 샘플링 레이트가 주어지면, 모션 데이터는 다축 가속도계 데이터의 총 256개의 샘플을 포함할 수 있다.
활동 인식 모듈(218)은 하나 이상의 센서에 의해 생성된 모션 데이터를 수신하는 것에 응답하여, 차등 프라이버시로 트레이닝된 하나 이상의 신경 네트워크를 사용하여, 하나 이상의 센서들에 의해 생성된 모션 데이터에 대응하는 물리적 활동을 인식할 수 있다. 이를 위해, 활동 인식 모듈(218)은 활동 인식 모델(220)을 사용하여 하나 이상의 모션 센서에 의해 생성된 모션 데이터에 대응하는 물리적 활동을 인식할 수 있다.
활동 인식 모듈(218)은 하나 이상의 모션 센서에 의해 생성된 모션 데이터에 대응하는 물리적 활동을 인식하기 위해 차등 프라이버시를 가진 오프-디바이스 트레이닝된 하나 이상의 신경 네트워크들을 포함할 수 있는 활동 인식 모델(220)을 포함할 수 있다. 활동 인식 모델(220)의 예는 하나 이상의 컨볼루션 신경 네트워크, 순환 신경 네트워크 또는 차등 프라이버시로 트레이닝된 임의의 다른 적절한 인공 신경 네트워크를 포함할 수 있다. 활동 인식 모듈(218)은 시간의 기간에 걸쳐 하나 이상의 센서에 의해 감지된 다축 가속도계 데이터와 같은 하나 이상의 모션 센서에 의해 생성된 모션 데이터를 입력으로서 취할 수 있고, 하나 이상의 물리적 활동에 대응하는 확률 분포의 형태와 같은 하나 이상의 확률을 출력할 수 있다. 즉, 활동 인식 모델(220)은 시간의 기간에 걸친 모션 데이터에 대해, 복수의 물리적 활동에 대한 모션 데이터의 확률 분포와 같은 각각의 물리적 활동들에 대한 각각의 확률을 생성할 수 있다.
일부 예시에서, 활동 인식 모듈(218) 및/또는 활동 인식 모델(220)은, 하나 이상의 모션 센서들에 의해 생성된 모션 데이터에 대응하는 물리적 활동을 인식하기 위해 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 사용하는 것에 더하여, 하나 이상의 센서 컴포넌트(2214)에 의해 생성된 추가 센서 데이터를 사용하여 하나 이상의 모션 센서에 의해 생성된 모션 데이터에 대응하는 물리적 활동을 인식한다. 예를 들어, 활동 인식 모듈(218)은 하나 이상의 모션 센서에 의해 생성된 모션 데이터에 대응하는 물리적 활동을 인식하기 위해 하나 이상의 모션 센서에 의해 생성된 모션 데이터의 사용을 증가시키기 위해 사용자의 심박수를 측정하는 심박수 센서에 의해 생성된 심박수 데이터를 사용할 수 있다.
예를 들어, 활동 인식 모듈(218)은 주어진 시간 기간 동안 하나 이상의 모션 센서에 의해 생성된 모션 데이터에 대해, 동일한 주어진 시간 기간 동안 심박수 센서에 의해 생성된 대응하는 심박수 데이터를 수신하고, 하나 이상의 주어진 동일한 시간 기간 동안 심박수 센서에 의해 생성된 대응하는 심박수 데이터에 기초하여, 활동 인식 모델(220)에 의해 결정되는 하나 이상의 물리적 활동에 대응하는 하나 이상의 확률들을 조정한다. 예를 들어, 활동 인식 모듈(218)이 주어진 시간 기간 동안의 사용자의 심박수가 사용자의 안정기 심박수의 특정 범위 내에 있다고 결정하면, 활동 인식 모듈(218)은 사용자가 정지 상태일 확률을 증가시킬 수 있고, 사용자가 걷거나, 자전거를 타거나 또는 달릴 확률을 감소시킴으로써 사용자가 활동적일 확률을 감소시킬 수 있다. 다른 예에서, 활동 인식 모듈(218)이 주어진 기간 동안의 사용자의 심박수가 사용자의 안정기 심박수의 특정 범위 밖에 있다고 결정하면, 활동 인식 모듈(218)은 사용자가 활동 중일 확률을 증가시킬 수 있고, 사용자가 걷거나, 자전거를 타거나, 달릴 확률을 증가시킴으로써 사용자가 가만히 있을 확률을 줄일 수 있다.
활동 인식 모듈(218)은 하나 이상의 물리적 활동에 대응하는 결정된 하나 이상의 확률에 적어도 부분적으로 기초하여, 하나 이상의 동작 센서에 의해 생성된 모션 데이터에 대응하는 물리적 활동을 인식할 수 있다. 일부 예시에서, 활동 인식 모듈(218)은 활동 인식 모델(220)에 의해 결정된 바와 같은 하나 이상의 물리적 활동에 대응하는 하나 이상의 확률 중에서 가장 높은 확률과 연관된 물리적 활동이 하나 이상의 모션 센서에 의해 생성된 모션 데이터에 대응하는 물리적 활동이라고 결정할 수 있다. 예를 들어, 활동 인식 모델(220)이 물리적 활동이 걷고 있을 확률 0.6, 물리적 활동이 달리고 있을 확률 0.2, 물리적 활동이 자전거를 타고 있을 확률 0.2, 물리적 활동이 가만히 있을(즉, 움직이지 않음) 확률 0.0을 결정한 경우, 활동 인식 모듈(218)은 모션 데이터에 대응하는 물리적 활동이 걷는 것임을 인식할 수 있다.
일부 예시에서, 활동 인식 모듈(218)은 활동 인식 모델(220)에 의해 결정된 바와 같은 하나 이상의 물리적 활동에 대응하는 하나 이상의 확률 중에서 가장 높은 확률과 연관된 물리적 활동이 물리적 활동의 연관된 확률이 임계치를 만족하는 경우(예: 확률이 임계치보다 크거나, 크거나 같거나, 작거나, 작거나 같거나 또는 임계치와 동일하거나), 하나 이상의 모션 센서에 의해 생성된 모션 데이터에 대응하는 물리적 활동이라고 결정할 수 있다. 활동 검출 모듈(218)이 물리적 활동에 대한 확률이 임계치를 만족한다고 결정하면, 활동 인식 모듈(218)은 사용자가 특정한 물리적 활동에 참여할 가능성이 있다고 결정할 수 있고, 따라서 특정한 물리적 활동을 모션 데이터에 대응하는 물리적 활동으로 인식할 수 있다.
활동 인식 모듈(218)은 모션 데이터에 대응하는 물리적 활동을 인식하는 것에 응답하여 물리적 활동과 연관된 하나 이상의 동작을 수행할 수 있다. 일부 예에서, 활동 인식 모듈(218)은 모션 데이터에 대응하는 물리적 활동을 인식하는 것에 응답하여, 물리적 활동의 시간, 사용자가 물리적 활동을 수행하는 지리적 위치, 심박수, 사용자가 걸은 걸음 수, 사용자가 이동하는 속도 또는 변화율, 사용자 또는 사용자의 환경의 온도, 사용자가 활동을 수행한 고도 또는 높이 등과 같은 물리적 활동과 연관된 물리적 활동 정보를 추적하는 것과 같이, 사용자의 피트니스 추적을 수행할 수 있다.
일부 예에서, 활동 인식 모듈(218)은 물리적 활동의 시간, 사용자가 물리적 활동을 수행하는 지리적 위치, 심박수, 사용자가 걸은 걸음 수, 사용자가 이동하는 속도 또는 변화율, 사용자 또는 사용자의 환경의 온도, 사용자가 활동을 수행한 고도 또는 높이 등과 같은 물리적 활동과 연관된 물리적 활동 정보와 함께 물리적 활동의 표시를 물리적 활동 정보 데이터스토어(228)와 같은 저장 컴포넌트들(248)에 저장할 수 있다.
일부 예시에서, 활동 인식 모듈(218)은 집계 값, 평균 값 등을 포함하는 다양한 통계적 메트릭을 결정하는 것과 같은 물리적 활동과 연관된 물리적 활동 정보에 대한 분석을 수행할 수 있다. 일부 예시에서, 활동 인식 모듈(218)은 물리적 활동과 연관된 물리적 활동 정보를 사용자의 사용자 계정과 연관시키는 원격 서버에 보낼 수 있다. 또 다른 예시에서, 활동 인식 모듈(218)은 하나 이상의 서드파티 애플리케이션에 통지할 수 있다. 예를 들어, 서드파티 피트니스 애플리케이션은 활동 인식 모듈(218)에 등록할 수 있고, 서드파티 피트니스 애플리케이션은 사용자에 대한 물리적 활동 정보를 기록할 수 있다.
도 3a 내지 도 3e는 본 개시의 예시적 구현예들에 따른, 예시적 기계 학습 모델의 양태들을 도시하는 개념도이다. 도 3a 내지 도 3e는 도 2의 활동 인식 모듈(218)의 컨텍스트에서 아래에서 설명된다. 예를 들어, 일부 경우에, 아래에서 참조되는 기계 학습 모델(300)은 도 2의 활동 인식 모델(220)의 예일 수 있다.
도 2는 본 개시의 예시적 구현예에 따른 예시적 기계 학습 모델의 컨셉도를 도시한다. 도 3a에 도시된 바와 같이, 일부 구현예에서, 기계 학습 모델(300)은 하나 이상의 유형의 입력 데이터를 수신하고, 이에 응답하여 하나 이상의 유형의 출력 데이터를 제공하도록 트레이닝된다. 따라서, 도 3a는 추론을 수행하는 기계 학습 모델(300)을 도시한다. 예를 들어, 기계 학습 모델(300)에 의해 수신된 입력 데이터는 다축 가속도계에 의해 생성된 센서 데이터와 같은 모션 데이터일 수 있고, 기계 학습 모델(300)에 의해 제공되는 출력 데이터는 모션 데이터에 대응하는 사용자의 활동일 수 있다.
입력 데이터는 인스턴스 또는 예시와 연관된 하나 이상의 피처들을 포함할 수 있다. 일부 구현예에서, 인스턴스 또는 예시와 연관된 하나 이상의 피처들은 피처 벡터로 조직화될 수 있다. 일부 구현예에서, 출력 데이터는 하나 이상의 예측들을 포함할 수 있다. 예측은 추론이라고도 지칭된다. 따라서, 특정한 인스턴스와 연관된 피처들이 주어지면, 기계 학습 모델(300)은 피처들에 기초하여 그러한 인스턴스에 대한 예측을 출력할 수 있다.
기계 학습 모델(300)은 다양한 상이한 유형의 기계 학습 모델 중 하나 이상이거나 이를 포함할 수 있다. 특히, 일부 구현예에서, 기계 학습 모델(300)은 분류, 회귀, 클러스터링, 이상 탐지, 추천 생성 및/또는 다른 작업을 수행할 수 있다.
일부 구현예에서, 기계 학습 모델(300)은 입력 데이터에 기초하여 다양한 유형의 분류를 수행할 수 있다. 예를 들어, 기계 학습 모델(300)은 이진 분류 또는 멀티 클래스 분류를 수행할 수 있다. 이진 분류에서, 출력 데이터는 입력 데이터를 두 개의 다른 클래스 중 하나로 분류하는 것을 포함할 수 있다. 다중 클래스 분류에서 출력 데이터는 입력 데이터를 두 개 이상의 클래스 중 하나(또는 그 이상)로 분류하는 것을 포함할 수 있다. 분류는 단일 라벨 또는 다중 라벨일 수 있다. 기계 학습 모델(300)은 입력 데이터가 단순히 하나 이상의 클래스 또는 카테고리로 분류되는 이산 카테고리 분류를 수행할 수 있다.
일부 구현예에서, 기계 학습 모델(300)은 기계 학습 모델(300)이 하나 이상의 클래스 각각에 대해 입력 데이터가 대응하는 클래스로 분류되어야 한다고 생각되는 정도를 기술하는 숫자 값을 제공하는 분류를 수행할 수 있다. 일부 경우에, 기계 학습 모델(300)에 의해 제공되는 숫자 값은 입력을 각각의 클래스로 분류하는 것과 연관된 각각의 신뢰도를 나타내는 "신뢰도 점수"로 지칭될 수 있다. 일부 구현예에서, 신뢰 점수는 이산 카테고리적 예측을 렌더링하기 위해 하나 이상의 임계치와 비교될 수 있다. 일부 구현예에서, 상대적으로 가장 큰 신뢰 점수를 갖는 특정 수의 클래스(예를 들어, 하나)만이 이산 카테고리적 예측을 렌더링하도록 선택될 수 있다.
기계 학습 모델(300)은 확률적 분류를 출력할 수 있다. 예를 들어, 기계 학습 모델(300)은 샘플 입력이 주어지면 클래스들의 세트에 대한 확률 분포를 예측할 수 있다. 따라서, 기계 학습 모델(300)은 샘플 입력이 속해야 할 가장 가능성이 높은 클래스만을 출력하는 대신, 각 클래스에 대해 샘플 입력이 그러한 클래스에 속할 확률을 출력할 수 있다. 일부 구현예에서, 모든 가능한 클래스들에 대한 확률 분포는 합이 1이 될 수 있다. 일부 구현예에서, Softmax 함수, 또는 다른 유형의 함수 또는 레이어는 합이 1인 범위 (0, 1) 내의 실제 값들의 세트에 가능한 클래스들과 각각 연관된 실제 값들의 세트를 스쿼시하는데 사용될 수 있다.
일부 예에서, 확률 분포에 의해 제공된 확률은 이산 카테고리적 예측을 제공하기 위해 하나 이상의 임계치들과 비교될 수 있다. 일부 구현예에서, 상대적으로 가장 큰 예측 확률을 갖는 특정 수의 클래스(예를 들어, 하나)만이 이산 카테고리적 예측을 렌더링하도록 선택될 수 있다.
기계 학습 모델(300)이 분류를 수행하는 경우, 기계 학습 모델(300)은 지도 학습 기법을 사용하여 트레이닝될 수 있다. 예를 들어, 기계 학습 모델(300)은 하나 이상의 클래스들에 속하는(또는 속하지 않는) 것으로 라벨링된 트레이닝 예시를 포함하는 트레이닝 데이터세트에 대해 트레이닝될 수 있다. 지도 트레이닝 기법에 관한 추가 세부사항은 도 3B 내지 3E의 설명에서 아래에 제공된다.
일부 구현예에서, 기계 학습 모델(300)은 회귀를 수행하여 연속적인 숫자 값의 형태로 출력 데이터를 제공할 수 있다. 연속 숫자 값은 예를 들어 통화 값, 점수 또는 기타 숫자 표현을 포함하여 다양한 메트릭 또는 숫자 표현의 임의의 수에 대응할 수 있다. 예시로서, 기계 학습 모델(300)은 선형 회귀, 다항식 회귀 또는 비선형 회귀를 수행할 수 있다. 예를 들어, 기계 학습 모델(300)은 단순 회귀 또는 다중 회귀를 수행할 수 있다. 위에서 설명된 바와 같이, 일부 구현예에서 Softmax 함수 또는 다른 함수 또는 레이어는 합이 1인 범위(0, 1) 내의 실제 값들의 세트에 대해 둘 이상의 가능한 클래스들과 각각 연관된 실제 값들의 세트를 스쿼시하는데 사용될 수 있다.
기계 학습 모델(300)은 일부 경우에, 환경 내에서 에이전트로서 동작할 수 있다. 예를 들어, 기계 학습 모델(300)은 강화 학습을 사용하여 트레이닝될 수 있으며, 이는 아래에서 더 자세히 논의될 것이다.
일부 구현예에서, 기계 학습 모델(300)은 파라미터 모델일 수 있으며, 다른 구현예에서 기계 학습 모델(300)은 비-파라미터 모델일 수 있다. 일부 구현예에서, 기계 학습 모델(300)은 선형 모델일 수 있으며, 다른 구현예에서 기계 학습 모델(300)은 비선형 모델일 수 있다.
전술한 바와 같이, 기계 학습 모델(300)은 다양한 상이한 유형의 기계 학습 모델 중 하나 이상이거나 이들을 포함할 수 있다. 이러한 다양한 유형의 기계 학습 모델의 예는 설명을 위해 아래에 제공된다. 아래에 설명된 하나 이상의 예시적 모델은 입력 데이터에 응답하여 출력 데이터를 제공하기 위해 사용(예를 들어, 결합)될 수 있다. 아래에 제공된 예시적 모델 이외의 추가 모델도 사용될 수 있다.
일부 구현예에서, 기계 학습 모델(300)은 예를 들어 선형 분류 모델; 2차 분류 모델과 같은 하나 이상의 분류기 모델이거나 이들을 포함할 수 있다. 기계 학습 모델(300)은 예를 들어 단순 선형 회귀 모델; 다중 선형 회귀 모델; 로지스틱 회귀 모델; 단계별 회귀 모델; 다변수 적응 회귀 스플라인; 로컬적으로 추정된 산점도 평활화 모델; 등과 같은 하나 이상의 회귀 모델이거나 이들을 포함할 수 있다.
일부 구현예에서, 기계 학습 모델(300)은 하나 이상의 인공 신경 네트워크(간단히 신경 네트워크으로도 지칭됨)이거나 이들을 포함할 수 있다. 신경 네트워크는 뉴런 또는 퍼셉트론이라고도 하는 연결된 노드 그룹을 포함할 수 있다. 신경 네트워크는 하나 이상의 레이어로 조직화될 수 있다. 여러 레이어를 포함하는 신경 네트워크를 "심층" 네트워크라고 할 수 있다. 심층 네트워크는 입력 레이어, 출력 레이어, 입력 레이어와 출력 레이어 사이에 위치한 하나 이상의 히든 레이어를 포함할 수 있다. 신경 네트워크의 노드는 연결되거나 비-완전 연결일 수 있다.
기계 학습 모델(300)은 하나 이상의 피드 포워드 신경 네트워크이거나 이를 포함할 수 있다. 피드 포워드 네트워크에서 노드 간의 연결은 사이클을 형성하지 않는다. 예를 들어, 각 연결은 이전 레이어의 노드를 나중 레이어의 노드로 연결할 수 있다.
일부 예에서, 기계 학습 모델(300)은 하나 이상의 순환 신경 네트워크이거나 이를 포함할 수 있다. 일부 경우에, 순환 신경 네트워크의 노드 중 적어도 일부가 사이클을 형성할 수 있다. 순환 신경 네트워크는 본질적으로 순차적인 입력 데이터를 프로세싱하는데 특히 유용할 수 있다. 특히, 일부 경우에, 순환 신경 네트워크는 순환 또는 지시된 사이클 노드 연결의 사용을 통해 입력 데이터 시퀀스의 이전 부분에서 입력 데이터 시퀀스의 후속 부분으로 정보를 전달하거나 유지할 수 있다.
일부 예에서, 순차적 입력 데이터는 시계열 데이터(예를 들어, 센서 데이터 대 시간 또는 상이한 시간에 캡처된 이미지)를 포함할 수 있다. 예를 들어, 순환 신경 네트워크는 스와이프 방향을 검출하거나 예측하고, 필기 인식 등을 수행하기 위해 센서 데이터 대 시간을 분석할 수 있다. 순차적 입력 데이터는 문장의 단어(예: 자연어 프로세싱, 음성 검출 또는 프로세싱 등.); 음악 작곡의 음표; 사용자가 취한 순차적 동작(예를 들어, 순차적 애플리케이션 사용을 검출하거나 예측하기 위해); 순차 객체 상태; 등을 포함할 수 있다.
예시적 순환 신경 네트워크는 장단기(LSTM) 순환 신경 네트워크; 게이트 순환 단위; 양방향 순환 신경 네트워크; 연속 시간 순환 신경 네트워크; 신경 이력 압축기; 에코 상태 네트워크; 엘만 네트워크; 조단 네트워크; 재귀 신경 네트워크; 홉필드 네트워크; 완전 순환 네트워크; 시퀀스 대 시퀀스 구성; 등을 포함한다.
일부 구현예에서, 기계 학습 모델(300)은 하나 이상의 컨볼루션 신경 네트워크이거나 이를 포함할 수 있다. 일부 경우에, 컨볼루션 신경 네트워크는 학습된 필터를 사용하여 입력 데이터에 대해 컨볼루션을 수행하는 하나 이상의 컨볼루션 레이어를 포함할 수 있다.
필터는 커널이라고도 한다. 컨볼루션 신경 네트워크는 입력 데이터에 스틸 이미지나 비디오와 같은 이미지가 포함된 경우와 같은 시각 문제에 특히 유용할 수 있다. 그러나, 컨벌루션 신경 네트워크는 자연어 프로세싱에도 적용될 수 있다.
일부 예에서, 기계 학습 모델(300)은 예를 들어 생성적 적대 네트워크와 같은 하나 이상의 생성 네트워크이거나 이를 포함할 수 있다. 생성 네트워크는 새로운 이미지 또는 기타 콘텐츠와 같은 새로운 데이터를 생성하는데 사용할 수 있다.
기계 학습 모델(300)은 자동 인코더이거나 이를 포함할 수 있다. 일부 경우에, 자동 인코더의 목적은 일반적으로 차원 감소의 목적을 위해 데이터 세트에 대한 표현(예: 저차원 인코딩)을 학습하는 것이다. 예를 들어, 일부 경우에, 자동 인코더는 입력 데이터를 인코딩한 다음 인코딩에서 입력 데이터를 재구성하는 출력 데이터를 제공할 수 있다. 최근에, 데이터의 생성 모델을 학습하는데 오토인코더 개념이 더 널리 사용되고 있다. 일부 경우에, 오토인코더는 입력 데이터를 재구성하는 것 이상의 추가 손실을 포함할 수 있다.
기계 학습 모델(300)은 예를 들어 딥 볼츠만 기계(deep Boltzmann machine); 딥 빌리프 네트워크; 스택형 오토인코더; 등과 같은 인공 신경 네트워크의 하나 이상의 다른 형태이거나 이를 포함할 수 있다. 본 명세서에 기술된 임의의 신경 네트워크는 결합(예를 들어, 스택)되어 더 복잡한 네트워크를 형성할 수 있다.
하나 이상의 신경 네트워크들을 사용하여 입력 데이터에 기초하여 임베딩을 제공할 수 있다. 예를 들어, 임베딩은 입력 데이터로부터 하나 이상의 학습된 차원으로 추상화된 지식의 표현일 수 있다. 일부 경우에, 임베딩은 관련 엔터티들을 식별하는데 유용한 소스일 수 있다. 일부 경우에, 임베딩은 네트워크의 출력으로부터 추출될 수 있고, 다른 경우에는 임베딩은 네트워크의 임의의 숨겨진 노드 또는 레이어(예: 네트워크의 최종 레이어에 가깝지만 최종 레이어는 아님)로부터 추출될 수 있다. 임베딩은 자동 제안 다음 비디오, 제품 제안, 엔터티 또는 객체 인식 등을 수행하는데 유용할 수 있다. 일부 경우에, 임베딩은 다운스트림 모델에 대한 유용한 입력이다. 예를 들어, 임베딩은 다운스트림 모델 또는 프로세싱 시스템에 대한 입력 데이터(예: 검색 쿼리)를 일반화하는데 유용할 수 있다.
일부 구현예에서, 기계 학습 모델(300)은 예를 들어 주 컴포넌트 분석; 커널 주 컴포넌트 분석; 그래프 기반 커널 주 컴포넌트 분석; 주 컴포넌트 회귀; 부분 최소 제곱 회귀; Sammon 매핑; 다차원 스케일링; 프로젝션 추구; 선형 판별 분석; 혼합물 판별 분석; 2차 판별 분석; 일반화된 판별 분석; 유연한 판별 분석; 오토인코딩; 등과 같은 하나 이상의 차원 감소 기법들을 수행할 수 있다.
일부 구현예에서, 기계 학습 모델(300)은 Markov 결정 프로세스; 동적 프로그래밍; Q 함수 또는 Q-학습; 가치 함수 접근; 딥 Q-네트워크; 미분 가능한 신경 컴퓨터; 비동기 이점 행위자 비평가; 결정적 정책 기울기; 등과 같은 하나 이상의 강화 학습 기법을 수행하거나 그 대상이 될 수 있다.
일부 구현예에서, 기계 학습 모델(300)은 자동회귀 모델일 수 있다. 일부 경우에, 자동회귀 모델은 출력 데이터가 이전 값과 확률적 항에 선형적으로 의존하도록 특정할 수 있다. 일부 경우에 자동회귀 모델은 확률적 차이 방정식의 형태를 취할 수 있다. 자동회귀 모델의 한 예는 원시 오디오에 대한 생성 모델인 WaveNet이다.
일부 구현예에서, 기계 학습 모델(300)은 다중 모델 앙상블을 포함하거나 그 일부를 형성할 수 있다. 일 예시로서, 부트스트랩 집계를 수행할 수 있으며, 이를 "배깅(bagging)"이라고도 한다. 부트스트랩 집계에서, 트레이닝 데이터세트는 (예를 들어, 교체를 통한 랜덤 샘플링을 통해) 다수의 서브세트로 분할되고, 다수의 모델들은 서브세트의 수에 대해 각각 트레이닝된다. 추론 시간에, 복수의 모델의 각각의 출력은 결합될 수 있고(예를 들어, 평균화, 투표 또는 다른 기법을 통해) 앙상블의 출력으로 사용될 수 있다.
앙상블의 한 예는 랜덤 결정 포레스트라고도 하는 랜덤 포레스트이다. 랜덤 포레스트는 분류, 회귀 및 기타 작업을 위한 앙상블 학습 방법이다. 랜덤 포레스트는 학습 시간에 복수의 결정 트리를 생성함으로써 생성된다. 일부 경우에, 추론 시, 클래스의 모드(분류) 또는 개별 트리의 평균 예측(회귀)인 클래스는 포레스트의 출력으로 사용될 수 있다. 랜덤 결정 포레스트는 트레이닝 세트를 과적합하는 의사 결정 트리의 경향을 수정할 수 있다.
또 다른 예시적 앙상블 기법은 스태킹이며, 일부 경우에 스태킹 일반화라고 할 수 있다. 스태킹에는 여러 다른 기계 학습 모델의 예측을 혼합하거나 결합하기 위해 결합기 모델을 트레이닝하는 것을 포함한다. 따라서, (예를 들어, 동일하거나 상이한 유형의) 복수의 기계 학습 모델이 트레이닝 데이터에 기초하여 트레이닝될 수 있다. 또한 결합기 모델은 다른 기계 학습 모델의 예측을 입력으로 사용하고 이에 대한 응답으로 최종 추론 또는 예측을 생성하도록 트레이닝될 수 있다. 일부 경우에 단일 레이어 로지스틱 회귀 모델을 결합기 모델로 사용할 수 있다.
또 다른 예시적 앙상블 기법은 부스팅이다. 부스팅은 약한 모델을 반복적으로 트레이닝한 다음 최종 강력한 모델에 추가하여 앙상블을 점진적으로 구축하는 것을 포함할 수 있다. 예를 들어, 일부 경우에, 각각의 새로운 모델이 이전 모델이 잘못 해석한(예: 잘못 분류된) 트레이닝 예를 강조하도록 트레이닝될 수 있다. 예를 들어, 이와 같이 잘못 해석된 각각의 예와 관련된 가중치가 증가될 수 있다. 부스팅의 일반적인 구현 중 하나는 적응형 부스팅이라고도 하는 AdaBoost이다. 다른 예시적 부스팅 기법은 LPBoost; TotalBoost; BrownBoost; xgboost; MadaBoost, LogitBoost, gradient boosting; 등을 포함한다. 또한, 위에서 설명한 모델(예: 회귀 모델 및 인공 신경 네트워크) 중 하나를 결합하여 앙상블을 형성할 수 있다. 예를 들어, 앙상블은 앙상블을 형성하는 모델의 출력을 결합 및/또는 가중치를 부여하기 위한 최상위 수준의 기계 학습 모델 또는 휴리스틱 기능을 포함할 수 있다.
일부 구현예에서, (예를 들어, 앙상블을 형성하는) 다수의 기계 학습 모델은 (예를 들어, 모델 앙상블을 통해 순차적으로 오류의 역전파를 통해) 연결되고 공동으로 트레이닝될 수 있다. 그러나, 일부 구현예에서, 공동으로 트레이닝된 모델의 서브세트(예: 하나)에만 추론에 사용된다.
일부 구현예에서, 기계 학습 모델(300)은 다른 모델로의 후속 입력을 위해 입력 데이터를 사전 프로세싱하는데 사용될 수 있다. 예를 들어, 기계 학습 모델(300)은 차원 감소 기법 및 임베딩(예를 들어, 행렬 인수분해, 주 컴포넌트 분석, 특이값 분해, word2vec/GLOVE 및/또는 관련 접근법); 클러스터링; 다운스트림 소비에 대한 분류 및 회귀를 수행할 수 있다. 이러한 기법 중 많은 부분이 위에서 논의되었으며 아래에서 더 논의될 것이다.
위에서 논의된 바와 같이, 기계 학습 모델(300)은 입력 데이터를 수신하고 이에 응답하여 출력 데이터를 제공하도록 트레이닝되거나 그렇지 않으면 구성될 수 있다. 입력 데이터는 입력 데이터의 다양한 유형, 형식 또는 변형이 포함할 수 있다. 예시로서, 다양한 구현예에서, 입력 데이터는 사용자에 의해 초기적으로 선택된 콘텐츠(또는 콘텐츠의 부분)를 기술하는 구성, 예를 들어, 사용자 선택 문서 또는 이미지의 콘텐츠, 사용자 선택을 포인팅하는 링크, 디바이스 또는 클라우드에서 사용 가능한 다른 파일과 관련된 사용자 선택 내의 링크, 사용자 선택의 메타데이터 등을 포함할 수 있다. 또한, 사용자 허가가 있는 경우, 입력 데이터는 앱 자체 또는 다른 소스로부터 획득된 사용자 사용의 컨텍스트를 포함할 수 있다. 사용 컨텍스트의 예는 공유 범위(공개적으로 또는 큰 그룹과 공유하거나 개인적으로 또는 특정 사람과 공유), 공유 컨텍스트 등을 포함한다. 사용자가 허용하는 경우, 추가 입력 데이터는 디바이스의 상태, 예: 디바이스의 위치, 디바이스에서 실행 중인 앱 등을 포함할 수 있다.
또한, 사용자 허가가 있는 경우, 입력 데이터는 앱 자체 또는 다른 소스로부터 획득된 사용자 사용의 컨텍스트를 포함할 수 있다. 사용 컨텍스트의 예는 공유 범위(공개적으로 또는 큰 그룹과 공유하거나 개인적으로 또는 특정 사람과 공유), 공유 컨텍스트 등을 포함한다. 사용자가 허용하는 경우, 추가 입력 데이터는 디바이스의 상태, 예: 디바이스의 위치, 디바이스에서 실행 중인 앱 등을 포함할 수 있다.
일부 구현예에서, 기계 학습 모델(300)은 원시 형태로 입력 데이터를 수신하고 사용할 수 있다. 일부 구현예에서 원시 입력 데이터가 사전 프로세싱될 수 있다. 따라서, 원시 입력 데이터에 추가로 또는 대안적으로, 기계 학습 모델(300)은 사전 프로세싱된 입력 데이터를 수신하고 사용할 수 있다.
일부 구현예에서, 입력 데이터를 사전 프로세싱하는 것은 원시 입력 데이터로부터 하나 이상의 추가 피처들을 추출하는 것을 포함할 수 있다. 예를 들어, 피처 추출 기법이 입력 데이터에 적용되여 하나 이상의 새로운 추가 피처들을 생성할 수 있다. 피처 추출 기법의 예는 에지 검출; 코너 검출; 얼룩 검출; 능선 검출; 스케일 불변 피처 변환; 모션 검출; 광학 흐름; 허프 변환; 등을 포함한다.
일부 구현예에서, 추출된 피처들은 다른 도메인 및/또는 차원으로의 입력 데이터의 변환을 포함하거나 그로부터 파생될 수 있다. 예를 들어, 추출된 피처들은 입력 데이터의 주파수 영역으로의 변환을 포함하거나 그 변환에서 파생될 수 있다. 예를 들어, 웨이블릿 변환 및/또는 고속 푸리에 변환을 입력 데이터에 대해 수행하여 추가 피처들을 생성할 수 있다.
일부 구현예에서, 추출된 피처들은 입력 데이터 또는 입력 데이터의 특정 부분 또는 차원으로부터 계산된 통계를 포함할 수 있다. 예시적 통계는 모드, 평균, 최대, 최소 또는 입력 데이터 또는 그 일부의 기타 메트릭을 포함한다.
일부 구현예에서, 위에서 설명된 바와 같이, 입력 데이터는 본질적으로 순차적일 수 있다. 일부 예에서, 순차적인 입력 데이터는 입력 데이터의 스트림을 샘플링하거나 그렇지 않으면 분할함으로써 생성될 수 있다. 일 예시로서, 비디오에서 프레임이 추출될 수 있다. 일부 구현예에서, 순차 데이터는 요약을 통해 비순차적으로 만들어질 수 있다.
또 다른 예시적 사전 프로세싱 기법으로서, 입력 데이터의 일부가 전가될 수 있다. 예를 들어, 보간 및/또는 외삽을 통해 추가 합성 입력 데이터가 생성될 수 있다.
다른 예시적 사전 프로세싱 기법으로서, 입력 데이터의 일부 또는 전부가 스케일링, 표준화, 정규화, 일반화 및/또는 정규화될 수 있다. 정규화(regularization) 기법의 예는 능선 회귀; 최소 절대 수축 및 선택 연산자(LASSO); 탄성 그물; 최소각 회귀; 교차 검증; L1 정규화; L2 정규화; 등을 포함한다. 일 예시로서, 입력 데이터의 일부 또는 전체는 각 개별 피처 값에서 주어진 차원의 피처 값에 대한 평균을 뺀 다음 표준 편차 또는 기타 메트릭으로 나누어 정규화할 수 있다.
다른 예시적 사전 프로세싱 기법으로서, 입력 데이터의 일부 또는 전부는 양자화되거나 이산화될 수 있다. 일부 경우에, 입력 데이터에 포함된 질적 피처 또는 변수가 양적 피처 또는 변수로 변환될 수 있다. 예를 들어, 하나의 핫 인코딩이 수행될 수 있다.
일부 예에서, 차원 감소 기법은 기계 학습 모델(300)에 입력하기 전에 입력 데이터에 적용될 수 있다. 예를 들어 주 컴포넌트 분석; 커널 주 컴포넌트 분석; 그래프 기반 커널 주 컴포넌트 분석; 주 컴포넌트 회귀; 부분 최소 제곱 회귀; Sammon 매핑; 다차원 스케일링; 프로젝션 추구; 선형 판별 분석; 혼합물 판별 분석; 2차 판별 분석; 일반화된 판별 분석; 유연한 판별 분석; 오토인코딩; 등을 포함하는 차원 감소 기법들의 여러 예가 상기 제공되었다.
일부 구현예에서, 트레이닝 동안, 입력 데이터는 모델 견고성, 일반화 또는 기타 품질을 높이기 위해 여러 방식으로 의도적으로 변형될 수 있다. 입력 데이터를 변형하는 기법의 예는 노이즈 추가; 색상, 음영 또는 색조 변경; 확대; 분할; 증폭; 등을 포함한다.
입력 데이터의 수신에 응답하여, 기계 학습 모델(300)은 출력 데이터를 제공할 수 있다. 출력 데이터는 출력 데이터의 다양한 유형, 형식 또는 변형을 포함할 수 있다. 예시로서, 다양한 구현예에서, 출력 데이터는 초기 콘텐츠 선택과 함께 관련하여 공유 가능한 사용자 디바이스 또는 클라우드에 로컬로 저장된 콘텐츠를 포함할 수 있다.
위에서 논의된 바와 같이, 일부 구현예에서, 출력 데이터는 다양한 유형의 분류 데이터(예를 들어, 이진 분류, 다중 클래스 분류, 단일 라벨, 다중 라벨, 이산 분류, 회귀적 분류, 확률적 분류 등)를 포함하거나 다양한 유형의 회귀 데이터(예를 들어, 선형 회귀, 다항식 회귀, 비선형 회귀, 단순 회귀, 다중 회귀 등)를 포함할 수 있다. 다른 예에서, 출력 데이터는 클러스터링 데이터, 이상 검출 데이터, 추천 데이터 또는 위에서 논의된 임의의 다른 형태의 출력 데이터를 포함할 수 있다.
일부 구현예에서, 출력 데이터는 다운스트림 프로세스 또는 의사 결정에 영향을 미칠 수 있다. 일 예시로서, 일부 구현예에서, 출력 데이터는 규칙 기반 조정기에 의해 해석 및/또는 동작될 수 있다.
본 개시는 초기 콘텐츠 선택의 피처들에 기초하여 초기 콘텐츠 선택과 함께 관련되어 공유가능한 사용자의 디바이스 또는 클라우드에 로컬적으로 저장되어 있는 콘텐츠를 제안하기 위해 하나 이상의 기계 학습 모델을 포함하거나 활용하는 시스템 및 방법을 제공한다. 위에 설명된 임의의 다른 유형 또는 형식의 입력 데이터는 위에서 설명된 임의의 다른 유형 또는 형식의 출력 데이터를 제공하기 위해 위에서 설명된 임의의 다른 유형 또는 형식의 기계 학습 모델과 결합될 수 있다.
본 개시의 시스템 및 방법은 하나 이상의 컴퓨팅 디바이스에 의해 구현되거나 달리 실행될 수 있다. 예시적 컴퓨팅 디바이스는 사용자 컴퓨팅 디바이스(예를 들어, 랩톱, 데스크톱 및 태블릿, 스마트폰, 웨어러블 컴퓨팅 디바이스 등과 같은 모바일 컴퓨팅 디바이스); 임베디드 컴퓨팅 디바이스(예를 들어, 차량, 카메라, 이미지 센서, 산업 기계, 위성, 게임 콘솔 또는 제어기 내에 내장된 디바이스 또는 냉장고, 온도 조절기, 에너지 미터, 홈 에너지 관리자, 스마트 홈 어시스턴트와 같은 가전 제품); 다른 컴퓨팅 디바이스들; 또는 이들의 조합일 수 있다.
도 3b는 도 1의 컴퓨팅 디바이스(110)의 예시인 컴퓨팅 디바이스(310)의 개념도를 도시한다. 컴퓨팅 디바이스(310)는 프로세싱 컴포넌트(302), 메모리 컴포넌트(304) 및 기계 학습 모델(300)을 포함한다. 컴퓨팅 디바이스(310)는 기계 학습 모델(300)을 로컬(즉, 온-디바이스)에 저장하고 구현할 수 있다. 따라서, 기계 학습 모델(300)은 임베디드 디바이스 또는 모바일 디바이스와 같은 사용자 컴퓨팅 디바이스에 저장 및/또는 로컬로 구현될 수 있다. 임베디드 디바이스 또는 사용자 컴퓨팅 디바이스에서 기계 학습 모델(300)의 로컬 구현예를 통해 획득된 출력 데이터는 임베디드 디바이스 또는 사용자 컴퓨팅 디바이스(예: 임베디드 디바이스 또는 사용자 컴퓨팅 디바이스에 의해 구현된 애플리케이션)의 성능을 개선하는데 사용될 수 있다.
도 3c는 모델 트레이너를 포함하는 예시적 트레이닝 컴퓨팅 시스템과 통신하는 예시적 컴퓨팅 디바이스의 개념도를 도시한다. 도 3c는 네트워크(330)를 통해 트레이닝 디바이스(320)와 통신하는 클라이언트 디바이스(310)를 포함한다. 클라이언트 디바이스(310)는 도 1의 컴퓨팅 디바이스(110)의 예이다. 본 명세서에 기술된 기계 학습 모델(300)은 트레이닝 디바이스(320)와 같은 트레이닝 컴퓨팅 시스템에서 트레이닝될 수 있고, 그 다음 클라이언트 디바이스(310)와 같은 하나 이상의 컴퓨팅 디바이스에서 저장 및/또는 구현을 위해 제공될 수 있다. 예를 들어, 모델 트레이너(372)는 트레이닝 디바이스(320)에서 로컬적으로 실행된다. 일부 예에서, 모델 트레이너(372)를 포함하는 트레이닝 디바이스(320)는 클라이언트 디바이스(310) 또는 기계 학습 모델(300)을 구현하는 임의의 다른 컴퓨팅 디바이스에 포함되거나 분리될 수 있다.
기계 학습 모델(300) 또는 본 개시의 다른 양태들을 구현하는 컴퓨팅 디바이스(310) 및 기계 학습 모델(300)을 트레이닝하는 트레이닝 디바이스(320)는 본 명세서에 기술된 기법들의 수행을 가능하게 하는 다수의 하드웨어 컴포넌트들을 포함할 수 있다. 예를 들어, 컴퓨팅 디바이스(310)는 기계 학습 모델(300)의 일부 또는 전부를 저장하는 하나 이상의 메모리 디바이스들을 포함할 수 있다. 예를 들어, 기계 학습 모델(300)은 메모리에 저장되는 구조화된 수치 표현일 수 있다. 하나 이상의 메모리 디바이스들은 또한 기계 학습 모델(300)을 구현하거나 다른 동작들을 수행하기 위한 명령어들을 포함할 수 있다. 예시적 메모리 디바이스는 RAM, ROM, EEPROM, EPROM, 플래시 메모리 디바이스, 자기 디스크 등 및 이들의 조합을 포함한다.
컴퓨팅 디바이스(310)는 또한 기계 학습 모델(300)의 일부 또는 전부를 구현하고 및/또는 다른 관련 동작들을 수행하는 하나 이상의 프로세싱 디바이스를 포함할 수 있다. 예시적 프로세싱 디바이스는 중앙 처리 장치(CPU); VPU(시각 처리 장치); 그래픽 처리 장치(GPU); 텐서 처리 장치(TPU); 신경 처리 장치(NPU); 신경 처리 엔진; CPU, VPU, GPU, TPU, NPU 또는 기타 처리 장치의 코어; 주문형 집적 회로(ASIC); FPGA(field programmable gate array); 코프로세서; 컨트롤러; 또는 위에서 설명한 처리 장치의 조합 중 하나 이상을 포함한다. 프로세싱 디바이스는 이미지 센서, 가속도계 등과 같은 다른 하드웨어 컴포넌트에 내장될 수 있다.
트레이닝 디바이스(320)는 예를 들어 TensorFlow, Caffe/Caffe2, Theano, Torch/PyTorch, MXnet, CNTK, 등과 같은 하나 이상의 기계 학습 플랫폼, 프레임워크 및/또는 라이브러리를 사용하여 그래프 프로세싱 기법 또는 다른 기계 학습 기법을 수행할 수 있다. 일부 구현예에서, 기계 학습 모델(300)은 오프라인 방식 또는 온라인 방식으로 트레이닝될 수 있다. 오프라인 트레이닝(일괄 학습이라고도 함)에서, 기계 학습 모델(300)은 트레이닝 데이터의 정적 세트 전체에 대해 트레이닝된다. 온라인 트레이닝에서, 기계 학습 모델(300)은 새로운 트레이닝 데이터가 이용 가능해짐에 따라(예를 들어, 모델이 추론을 수행하는 동안) 지속적으로 트레이닝(또는 재트레이닝)된다.
모델 트레이너(372)는 (예를 들어, 중앙에 저장된 데이터세트에 기초하여) 기계 학습 모델(300)의 중앙 집중식 트레이닝을 수행할 수 있다. 다른 구현에서, 분산형 트레이닝, 연합 트레이닝 등과 같은 분산형 트레이닝 기법을 사용하여 기계 학습 모델(300)을 트레이닝, 업데이트 또는 개인화할 수 있다.
본 명세서에 기술된 기계 학습 모델(300)은 다양한 상이한 트레이닝 유형 또는 기법 중 하나 이상에 따라 트레이닝될 수 있다. 예를 들어, 일부 구현예에서, 기계 학습 모델(300)은 지도 학습을 사용하여 모델 트레이너(372)에 의해 트레이닝될 수 있으며, 여기서 기계 학습 모델(300)은 라벨이 있는 인스턴스 또는 예시를 포함하는 트레이닝 데이터세트에 대해 트레이닝된다. 라벨은 전문가가 수동으로 적용하거나, 크라우드 소싱을 통해 생성하거나 다른 기법(예: 물리학 기반 또는 복잡한 수학적 모델)을 통해 제공될 수 있다. 일부 구현예에서, 사용자가 동의를 제공하면, 트레이닝 예시들은 사용자 컴퓨팅 디바이스에 의해 제공될 수 있다. 일부 구현예에, 이 프로세스를 모델 개인화로 지칭될 수 있다.
트레이닝 디바이스(320)가 기계 학습 모델(300)의 트레이닝을 마치면, 기계 학습 모델(300)이 클라이언트 디바이스(310)에 설치될 수 있다. 예를 들어, 트레이닝 디바이스(320)는 네트워크(330)를 통해 기계 학습 모델(300)을 클라이언트 디바이스(310)에 전달할 수 있거나, 기계 학습 모델(300)은 클라이언트 디바이스(310)의 제조 동안 클라이언트 디바이스(310)에 설치될 수 있다. 일부 예시에서, 일단 기계 학습 모델(300)이 트레이닝 디바이스(320)에서 트레이닝되면, 트레이닝 디바이스(320)는 모델 가중치를 8-비트 정수로 압축하는 것과 같이 모델 가중치를 압축하기 위해 TensorFlow Lite 라이브러리를 사용하는 것과 같이 트레이닝 후 가중치 양자화를 수행하여, 클라이언트 디바이스(310)가 기계 학습 모델(300)을 사용하여 보다 효율적인 온-디바이스 추론을 수행할 수 있도록 한다.
도 3d는 트레이닝 디바이스(340)가 라벨 (343)을 갖는 예시적 입력 데이터(342)를 포함하는 트레이닝 데이터(341)에 대해 기계 학습 모델(300)을 트레이닝할 수 있는 예시적 트레이닝 프로세스인 트레이닝 프로세스(340)의 개념도를 도시한다. 트레이닝 프로세스(340)는 하나의 예시적 트레이닝 프로세스이고; 다른 트레이닝 프로세스도 사용될 수 있다.
트레이닝 프로세스(340)에 의해 사용되는 트레이닝 데이터(341)는 트레이닝을 위한 이러한 데이터의 사용에 대한 사용자 허가시, 공유 흐름의 익명화된 사용 로그, 예를 들어 함께 공유된 콘텐츠 아이템, 예를 들어 지식 그래프의 엔티티 등으로부터 함께 속하는 것으로 이미 식별된 번들 콘텐츠 조각을 포함할 수 있다. 일부 구현예에서, 트레이닝 데이터(341)는 출력 데이터(344)에 대응하는 라벨(343)이 할당된 입력 데이터(342)의 예를 포함할 수 있다.
본 개시의 양태들에 따르면, 기계 학습 모델(300)은 차등 프라이버시로 트레이닝된다. 즉, 기계 학습 모델(300)은 기계 학습 모델(300)이 데이터가 사용되었던(예를 들어, 예시적 입력 데이터(342) 및/또는 트레이닝 데이터(341)의 일부로서) 특정 사용자에 관한 세부 사항을 학습하거나 기억하지 않는다는 강력한 수학적 보장을 제공하는 방식으로 기계 학습 모델(300)을 트레이닝할 수 있고, 악의적인 행위자가 기계 학습 모델(300)의 트레이닝 동안 특정 데이터 조각이 사용되었는지 여부를 정확하게 결정하는 것을 방지하고, 기계 학습 모델(300)을 트레이닝하는데 사용된 데이터를 가진 사용자의 프라이버시를 보존한다.
차등 프라이버시로 기계 학습 모델(300)을 트레이닝하기 위해, 트레이닝 디바이스(320)는 트레이닝 데이터(341)에 노이즈를 추가하여, 기계 학습 모델(300)의 트레이닝 데이터(341)에서 개별 예를 숨길 수 있다. 이를 위해, 트레이닝 디바이스(320)는 TensorFlow Privacy와 같은 차등 프라이버시 프레임워크를 사용하여 기계 학습 모델(300)을 트레이닝할 수 있다. 차등 프라이버시 프레임워크를 사용하여 기계 학습 모델(300)을 트레이닝함으로써, 기계 학습 모델(300)이 기계 학습 모델(300)을 트레이닝하는데 사용된 데이터를(예를 들어, 입력 데이터(342) 및/또는 트레이닝 데이터(341)의 일부로서) 가진 특정 사용자에 대한 세부 사항을 학습하거나 기억하지 않는다는 강력한 프라이버시 보장을 제공하기 위해 트레이닝 디바이스(320)는 트레이닝 데이터(341)에 노이즈를 추가한다.
기계 학습 모델(300)이 기계 학습 모델(300)을 트레이닝하는데 사용된 데이터를 가진 임의의 특정 사용자에 대한 세부 사항을 학습하거나 기억하지 않는다는 강력한 수학적 보장을 제공하기 위해 차등 프라이버시를 사용하여 기계 학습 모델(300)을 트레이닝하는데 사용되는 차등 프라이버시 프레임워크는 엡실론(ε) 파라미터와 델타(δ) 파라미터를 사용하여 설명된다. 엡실론 파라미터의 값은 프라이버시 보장의 강도의 측정치일 수 있으며, 특정한 출력의 확률이 트레이닝 데이터(241)로부터 단일 트레이닝 예시를 포함하거나 제거함으로써 얼마나 증가할 수 있는지에 대한 천장(즉, 상한(upper bound))일 수 있다. 일반적으로, 엡실론 파라미터의 값은 10보다 작거나 더 엄격한 프라이버시를 위해 1보다 작을 수 있다. delta 파라미터의 값은 프라이버시 보장이 유지되지 않을 확률을 제한할 수 있다. 일부 예시에서, 델타 파라미터는 트레이닝 데이터(341) 크기의 역인 값으로 설정될 수 있거나, 트레이닝 데이터(341) 크기의 역수보다 작은 값으로 설정될 수 있다.
트레이닝 디바이스(320)는 차등 프라이버시를 사용하여 기계 학습 모델(300)을 트레이닝하기 위해 차등 프라이버시 프레임워크에 의해 사용되는 델타 파라미터에 대한 목표 값을 특정할 수 있다. 트레이닝 디바이스(320)는 기계 학습 모델(300)에 대해 특정된 델타 파라미터에 대한 목표 값 및 하이퍼파라미터의 주어진 세트에 기초하여, 차등 프라이버시를 사용하여 기계 학습 모델(300)을 트레이닝하기 위한 차등 프라이버시 프레임워크에 의해 사용되는 엡실론 파라미터의 값을 결정할 수 있다.
기계 학습 모델(300)에 대한 엡실론 파라미터의 값을 결정하기 위해, 트레이닝 디바이스(320)는 일부 예시에서 기계 학습 모델(300)에 대한 트레이닝 데이터 및 트레이닝 데이터의 이웃의 R
Figure 112021117899990-pat00001
nyi 발산(R
Figure 112021117899990-pat00002
nyi 엔트로피라고도 지칭됨)를 계산할 수 있다. 이웃은 트레이닝 데이터와 매우 유사한(예를 들어, 1의 해밍 거리 또는 다른 유사한 값을 갖는) 트레이닝 데이터의 분포일 수 있다. 데이터의 R
Figure 112021117899990-pat00003
nyi 발산은 본질적으로 알파 값에 의해 파라미터화된 일반화된 Kullback-Leibler(KL) 발산일 수 있으며, 여기서 KL 발산은 알파 값이 1로 설정되는 경우 R
Figure 112021117899990-pat00004
nyi 발산에서 정확하게 도출될 수 있다.
트레이닝 데이터의 R
Figure 112021117899990-pat00005
nyi 발산이 크면, 단일 변수를 변경하여 트레이닝 데이터의 분포가 크게 시프트할 수 있다. 이와 같이, 하나의 추가 예를 식별할 수 있으므로 이러한 방식으로 정보를 검색하는 것이 더 쉬울 수 있으며, 이에 따라 전반적인 프라이버시가 손상될 수 있다. 트레이닝 데이터의 R
Figure 112021117899990-pat00006
nyi 발산이 작으면, 추가 예시가 데이터를 크게 변경하지 않을 수 있으므로, 추가 예시가 데이터에 추가되었는지 여부를 구별하기가 더 어려울 수 있다. 전술한 바와 같이, 델타 파라미터의 값은 트레이닝 데이터(341)의 크기의 역인 값으로 설정될 수 있고, 따라서 기계 학습 모델(300)을 위한 트레이닝 데이터가 상대적으로 작은 R
Figure 112021117899990-pat00007
nyi 발산를 가질 수 있게 한다.
전술한 바와 같이, 기계 학습 모델(300)은 활동 인식을 수행하는 하나 이상의 신경 네트워크들을 포함할 수 있다. 즉, 기계 학습 모델(300)은 움직임에 대응하는 모션 데이터를 입력받아, 응답으로 입력된 모션 데이터에 대응하는 물리적 활동의 표시를 출력할 수 있다. 기계 학습 모델(300)에 입력되는 모션 데이터는 하나 이상의 가속도계와 같은 하나 이상의 모션 센서에 의해 생성된 다축 가속도계 데이터를 포함할 수 있다. 일부 예에서, 하나 이상의 가속도계는 3축 가속도계 데이터를 생성할 수 있으며, 이는 x, y 및 z 축을 따라 하나 이상의 가속도계에 의해 측정된 가속력을 특정하는 부동 소수점 수의 3개 채널의 형태일 수 있다.
기계 학습 모델(300)은 하나 이상의 모션 센서에 의해 생성된 시간 기간에 걸쳐 모션 데이터에 기초하여 활동 인식을 수행하도록 트레이닝될 수 있다. 예를 들어, 기계 학습된 모델(300)의 모션 데이터는 약 10초의 3축 가속도계 데이터를 포함할 수 있다. 약 10초에 걸쳐 25Hz의 샘플링 속도가 주어지면, 기계 학습 모델(300)은 3축 가속도계 데이터의 총 256개 샘플을 수신할 수 있고, 3축 가속도계 데이터의 256개 샘플에 대응하는 물리적 활동을 결정하기 위해 트레이닝 될 수 있으며, 여기서 3축 가속도계 데이터의 각 샘플은 x, y 및 z 축을 따라 하나 이상의 가속도계에 의해 측정된 가속력을 특정하는 부동 소수점 수의 3개의 채널의 형식일 수 있다.
따라서, 예시적 입력 데이터(342)의 각각의 개별 예시적 입력 데이터는 3축 가속도계 데이터의 총 256개 샘플을 포함하는 10초의 3축 가속도계 데이터와 같은 특정 기간 동안의 모션 데이터일 수 있다. 예시적 입력 데이터(342)는 수백만 개의 개별 예시적 입력 데이터를 포함할 수 있고, 위에서 설명된 기계 학습 모델(300)에 대한 델타 값은 입력 데이터(342)에서 개별 예시적 입력 데이터의 수의 역수일 수 있다.
위에서 설명된 바와 같이, 트레이닝 데이터(341)는 라벨(343)을 갖는 예시적 입력 데이터(342)를 포함하므로, 예시적 입력 데이터(342)의 각각의 개별 예시적 입력 데이터는 라벨들(343) 중 한 라벨을 갖는다. 활동 인식을 수행하도록 기계 학습 모델(300)을 트레이닝시키기 위해, 예시적 입력 데이터(342)의 각각의 개별 예시적 입력 데이터는 개별 예시적 입력 데이터에 대응하는 활동을 나타내는 라벨을 갖는다. 예를 들어, 기계 학습 모델(300)이 자전거 타기, 달리기, 걷기 또는 가만히 있기(예를 들어, 앉기, 서기 및 움직이지 않음) 중 하나로서 모션 데이터를 인식하도록 트레이닝되면, 각각의 예시적 입력 데이터는 자전거는 자전거 타기를 표시하는 라벨을 가질 수 있고, 달리기에 대응하는 각 예시적 입력 데이터는 달리기를 표시하는 라벨을 가질 수 있고, 걷기에 대응하는 각 예시적 입력 데이터는 걷기를 나타내는 라벨을 가질 수 있고, 각 예시적 입력 데이터는 가만히 있음을 나타내는 라벨을 가질 수 있다.
예시적 입력 데이터(342)는 사용자가 기계 학습 모델(300)이 인식하도록 트레이닝된 다양한 물리적 활동을 수행함에 따라 사용자가 휴대하거나 착용하는 컴퓨팅 디바이스의 모션 센서에 의해 생성된 모션 데이터일 수 있다. 예를 들어, 자전거 타기에 대응하는 예시적 입력 데이터는 사용자가 자전거를 타는 동안 사용자에 의해 착용된 웨어러블 컴퓨팅 디바이스의 모션 센서에 의해 생성된 모션 데이터일 수 있고, 걷기에 대응하는 예시적 입력 데이터는 사용자가 걷고 있는 동안 사용자가 착용한 웨어러블 컴퓨팅 디바이스이며, 달리기에 대응하는 예시적 입력 데이터는 사용자가 달리는 동안 사용자가 착용한 웨어러블 컴퓨팅 디바이스의 모션 센서에 의해 생성된 모션 데이터일 수 있고, 가만히 있기에 대응하는 예시적 입력 데이터는 상기 동작 데이터는 사용자가 정지해 있는 동안 사용자가 착용한 웨어러블 컴퓨팅 디바이스의 모션 센서에 의해 생성된 모션 데이터일 수 있다.
트레이닝 데이터(341)는 기계 학습 모델(300)이 인식하도록 트레이닝되는 복수의 물리적 활동 각각의 대략 동일한 수의 예시적 입력 데이터를 포함할 수 있다. 예를 들어, 기계 학습 모델(300)이 자전거 타기, 달리기, 걷기 또는 가만히 있기 중 하나로 모션 데이터를 인식하도록 트레이닝되면, 예시적 입력 데이터(342)의 대략 1/4은 자전거 타기에 대응하는 예시적 입력 데이터일 수 있고, 예시적 입력 데이터(342)의 대략 1/4은 달리기에 대응하는 예시적 입력 데이터일 수 있고, 예시적 입력 데이터(342)의 대략 1/4은 걷기에 대응하는 예시적 입력 데이터일 수 있고, 예시적 입력 데이터(342)의 대략 1/4은 가만히 있기에 대응하는 예시적 입력 데이터일 수 있다. 트레이닝 디바이스(320)는 트레이닝 데이터(341)가 기계 학습 모델(300)이 인식하도록 트레이닝된 복수의 물리적 활동 각각의 예시적 입력 데이터의 대략 동일한 수를 포함하도록 보장하기 위해, 예시적 입력 데이터(342)의 임의의 불균형을 처리하기 위해 트레이닝 데이터(341)를 리샘플링할 수 있다.
일부 예시에서, 트레이닝 디바이스(320)는 활동 인식을 수행할 때 회전 불변성을 제공하도록 기계 학습 모델(300)을 트레이닝하기 위해 모든 3개의 방향들(즉, x, y, 및 z 축들)에서 비제약 랜덤 회전으로 예시적 입력 데이터(342)를 변환할 수 있다. 즉, 트레이닝 디바이스(320)는 예시적 입력 데이터(342)의 각각의 예시적 입력 데이터에 대해, 특정된 x, y 및 z 축을 따라 가속도에 랜덤 회전을 적용함으로써 예시적 입력 데이터에 랜덤 회전을 적용할 수 있고, 기계 학습 모델(300)을 트레이닝하는데 사용되는 트레이닝 데이터(341)의 일부로서 랜덤하게 회전된 예시적 입력 데이터를 포함할 수 있다. 컴퓨팅 디바이스의 모션 센서의 포지션 및 배향은 그러한 컴퓨팅 디바이스가 사용자에 의해 휴대되거나 착용되는 방법에 의존할 수 있고, 시간에 따라 변할 수 있기 때문에, 활동 인식을 수행하기 위해 기계 학습 모델(300)에 의해 사용되는 모션 데이터를 생성하는 모션 센서의 포지션 및 배향에 관계없이 회전 불변을 제공하도록 트레이닝된 기계 학습 모델(300)은 활동 인식을 정확하게 수행할 수 있다. 일부 예시에서, 트레이닝 디바이스(320)는 또한 반사 번역 예시적 입력 데이터(342)를 수행할 수 있어서, 기계 학습 모델(300)은 모션을 생성하는 활동 인식을 수행하기 위해 기계 학습 모델(300)에 의해 사용되는 모션 데이터를 생성하는 모션 센서(예를 들어, 스마트 워치)가 사용자의 왼쪽 또는 오른쪽 손목에 착용되는지에 관계없이 활동 인식을 정확하게 수행할 수 있다.
일부 예시에서, 가만히 있기에 대응하는 예시적 입력 데이터는 자동차, 버스, 기차 등에 운전하거나 앉아 있는 사용자와 같이 차량을 운전하거나 앉아 있는 사용자에 의해 생성된 모션 데이터를 포함할 수 있다. 구체적으로, 예시적 입력 데이터는 가만히 있기로 라벨링된 차량에 운전 중이거나 앉아 있던 사용자가 휴대하거나 착용한 컴퓨팅 디바이스의 모션 센서에 의해 생성된 모션 데이터를 포함할 수 있다. 이러한 예시적 입력 데이터를 사용하여 기계 학습 모델(300)을 트레이닝함으로써, 기계 학습 모델(300)은 운전 중이거나 차량에 앉아 있는 사용자가 휴대하거나 착용한 컴퓨팅 디바이스의 모션 센서에 의해 생성된 모션 데이터를 걷기, 달리기 또는 임의 형태의 신체 운동으로 인식하지 않도록 트레이닝될 수 있다.
일부 예에서, 걷기에 대응하는 예시적 입력 데이터는 걷고 있던 사용자가 휴대한 스마트폰의 모션 센서에 의해 생성된 모션 데이터뿐만 아니라 걷고 있던 사용자가 착용한 웨어러블 컴퓨팅 디바이스의 모션 센서에 의해 생성된 모션 데이터를 포함할 수 있다. 걷는 중인 사용자가 휴대한 스마트폰의 모션 센서에서 생성된 모션 데이터와 웨어러블 컴퓨팅 디바이스의 모션 센서에서 생성된 모션 데이터를 포함하면 스마트 워치와 같은 웨어러블 컴퓨팅 디바이스의 모션 센서에서 생성된 모션 데이터만 사용하는 것과는 대조적으로 보행 트레이닝 데이터의 가용성을 높일 수 있다.
일부 예에서, 트레이닝 디바이스(320)는 자유 생활 모션 데이터(346)로부터의 모션 데이터를 기계 학습 모델(300)을 트레이닝하는데 사용되는 트레이닝 데이터(341)에 통합할 수 있다. 자유 생활 모션 데이터(346)는 사용자가 3일 이상과 같이 연속된 여러 날 동안 일상 활동을 할 때 사용자가 휴대하거나 착용하는 컴퓨팅 디바이스의 모션 센서에 의해 생성된 모션 데이터를 포함할 수 있다. 일반적으로, 자유 생활 모션 데이터(346)는 라벨이 지정되지 않을 수 있다. 이와 같이, 트레이닝 디바이스(320)는 자유 생활 모션 데이터(346)에 대한 라벨을 결정할 수 있고, 기계 학습 모델(300)을 트레이닝하는데 사용되는 트레이닝 데이터(341)에 자유 생활 모션 데이터(346) 및 그와 관련된 라벨의 적어도 일부를 포함할 수 있다.
일부 예시에서, 트레이닝 디바이스(320)는 자유 생활 모션 데이터(346)의 모션 데이터 윈도우와 연관된 가속도계 크기들(즉, x, y, 및 z 축을 따른 가속력) 및/또는 평균 가속도계 크기들(즉, x, y 및 z 축을 결합하는 가속력 총계의 평균)에 적어도 부분적으로 기초하여 자유 생활 모션 데이터(346)의 모션 데이터와 연관된 라벨을 결정할 수 있다. 특히, 트레이닝 디바이스(320)는 자유 생활 모션 데이터(346)의 모션 데이터의 가속도계 크기 및/또는 평균 가속도계 크기에 적어도 부분적으로 기초하여, 자유 생활 모션 데이터(346)의 모션 데이터를 라벨링할지 여부 및 기계 학습 모델(300)을 트레이닝하는데 사용되는 트레이닝 데이터(341)에 포함할 자유 생활 모션 데이터(346)에서 모션 데이터를 선택할지 여부를 결정할 수 있다.
트레이닝 디바이스(320)는 자유 생활 모션 데이터(346)를 모션 데이터의 윈도우로 분할할 수 있다. 예를 들어, 각 윈도우는 100 헤르츠로 샘플링될 때 3축 가속도계 데이터와 같은 512개의 모션 데이터 샘플을 포함하는 약 5초의 모션 데이터일 수 있다. 트레이닝 디바이스(320)는 윈도우에 대한 평균(즉, mean) 가속도계 크기를 결정할 수 있고, 모션 데이터의 각각의 샘플에 대해, 중력의 영향을 제거하기 위해서와 같이, 0 평균을 갖는 평균 가속도계 크기를 생성하기 위해 모션 데이터의 샘플로부터 윈도우에 대한 평균 가속도계 크기를 뺄 수 있다. 클리핑된 윈도우의 평균 가속도계 크기는 윈도우에 대한 전체 점수를 나타낼 수 있다.
트레이닝 디바이스(320)가 평균이 0인 평균 가속도계 크기를 갖는 윈도우를 생성하면, 트레이닝 디바이스(320)는 평균 이하의 움직임을 제거하고, 이상치 가속도계 크기 값의 효과를 줄이기 위해 0과 4 사이와 같은 두 값 사이에서 윈도우의 가속도계 크기를 자를 수 있다. 따라서 트레이닝 디바이스(320)는 윈도우에 대한 전체 점수로서 윈도우에서 평균 클리핑된 가속도계 크기를 결정할 수 있다.
윈도우에 대한 전체 점수는 윈도우 내에서 검출된 활동의 레벨에 대응할 수 있으며, 여기서 윈도우에 대한 낮은 전체 점수는 윈도우 내에서 검출된 활동의 낮은 수준에 대응할 수 있고 윈도우에 대한 높은 전체 점수는 높은 수준의 활동에 대응할 수 있다. 예를 들어, 윈도우는 활동의 4가지 레벨 중 하나로 윈도우에 대한 전체 점수에 기초하여 분류될 수 있다: 정지됨, 낮은 강도, 중간 강도 및 높은 강도. 따라서 트레이닝 디바이스(320)는 기계 학습 모델(300)을 트레이닝하는데 사용된 가만히 있는 것에 대응하는 예시적 입력 데이터(342)의 예시적 입력 데이터에 포함하기 위해 가만히 있는 것으로 분류된 윈도우에서 자유 생활 모션 데이터(346)의 모션 데이터를 선택할 수 있다.
일부 예시에서, 트레이닝 디바이스(320)는 또한 기계 학습 모델(300)을 트레이닝하는데 사용된 가만히 있는 것에 대응하는 예시적 입력 데이터(342)의 예시적 입력 데이터에 포함시키기 위해 저강도 활동으로 분류된 윈도우들에서 자유로운 생활 모션 데이터(346)의 모션 데이터를 선택할 수 있다. 기계 학습 모델(300)을 트레이닝하는데 사용된 가만히 있기에 대응하는 예시적 입력 데이터(342)의 예시적 입력 데이터에 저강도 활동에 대응하는 그러한 모션 데이터를 포함하는 것은 기계 학습 모델(300)이 일반 활동 분류기로서 뿐만 아니라 일반적으로 기계 학습 모델 300의 정지 검출을 개선하기 위해 더 잘 수행하게 할 수 있다.
일부 예시에서, 트레이닝 디바이스(320)는 활동 인식 모델(348)과 같은 사전 트레이닝된 활동 인식 모델을 사용하여 자유 모션 생활 데이터(346)의 활동 인식을 수행하여, 자유 모션 생활 데이터(346)에 라벨을 붙이고, 라벨링된 자유 모션 생활 데이터(346)를 기계 학습 모델(300)을 트레이닝하는데 사용되는 트레이닝 데이터(341)에 포함할 수 있다. 활동 인식 모델(348)은 활동 인식을 수행하여 윈도우의 모션 데이터와 연관된 가능성 있는 활동을 결정하고, 활동 인식 모델(348)에 의해 결정된 가능성 있는 활동 각각에 대한 활동 인식 확률을 추정할 수 있다. 활동 인식 모델(348)은 특정된 신뢰 임계치 미만의 연관된 활동 인식 확률을 갖는 가능성 있는 활동을 필터링할 수 있고, 신뢰 임계치 이상인 활동 인식 확률을 갖는 연관된 가능성 있는 활동을 갖는 자유 모션 생활 데이터(346)에서 모션 데이터의 나머지 윈도우 각각에 라벨링하고, 기계 학습 모델(300)을 트레이닝하는데 사용되는 트레이닝 데이터(341)에 통합될 수 있는 라벨링된 모션 데이터를 생성한다.
여전히 신뢰 임계치 이상인 활동 인식 확률을 갖는 가능성 있는 활동과 연관된 모션 데이터의 윈도우의 경우, 이러한 모션 데이터의 윈도우는 위에서 설명한 정적 휴리스틱을 통과해야 할 수도 있고(예: 정지상태로 분류됨), 여기서 윈도우의 정지는 정지된 것으로 라벨링되기 위해 윈도우에 대한 평균 가속도계 크기에 적어도 부분적으로 기초하여 결정된다. 예를 들어, 가만히 있을 가능성 있는 활동과 연관된 모션 데이터의 윈도우가 신뢰 임계치 이상인 활동 인식 확률을 갖지만 위에서 설명한 정적 휴리스틱을 통과하지 않는 경우(예: 정지된 것으로 분류되지 않음), 트레이닝 디바이스(320)는 기계 학습 모델(300)을 트레이닝하는데 사용되는 트레이닝 데이터(341)에 모션 데이터의 윈도우를 포함하는 것을 억제할 수 있다.
일부 예시에서, 활동 인식 모델(348)은 자유 모션 생활 데이터(346)에서 모션 데이터의 윈도우로부터 하나 이상의 가능성 있는 활동을 결정할 수 있다. 예를 들어, 활동 인식 모델(348)은 모션 데이터의 다수의 중첩 세트 각각에 대한 가능성 있는 활동을 결정할 수 있고, 여기서 모션 데이터의 각각의 세트는 모션 데이터의 윈도우 내에 있는 모션 데이터의 적어도 일부 샘플을 포함한다. 활동 인식 모델(348)은 따라서 모션 데이터의 다중 중첩 세트의 가중 평균을 수행함으로써 모션 데이터의 윈도우에 대한 단일 가능성 있는 활동을 결정할 수 있으며, 여기서 가중 평균을 수행하는 데 사용되는 가중치는 모션 데이터 윈도우 내부에 있는 모션 데이터 세트에서 모션 데이터 샘플의 백분율에 대응할 수 있다.
일부 예에서, 활동 인식 모델(348)은 트레이닝 데이터(341)에 이러한 윈도우 모션 데이터를 포함하기 전에 자유 모션 생활 데이터(346)에서 모션 데이터 윈도우의 디바운싱을 수행할 수 있다. 예를 들어, 일부 모션 데이터는 모션 데이터가 사이클링이 아닌 물리적 활동에 대응하는 것으로 보이는 모션 데이터로 둘러싸인 길이가 몇 초(예: 10초)인 자전거를 타는 물리적 활동에 대응한다는 높은 신뢰도 예측의 무작위 스파이크를 포함할 수 있다. 사용자가 한 번에 몇 초 동안 자전거를 탈 것 같지 않을 수 있기 때문에, 활동 인식 모델(348)은 모션 데이터의 주변 윈도우의 컨텍스트를 고려하여 자전거 타기의 물리적 활동에 대응하는 모션 데이터의 짧은 버스트를 필터링하기 위해 이러한 윈도우 모션 데이터의 디바운싱을 수행할 수 있다.
활동 인식 모델(348)은 자전거를 타는 것과 연관된 가능성 있는 활동을 갖는 현재 윈도우에 대해, 현재 윈도우에 대한 자전거를 타는 연관된 가능성 있는 활동이 정확할 가능성이 있는지 여부를 구성가능한 수(예를 들어, 5)의 이웃 윈도우 예를 들어, 자유 모션 생활 데이터(346)에서 현재 윈도우의 왼쪽에 이웃하는 윈도우, 자유 모션 생활 데이터(346)에서 현재 윈도우의 오른쪽에 이웃하는 윈도우 또는 이웃 윈도우들 사이에 중앙에 위치한 현재 윈도우에서 현재 윈도우의 오른쪽 그리고 왼쪽에 이웃하는 윈도우에 기초하여 결정할 수 있다. 활동 인식 모델(348)이 자전거 타기의 가능성이 있는 활동과 연관된 이웃 윈도우의 수가 특정된 임계치보다 크거나 같지 않다고 결정하면, 활동 인식 모델(348)은 현재 윈도우가 자전거 타기의 가능성 있는 활동과 연관된 것으로 오분류될 수 있다고 결정할 수 있다.
활동 인식 모델(348)이 윈도우가 자전거 타기의 가능성 있는 활동과 연관된 것으로 오분류될 수 있다고 결정하면, 활동 인식 모델(348)은 윈도우가 자전거를 타는 것과 다른 가능성 있는 활동과 연관될 수 있는지 여부를 결정할 수 있다. 예를 들어, 활동 인식 모델(348)은 윈도우에 대한 활동 인식 확률 벡터의 자전거 타기 컴포넌트를 제로 아웃(즉, 모두 0으로 설정)할 수 있고, 윈도우에 대한 활동 인식 확률 벡터를 1로 재정규화하여, 윈도우와 연관될 가능성이 매우 높은 다른 가능성 있는 활동이 있는 경우, 활동 인식 모델(348)은 해당 가능성 있는 활동을 윈도우와 연관시킬 기회를 가질 수 있다.
일부 구현예에서, 기계 학습 모델(300)은 목적 함수(345)와 같은 목적 함수를 최적화함으로써 트레이닝될 수 있다. 예를 들어, 일부 구현예에서, 목적 함수(345)는 트레이닝 데이터로부터 모델에 의해 생성된 출력 데이터와 트레이닝 데이터와 연관된 라벨(예를 들어, 실측 라벨)을 비교(예를 들어, 그 차이를 결정)하는 손실 함수이거나 이를 포함할 수 있다. 예를 들어, 손실 함수는 출력 데이터와 라벨 간의 차이 제곱의 합계 또는 평균을 평가할 수 있다. 일부 예에서, 목적 함수(345)는 특정 결과 또는 출력 데이터의 비용을 설명하는 비용 함수이거나 이를 포함할 수 있다. 목적 함수(345)의 다른 예는 예를 들어 삼중항 손실 또는 최대 마진 트레이닝과 같은 마진 기반 기법을 포함할 수 있다.
다양한 최적화 기법 중 하나 이상이 목적 함수(345)를 최적화하기 위해 수행될 수 있다. 예를 들어, 최적화 기법(들)은 목적 함수(345)를 최소화하거나 최대화할 수 있다. 예시적 최적화 기법은 Hessian 기반 기법 및 예를 들어 좌표 하강법(coordinate descent); 경사 하강법(예를 들어, 확률적 경사하강법); 서브그라디언트 방법과 같은 기울기 기반 기법 등을 포함한다. 기타 최적화 기법은 블랙박스 최적화 기법 및 휴리스틱을 포함한다.
일부 구현예에서, 기계 학습 모델(300)을 트레이닝하기 위해 최적화 기법(예를 들어, 기울기 기반 기법)과 함께 오류의 역방향 전파가 사용될 수 있다(예: 기계 학습 모델이 인공 신경 네트워크와 같은 다중 레이어 모델인 경우). 예를 들어, 기계 학습 모델(300)을 트레이닝하기 위해 전파 및 모델 파라미터(예를 들어, 가중치) 업데이트의 반복적인 사이클이 수행될 수 있다. 역전파 기법의 예로는 시간을 통한 잘린 역전파, Levenberg-Marquardt 역전파 등을 포함한다.
일부 구현예에서, 본 명세서에 기술된 기계 학습 모델(300)은 비지도 학습 기법을 사용하여 트레이닝될 수 있다. 비지도 학습은 라벨이 지정되지 않은 데이터에서 숨겨진 구조를 설명하는 함수를 추론하는 것을 포함할 수 있다. 예를 들어 분류 또는 카테고리가 데이터에 포함되지 않을 수 있다. 비지도 학습 기법을 사용하여 클러스터링, 이상 검지, 학습 잠재 변수 모델 또는 기타 작업을 수행할 수 있는 기계 학습 모델을 생성할 수 있다.
기계 학습 모델(300)은 지도 학습과 비지도 학습의 양태를 결합하는 반지도 기법을 사용하여 트레이닝될 수 있다. 기계 학습 모델(300)은 진화 기법 또는 유전 알고리즘을 통해 트레이닝되거나 생성될 수 있다. 일부 구현예에서, 본 명세서에 기술된 기계 학습 모델(300)은 강화 학습을 사용하여 트레이닝될 수 있다. 강화 학습에서, 에이전트(예: 모델)는 환경에서 행동을 취하고, 보상을 최대화하고 및/또는 그러한 액션으로 인한 페널티를 최소화하는 방법을 학습할 수 있다. 강화 학습은 올바른 입력/출력 쌍이 제공되지 않고 차선의 액션이 명시적으로 수정되지 않는다는 점에서 지도 학습 문제와 다를 수 있다.
일부 구현예에서, 하나 이상의 일반화 기법들이 기계 학습 모델(300)의 일반화를 개선하기 위해 트레이닝 동안 수행될 수 있다. 일반화 기법들은 트레이닝 데이터에 대한 기계 학습 모델(300)의 과적합을 줄이는데 도움이 될 수 있다. 예시적 일반화 기법들은 드롭아웃 기법; 가중치 감소 기법; 배치 정규화; 조기 중지; 서브세트 선택; 단계별 선택; 등을 포함한다.
일부 구현예에서, 본 명세서에 기술된 기계 학습 모델(300)은 예를 들어 학습률, 레이어들의 수, 각 레이어의 노드들의 수, 트리의 리프들의 수, 클러스터들의 수; 등과 같은 하이퍼파라미터의 수를 포함하거나 그에 영향을 받는다. 하이퍼파라미터들은 모델 성능에 영향을 줄 수 있다. 하이퍼파라미터들은 직접 선택되거나 예를 들면 그리드 검색; 블랙박스 최적화 기법(예: 베이지안 최적화, 랜덤 검색 등); 기울기 기반 최적화; 등과 같은 기법의 적용을 통해 자동으로 선택될 수 있다. 자동 하이퍼파라미터 최적화를 수행하기 위한 예시적 기법 및/또는 도구는 Hyperopt; Auto-WEKA; 스피어민트; 메트릭 최적화 엔진(MOE); 등을 포함한다.
일부 구현예에서, 모델이 트레이닝될 때 학습률을 최적화 및/또는 적응시키기 위해 다양한 기법이 사용될 수 있다. 학습률 최적화 또는 적응을 수행하기 위한 예시적 기법 및/또는 도구는 Adagrad; 적응 모멘트 추정(ADAM); 아다델타; RMSprop; 등을 포함한다.
일부 구현예에서, 전이 학습 기법들은 본 명세서에 기술된 기계 학습 모델(300)의 트레이닝을 시작하는 초기 모델을 제공하는데 사용될 수 있다.
일부 구현예에서, 본 명세서에 기술된 기계 학습 모델(300)은 컴퓨팅 디바이스 상의 컴퓨터 판독가능 코드의 상이한 부분에 포함될 수 있다. 일 예시에서, 기계 학습 모델(300)은 특정한 애플리케이션 또는 프로그램에 포함되어 그러한 특정한 애플리케이션 또는 프로그램에 의해 (예를 들어, 독점적으로) 사용될 수 있다. 따라서, 일 예시에서, 컴퓨팅 디바이스는 다수의 애플리케이션들을 포함할 수 있고 그러한 애플리케이션 중 하나 이상은 그 자신의 각각의 기계 학습 라이브러리 및 기계 학습 모델(들)을 포함할 수 있다.
다른 예에서, 본 명세서에 기술된 기계 학습 모델(300)은 컴퓨팅 디바이스의 운영 체제(예: 운영 체제의 중앙 인텔리전스 레이어)에 포함될 수 있고, 운영 체제와 인터렉션하는 하나 이상의 애플리케이션들에 의해 호출될거나 사용될 수 있다. 일부 구현예에서, 각 애플리케이션은 애플리케이션 프로그래밍 인터페이스(API)(예: 모든 애플리케이션에 걸친 공통, 공용 API)를 사용하여 중앙 인텔리전스 레이어(및 그 안에 저장된 모델)과 통신할 수 있다.
일부 구현예에서, 중앙 인텔리전스 레이어는 중앙 디바이스 데이터 레이어와 통신할 수 있다. 중앙 디바이스 데이터 레이어는 컴퓨팅 디바이스에 대한 중앙 집중식 데이터 저장소일 수 있다. 중앙 디바이스 데이터 레이어는 예를 들어, 하나 이상의 센서, 컨텍스트 관리자, 디바이스 상태 컴포넌트 및/또는 추가 컴포넌트들과 같은 컴퓨팅 디바이스의 다수의 다른 컴포넌트들과 통신할 수 있다. 일부 구현예에서, 중앙 디바이스 데이터 레이어는 API(예를 들어, 사설 API)를 사용하여 각 디바이스 컴포넌트와 통신할 수 있다.
본 명세서에 논의된 기술은 서버, 데이터베이스, 소프트웨어 애플리케이션들 및 다른 컴퓨터 기반 시스템들 뿐만 아니라 취해진 액션들 및 상기 시스템으로 전송되거나 그로부터 전송된 정보를 참조할 수 있다. 컴퓨터 기반 시스템들의 내재적 유연성은 광범위한 가능한 구성들, 조합들 및 작업의 분할 및 컴포넌트들 간의 및 그로부터의 기능성을 허용함을 인식할 것이다. 예를 들어, 본 명세서에서 논의된 프로세스들은 단일의 디바이스 또는 컴포넌트 또는 조합으로 작동하는 다수의 디바이스들 또는 컴포넌트들을 사용하여 구현될 수 있다. 데이터베이스 및 애플리케이션들은 단일 시스템 또는 다수의 시스템들에 걸처 분산된 시스템에서 구현될 수 있다. 분산 컴포넌트들은 순차적으로 또는 병렬로 동작할 수 있다.
또한, 본 명세서에 기술된 기법은 쉽게 상호 교환 가능하고 결합될 수 있다. 특정 예시적 기법들이 설명되었지만, 많은 다른 기술이 존재하고 본 개시의 양태와 함께 사용될 수 있다.
상기 기술에 더하여, 사용자가 본 명세서에 기술된 시스템들, 프로그램들 또는 구성들이 사용자 정보의 수집(예를 들어, 사용자의 소셜 네트워크에 관한 정보, 사회적 액션들 또는 활동들, 직업, 사용자의 선호들 또는 사용자의 현재 위치)을 하는 경우 및 콘텐츠 또는 서버로부터 통신에 사용자가 전송되는 경우에 관한 선택을 하게 하는 제어들이 사용자에게 제공될 수 있다. 추가로, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 다양한 방식들로 취급되어, 개인적으로 식별가능한 정보는 제거된다. 예를 들면, 사용자의 신원은 사용자에 관한 개인적으로 식별가능한 정보가 결정될 수 없도록 취급되거나 또는 사용자의 지리적 위치는 위치 정보가 획득된 곳에서 일반화되어(시, 우편번호 또는 주 수준으로), 사용자의 특정한 위치가 결정될 수 없도록 한다. 따라서, 사용자는 사용자에 관한 어떤 정보가 수집될지, 정보가 어떻게 사용될지, 그리고 어떤 정보가 사용자에게 제공될지에 관한 제어를 가질 수 있다.
도 3e는 예시적 기계 학습 모델을 도시하는 개념도를 도시한다. 도 3e에 도시된 바와 같이, 기계 학습 모델(300)은 병목 레이어(354) 및 SoftMax 레이어(356)가 뒤따르는 8개의 컨볼루션 블록(352A-352H)("컨볼루션 블록(352)")을 포함하는 컨볼루션 신경 네트워크일 수 있다.
컨볼루션 블록(352) 각각은 ReLU(Rectified Linear Unit) 활성화 함수 및 최대 풀링 연산이 뒤따르는 컨볼루션 필터를 포함할 수 있다. 컨볼루션 블록의 컨볼루션 필터는 최대 풀링 연산에서 감소하는 공간 해상도에 대응하기 위해 레이어당 기하급수적으로 증가하는 용량을 가질 수 있다. 도 3e에 도시된 바와 같이, 기계 학습 모델(300)은 과적합을 줄이기 위해 드롭아웃 정규화를 구현할 수 있다.
입력(350)은 대략 10초에 걸쳐 25Hz로 샘플링된 것과 같은 3축 가속도계 데이터의 256개 샘플일 수 있다. 이와 같이, 컨볼루션 블록(352A)의 컨볼루션 필터는 입력(350)의 256개 샘플을 수용하기 위해 256의 높이를 가질 수 있다. 컨볼루션 블록(352A)의 컨볼루션 필터는 또한 12의 깊이를 가질 수 있다. 컨볼루션 블록(352A)은 256-샘플 입력(350)으로부터 128 샘플의 출력을 생성할 수 있다.
컨볼루션 블록(352B)의 컨볼루션 필터는 컨볼루션 블록(352A)에 의해 출력된 128개의 샘플을 수용하기 위해 128의 높이를 가질 수 있다. 컨볼루션 블록(352B)의 컨볼루션 필터는 또한 14의 깊이를 가질 수 있다. 컨볼루션 블록(352B)은 컨볼루션 블록(352A)으로부터 출력된 128개의 샘플로부터 64개의 샘플의 출력을 생성할 수 있다.
컨볼루션 블록(352C)의 컨볼루션 필터는 컨볼루션 블록(352B)에 의해 출력된 64개의 샘플을 수용하기 위해 64의 높이를 가질 수 있다. 컨볼루션 블록(352C)의 컨볼루션 필터는 또한 17의 깊이를 가질 수 있다. 컨볼루션 블록(352C)은 컨볼루션 블록(352B)으로부터 출력된 64개의 샘플로부터 32개의 샘플의 출력을 생성할 수 있다.
컨볼루션 블록(352D)의 컨볼루션 필터는 컨볼루션 블록(352C)에 의해 출력된 32개의 샘플을 수용하기 위해 32의 높이를 가질 수 있다. 컨볼루션 블록(352D)의 컨볼루션 필터는 또한 20의 깊이를 가질 수 있다. 컨볼루션 블록(352D)은 컨볼루션 블록(352C)으로부터 출력된 32개의 샘플로부터 16개의 샘플의 출력을 생성할 수 있다.
컨볼루션 블록(352E)의 컨볼루션 필터는 컨볼루션 블록(352D)에 의해 출력된 16개의 샘플을 수용하기 위해 16의 높이를 가질 수 있다. 컨볼루션 블록(352E)의 컨볼루션 필터는 또한 25의 깊이를 가질 수 있다. 컨볼루션 블록(352E)은 컨볼루션 블록(352D)으로부터 출력된 16개의 샘플로부터 8개의 샘플의 출력을 생성할 수 있다.
컨볼루션 블록(352F)의 컨볼루션 필터는 컨볼루션 블록(352E)에 의해 출력된 8개의 샘플을 수용하기 위해 8의 높이를 가질 수 있다. 컨볼루션 블록(352F)의 컨볼루션 필터는 또한 30의 깊이를 가질 수 있다. 컨볼루션 블록(352F)은 컨볼루션 블록(352E)으로부터 출력된 8개의 샘플로부터 4개의 샘플의 출력을 생성할 수 있다.
컨볼루션 블록(352G)의 컨볼루션 필터는 컨볼루션 블록(352F)에 의해 출력된 4개의 샘플을 수용하기 위해 4의 높이를 가질 수 있다. 컨볼루션 블록(352G)의 컨볼루션 필터는 또한 35의 깊이를 가질 수 있다. 컨볼루션 블록(352G)은 컨볼루션 블록(352F)으로부터 출력된 4개의 샘플로부터 2개의 샘플의 출력을 생성할 수 있다.
컨볼루션 블록(352H)의 컨볼루션 필터는 컨볼루션 블록(352G)에 의해 출력된 2개의 샘플을 수용하기 위해 2의 높이를 가질 수 있다. 컨볼루션 블록(352H)의 컨볼루션 필터는 또한 43의 깊이를 가질 수 있다. 컨볼루션 블록(352H)은 컨볼루션 블록(352F)으로부터 출력된 2개의 샘플로부터 병목 레이어(354)에 공급될 수 있는 출력을 생성할 수 있다.
병목 레이어(354)는 컨볼루션 블록(352)의 출력을 평탄화하는 16-유닛 완전 연결 레이어일 수 있다. 완전 연결 및 SoftMax 레이어(356)는 물리적 활동의 복수의 클래스 각각에 대응하는 입력(350)의 모션 데이터의 확률을 결정하기 위해 병목 레이어(354)의 출력을 수신할 수 있다. 예를 들어, 완전 연결된 SoftMax 레이어(356)는 걷기, 달리기, 자전거 타기 및 가만히 있기와 같은 물리적 활동에 대한 확률 분포와 같은 물리적 활동의 복수 클래스에 대해 합이 1이 되는 부동 소수점 수일 수 있는 확률 분포를 결정할 수 있다. 따라서 완전 연결된 SoftMax 레이어(356)는 복수의 물리적 활동에 대한 입력(350)의 모션 데이터의 확률 분포인 출력(358)을 생성할 수 있다.
도 4는 본 개시의 하나 이상의 양태들에 따라, 물리적 활동의 온-디바이스 인식을 수행하는 컴퓨팅 디바이스의 예시적 동작을 도시하는 흐름도이다. 단지 예시의 목적으로, 예시적 동작은 도 1의 컴퓨팅 디바이스(110)의 컨텍스트 내에서 아래에서 설명된다.
도 4에 도시된 바와 같이, 컴퓨팅 디바이스(110)는 하나 이상의 센서 컴포넌트(114) 및/또는 하나 이상의 센서 컴포넌트(108)와 같은 하나 이상의 모션 센서에 의해 생성된 모션 데이터를 수신할 수 있으며, 이는 하나 이상의 모션 센서에 의해 감지된 움직임에 대응한다(400). 컴퓨터 디바이스(110)는 차등 프라이버시로 트레이닝된 하나 이상의 신경 네트워크들을 사용하여, 상기 모션 데이터에 대응하는 물리적 활동을 인식하기 위해 온-디바이스 활동 인식을 수행할 수 있다(402). 컴퓨터 디바이스(110)는 상기 모션 데이터에 대응하는 물리적 활동을 인식함에 응답하여, 상기 물리적 활동과 연관된 동작을 수행할 수 있다(406).
본 개시는 다음의 예를 포함한다.
예 1: 방법으로서, 컴퓨팅 디바이스에 의해, 하나 이상의 모션 센서들에 의해 감지된 움직임에 대응하는 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신하는 단계; 상기 컴퓨팅 디바이스에 의해, 차등 프라이버시로 트레이닝된 하나 이상의 신경 네트워크들을 사용하여, 상기 모션 데이터에 대응하는 물리적 활동을 인식하기 위해 온-디바이스 활동 인식을 수행하는 단계; 및 상기 컴퓨팅 디바이스에 의해, 상기 모션 데이터에 대응하는 물리적 활동을 인식함에 응답하여, 상기 물리적 활동과 연관된 동작을 수행하는 단계를 포함하는, 방법.
예 2: 예 1에 있어서, 상기 하나 이상의 신경 네트워크들은 차등 프라이버시 프레임워크를 사용하여 그리고 상기 하나 이상의 신경 네트워크들의 프라이버시 보장이 유지되지 않을 확률을 제한하는 델타 파라미터를 사용하여 트레이닝되며, 상기 델타 파라미터는 상기 하나 이상의 신경 네트워크들에 대한 트레이닝 세트 크기의 역으로 설정되는 값인, 방법.
예 3: 예 1 및 2에 있어서, 하나 이상의 신경 네트워크들은 복수의 물리적 활동들에 대응하는 모션 데이터의 트레이닝 세트를 사용하여 트레이닝되는, 방법.
예 4: 예 3에 있어서, 상기 모션 데이터의 트레이닝 세트는 복수의 방향들에서 비제약 랜덤 회전으로 변환되었던 것인, 방법.
예 5: 예 3 및 4에 있어서, 상기 모션 데이터의 트레이닝 세트는 차량을 운전하거나 탑승한 사용자들로부터 생성되었던 정지된 것으로 분류된 복수의 모션 데이터를 포함하는, 방법.
예 6: 예 3 내지 5 중 어느 하나에 있어서, 상기 모션 데이터의 트레이닝 세트는 라벨링되지 않은 자유 생활 모션 데이터를 라벨링하는 것에 적어도 부분적으로 기초하여 사전 트레이닝된 활동 인식 모델에 의해 생성된 복수의 모션 데이터를 포함하는, 방법.
예 7: 예 6에 있어서, 라벨링되지 않은 자유 생활 모션 데이터를 라벨링하는 것에 적어도 부분적으로 기초하여 사전 트레이닝된 활동 인식 모델에 의해 생성된 복수의 모션 데이터는 모션 데이터의 윈도우에 대한 이웃하는 모션 데이터의 윈도우의 컨텍스트에 기초하여 자전거를 타는 것에 대응하는 모션 데이터의 하나 이상의 짧은 버스트들을 제거하기 위해 라벨링되지 않은 자유 생활 모션 데이터에서 모션 데이터의 윈도우의 디바운싱을 수행하는 상기 사전 트레이닝된 활동 인식 모델에 의해 생성되었던 것인, 방법.
예 8: 예 3 내지 7 중 어느 하나에 있어서, 상기 모션 데이터의 트레이닝 세트는 라벨링되지 않은 자유 생활 모션 데이터에서 모션 데이터의 윈도우와 연관된 평균 가속도계 크기에 적어도 부분적으로 기초하여 라벨링되지 않은 자유 생활 모션 데이터로부터 여전히 선택된 것으로 분류된 복수의 모션 데이터를 포함하는, 방법.
예 9: 예 1 내지 8 중 어느 하나에 있어서, 물리적 활동을 인식하기 위해 상기 온-디바이스 활동 인식을 수행하는 단계는 상기 하나 이상의 신경 네트워크들을 사용하여 복수의 물리적 활동들에 대한 모션 데이터의 확률 분포를 결정하는 단계를 포함하는, 방법.
예 10: 예 1 내지 9 중 어느 하나에 있어서, 상기 하나 이상의 모션 센서들에 의해 감지된 움직임에 대응하는 상기 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신하는 단계는: 상기 컴퓨팅 디바이스에 의해, 상기 하나 이상의 모션 센서들에 의해 감지된 웨어러블 컴퓨팅 디바이스의 움직임에 대응하는 상기 컴퓨팅 디바이스에 통신 가능하게 연결된 웨어러블 컴퓨팅 디바이스의 상기 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신하는 단계를 포함하는, 방법.
예 11: 예 1 내지 10 중 어느 하나에 있어서, 상기 하나 이상의 모션 센서들에 의해 감지된 움직임에 대응하는 상기 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신하는 단계는: 상기 컴퓨팅 디바이스에 의해, 상기 하나 이상의 모션 센서들에 의해 감지된 상기 컴퓨팅 디바이스의 움직임에 대응하는 상기 컴퓨팅 디바이스의 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신하는 단계를 포함하는, 방법.
예 12: 컴퓨팅 디바이스로서, 메모리; 및 하나 이상의 프로세서를 포함하며, 상기 하나 이상의 프로세서는: 하나 이상의 모션 센서들에 의해 감지된 움직임에 대응하는 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신하고; 차등 프라이버시로 트레이닝된 하나 이상의 신경 네트워크들을 사용하여, 상기 모션 데이터에 대응하는 물리적 활동을 인식하기 위해 온-디바이스 활동 인식을 수행하고; 그리고 상기 모션 데이터에 대응하는 물리적 활동을 인식함에 응답하여, 상기 물리적 활동과 연관된 동작을 수행하도록 구성되는, 컴퓨팅 디바이스.
예 13: 예 12에 있어서, 상기 하나 이상의 신경 네트워크들은 차등 프라이버시 라이브러리를 사용하여 그리고 상기 하나 이상의 신경 네트워크들의 프라이버시 보장이 유지되지 않을 확률을 제한하는 델타 파라미터를 사용하여 트레이닝되며, 상기 델타 파라미터는 상기 하나 이상의 신경 네트워크들에 대한 트레이닝 세트 크기의 역으로 설정되는 값인, 컴퓨팅 디바이스.
예 14: 예 12 내지 13 중 어느 하나에 있어서, 하나 이상의 신경 네트워크들은 복수의 물리적 활동들에 대응하는 모션 데이터의 트레이닝 세트를 사용하여 트레이닝되는, 컴퓨터 디바이스.
예 15: 예 14에 있어서, 상기 모션 데이터의 트레이닝 세트는 복수의 방향들에서 비제약 랜덤 회전으로 변환되었던 것인, 컴퓨터 디바이스.
예 16: 예 14 및 15에 있어서, 상기 모션 데이터의 트레이닝 세트는 라벨링되지 않은 자유 생활 모션 데이터를 라벨링하는 것에 적어도 부분적으로 기초하여 사전 트레이닝된 활동 인식 모델에 의해 생성된 복수의 모션 데이터를 포함하는, 컴퓨터 디바이스.
예 17: 명령어가 저장된 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 명령어는 실행시 컴퓨팅 디바이스의 하나 이상의 프로세서로 하여금: 하나 이상의 모션 센서들에 의해 감지된 움직임에 대응하는 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신하게 하고; 차등 프라이버시로 트레이닝된 하나 이상의 신경 네트워크들을 사용하여, 상기 모션 데이터에 대응하는 물리적 활동을 인식하기 위해 온-디바이스 활동 인식을 수행하게 하고; 그리고 상기 모션 데이터에 대응하는 물리적 활동을 인식함에 응답하여, 상기 물리적 활동과 연관된 동작을 수행하게 하도록 구성되는, 컴퓨터 판독가능 저장 매체.
예 18: 예 17에 있어서, 상기 하나 이상의 신경 네트워크들은 차등 프라이버시 라이브러리를 사용하여 그리고 상기 하나 이상의 신경 네트워크들의 프라이버시 보장이 유지되지 않을 확률을 제한하는 델타 파라미터를 사용하여 트레이닝되며, 상기 델타 파라미터는 상기 하나 이상의 신경 네트워크들에 대한 트레이닝 세트 크기의 역으로 설정되는 값인, 컴퓨터 판독가능 저장 매체.
예 19: 예 17 및 18 중 어느 하나에 있어서, 하나 이상의 신경 네트워크들은 복수의 물리적 활동들에 대응하는 모션 데이터의 트레이닝 세트를 사용하여 트레이닝되는, 컴퓨터 판독가능 저장 매체.
예 20: 예 19에 있어서, 상기 모션 데이터의 트레이닝 세트는 복수의 방향에서 비제약 랜덤 회전으로 변환되었던 것인, 컴퓨터 판독가능 저장 매체.
하나 이상의 예시들에서, 기술된 기능들은 하드웨어, 소프트웨어, 펌웨어 또는 그것들의 임의의 조합에서 구현될 수 있다. 소프트웨어에서 구현되는 경우, 기능들은 하나 이상의 명령어들 또는 코드로서 컴퓨터 판독가능 매체에 저장되거나 컴퓨터 판독가능 매체를 통해 전송되고 하드웨어 기반 프로세싱 유닛에 의해 실행된다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 저장 매체 또는 매체들을 포함할 수 있고, 이는 데이터 저장 매체와 같은 유형적 매체 또는 예를 들어 통신 프로토콜에 따라 한 곳에서 다른 곳으로 컴퓨터 프로그램의 전송을 지원하는 임의의 매체를 포함하는 통신 매체에 대응한다. 이 방식에서, 컴퓨터 판독가능 매체는 일반적으로 (1) 비일시적인 유형적 컴퓨터 판독가능 저장 매체 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 본 개시에서 기술된 기법들의 구현을 위해 명령어들, 코드 및/또는 데이터 구조들을 검색하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 사용가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수 있다.
제한이 아닌 예시로서, 그러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 기타 광학 디스크 스토리지, 자기 디스크 스토리지, 또는 기타 자기 저장 디바이스들, 플래시 메모리 또는 명령어들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 기타 매체를 포함할 수 있다. 또한, 임의의 연결이 컴퓨터 판독가능 매체에 적절하게 명명될 수 있다. 예를 들면, 웹사이트, 서버 또는 동축 케이블, 광섬유 케이블, 꼬임쌍선, DSL 또는 적외선, 라디오 및 마이크로웨이브와 같은 무선 기술들을 사용하는 기타 원격 소스로부터 전송되는 경우, 동축 케이블, 광섬유 케이블, 꼬임쌍선, DSL 또는 적외선, 라디오 및 마이크로웨이브와 같은 무선 기술들은 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체는 연결, 반송파, 신호 또는 다른 일시적인 매체를 포함하지 않으나, 대신에 비일시적인 유형적 저장 매체를 지칭한다. 본 명세서에서 사용된 바와 같이, 디스크 및 디스크들은 컴팩트 디스크(CD), 레이저 디스크, 광학 디스크, DVD, 플로피 디스크 및 블루레이 디스크를 포함하며, 디스크들은 보통 데이터를 자기적으로 재생산하면서 디스크들은 데이터를 레이저로 광학적으로 재생산한다. 또한, 상기의 조합들은 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
명령어들은 하나 이상의 디지털 신호 프로세서들(DSP), 범용 마이크로프로세서들, 주문형 집적회로들(ASIC), 필드 프로그램가능 논리 배열들(FPGA) 또는 기타 균등한 통합 또는 이산 논리 회로와 같은 하나 이상의 프로세서들에 의해 실행될 수 있다. 따라서, 본 명세서에서 사용된 바와 같이, 용어 "프로세서"는 임의의 상기 구조 또는 본 명세서에 기술된 기법들의 구현에 적절한 임의의 기타 구조를 지칭할 수 있다. 추가로, 일부 양태에서, 본 명세서에 기술된 기능은 전용 하드웨어 및/또는 소프트웨어 모듈들 내에서 제공될 수 있다. 또한, 기법들은 하나 이상의 회로들 또는 논리 엘리먼트들에서 완전히 구현될 수 있다.
본 개시의 기법들은 무선 헤드셋, 집적 회로(IC) 또는 IC의 세트(예를 들어, 칩셋)를 포함하는 광범위한 디바이스들 또는 장치들에서 구현될 수 있다. 다양한 컴포넌트들, 모듈들 또는 유닛들이 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시에서 기술되었지만, 상이한 하드웨어 유닛들에 의한 실현을 필수적으로 요구하지 않는다. 오히려, 상기 기술된 바와 같이, 다양한 유닛들이 적절한 소프트웨어 및/또는 펌웨어와 함께 하드웨어 유닛에서 조합되거나 상기 기술된 바와 같은 하나 이상의 프로세서들을 포함하는 상호 동작적 하드웨어 유닛들의 집합에 의해 제공될 수 있다.
실시예에 따라, 본 명세서에 설명된 임의의 방법의 특정 동작 또는 이벤트는 다른 순서로 수행될 수 있고, 추가, 병합 또는 완전히 생략될 수 있다(예: 설명된 모든 동작 또는 이벤트가 방법의 실행에 반드시 필요한 것은 아님). 더욱이, 특정 실시예에서, 동작 또는 이벤트는 예를 들어 순차적이 아니라 멀티 스레드 프로세싱, 인터럽트 프로세싱, 또는 다중 프로세서를 통해 동시에 수행될 수 있다.
일부 예시에서, 컴퓨터 판독가능 저장 매체는 비일시적 매체를 포함한다. 일부 예에서, "비일시적"이라는 용어는 저장 매체가 반송파 또는 전파된 신호에 수록되지 않음을 나타낸다. 특정 예시에서, 비일시적 저장 매체는 시간이 지남에 따라 (예를 들어, RAM 또는 캐시에) 변경될 수 있는 데이터를 저장할 수 있다. 특정 예시가 디스플레이를 위해 다양한 정보를 출력하는 것으로 설명되지만, 본 개시의 기법은 본 개시의 기법에 따라 오디오, 홀로그램 또는 햅틱 형태와 같은 다른 형태로 이러한 정보를 출력할 수 있다.
다양한 실시예들이 기술되었다. 따라서, 이들 및 다른 실시예들도 다음의 청구항들의 범위 내에 있다.

Claims (20)

  1. 방법으로서,
    컴퓨팅 디바이스에 의해, 하나 이상의 모션 센서들에 의해 감지된 움직임에 대응하는 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신하는 단계;
    상기 컴퓨팅 디바이스에 의해, 차등 프라이버시로 트레이닝된 하나 이상의 신경 네트워크들을 사용하여, 상기 모션 데이터에 대응하는 물리적 활동을 인식하기 위해 온-디바이스 활동 인식을 수행하는 단계, 상기 하나 이상의 신경 네트워크들은 오프-디바이스에서 트레이닝된 다음에 온-디바이스 활동 인식을 수행하기 위해 컴퓨팅 디바이스에 설치되며; 및
    상기 컴퓨팅 디바이스에 의해, 상기 모션 데이터에 대응하는 물리적 활동을 인식함에 응답하여, 상기 물리적 활동과 연관된 동작을 수행하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 하나 이상의 신경 네트워크들은 차등 프라이버시 프레임워크를 사용하여 그리고 상기 하나 이상의 신경 네트워크들의 프라이버시 보장이 유지되지 않을 확률을 제한하는 델타 파라미터를 사용하여 트레이닝되며, 상기 델타 파라미터는 상기 하나 이상의 신경 네트워크들에 대한 트레이닝 세트 크기의 역으로 설정되는 값인, 방법.
  3. 청구항 1에 있어서, 하나 이상의 신경 네트워크들은 복수의 물리적 활동들에 대응하는 모션 데이터의 트레이닝 세트를 사용하여 트레이닝되는, 방법.
  4. 청구항 3에 있어서, 상기 모션 데이터의 트레이닝 세트는 복수의 방향들에서 비제약 랜덤 회전으로 변환되었던 것인, 방법.
  5. 청구항 3에 있어서, 상기 모션 데이터의 트레이닝 세트는 차량을 운전하거나 탑승한 사용자들로부터 생성되었던 정지된 것으로 분류된 복수의 모션 데이터를 포함하는, 방법.
  6. 청구항 3에 있어서, 상기 모션 데이터의 트레이닝 세트는 라벨링되지 않은 자유 생활 모션 데이터를 라벨링하는 것에 적어도 부분적으로 기초하여 사전 트레이닝된 활동 인식 모델에 의해 생성된 복수의 모션 데이터를 포함하는, 방법.
  7. 청구항 6에 있어서, 라벨링되지 않은 자유 생활 모션 데이터를 라벨링하는 것에 적어도 부분적으로 기초하여 사전 트레이닝된 활동 인식 모델에 의해 생성된 복수의 모션 데이터는 모션 데이터의 윈도우에 대한 이웃하는 모션 데이터의 윈도우의 컨텍스트에 기초하여 자전거를 타는 것에 대응하는 모션 데이터의 하나 이상의 짧은 버스트들을 제거하기 위해 라벨링되지 않은 자유 생활 모션 데이터에서 모션 데이터의 윈도우의 디바운싱을 수행하는 상기 사전 트레이닝된 활동 인식 모델에 의해 생성되었던 것인, 방법.
  8. 청구항 3에 있어서, 상기 모션 데이터의 트레이닝 세트는 라벨링되지 않은 자유 생활 모션 데이터에서 모션 데이터의 윈도우와 연관된 평균 가속도계 크기에 적어도 부분적으로 기초하여 라벨링되지 않은 자유 생활 모션 데이터로부터 여전히 선택된 것으로 분류된 복수의 모션 데이터를 포함하는, 방법.
  9. 청구항 1에 있어서, 물리적 활동을 인식하기 위해 상기 온-디바이스 활동 인식을 수행하는 단계는 상기 하나 이상의 신경 네트워크들을 사용하여 복수의 물리적 활동들에 대한 모션 데이터의 확률 분포를 결정하는 단계를 포함하는, 방법.
  10. 청구항 1에 있어서, 상기 하나 이상의 모션 센서들에 의해 감지된 움직임에 대응하는 상기 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신하는 단계는:
    상기 컴퓨팅 디바이스에 의해, 상기 하나 이상의 모션 센서들에 의해 감지된 웨어러블 컴퓨팅 디바이스의 움직임에 대응하는 상기 컴퓨팅 디바이스에 통신 가능하게 연결된 웨어러블 컴퓨팅 디바이스의 상기 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신하는 단계를 포함하는, 방법.
  11. 청구항 1에 있어서, 상기 하나 이상의 모션 센서들에 의해 감지된 움직임에 대응하는 상기 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신하는 단계는:
    상기 컴퓨팅 디바이스에 의해, 상기 하나 이상의 모션 센서들에 의해 감지된 상기 컴퓨팅 디바이스의 움직임에 대응하는 상기 컴퓨팅 디바이스의 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신하는 단계를 포함하는, 방법.
  12. 컴퓨팅 디바이스로서,
    메모리; 및
    하나 이상의 프로세서를 포함하며, 상기 하나 이상의 프로세서는:
    하나 이상의 모션 센서들에 의해 감지된 움직임에 대응하는 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신하고;
    차등 프라이버시로 트레이닝된 하나 이상의 신경 네트워크들을 사용하여, 상기 모션 데이터에 대응하는 물리적 활동을 인식하기 위해 온-디바이스 활동 인식을 수행하고, 상기 하나 이상의 신경 네트워크들은 오프-디바이스에서 트레이닝된 다음에 온-디바이스 활동 인식을 수행하기 위해 컴퓨팅 디바이스에 설치되며; 그리고
    상기 모션 데이터에 대응하는 물리적 활동을 인식함에 응답하여, 상기 물리적 활동과 연관된 동작을 수행하도록 구성되는, 컴퓨팅 디바이스.
  13. 청구항 12에 있어서, 상기 하나 이상의 신경 네트워크들은 차등 프라이버시 라이브러리를 사용하여 그리고 상기 하나 이상의 신경 네트워크들의 프라이버시 보장이 유지되지 않을 확률을 제한하는 델타 파라미터를 사용하여 트레이닝되며, 상기 델타 파라미터는 상기 하나 이상의 신경 네트워크들에 대한 트레이닝 세트 크기의 역으로 설정되는 값인, 컴퓨팅 디바이스.
  14. 청구항 12에 있어서, 하나 이상의 신경 네트워크들은 복수의 물리적 활동들에 대응하는 모션 데이터의 트레이닝 세트를 사용하여 트레이닝되는, 컴퓨팅 디바이스.
  15. 청구항 14에 있어서, 상기 모션 데이터의 트레이닝 세트는 복수의 방향들에서 비제약 랜덤 회전으로 변환되었던 것인, 컴퓨팅 디바이스.
  16. 청구항 14에 있어서, 상기 모션 데이터의 트레이닝 세트는 라벨링되지 않은 자유 생활 모션 데이터를 라벨링하는 것에 적어도 부분적으로 기초하여 사전 트레이닝된 활동 인식 모델에 의해 생성된 복수의 모션 데이터를 포함하는, 컴퓨팅 디바이스.
  17. 명령어가 저장된 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 명령어는 실행시 컴퓨팅 디바이스의 하나 이상의 프로세서로 하여금:
    하나 이상의 모션 센서들에 의해 감지된 움직임에 대응하는 하나 이상의 모션 센서들에 의해 생성된 모션 데이터를 수신하게 하고;
    차등 프라이버시로 트레이닝된 하나 이상의 신경 네트워크들을 사용하여, 상기 모션 데이터에 대응하는 물리적 활동을 인식하기 위해 온-디바이스 활동 인식을 수행하게 하고, 상기 하나 이상의 신경 네트워크들은 오프-디바이스에서 트레이닝된 다음에 온-디바이스 활동 인식을 수행하기 위해 컴퓨팅 디바이스에 설치되며; 그리고
    상기 모션 데이터에 대응하는 물리적 활동을 인식함에 응답하여, 상기 물리적 활동과 연관된 동작을 수행하게 하는, 컴퓨터 판독가능 저장 매체.
  18. 청구항 17에 있어서, 상기 하나 이상의 신경 네트워크들은 차등 프라이버시 라이브러리를 사용하여 그리고 상기 하나 이상의 신경 네트워크들의 프라이버시 보장이 유지되지 않을 확률을 제한하는 델타 파라미터를 사용하여 트레이닝되며, 상기 델타 파라미터는 상기 하나 이상의 신경 네트워크들에 대한 트레이닝 세트 크기의 역으로 설정되는 값인, 컴퓨터 판독가능 저장 매체.
  19. 청구항 17에 있어서, 하나 이상의 신경 네트워크들은 복수의 물리적 활동들에 대응하는 모션 데이터의 트레이닝 세트를 사용하여 트레이닝되는, 컴퓨터 판독가능 저장 매체.
  20. 청구항 19에 있어서, 상기 모션 데이터의 트레이닝 세트는 복수의 방향에서 비제약 랜덤 회전으로 변환되었던 것인, 컴퓨터 판독가능 저장 매체.
KR1020210136870A 2021-02-05 2021-10-14 온-디바이스 활동 인식 KR102637133B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/169,194 US20220249906A1 (en) 2021-02-05 2021-02-05 On-device activity recognition
US17/169,194 2021-02-05

Publications (2)

Publication Number Publication Date
KR20220113242A KR20220113242A (ko) 2022-08-12
KR102637133B1 true KR102637133B1 (ko) 2024-02-16

Family

ID=78500328

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210136870A KR102637133B1 (ko) 2021-02-05 2021-10-14 온-디바이스 활동 인식

Country Status (5)

Country Link
US (1) US20220249906A1 (ko)
EP (1) EP4040320A1 (ko)
JP (1) JP2022120775A (ko)
KR (1) KR102637133B1 (ko)
CN (1) CN113946218A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11779282B2 (en) * 2021-05-10 2023-10-10 bOMDIC, Inc. Method for determining degree of response to physical activity
US20230091581A1 (en) * 2021-09-21 2023-03-23 Bank Of America Corporation Personal Data Discovery
US11580842B1 (en) * 2021-12-11 2023-02-14 Adapdix Corporation Real-time alert management using machine learning
JP7477937B1 (ja) 2023-05-11 2024-05-02 絵美 熊谷 鑑定証明システム、及び鑑定証明方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020124389A (ja) * 2019-02-05 2020-08-20 トッパン・フォームズ株式会社 判別装置、情報提供システム、判別方法、および情報提供方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10456622B2 (en) * 2013-11-04 2019-10-29 Intel Corporation Detection of biking, walking, and running
CN110602631B (zh) * 2019-06-11 2021-03-05 东华大学 Lbs中抵御推测攻击的位置数据的处理方法和处理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020124389A (ja) * 2019-02-05 2020-08-20 トッパン・フォームズ株式会社 判別装置、情報提供システム、判別方法、および情報提供方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Abhishek Bhowmick, et al.,Protection Against Reconstruction and Its Applications in Private Federated Learning, arXiv:1812.00984v2,2019.06.03. <URL,https://arxiv.org/abs/1812.00984v2> 1부.*
Changchang Liu, et al.,DEEProtect: Enabling Inference Control on Mobile Sensing Applications,arXiv:1702.06159v2,2017.11.16. <URL: https://arxiv.org/abs/1702.06159v2> 1부.*
Yong Du, et al.,Representation Learning of Temporal Dynamics for Skeleton-Based Action Recognition,IEEE Transactions on Image Processing VOL. 25, NO. 7,2016.07. pp.3010-3022. 1부.*

Also Published As

Publication number Publication date
EP4040320A1 (en) 2022-08-10
US20220249906A1 (en) 2022-08-11
CN113946218A (zh) 2022-01-18
KR20220113242A (ko) 2022-08-12
JP2022120775A (ja) 2022-08-18

Similar Documents

Publication Publication Date Title
KR102637133B1 (ko) 온-디바이스 활동 인식
Wason Deep learning: Evolution and expansion
Wang et al. Human activity recognition in a smart home environment with stacked denoising autoencoders
US20220004935A1 (en) Ensemble learning for deep feature defect detection
Ajay et al. Wearable Sensor Data for Classification and Analysis of Functional Fitness Exercises Using Unsupervised Deep Learning Methodologies
WO2017176356A2 (en) Partitioned machine learning architecture
Chen et al. Latent feature learning for activity recognition using simple sensors in smart homes
Mekruksavanich et al. Sport-Related Activity Recognition from Wearable Sensors Using Bidirectional GRU Network.
Sarkar et al. Human activity recognition from sensor data using spatial attention-aided CNN with genetic algorithm
Bozkurt A comparative study on classifying human activities using classical machine and deep learning methods
Kilany et al. Accelerometer-based human activity classification using water wave optimization approach
KR20200080419A (ko) 인공신경망 기반 손동작 인식 방법 및 장치
Wang et al. Introduction of artificial Intelligence
Wu et al. The construction of online course learning model of ideological and political education for college students from the perspective of machine learning
Wu et al. Using deep learning and smartphone for automatic detection of fall and daily activities
US20220004904A1 (en) Deepfake detection models utilizing subject-specific libraries
Rizk et al. Cross-subject activity detection for covid-19 infection avoidance based on automatically annotated imu data
Sathya et al. OQCNN: optimal quantum convolutional neural network for classification of facial expression
Kareem et al. Hybrid Approach for Fall Detection Based on Machine Learning
US20240103610A1 (en) Egocentric human body pose tracking
Gaurav et al. A hybrid deep learning model for human activity recognition using wearable sensors
US20240152440A1 (en) Game performance prediction across a device ecosystem
US20230036737A1 (en) Determining available memory on a mobile platform
Rahman et al. Mobile sensors based human activity recognition using machine learning with explainable ML
Hussain et al. Advancements in Indian Sign Language Recognition Systems: Enhancing Communication and Accessibility for the Deaf and Hearing Impaired

Legal Events

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