EP4710345A1 - Parkinson's tremor classification using machine learning - Google Patents
Parkinson's tremor classification using machine learningInfo
- Publication number
- EP4710345A1 EP4710345A1 EP24729147.9A EP24729147A EP4710345A1 EP 4710345 A1 EP4710345 A1 EP 4710345A1 EP 24729147 A EP24729147 A EP 24729147A EP 4710345 A1 EP4710345 A1 EP 4710345A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- tremor
- neural network
- accelerometer signal
- classification
- accelerometer
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H50/00—ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
- G16H50/20—ICT 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
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B5/00—Measuring for diagnostic purposes; Identification of persons
- A61B5/103—Measuring devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
- A61B5/11—Measuring movement of the entire body or parts thereof, e.g. head or hand tremor or mobility of a limb
- A61B5/1101—Detecting tremor
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B5/00—Measuring for diagnostic purposes; Identification of persons
- A61B5/40—Detecting, measuring or recording for evaluating the nervous system
- A61B5/4076—Diagnosing or monitoring particular conditions of the nervous system
- A61B5/4082—Diagnosing or monitoring movement diseases, e.g. Parkinson, Huntington or Tourette
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B5/00—Measuring for diagnostic purposes; Identification of persons
- A61B5/72—Signal processing specially adapted for physiological signals or for diagnostic purposes
- A61B5/7235—Details of waveform analysis
- A61B5/7264—Classification of physiological signals or data, e.g. using neural networks, statistical classifiers, expert systems or fuzzy systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B5/00—Measuring for diagnostic purposes; Identification of persons
- A61B5/24—Detecting, measuring or recording bioelectric or biomagnetic signals of the body or parts thereof
- A61B5/316—Modalities, i.e. specific diagnostic methods
- A61B5/389—Electromyography [EMG]
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B5/00—Measuring for diagnostic purposes; Identification of persons
- A61B5/72—Signal processing specially adapted for physiological signals or for diagnostic purposes
- A61B5/7235—Details of waveform analysis
- A61B5/7264—Classification of physiological signals or data, e.g. using neural networks, statistical classifiers, expert systems or fuzzy systems
- A61B5/7267—Classification of physiological signals or data, e.g. using neural networks, statistical classifiers, expert systems or fuzzy systems involving training the classification device
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H50/00—ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
- G16H50/70—ICT 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
Landscapes
- Health & Medical Sciences (AREA)
- Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Medical Informatics (AREA)
- Public Health (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Pathology (AREA)
- Molecular Biology (AREA)
- Physiology (AREA)
- Animal Behavior & Ethology (AREA)
- Neurology (AREA)
- Surgery (AREA)
- Veterinary Medicine (AREA)
- Heart & Thoracic Surgery (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Neurosurgery (AREA)
- Evolutionary Computation (AREA)
- Psychiatry (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Dentistry (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Developmental Disabilities (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Fuzzy Systems (AREA)
- Databases & Information Systems (AREA)
- Epidemiology (AREA)
- Primary Health Care (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for classifying a tremor of a subject having Parkinson's disease. In one aspect, there is provided a method comprising: receiving accelerometer data characterizing motion of the subject having Parkinson's disease; processing the accelerometer data using a tremor classification neural network, in accordance with values of a set of tremor classification neural network parameters, to generate a score distribution over a set of tremor classes, wherein the set of tremor classes comprises multiple tremor classes, wherein each tremor class in the set of tremor classes corresponds to a respective severity of tremor; and classifying a tremor of the subject having Parkinson's disease based on the score distribution over the set of tremor classes.
Description
PARKINSON’S TREMOR CLASSIFICATION USING MACHINE LEARNING
TECHNICAL FIELD
[0001] This specification relates to Parkinson’s tremor classification using machine learning.
BACKGROUND
[0002] Machine learning models receive an input and generate an output, e.g., a predicted output, based on the received input. Some machine learning models are parametric models and generate the output based on the received input and on values of the parameters of the model. [0003] Some machine learning models are deep models that employ multiple layers of models to generate an output for a received input. For example, a deep neural network is a deep machine learning model that includes an output layer and one or more hidden layers that each apply a non-linear transformation to a received input to generate an output.
[0004] Parkinson's disease is a chronic, progressive neurological disorder caused by the gradual loss of nerve cells in the brain. The loss of nerve cells causes a deficit of dopamine, a neurotransmitter that is responsible for controlling movement. When nerve cells degenerate or die, the body has difficulty controlling movement and the symptoms of Parkinson's begin to appear. Common symptoms of Parkinson's disease include tremors, slowness and stiffness of movement, difficulty with balance and coordination, and an inability to make facial expressions. In advanced cases, patients may also suffer from cognitive decline, including depression and dementia. Diagnosis of Parkinson's is made through a neurological exam, medical history, and imaging tests.
[0005] Dyskinesia is a movement disorder characterized by involuntary' and often irregular movements, such as writhing, jerking, twisting, or wriggling. It is a common side effect of long-term use of medications that affect dopamine levels in the brain, such as those used to treat Parkinson's disease.
SUMMARY
[0006] This specification describes a classification system implemented as computer programs on one or more computers in one or more locations that can process accelerometer data characterizing motion of a subject with Parkinson’s disease to classify a tremor of the subject, or to classify dyskinesia of the subject, or both.
[0007] Throughout this specification, a "‘subject” refers to a human subject, i.e., a person.
[0008] Throughout this specification, a “subnetwork"’ of a neural network refers to a portion of the neural network.
[0009] Throughout this specification, an “embedding” of an entity (e.g., of an accelerometer signal) refers to a representation of the entity in a latent space that is generated by a neural network (or a subnetwork of a neural network). An embedding can be represented as an ordered collection of numerical values, e.g., a vector, matrix, or other tensor of numerical values.
[0010] Throughout this specification, a “block” (e.g.. a “convolutional block” or a “recurrent block”) refers to a group of neural network layers in a neural network.
[0011] Throughout this specification, the terms “accelerometer data” and “accelerometer signal” are used interchangeably.
[0012] In one aspect, there is provided a method performed by one or more computers, the method comprising: receiving accelerometer data characterizing motion of a subject having Parkinson’s disease; processing the accelerometer data using a tremor classification neural network, in accordance with values of a set of tremor classification neural network parameters, to generate a score distribution over a set of tremor classes, wherein the set of tremor classes comprises multiple tremor classes, wherein each tremor class in the set of tremor classes corresponds to a respective severity of tremor; and classifying a tremor of the subject having Parkinson’s disease based on the score distribution over the set of tremor classes.
|0013| In some implementations, the accelerometer data is generated by a wearable device of the subj ect.
[0014] In some implementations, the accelerometer data is represented as one or more onedimensional (ID) temporal signals.
[0015] In some implementations, the accelerometer data is represented as a two-dimensional (2D) spectrogram signal.
[0016] In some implementations, the set of tremor classes comprises at least three tremor classes.
[0017] In some implementations, the set of tremor classes corresponds to a clinical tremor scale.
[0018] In some implementations, each tremor class in the set of tremor classes corresponds to a respective magnitude, frequency, and duration of tremor.
[0019] In some implementations, the method further comprises receiving video data characterizing motion of the subject; wherein processing the accelerometer data using the
tremor classification neural network comprises: jointly processing the accelerometer data and the video data using the tremor classification neural network.
[0020] In some implementations, the method further comprises receiving surface electromyography (EMG) data characterizing electrical potentials produced during muscle contractions in the subject; wherein processing the accelerometer data using the tremor classification neural network comprises: jointly processing the accelerometer data and the surface EMG data using the tremor classification neural network.
[0021] In some implementations, processing the accelerometer data using the tremor classification neural network to generate the score distribution over the set of tremor classes comprises: processing the accelerometer data using a convolutional block, comprising one or more convolutional neural network layers, to generate a convolutional block output; processing the convolutional block output using a recurrent block, comprising one or more recurrent neural network layers, to generate a recurrent block output; and processing the recurrent block output using a dense block, comprising one or more dense neural network layers, to generate the score distribution over the set of tremor classes.
[0022] In some implementations, the convolutional block output has a lower temporal resolution than the accelerometer data.
[0023] In some implementations, the recurrent neural network layers are long short-term memory (LSTM) neural network layers.
|0024| In some implementations, classifying the tremor of the subject having Parkinson’s disease based on the score distribution over the set of tremor classes comprises: classifying the tremor of the subject into a tremor class associated with a highest score from among the set of tremor classes.
[0025] In some implementations, the method further comprises: repeatedly performing the tremor classification over a sequence of time intervals to generate a sequence of tremor classifications, wherein each tremor classification in the sequence of tremor classifications corresponds to a respective time interval and classifies a tremor of the subject during the time interval.
[0026] In some implementations, the method further comprises: processing the sequence of tremor classifications to classify a progression of Parkinson’s disease in the subject into a progression state from a set of progression states.
[0027] In some implementations, the method further comprises: administering a drug for treatment of Parkinson’s disease or symptoms of Parkinson’s disease to the subject based at least in part on the progression state of Parkinson’s disease in the subject.
[0028] In some implementations, the method further comprises: generating a notification that indicates the classification of the tremor in the subject having Parkinson’s disease.
[0029] In some implementations, processing the accelerometer data using the tremor classification neural network to generate the score distribution over the set of tremor classes comprises: processing the accelerometer data using an encoder subnetwork of the tremor classification neural network to generate an embedding of the accelerometer data in a latent space; and processing the embedding of the accelerometer data in the latent space using a tremor subnetwork of the tremor classification neural network to generate the score distribution over the set of tremor classes.
[0030] In some implementations, the method further comprises: processing the embedding of the accelerometer data in the latent space using a dyskinesia subnetwork of the tremor classification neural network to generate a score distribution over a set of dyskinesia classes, wherein the set of dyskinesia classes comprises multiple dyskinesia classes, wherein each dyskinesia class in the set of dyskinesia classes corresponds to a respective severity of dyskinesia.
[0031] In some implementations, the method further comprises: classifying dyskinesia of the subject having Parkinson’s disease based on the score distribution over the set of dyskinesia classes.
[0032] In some implementations, the tremor classification neural network has been trained by operations comprising: pre-training the encoder subnetwork of the tremor classification neural network to perform an auxiliary task, wherein the auxiliary task is not a tremor classification task; and after pre-training the encoder subnetwork, training the tremor classification neural network to perform the tremor classification task.
[0033] In some implementations, pre-training the encoder subnetwork of the tremor classification neural network to perform the auxiliary task comprises: obtaining a base accelerometer signal; generating a positive pair of embeddings in the latent space, comprising: processing a first transformed version of the base accelerometer signal using the encoder subnetwork to generate a corresponding embedding in the latent space; processing a second transformed version of the base accelerometer signal using the encoder subnetwork to generate a corresponding embedding in the latent space; training the encoder subnetwork to optimize an auxiliary loss that depends on: (i) the embedding of the first transformed version of the base accelerometer signal, and (ii) the embedding of the second transformed version of the base accelerometer signal.
[0034] In some implementations, the method further comprises generating the first transformed version of the base accelerometer signal, comprising: randomly sampling a first transformation from a space of transformations; and applying the first transformation to the base accelerometer signal to generate the first transformed version of the base accelerometer signal.
[0035] In some implementations, the method further comprises generating the second transformed version of the base accelerometer signal, comprising: randomly sampling a second transformation from a space of transformations; and applying the second transformation to the base accelerometer signal to generate the second transformed version of the base accelerometer signal.
[0036] In some implementations, the auxiliary loss measures an error between: (i) embedding of the first transformed version of the base accelerometer signal, and (ii) the embedding of the second transformed version of the base accelerometer signal.
[0037] In some implementations, pre-training the encoder subnetwork of the tremor classification neural network to perform the auxiliary task comprises: obtaining an accelerometer signal; generating a masked accelerometer signal by masking a portion of the accelerometer signal; processing the masked accelerometer signal using the encoder subnetwork to generate an embedding of the masked accelerometer signal; processing the embedding of the masked accelerometer signal using a decoder neural network to generate a predicted reconstruction of the accelerometer signal; and jointly training the encoder subnetwork and the decoder neural network to optimize an auxiliary loss that measures an error in the predicted reconstruction of the accelerometer signal.
[0038] In some implementations, pre-training the encoder subnetwork of the tremor classification neural network to perform the auxiliary task comprises: obtaining an accelerometer signal; generating a noised accelerometer signal by adding noise the accelerometer signal; processing the noised accelerometer signal using the encoder subnetwork to generate an embedding of the noised accelerometer signal; processing the embedding of the noised accelerometer signal using a decoder neural network to generate a de-noised accelerometer signal; jointly training the encoder subnetwork and the decoder neural network to optimize an auxiliary loss that measures an error in the de-noised accelerometer signal.
[0039] In some implementations, pre-training the encoder subnetwork of the tremor classification neural network to perform the auxiliary task comprises: obtaining: (i) an accelerometer signal, and (ii) a target label for the accelerometer signal; processing the
accelerometer signal using the encoder subnetwork to generate an embedding of the accelerometer signal; processing the embedding of the accelerometer signal using a prediction neural network to generate a predicted label for the accelerometer signal: and jointly training the encoder subnetwork and the prediction neural network to optimize an auxiliary loss that measures an error between: (i) the target label, and (ii) the predicted label. [0040] In some implementations, the target label for the accelerometer signal defines a number of steps taken by the subject in a duration of time covered by the accelerometer signal.
[0041] In some implementations, the target label for the accelerometer signal defines an action performed by the subject in a duration of time covered by the accelerometer signal. [0042] In some implementations, training the tremor classification neural network to perform the tremor classification task comprises: obtaining: (i) a training accelerometer signal, and (ii) a target tremor classification for the training accelerometer signal; processing the training accelerometer signal using the embedding subnetwork to generate an embedding of the training accelerometer signal; processing the embedding of the training accelerometer signal using the tremor subnetwork to generate a score distribution over the set of tremor classes; and training the tremor subnetwork of the tremor classification neural network to optimize a tremor objective function that measures an error between: (i) the score distribution over the set of tremor classes, and (ii) the target tremor classification.
|0043| In some implementations, parameter values of the encoder subnetwork are frozen during the training of the tremor classification neural network to perform the tremor classification task.
[0044] According to another aspect, there is provided a system comprising: one or more computers; and one or more storage devices communicatively coupled to the one or more computers, wherein the one or more storage devices store instructions that, when executed by the one or more computers, cause the one or more computers to perform operations of the methods described herein.
[0045] According to another aspect, there are provided one or more non-transitory computer storage media storing instructions that when executed by one or more computers cause the one or more computers to perform operations of the methods described herein.
[0046] Particular embodiments of the subject matter described in this specification can be implemented so as to realize one or more of the following advantages.
[0047] The classification system described in this specification can process accelerometer data characterizing motion of a subject using a classification neural network to classify a tremor of
the subject, or to classify dyskinesia of the subject, or both. The classification neural network can directly process raw accelerometer data to generate tremor classifications or dyskinesia classifications without the need for manual or heuristic feature engineering. More specifically, the classification neural network can be trained, by machine learning training techniques, to identify and extract relevant feature representations from raw accelerometer data in order to accurately classify tremors and dyskinesia.
[0048] The classification system enables granular and real-time monitoring of the state and progression of Parkinson’s disease in a subject without requiring the subject to regularly see a physician or access a healthcare facility'. More specifically, the classification system can automatically process accelerometer data generated by a personal device of a subject, e.g., a wearable device or a smartphone, to generate accurate classifications of tremor and dyskinesia without requiring intermediate analysis by a physician. Further, the classification system enables objective and reproducible assessments of tremor and dyskinesia in subjects, and thus provides an advantage over self-reported assessments (which may be inaccurate and variable across subjects) and assessments performed by physicians (which can be performed only at discrete moments in time, in contrast to the classification system, which provides continuous monitoring).
[0049] The classification system can train the classification neural network by a two stage process that involves first pre-training an encoder subnetwork of the classification neural network on one or more auxiliary tasks, and then fine-tuning the classification neural network to perform tremor classification or dyskinesia classification. Pre-training the encoder subnetwork can encourage the encoder subnetwork to generate rich and informative features characterizing the structure of accelerometer data, and can reduce the amount of training data and number of training iterations required for fine-tuning the classification neural network. Pre-training the encoder subnetwork can thus reduce consumption of computational resources, e.g., memory7 and computing power, during fine-tuning of the classification neural network.
[0050] The details of one or more embodiments of the subject matter of this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0051] FIG. 1 shows an example classification system that includes a classification neural network.
[0052] FIG. 2 shows an example architecture of the classification neural network.
[0053] FIG. 3 shows an example architecture of an encoder subnetwork included in the classification neural network.
[0054] FIG. 4 is a flow diagram of an example process for classifying a tremor of a subject having Parkinson’s disease or for classifying dyskinesia of a subject having Parkinson’s disease.
[0055] FIG. 5 shows an example training system.
[0056] FIG. 6 is a flow diagram of an example process for pre-training the encoder subnetwork of the classification neural network to perform a contrastive embedding task.
[0057] FIG. 7 is a flow diagram of an example process for pre-training the encoder subnetwork of the classification neural network to perform a masked reconstruction task.
[0058] FIG. 8 is a flow diagram of an example process for pre-training the encoder subnetwork of the classification neural network to perform a noisy reconstruction task.
[0059] FIG. 9 is a flow diagram of an example process for pre-training the encoder subnetwork of the classification neural network to perform a supervised auxiliary task.
[0060] FIG. 10 is a flow diagram of an example process for training the classification neural network to perform a tremor classification task.
[0061] FIG. 11 is a flow diagram of an example process for training the classification neural network to perform a dyskinesia classification task.
|0062| FIG. 12 illustrates an example of experimental results of the classification system in classifying tremors in subjects with Parkinson’s disease.
[0063] FIG. 13 illustrates: (i) a wearable device, e.g., worn by a subject with Parkinson’s disease; (ii) accelerometer data, generated by an accelerometer in the wearable device, represented as one or more one-dimensional (ID) temporal signals; and (iii) accelerometer data, generated by an accelerometer in the wearable device, represented as a two-dimensional (2D) time-frequency spectrogram.
[0064] Like reference numbers and designations in the various drawings indicate like elements.
DETAILED DESCRIPTION
[0065] FIG. 1 shows an example classification system 100. The classification system 100 is an example of a system implemented as computer programs on one or more computers in one or more locations in which the systems, components, and techniques described below are implemented.
[0066] The classification system 100 is configured to receive accelerometer data 104 characterizing movement of a subject 102 with Parkinson's disease. The classification system 100 processes the accelerometer data 104 to generate one or both of: (i) a tremor classification 116 that characterizes a severity of a tremor of the subject 102, or (ii) a dyskinesia classification 118 that characterizes a severity of (and/or a presence of) dyskinesia in the subject 102.
[0067] The accelerometer data 104 can characterize the movement of the subject 102 over an interval of time, e.g., a 1 second, 2 second. 10 second, or 1 minute interval of time. The accelerometer data 104 can be generated by an accelerometer device located on or in proximity to the subject 102. For instance, the accelerometer data 104 can be generated by an accelerometer in a wearable device being worn by the subject 102, e g., a wearable device worn on the wrist of the subject. As another example, the accelerometer data 104 can be generated by an accelerometer in a portable device (e.g., a smartphone) being held by the subject.
[0068] The classification system 100 can represent the accelerometer data 104 in any of a variety of formats. For instance, the classification system 100 can represent the accelerometer data 104 by one or more one-dimensional (ID) temporal signals, e.g., by respective ID temporal signals that characterizes acceleration in each of the x-direction, the y-direction, and the z-direction (where the x-, y-, and z- directions are defined with reference to an appropriate frame of reference). As another example, the classification system 100 can represent the accelerometer data 104 by a two-dimensional (2D) spectrogram in the time-frequency domain, i.e., that includes one dimension representing time and a second dimension representing frequency.
[0069] Optionally, the classification system 100 can receive additional inputs, i.e., in addition to the accelerometer data 104. The additional inputs can include any appropriate data characterizing the subject 102. The classification system 100 can process the additional inputs as part of generating the tremor classification 1 16, the dyskinesia classification 118, or both. The additional inputs can be derived from any appropriate modalities and can provide the classification system 100 with additional sources of information for increasing the accuracy of the tremor classification 116 and the dyskinesia classification 118. A few examples of additional inputs to the classification system 100 are described next.
[0070] In some implementations, the classification system 100 additionally receives video data characterizing the motion of the subject 102. More specifically, the video data can include a video that shows part of the subject (e g., the hand of the subject, or the face of the subject, or the torso of the subject) or all of the subject (e.g.. the entire body of the subject) over an interval of time. The interval of time can be, e.g., a 1 second, 2 second, 10 second, or 1 minute interval
of time, and can characterize the subject over the same interval of time as the accelerometer data 104. The video data can be captured by a video recording device, e.g., a webcam, or a video recording device in a smartphone. The video data can be represented as a sequence of video frames captured at any appropriate sampling frequency, e.g., 24 frames-per-second.
[0071] In some implementations, the classification system 100 additionally receives surface electromyography (EMG) data characterizing electrical potentials produced during muscle contractions in the subject 102. The surface EMG data can be measured over any appropriate interval of time, e.g., a 1 second, 2 second, 10 second, or 1 minute interval of time, and can characterize the subject over the same time interval as the accelerometer data. Surface EMG data measures electrical activity of the muscles of the subject. Capturing surface EMG data can involve placing electrodes on the surface of the skin over the muscles of interest. These electrodes pick up the electrical activity that is generated when the muscles contract. The classification system 100 can represent the surface EMG data, e.g., by an array of ID temporal signals, or in any other appropriate format.
[0072] The classification system 100 can process the accelerometer data 104, and any additional inputs characterizing the subject 102, using a classification neural network 200, a tremor classification engine 1 12, and a dyskinesia classification engine 118, which are each described next.
[0073] The classification neural network 200 is configured to receive a network input 106 that includes the accelerometer data 104, and optionally, any additional inputs characterizing the subject 102, e.g., video data, surface EMG data, etc. The classification neural network 200 processes the network input 106, in accordance with values of a set of classification neural network parameters, to generate one or both of: (i) a score distribution 108 over a set of tremor classes, and (ii) a score distribution 110 over a set of dyskinesia classes.
[0074] The score distribution 108 over the set of tremor classes can include a respective score for each tremor class in the set of tremor classes. The score for a tremor class can define a likelihood that the subject has a tremor that is included in the tremor class. Each tremor class can correspond to a respective severity of tremor. The severity of a tremor can characterize, e.g., the magnitude, frequency, and duration (consistency) of the tremor. The set of tremor classes can include any appropriate number of tremor classes, e.g., three tremor classes, four tremor classes, or five tremor classes. The set of tremor classes can include a “no tremor” class, i.e., indicating that the subject is not exhibiting a tremor. The set of tremor classes can correspond to a clinical tremor scale, e.g.. The Essential Tremor Rating Assessment Scale (TETRAS).
[0075] The score distribution 110 over the set of dyskinesia classes can include a respective score for each dyskinesia class in the set of dyskinesia classes. The score for a dyskinesia class can define a likelihood that the subject has dyskinesia that is included in the dyskinesia class. Each dyskinesia class can correspond to a respective severity of dyskinesia. The severity of dyskinesia can characterize, e.g., the magnitude, frequency, and duration (consistency) of involuntary writhing, jerking, twisting, or wriggling movements by the subject. The set of dyskinesia classes can include any appropriate number of dyskinesia classes, e.g., three dyskinesia classes, four dyskinesia classes, or five dyskinesia classes. The set of dyskinesia classes can include a “no dyskinesia’’ class, i.e., indicating that the subject is not exhibiting symptoms of dyskinesia.
[0076] In some implementations, the classification neural network 200 generates only a score distribution over the set of tremor classes, and does not generate a score distribution over the set of dyskinesia classes. In some implementations, the classification neural network 200 generates only a score distribution over the set of dyskinesia classes, and does not generate a score distribution over the set of tremor classes. In some implementations, the classification neural network generates both a score distribution over the set of tremor classes and a score distribution over the set of dyskinesia classes.
[0077] The classification neural network 200 can have any appropriate neural network architecture that enables the classification neural network 200 to perform its described functions, e.g., generating a score distribution over a set of tremor classes, or generating a score distribution over a set of dyskinesia classes, or both. In particular, the classification neural network can include any appropriate neural network layers (e.g., convolutional layers, attention layers, fully connected layers, recurrent layers, etc.) in any appropriate number (e.g., 5 layers, 10 layers, or 50 layers) and connected in any appropriate configuration (e.g., as a linear sequence of layers). An example architecture of the classification neural network is described in more detail with reference to FIG. 2.
[0078] The classification system 100 can use a training system to train the classification neural network 200 to perform the task of tremor classification, or the task of dyskinesia classification, or both. Optionally, the training system can pre-train portions of the classification neural network 200 to perform one or more unsupervised or supervised auxiliary tasks prior to training the classification neural network 200 to perform the tremor classification task, or the dyskinesia classification task, or both. An example of a training system for training the classification neural network is described in more detail with reference to FIG. 5.
[0079] The tremor classification engine 112 is configured to process a score distribution 108 over the set of tremor classes to generate a tremor classification 116. The tremor classification engine 112 can, for instance, generate a tremor classification that classifies the subj ect as being included in the tremor class associated with the highest score under the score distribution 108 over the set of tremor classes.
[0080] Optionally, the tremor classification engine 112 can generate a confidence score that characterizes a confidence of the classification system 100 in the tremor classification 116 generated for the subject 102. The tremor classification engine 112 can generate a confidence score for a tremor classification 116 in any appropriate way. For instance, the tremor classification engine 112 can generate a confidence score by computing an entropy of the score distribution over the set of tremor classes 108. In this example, a higher entropy of the score distribution over the set of tremor classes 108 can reflect a higher uncertainty of the classification system 100 in the tremor classification.
[0081] The dyskinesia classification engine 118 is configured to process a score distribution 110 over the set of dyskinesia classes to generate a dyskinesia classification 118. The dyskinesia classification engine 118 can, for instance, generate a dyskinesia classification that classifies the subject as being included in the dyskinesia class associated with the highest score under the score distribution 110 over the set of dyskinesia classes.
[0082] Optionally, the dyskinesia classification engine 118 can generate a confidence score that characterizes a confidence of the classification system 100 in the dyskinesia classification 1 18 generated for the subject 102. The dyskinesia classification engine 1 18 can generate a confidence score for a dyskinesia classification 118 in any appropriate way. For instance, the dyskinesia classification engine 118 can generate a confidence score by computing an entropy of the score distribution over the set of dyskinesia classes 110. In this example, a higher entropy of the score distribution over the set of dyskinesia classes 1 10 can reflect a higher uncertainty of the classification system 100 in the dyskinesia classification.
[0083] The classification system 100 can use tremor classifications 116 generated for the subject 102 in any of a variety of ways. A few example applications of tremor classifications 116 are described next.
[0084] In some implementations, the classification system 100 can generate a notification that indicates the tremor classification 116, and can provide the notification, e.g., to the subject 102 or to a healthcare provider of the subject 102. For instance, the classification system 100 can transmit the notification over a data communications network, e.g., as an email or a text message.
[0085] In some implementations, the classification system 100 can automatically store the tremor classification in an electronic medical record of the subject 102. For instance, the classification system 100 can interface with a database storing electronic medical records of the subject 102, e.g., by way of an application programming interface (API), and store the tremor classification 116 in an appropriate field in an electronic medical record of the subject 102.
[0086] In some implementations, the classification system 100 receives accelerometer data 104 (and optionally other inputs, such as video data or surface EMG data) for each time interval in a sequence of time intervals. The classification system 100 can process the accelerometer data 104 for each time interv al to generate a corresponding tremor classification 116. The classification system 100 can thus generate a sequence of tremor classifications 116, where each tremor classification 116 corresponds to a respective time interval and characterizes the severity of the tremor of the subject 102 over the time interval. The sequence of tremor classifications can provide granular and real-time monitoring of the state and progression of tremors in the subject 102, without requiring the subject 102 to regularly see a physician or access a healthcare facility.
[0087] The classification system 100 can process the sequence of tremor classifications to classify a progression of Parkinson’s disease in the subject into a progression state from a set of progression states. The set of progression states can include any appropriate number of progression states, e.g., three progression states, four progression states, or five progression states, and each progression state can correspond to a respective progression of Parkinson’s disease in the subject. For instance, the set of progression states can include an “early stage” progression state, a “mid-stage” progression state, and a “late stage” progression state.
[0088] The classification system 100 can process the sequence of tremor classifications to classify' the progression of Parkinson’s in the subject 102 in any of a variety of ways. For instance, the classification system 100 can process the sequence of tremor classifications to determine, for each tremor class, the number of times over a preceding time window (e.g., a 1- week time window) that the tremor of the subj ect has been classified as being included in the tremor class. The classification system 100 can thus generate a frequency distribution over the set of tremor classes, where the frequency distribution associates each tremor class with the number of times the tremor of the subject has been classified as being included in the tremor class over the preceding time window. The classification system 100 can then classify the progression state of Parkinson’s in the subject based on the frequency distribution over the set of tremor classes. For example, the classification system 100 can classify the progression of
Parkinson’s disease in the subject into a “late stage” progression state if the tremor of the subject has been classified into the tremor class associated with the highest severity of tremor at least a threshold number of times.
[0089] The classification system 100 can generate a recommendation for a treatment for the subject 102 based on the classification of the progression of Parkinson’s disease in the subject 102. For instance, each progression state in the set of progression states can be associated with a corresponding recommended treatment, e.g., a dosage of a drug. After classifying the progression of Parkinson’s disease in the subject 102 into a progression state (based on a sequence of tremor classifications), the classification system 100 can generate a recommendation to provide the subject 102 with the treatment associated with the progression state. The classification system 100 can provide the treatment recommendation to a user, e.g., a physician, by way of a user interface, e.g., a graphical user interface. A treatment can be applied to the subject 102 based at least in part on the treatment recommendation generated by the classification system 100. (The treatment can be, e.g., self-administered by the subject, or administered to the subject by a physician or another third-party).
[0090] The classification system 100 can allow objective and reproducible assessments of the effectiveness of treatments for Parkinson’s, in particular, treatments that aim to reduce the severity of tremors in subjects. More specifically, the classification system 100 can automatically generate sequences of tremor classifications for subjects at any appropriate level of temporal granularity, e.g., by classifying the severity of the tremor in the subject every 10 seconds, or every minute, or every hour, etc. Sequences of tremor classifications generated for subjects receiving a treatment (e.g., a drug) provide an objective and reproducible metric for assessing the effect of the treatment, e.g., as opposed to relying on self-reporting by subjects, which may be inaccurate and inconsistent across subjects.
[0091] The classification system 100 can use dyskinesia classifications 118 generated for the subject 102 in any of a variety of ways. A few example applications of dyskinesia classifications 118 are described next.
[0092] In some implementations, the classification system 100 can generate a notification that indicates the dyskinesia classification 118, and can provide the notification, e.g., to the subject 102 or to a healthcare provider of the subject 102. For instance, the classification system 100 can transmit the notification over a data communications network, e.g., as an email or a text message.
[0093] In some implementations, the classification system 100 can automatically store the dyskinesia classification in an electronic medical record of the subject 102. For instance, the
classification system 100 can interface with a database storing electronic medical records of the subject 102, e.g., by way of an application programming interface (API), and store the dyskinesia classification 118 in an appropriate field in an electronic medical record of the subject 102.
[0094] In some implementations, the classification system 100 receives accelerometer data 104 (and optionally other inputs, such as video data or surface EMG data) for each time interval in a sequence of time intervals. The classification system 100 can process the accelerometer data 104 for each time interval to generate a corresponding dyskinesia classification 118. The classification system 100 can thus generate a sequence of dyskinesia classifications 118, where each dyskinesia classification 118 corresponds to a respective time interval and characterizes the severity of the dyskinesia of the subject 102 over the time interval. The sequence of dyskinesia classifications can provide granular and real-time monitoring of the state and progression of dyskinesia in the subject 102, without requiring the subject 102 to regularly see a physician or access a hospital.
[0095] The classification system 100 can process the sequence of dyskinesia classifications to classify a progression of dyskinesia in the subject into a progression state from a set of progression states. The set of progression states can include any appropriate number of progression states, e.g., three progression states, four progression states, or five progression states, and each progression state can correspond to a respective progression of dyskinesia disease in the subject. For instance, the set of progression states can include an “early stage” progression state, a “mid-stage” progression state, and a “late stage” progression state.
[0096] The classification system 100 can process the sequence of dyskinesia classifications to classify the progression of dyskinesia in the subject 102 in any of a variety of ways. For instance, the classification system 100 can process the sequence of dyskinesia classifications to determine, for each dyskinesia class, the number of times over a preceding time window (e.g., a 1-week time window) that the dyskinesia of the subject has been classified as being included in the dyskinesia class. The classification system 100 can thus generate a frequency distribution over the set of dyskinesia classes, where the frequency distribution associates each dyskinesia class with the number of times the dyskinesia of the subject has been classified as being included in the dyskinesia class over the preceding time window. The classification system 100 can then classify the progression state of dyskinesia in the subject based on the frequency distribution over the set of dyskinesia classes. For example, the classification system 100 can classify the progression of dyskinesia disease in the subject into a “late stage”
progression state if the dyskinesia of the subject has been classified into the dyskinesia class associated with the highest severity of dyskinesia at least a threshold number of times.
[0097] The classification system 100 can generate a recommendation for a treatment for the subject 102 based on the classification of the progression of dyskinesia in the subject 102. For instance, each progression state in the set of progression states can be associated with a corresponding recommended treatment, e.g., a dosage of a drug. After classifying the progression of dyskinesia in the subject 102 into a progression state (based on a sequence of dyskinesia classifications), the classification system 100 can generate a recommendation to provide the subject 102 with the treatment associated with the progression state. The classification system 100 can provide the treatment recommendation to a user, e g., a physician, by way of a user interface, e.g.. a graphical user interface. A treatment can be applied to the subject 102 based at least in part on the treatment recommendation generated by the classification system 100. (The treatment can be, e.g., self-administered by the subject, or administered to the subject by a physician or another third-party).
[0098] The classification system 100 can allow objective and reproducible assessments of the effectiveness of treatments for dyskinesia. More specifically, the classification system 100 can automatically generate sequences of dyskinesia classifications for subjects at any appropriate level of temporal granularity7, e.g., by classifying the severity7 of dyskinesia in the subject every7 10 seconds, or every minute, or every hour, etc. Sequences of dyskinesia classifications generated for subjects receiving a treatment (e.g., a drug) provide an objective and reproducible metric for assessing the effect of the treatment, e g., as opposed to relying on self-reporting by subjects, which may be inaccurate and inconsistent across subjects.
[0099] FIG. 2 shows an example architecture of a classification neural network 200, e.g., that is included in the classification system 100 described with reference to FIG. 1. The classification neural network 200 is configured to receive a network input 106 that includes accelerometer data 104 characterizing movement of a subject 102 with Parkinson’s disease. The network input 106 can include additional data characterizing the subject, e.g., video data or surface EMG data, as described above with reference to FIG. 1. The classification neural network 200 processes the network input 106 to generate one or both of: (i) a tremor classification 1 16 that characterizes a severity of a tremor of the subject 102, or (ii) a dyskinesia classification 118 that characterizes a severity7 of (and/or a presence ol) dyskinesia in the subject 102.
[0100] The classification neural network 200 includes an encoder subnetwork 300, and one or both of: (i) a tremor subnetwork 204. and (ii) a dyskinesia subnetwork 206, which are each described in more detail next.
[0101] The encoder subnetwork 300 is configured to process the network input 106 to generate an embedding 202 of the network input 106 in alatent space. The encoder subnetwork 300 can have any appropriate neural network architecture that enables the encoder subnetwork 300 to generate an embedding 202 of a network input 106. In particular, the encoder subnetwork can include any appropriate types of neural network layers (e.g., convolutional layers, recurrent layers, attention layers, fully connected layers, etc.) in any number (e.g., 5 layers, 10 layers, or 50 layers) and in any appropriate configuration (e.g., as a linear sequence of layers). A specific example of an architecture of the encoder subnetwork 300 is described in more detail with reference to FIG. 3.
[0102] The network input 106 can include data from multiple modalities, e.g., accelerometer data, video data, surface EMG data, etc. The architecture of the encoder subnetwork 300 can be configured in any of a variety of possible ways to enable the encoder subnetwork 300 to process multi-modal data. For instance, the encoder subnetwork 300 can include a respective sequence of encoder neural network layers corresponding to each modality. For each modality, the encoder subnetwork 300 can process data derived from that modality7 using the corresponding sequence of encoder neural network layers to generate a modality-specific embedding of the data. The encoder subnetwork 300 can combine the modality-specific embedding of each modality included in the network input 106 to generate the embedding 202 of the network input 106. The encoder subnetwork 300 can combine the modality-specific embeddings, e.g., by concatenating the modality-specific embeddings, or by pooling (e.g., averaging, summing, or max pooling) the modality-specific embeddings.
[0103] The tremor subnetwork 204 is configured to process the embedding 202 of the network input 106 to generate a score distribution over the set of tremor classes 108. The tremor subnetwork 204 can have any appropriate neural network architecture that enables the tremor subnetwork 204 to generate a score distribution over a set of tremor classes. In particular, the tremor subnetwork can include any appropriate types of neural network layers (e.g.. convolutional layers, recurrent layers, attention layers, fully connected layers, etc.) in any number (e.g., 5 layers, 10 layers, or 50 layers) and in any appropriate configuration (e.g., as a linear sequence of layers). In a specific example, the tremor subnetwork 204 can include a sequence of dense (fully connected) neural network layers.
[0104] The dyskinesia subnetwork 206 is configured to process the embedding 202 of the network input 106 to generate a score distribution over the set of dyskinesia classes 110. The dyskinesia subnetwork 206 can have any appropriate neural network architecture that enables the dyskinesia subnetwork 206 to generate a score distribution over a set of dyskinesia classes. In particular, the dyskinesia subnetwork can include any appropriate types of neural network layers (e.g., convolutional layers, recurrent layers, attention layers, fully connected layers, etc.) in any number (e.g., 5 layers. 10 layers, or 50 layers) and in any appropriate configuration (e.g.. as a linear sequence of layers). In a specific example, the dyskinesia subnetwork 206 can include a sequence of dense (fully connected) neural network layers.
[0105] In some implementations, the classification neural network 200 includes the encoder subnetwork 300 and the tremor subnetwork 204, but does not include the dyskinesia subnetwork 206. In some implementations, the classification neural network 200 includes the encoder subnetwork 300 and the dyskinesia subnetwork 206, but does not include the tremor subnetwork 204. In some implementations, the classification neural network 200 includes both the tremor subnetwork 204 and the dyskinesia subnetwork 206.
[0106] FIG. 3 shows an example architecture of an encoder subnetwork 300 included in a classification neural network 200, e.g., as described with reference to FIG. 1, of a classification system 100, e.g., as described with reference to FIG. 1. In this example, the encoder subnetwork 300 includes: (i) a convolutional block 302 that includes one or more convolutional neural network layers, and (ii) a recurrent block 306 that includes one or more recurrent neural network layers.
[0107] The convolutional block 302 can be configured to process accelerometer data 104 characterizing the motion of a subject having Parkinson's disease, by one or more convolutional neural network layers, to generate a convolutional block output that has a lower temporal resolution than the accelerometer data. In particular, the accelerometer data can include a sequence of accelerometer data elements, e.g., where each accelerometer data element is represented as an 3D vector of vector of x-, y-, and z- accelerations. The convolutional block output can include a sequence of feature vectors, where the sequence of feature vectors has a shorter length than sequence of accelerometer data elements and thus has a lower temporal resolution than the sequence of accelerometer data elements.
[0108] The recurrent block 306 can be configured to process the convolutional block output 304, by one or more recurrent neural network layers, to generate an embedding 202 of the accelerometer data 104. The recurrent neural network layers can be, e.g.. long short-term memory (LSTM) recurrent neural network layers, gated recurrent unit (GRU) recurrent neural
network layers, or any other appropriate type of recurrent neural network layer. The recurrent neural network layers in the recurrent block 306 can be arranged in a sequence. Each recurrent neural network layer can be configured to sequentially process a sequence of feature vectors to generate, by a set of recurrent neural network layer operations, an updated sequence of feature vectors. The first recurrent neural network layer in the recurrent block 306 can receive the sequence of feature vectors included in the convolutional block output. Each subsequent recurrent neural network layer in the recurrent block 306 can receive the sequence of feature vectors generated by the preceding recurrent neural network layer in the recurrent block. The final recurrent neural network layer in the recurrent block 306 can generate a sequence of feature vectors that collectively define the embedding 202 of the accelerometer data 104.
[0109] FIG. 4 is a flow diagram of an example process 400 for classifying atremor of a subject having Parkinson’s disease or for classifying dyskinesia of a subject having Parkinson’s disease. For convenience, the process 400 will be described as being performed by a system of one or more computers located in one or more locations. For example, a classification system, e.g., the classification system 100 of FIG. 1, appropriately programmed in accordance with this specification, can perform the process 400.
[0110] The system receives accelerometer data characterizing motion of a subject having Parkinson’s disease (402). The accelerometer data can be generated by a wearable device of the subject. The accelerometer data can be represented as one or more one-dimensional (ID) temporal signals, or as a two-dimensional (2D) spectrogram signal. Optionally, the system can receive additional data, e.g., video data characterizing the motion of the subject, or surface EMG data characterizing electrical potentials produced during muscle contractions of the subject.
[0111] The system processes a network input that includes the accelerometer data (and, optionally, additional data such as video data or surface EMG data) using a classification neural network, in accordance with values of a set of classification neural network parameters, to generate a score distribution over a set of tremor classes, or a score distribution over a set of dyskinesia classes, or both (404). The set of tremor classes includes multiple tremor classes, and each tremor class in the set of tremor classes corresponds to a respective severity of tremor. The set of dyskinesia classes includes multiple dyskinesia classes, and each dyskinesia class in the set of dyskinesia classes corresponds to a respective severity of dyskinesia.
[0112] The system classifies the tremor of the subject, the dyskinesia of the subject, or both (406). The system can classify the tremor of the subject based on the score distribution over the set of tremor classes, e.g., by classifying the tremor of the subject as being included in the
tremor class with the highest score. The system can classify the dyskinesia of the subject based on the score distribution over the set of dyskinesia classes, e.g., by classifying the dyskinesia of the subject as being included in the dyskinesia class with the highest score.
[0113] FIG. 5 shows an example training system 500. The training system 500 is an example of a system implemented as computer programs on one or more computers in one or more locations in which the systems, components, and techniques described below are implemented. [0114] The training system 500 is configured to train the classification neural network 200 included in the classification system 100 described with reference to FIG. 1. The classification neural network 200 is configured to process a network input that includes accelerometer data characterizing motion of a subject having Parkinson’s disease to generate one or both of: (i) a score distribution over a set of tremor classes, and (ii) a score distribution over a set of dyskinesia classes, as described with reference to FIG. 1.
[0115] The classification neural network 200 can include an encoder subnetwork, and one or both of: (i) a tremor subnetwork, and (ii) a dyskinesia subnetwork, as described with reference to FIG. 2. The encoder subnetwork can process the network input, including the accelerometer data, to generate an embedding of the network input. The tremor subnetwork can process the embedding of the network input to generate a score distribution over the set of tremor classes. The dyskinesia subnetwork can process the embedding of the network input to generate a score distribution over the set of dyskinesia classes.
|0116| The training system 500 can train the classification neural network over a sequence of two stages. In the first stage, the training system 500 can pre-train the encoder subnetwork 300 of the classification neural network 200 to perform one or more auxiliary' tasks. In the second stage, the training sy stem 500 can train the classification neural network 200 to perform the tremor classification task, or the dyskinesia classification task, or both. Pre-training the encoder subnetwork 300 can provide an effective initialization of the parameter values of the encoder neural network, thus facilitating fine-tuning of the classification neural network to perform tremor classification or dyskinesia classification. In particular, the pre-training can encourage the encoder subnetwork 300 to generate embeddings that encode rich features characterizing the structure of accelerometer data (and, optionally, other types of data, e.g., video data or surface EMG data). Pre-training the encoder subnetwork 300 can enable the classification neural network 200 to achieve a higher prediction accuracy on the tremor classification task and the dyskinesia classification task while requiring less training data than would otherwise be necessary.
[0117] At the first stage of training, the training system 500 can initialize the set of parameters of the encoder subnetwork 300, e.g.. to random values. The training system 500 can then train the encoder subnetwork 300 to perform an auxiliary task. A few examples of auxiliary tasks are described next.
[0118] In some implementations, the training system 500 can pre-train the encoder subnetwork 300 to perform a contrastive embedding task 502. More specifically, the training system 500 can train the encoder subnetwork to generate similar embeddings for ‘"positive” pairs of accelerometer signals, and dissimilar embeddings for “negative” pairs of accelerometer signals. A “pair” of accelerometer signals includes a first accelerometer signal and a second accelerometer signal. A “positive” pair of accelerometer signals can refer to a pair of accelerometer signals where the first accelerometer signal and the second accelerometer signal are both transformed version of a same underlying accelerometer signal. A “negative” pair of accelerometer signals can refer to a pair of accelerometer signals where the first accelerometer signal is derived from a different accelerometer signal than the second accelerometer signal. An example process for training the encoder subnetwork 300 to perform a contrastive embedding task 502 is described in more detail with reference to FIG. 6.
[0119] In some implementations, the training system 500 can pre-train the encoder subnetwork 300 to perform a masked reconstruction task 504. More specifically, the training system can train the encoder subnetwork to process a masked accelerometer signal to generate an embedding that enables accurate reconstruction of the full (unmasked) accelerometer signal. An example process for training the encoder subnetwork 300 to perform a masked reconstruction task 504 is described in more detail with reference to FIG. 7.
[0120] In some implementations, the training system 500 can pre-train the encoder subnetwork 300 to perform a noisy reconstruction task 506. More specifically, the training system can train the encoder subnetwork to process a noised accelerometer signal to generate an embedding that enables accurate reconstruction of the original (de-noised) accelerometer signal. An example process for training the encoder subnetwork 300 to perform a noisy reconstruction task 506 is described in more detail with reference to FIG. 8.
[0121] In some implementations, the training system 500 can pre-train the encoder subnetwork 300 to perform one or more supervised auxiliary tasks 508. More specifically, the training system can train the encoder subnetwork to process an accelerometer signal to generate an embedding that enables accurate prediction of one or more features of the accelerometer signal, e.g., a number of steps taken by a subject in a duration of time covered by the accelerometer signal, or an action performed by a subject in a duration of time covered by the accelerometer
signal. An example process for training the encoder subnetwork to perform a supervised auxiliary task 508 is described in more detail with reference to FIG. 9.
[0122] Optionally, the training system 500 can pre-train the encoder subnetwork to perform multiple auxiliary tasks, i.e., rather than just a single auxiliary task. For instance, the training system 500 can pre-train the encoder subnetwork to perform two auxiliary7 tasks, or three auxiliary tasks, or four auxiliary tasks.
[0123] At the second stage of training, the training system 500 can initialize the set of parameters of the tremor subnetwork, the dyskinesia subnetwork, or both, e.g., to random values. (The set of parameters of the encoder subnetwork 300 can have the values determined during the pre-training of the encoder subnetwork at the first stage of training). The training system 500 can then train the classification neural network 200 to perform a tremor classification task 510, or a dyskinesia classification task 512, or both. An example process for training the classification neural network to perform a tremor classification task 510 is described in more detail with reference to FIG. 10. An example process for training the classification neural network to perform a dyskinesia classification task is described in more detail with reference to FIG. 11.
[0124] In some implementations, the training system 500 trains the classification neural network 200 to perform both a tremor classification task and a dyskinesia classification task. In these implementations, the training system 500 can exploit synergies that exist between the tremor classification task and the dyskinesia classification task in order to achieve a higher prediction accuracy on both tasks. More specifically, as part of training the classification neural network to perform the tremor classification task, the training system can backpropagate gradients of a tremor classification objective function through the tremor subnetwork and into the encoder subnetwork of the classification neural network. Similarly, as part of training the classification neural network to perform the dyskinesia classification task, the training system can backpropagate gradients of a dyskinesia classification objective function through the dyskinesia subnetwork and into the encoder subnetwork of the classification neural network. The parameter values of the encoder subnetwork can thus be jointly trained using training signals from both the tremor classification task and the dyskinesia classification task, thereby enabling the encoder subnetwork to learn to exploit synergies and commonalities between the tasks.
[0125] For convenience, the first stage of training - in particular, pre-training the encoder neural network - is described as being performed before the second stage of training - in particular, fine-tuning the classification neural network to perform tremor classification and/or
dyskinesia classification. However, the two stages of training can overlap, e.g., such that the pre-training of the encoder neural network and the fine-tuning of the classification neural network are both performed at one or more training iterations.
[0126] After training the classification neural network 200, the training system can provide the classification neural network 200 for use by the classification system 100, as described with reference to FIG. 1.
[0127] FIG. 6 is a flow diagram of an example process 600 for pre-training the encoder subnetwork of the classification neural network to perform a contrastive embedding task. For convenience, the process 600 will be described as being performed by a system of one or more computers located in one or more locations. For example, a training system, e g., the training system 500 of FIG. 5. appropriately programmed in accordance with this specification, can perform the process 600. The training system can iteratively perform the steps of the process 600 as part of pre-training the encoder subnetwork.
[0128] The system obtains a set of “base” accelerometer signals (602).
[0129] The system generates one or more positive pairs of accelerometer signals (604). To generate a positive pair of accelerometer signals, the system selects (e.g., randomly samples) a base accelerometer signal from the set of base accelerometer signals. The system generates a first transformed version of the base accelerometer signal, e.g., by randomly sampling a first transformation from a space of transformations, and applying the first transformation to the base accelerometer signal. The system generates a second transformed version of the base accelerometer signal, e g., by randomly sampling a second transformation from the space of transformations, and applying the second transformation to the base accelerometer signal. The first transformed version and the second transformed version of the base accelerometer signal jointly define the positive pair of accelerometer signals.
[0130] The space of transformations can include, e.g., a flipping transformation (that includes flipping the accelerometer signals around the time axis), a reversing transformation (that includes reversing the direction of the time axis for the accelerometer signals), a zoom transformation (that includes cropping and resizing the accelerometer signals), a swapping transformation (that includes swapping the ordering of the accelerometer signals), a noising transformation (that includes adding random noise to the accelerometer signals), a resizing transformation (that includes modifying the amplitude of the accelerometer signals), and an identity transformation (that has no effect on accelerometer signals). In some cases, a positive pair of accelerometer signals can include an accelerometer signal that is identical to a base
accelerometer signal, e.g., in situations where the system selects the identity transformation to apply to the base accelerometer signal.
[0131] The system generates one or more positive pairs of embeddings (606). In particular, for each positive pair of accelerometer signals, the system processes the first accelerometer signal using the encoder subnetwork to generate an embedding of the first accelerometer signal, and the system processes the second accelerometer signal to generate an embedding of the second accelerometer signal. The embedding of the first accelerometer signal and the embedding of the second accelerometer signal jointly define a positive pair of embeddings.
[0132] The system generates one or more negative pairs of accelerometer signals (608). To generate a negative pair of accelerometer signals, the system selects (e g., randomly samples) a pair of base accelerometer signals, including a first base accelerometer signal and a second, different base accelerometer signal. The system generates a transformed version of the first base accelerometer signal, e.g., by randomly sampling a transformation from the space of transformations, and applying the transformation to the first base accelerometer signal. The system generates a transformed version of the second base accelerometer signal, e.g., by randomly sampling a transformation from the space of transformations, and applying the transformation to the second base accelerometer signal. The transformed versions of the first and second base accelerometer signals jointly define the negative pair of accelerometer signals. The system may select the identity transformation for either the first or second base accelerometer signal, such that the negative pair of accelerometer signals includes base accelerometer signals (rather than modified accelerometer signals).
[0133] The system generates one or more negative pairs of embeddings (610). In particular, for each negative pair of accelerometer signals, the system processes the first accelerometer signal using the encoder subnetwork to generate an embedding of the first accelerometer signal, and the system processes the second accelerometer signal to generate an embedding of the second accelerometer signal. The embedding of the first accelerometer signal and the embedding of the second accelerometer signal jointly define a negative pair of embeddings.
[0134] The system trains the encoder subnetwork to optimize an auxiliary’ contrastive loss that depends on the positive pairs of embeddings and the negative pairs of embeddings (612). More specifically, the auxiliary loss can, for each pair of embeddings, measure an error (e.g., a Euclidean distance) between the first embedding and the second embedding. In particular, for each positive pair of embeddings, the auxiliary' loss can encourage a higher similarity between the first embedding and the second embedding. For each negative pair of embeddings, the
auxiliary loss can encourage a lower similarity between the first embedding and the second embedding.
[0135] FIG. 7 is a flow diagram of an example process 700 for pre-training the encoder subnetwork of the classification neural network to perform a masked reconstruction task. For convenience, the process 700 will be described as being performed by a system of one or more computers located in one or more locations. For example, a training system, e.g., the training system 500 of FIG. 5. appropriately programmed in accordance with this specification, can perform the process 700. The training system can iteratively perform the steps of the process 700 as part of pre-training the encoder subnetwork.
[0136] The system obtains an accelerometer signal (702).
[0137] The system generates a masked accelerometer signal by masking a portion of the accelerometer signal (704). The system can mask a portion of the accelerometer signal by replacing a portion of the accelerometer signal with default data, e.g., predefined values (e.g., zero values) or random noise (e.g., sampled from a Normal distribution). The system can randomly select the portion of the accelerometer signal to be masked.
[0138] The system processes the masked accelerometer signal using the encoder subnetwork to generate an embedding of the masked accelerometer signal (706).
[0139] The system processes the embedding of the masked accelerometer signal using a decoder neural network to generate a predicted reconstruction of the accelerometer signal (708). The decoder neural network can have any appropriate neural network architecture that enables the decoder neural network to generate a predicted reconstruction of an accelerometer signal. In particular, the decoder neural network can include any appropriate ty pes of neural network layers (e.g., convolutional layers, recurrent layers, attention layers, fully connected layers, etc.) in any number (e.g., 5 layers. 10 layers, or 50 layers) and in any appropriate configuration (e.g., as a linear sequence of layers).
[0140] The system jointly trains the encoder subnetwork and the decoder neural network to optimize an auxiliary reconstruction loss that measures an error in the predicted reconstruction of the accelerometer signal (710). The error can be measured, e.g.,
error, or as an L2 error, or using any other appropriate error metric.
[0141] FIG. 8 is a flow diagram of an example process 800 for pre-training the encoder subnetwork of the classification neural network to perform a noisy reconstruction task. For convenience, the process 800 will be described as being performed by a system of one or more computers located in one or more locations. For example, a training system, e.g., the training system 500 of FIG. 5, appropriately programmed in accordance with this specification, can
perform the process 800. The training system can iteratively perform the steps of the process 800 as part of pre-training the encoder subnetwork.
[0142] The system obtains an accelerometer signal (802).
[0143] The system generates a noised accelerometer signal by adding noise the accelerometer signal (804). The system can sample the noise from a predefined probability distribution, e.g., a Normal distribution.
[0144] The system processes the noised accelerometer signal using the encoder subnetwork to generate an embedding of the noised accelerometer signal (806).
[0145] The system processes the embedding of the noised accelerometer signal using a decoder neural network to generate a predicted de-noised accelerometer signal, i.e.. a predicted reconstruction of the original (de-noised) accelerometer signal (808). The decoder neural network can have any appropriate neural network architecture that enables the decoder neural network to generate a predicted de-noised accelerometer signal. In particular, the decoder neural network can include any appropriate types of neural network layers (e.g., convolutional layers, recurrent layers, attention layers, fully connected layers, etc.) in any number (e.g., 5 layers, 10 layers, or 50 layers) and in any appropriate configuration (e.g.. as a linear sequence of layers).
[0146] The system jointly trains the encoder subnetwork and the decoder neural network to optimize an auxiliary de-noising loss that measures an error in the de-noised accelerometer signal (810). More specifically, the auxiliary de-noising loss can measure an error between: (i) the original accelerometer signal, and (ii) the predicted de-noised accelerometer signal. The error can be measured, e.g., as
error, or as an L2 error, or using any other appropriate error metric.
[0147] FIG. 9 is a flow diagram of an example process 900 for pre-training the encoder subnetwork of the classification neural network to perform a supervised auxiliary task. For convenience, the process 900 will be described as being performed by a system of one or more computers located in one or more locations. For example, a training system, e.g., the training system 500 of FIG. 5. appropriately programmed in accordance with this specification, can perform the process 900. The training system can iteratively perform the steps of the process 900 as part of pre-training the encoder subnetwork.
[0148] The system obtains: (i) an accelerometer signal, and (ii) a target label for the accelerometer signal (902). In some implementations, the target label for the accelerometer signal defines a number of steps taken by the subject in a duration of time covered by the accelerometer signal. In some implementations, the target label for the accelerometer signal
defines an action performed by the subject in a duration of time covered by the accelerometer signal.
[0149] The system processes the accelerometer signal using the encoder subnetwork to generate an embedding of the accelerometer signal (904).
[0150] The system processes the embedding of the accelerometer signal using a prediction neural network to generate a prediction output that characterizes a predicted label for the accelerometer signal (906). In some implementations, the prediction output directly defines the predicted label. In some implementations, the prediction output defines a score distribution over a set of possible labels.
[0151] The system jointly trains the encoder subnetwork and the prediction neural network to optimize an auxiliary supervised loss that measures an error between: (i) the target label, and (ii) the prediction output characterizing the predicted label (908). The auxiliary supervised loss can measure the error, e.g., as a cross-entropy error, or as a squared error.
[0152] FIG. 10 is a flow diagram of an example process 1000 for training the classification neural network to perform a tremor classification task. For convenience, the process 1000 will be described as being performed by a system of one or more computers located in one or more locations. For example, a training system, e.g., the training system 500 of FIG. 5, appropriately programmed in accordance with this specification, can perform the process 1000. The training system can iteratively perform the steps of the process 1000 as part of training the classification neural network.
[0153] The system obtains: (i) a training accelerometer signal, and (ii) a target tremor classification for the training accelerometer signal (1002).
[0154] The system processes the training accelerometer signal using the embedding subnetwork to generate an embedding of the training accelerometer signal (1004).
[0155] The system processes the embedding of the training accelerometer signal using the tremor subnetwork to generate a score distribution over the set of tremor classes (1006).
[0156] The system trains the tremor subnetwork of the classification neural network to optimize a tremor objective function that measures an error between: (i) the score distribution over the set of tremor classes, and (ii) the target tremor classification (1008). The tremor objective function can measure the error, e g., as a cross-entropy error.
[0157] The system determines gradients of the tremor objective function, e.g., using backpropagation, and then adjusts the values of the set of parameters of the tremor subnetwork using the gradients by an update rule of an appropriate gradient descent optimization technique, e.g., RMSprop or Adam. That is, the system backpropagates gradients of the tremor objective
function through the tremor subnetwork. In some implementations, the system jointly trains the tremor subnetwork and the encoder subnetwork by backpropagating gradients through the tremor subnetwork and into the encoder subnetwork. In other implementations, the system freezes the parameter values of the encoder subnetwork after pre-training the encoder subnetwork to perform one or more auxiliary tasks, and does not adjust the parameter values of the encoder subnetwork to optimize the tremor objective function.
[0158] FIG. 11 is a flow diagram of an example process 1100 for training the classification neural network to perform a dyskinesia classification task. For convenience, the process 1 100 will be described as being performed by a system of one or more computers located in one or more locations. For example, a training system, e.g., the training system 500 of FIG. 5, appropriately programmed in accordance with this specification, can perform the process 1100. The training system can iteratively perform the steps of the process 1100 as part of training the classification neural network.
[0159] The system obtains: (i) a training accelerometer signal, and (ii) a target dyskinesia classification for the training accelerometer signal (1102).
[0160] The system processes the training accelerometer signal using the embedding subnetwork to generate an embedding of the training accelerometer signal (1 104).
[0161] The system processes the embedding of the training accelerometer signal using the dyskinesia subnetwork to generate a score distribution over the set of dyskinesia classes (1106). |0162| The system trains the dyskinesia subnetwork of the classification neural network to optimize a tremor objective function that measures an error between: (i) the score distribution over the set of dyskinesia classes, and (ii) the target dyskinesia classification (1108). The dyskinesia objective function can measure the error, e.g., as a cross-entropy error.
[0163] The system determines gradients of the dyskinesia objective function, e.g., using backpropagation, and then adjusts the values of the set of parameters of the dyskinesia subnetwork using the gradients by an update rule of an appropriate gradient descent optimization technique, e.g., RMSprop or Adam. That is, the system backpropagates gradients of the dyskinesia objective function through the dyskinesia subnetwork. In some implementations, the system jointly trains the dyskinesia subnetwork and the encoder subnetwork by backpropagating gradients through the dyskinesia subnetwork and into the encoder subnetw ork. In other implementations, the system freezes the parameter values of the encoder subnetwork after pre-training the encoder subnetw ork to perform one or more auxiliary tasks, and does not adjust the parameter values of the encoder subnetwork to optimize the dyskinesia objective function.
[0164] FIG. 12 illustrates an example of experimental results of the classification system in classifying tremors in subjects with Parkinson's disease.
[0165] FIG. 13 illustrates: (i) a wearable device 1302, e.g., worn by a subject with Parkinson's disease; (ii) accelerometer data, generated by an accelerometer in the wearable device, represented as one or more ID temporal signals 1304; and (iii) accelerometer data, generated by an accelerometer in the wearable device, represented as a 2D time-frequency spectrogram 1306.
[0166] This specification uses the term “configured” in connection with systems and computer program components. For a system of one or more computers to be configured to perform particular operations or actions means that the system has installed on it software, firmware, hardware, or a combination of them that in operation cause the system to perform the operations or actions. For one or more computer programs to be configured to perform particular operations or actions means that the one or more programs include instructions that, when executed by data processing apparatus, cause the apparatus to perform the operations or actions. [0167] Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, in tangibly-embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e.. one or more modules of computer program instructions encoded on a tangible non-transitory storage medium for execution by, or to control the operation of, data processing apparatus. The computer storage medium can be a machine- readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them. Alternatively or in addition, the program instructions can be encoded on an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus.
[0168] The term “data processing apparatus” refers to data processing hardware and encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can also be, or further include, special purpose logic circuitry', e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). The apparatus can optionally include, in addition to hardware, code that creates an execution
environment for computer programs, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
[0169] A computer program, which may also be referred to or described as a program, software, a software application, an app, a module, a software module, a script, or code, can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages; and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data, e.g., one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple coordinated files, e.g., files that store one or more modules, sub-programs, or portions of code. A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a data communication network.
[0170] In this specification the term '‘engine” is used broadly to refer to a software-based system, subsystem, or process that is programmed to perform one or more specific functions. Generally, an engine will be implemented as one or more software modules or components, installed on one or more computers in one or more locations. In some cases, one or more computers will be dedicated to a particular engine; in other cases, multiple engines can be installed and running on the same computer or computers.
[0171] The processes and logic flows described in this specification can be performed by one or more programmable computers executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by special purpose logic circuitry, e.g., an FPGA or an ASIC, or by a combination of special purpose logic circuitry and one or more programmed computers.
[0172] Computers suitable for the execution of a computer program can be based on general or special purpose microprocessors or both, or any other kind of central processing unit. Generally, a central processing unit will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a central processing unit for performing or executing instructions and one or more memory' devices for storing instructions and data. The central processing unit and the memory can be supplemented by, or incorporated in, special purpose logic circuitry. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass
storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device, e g., a universal serial bus (USB) flash drive, to name just a few.
[0173] Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e g., EPROM, EEPROM, and flash memon devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
[0174] To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid cry stal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user's device in response to requests received from the web browser. Also, a computer can interact with a user by sending text messages or other forms of message to a personal device, e.g., a smartphone that is running a messaging application, and receiving responsive messages from the user in return.
[0175] Data processing apparatus for implementing machine learning models can also include, for example, special-purpose hardware accelerator units for processing common and computeintensive parts of machine learning training or production, i.e., inference, workloads.
[0176] Machine learning models can be implemented and deployed using a machine learning framework, e.g., a TensorFlow framework, or a Jax framework.
[0177] Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface, a web browser, or an app through which a user can interact with an implementation of the subject matter described in
this specification, or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (LAN) and a wide area network (WAN), e.g., the Internet.
[0178] The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, a server transmits data, e.g., an HTML page, to a user device, e.g., for purposes of displaying data to and receiving user input from a user interacting with the device, which acts as a client. Data generated at the user device, e.g., a result of the user interaction, can be received at the server from the device.
[0179] While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any invention or on the scope of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially be claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
[0180] Similarly, while operations are depicted in the drawings and recited in the claims in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of vanous system modules and components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
[0181] Particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some cases, multitasking and parallel processing may be advantageous.
Claims
1. A method performed by one or more computers, the method comprising: receiving accelerometer data characterizing motion of a subject having Parkinson’s disease; processing the accelerometer data using a tremor classification neural network, in accordance with values of a set of tremor classification neural network parameters, to generate a score distribution over a set of tremor classes, wherein the set of tremor classes comprises multiple tremor classes, wherein each tremor class in the set of tremor classes corresponds to a respective severity of tremor; and classifying a tremor of the subject having Parkinson’s disease based on the score distribution over the set of tremor classes.
2. The method of claim 1, wherein the accelerometer data is generated by a w earable device of the subject.
3. The method of any preceding claim, wherein the accelerometer data is represented as one or more one-dimensional (ID) temporal signals.
4. The method of any one of claims 1-2, wherein the accelerometer data is represented as a two-dimensional (2D) spectrogram signal.
5. The method of any preceding claim, wherein the set of tremor classes comprises at least three tremor classes.
6. The method of any preceding claim, wherein the set of tremor classes corresponds to a clinical tremor scale.
7. The method of any preceding claim, wherein each tremor class in the set of tremor classes corresponds to a respective magnitude, frequency, and duration of tremor.
8. The method of any preceding claim, further comprising receiving video data characterizing motion of the subject; wherein processing the accelerometer data using the tremor classification neural
network comprises: jointly processing the accelerometer data and the video data using the tremor classification neural network.
9. The method of any preceding claim, further comprising receiving surface electromyography (EMG) data characterizing electrical potentials produced during muscle contractions in the subject: wherein processing the accelerometer data using the tremor classification neural network comprises: jointly processing the accelerometer data and the surface EMG data using the tremor classification neural network.
10. The method of any preceding claim, wherein processing the accelerometer data using the tremor classification neural network to generate the score distribution over the set of tremor classes comprises: processing the accelerometer data using a convolutional block, comprising one or more convolutional neural network layers, to generate a convolutional block output; processing the convolutional block output using a recurrent block, comprising one or more recurrent neural network layers, to generate a recurrent block output; and processing the recurrent block output using a dense block, comprising one or more dense neural network layers, to generate the score distribution over the set of tremor classes.
11. The method of claim 10, wherein the convolutional block output has a lower temporal resolution than the accelerometer data.
12. The method of any one of claims 10-11, wherein the recurrent neural network layers are long short-term memory (LSTM) neural network layers.
13. The method of any preceding claim, wherein classifying the tremor of the subject having Parkinson’s disease based on the score distribution over the set of tremor classes comprises: classifying the tremor of the subject into a tremor class associated with a highest score from among the set of tremor classes.
14. The method of any preceding claim, further comprising: repeatedly performing the tremor classification over a sequence of time intervals to generate a sequence of tremor classifications, wherein each tremor classification in the sequence of tremor classifications corresponds to a respective time interval and classifies a tremor of the subject during the time interval.
15. The method of claim 14. further comprising: processing the sequence of tremor classifications to classify a progression of Parkinson’s disease in the subject into a progression state from a set of progression states.
16. The method of claim 15, further comprising: administering a drug for treatment of Parkinson’s disease or symptoms of Parkinson’s disease to the subject based at least in part on the progression state of Parkinson’s disease in the subj ect.
17. The method of any preceding claim, further comprising: generating a notification that indicates the classification of the tremor in the subject having Parkinson’s disease.
18. The method of any preceding claim, wherein processing the accelerometer data using the tremor classification neural network to generate the score distribution over the set of tremor classes comprises: processing the accelerometer data using an encoder subnetwork of the tremor classification neural network to generate an embedding of the accelerometer data in a latent space; and processing the embedding of the accelerometer data in the latent space using a tremor subnetwork of the tremor classification neural netw ork to generate the score distribution over the set of tremor classes.
19. The method of claim 18, further comprising: processing the embedding of the accelerometer data in the latent space using a dyskinesia subnetwork of the tremor classification neural network to generate a score distribution over a set of dyskinesia classes. wherein the set of dyskinesia classes comprises multiple dyskinesia classes.
wherein each dyskinesia class in the set of dyskinesia classes corresponds to a respective severity of dyskinesia.
20. The method of claim 19, further comprising: classifying dyskinesia of the subject having Parkinson’s disease based on the score distribution over the set of dyskinesia classes.
21. The method of any one of claims 18-20, wherein the tremor classification neural network has been trained by operations comprising: pre-training the encoder subnetwork of the tremor classification neural network to perform an auxiliary task, wherein the auxiliary task is not a tremor classification task; and after pre-training the encoder subnetwork, training the tremor classification neural network to perform the tremor classification task.
22. The method of claim 21, wherein pre-training the encoder subnetwork of the tremor classification neural network to perform the auxiliary task comprises: obtaining a base accelerometer signal; generating a positive pair of embeddings in the latent space, comprising: processing a first transformed version of the base accelerometer signal using the encoder subnetwork to generate a corresponding embedding in the latent space; processing a second transformed version of the base accelerometer signal using the encoder subnetwork to generate a corresponding embedding in the latent space; training the encoder subnetwork to optimize an auxiliary' loss that depends on: (i) the embedding of the first transformed version of the base accelerometer signal, and (ii) the embedding of the second transformed version of the base accelerometer signal.
23. The method of claim 22, further comprising generating the first transformed version of the base accelerometer signal, comprising: randomly sampling a first transformation from a space of transformations; and applying the first transformation to the base accelerometer signal to generate the first transformed version of the base accelerometer signal.
24. The method of any one of claims 22-23, further comprising generating the second transformed version of the base accelerometer signal, comprising:
randomly sampling a second transformation from a space of transformations; and applying the second transformation to the base accelerometer signal to generate the second transformed version of the base accelerometer signal.
25. The method of any one of claims 22-24, wherein the auxiliary loss measures an error between: (i) embedding of the first transformed version of the base accelerometer signal, and (ii) the embedding of the second transformed version of the base accelerometer signal.
26. The method of any one of claims 21-25, wherein pre-training the encoder subnetwork of the tremor classification neural network to perform the auxiliary task comprises: obtaining an accelerometer signal; generating a masked accelerometer signal by masking a portion of the accelerometer signal; processing the masked accelerometer signal using the encoder subnetwork to generate an embedding of the masked accelerometer signal; processing the embedding of the masked accelerometer signal using a decoder neural network to generate a predicted reconstruction of the accelerometer signal; and jointly training the encoder subnetwork and the decoder neural network to optimize an auxiliary loss that measures an error in the predicted reconstruction of the accelerometer signal.
27. The method of any one of claims 21-26, wherein pre-training the encoder subnetwork of the tremor classification neural network to perform the auxiliary task comprises: obtaining an accelerometer signal; generating a noised accelerometer signal by adding noise the accelerometer signal; processing the noised accelerometer signal using the encoder subnetwork to generate an embedding of the noised accelerometer signal; processing the embedding of the noised accelerometer signal using a decoder neural network to generate a de-noised accelerometer signal; jointly training the encoder subnetwork and the decoder neural network to optimize an auxiliary loss that measures an error in the de-noised accelerometer signal.
28. The method of any one of claims 21-27, wherein pre-training the encoder subnetwork of the tremor classification neural network to perform the auxiliary task comprises:
obtaining: (i) an accelerometer signal, and (ii) a target label for the accelerometer signal; processing the accelerometer signal using the encoder subnetwork to generate an embedding of the accelerometer signal; processing the embedding of the accelerometer signal using a prediction neural network to generate a predicted label for the accelerometer signal; and jointly training the encoder subnetwork and the prediction neural network to optimize an auxiliary loss that measures an error between: (i) the target label, and (ii) the predicted label.
29. The method of claim 28, wherein the target label for the accelerometer signal defines a number of steps taken by the subject in a duration of time covered by the accelerometer signal.
30. The method of claim 28, wherein the target label for the accelerometer signal defines an action performed by the subject in a duration of time covered by the accelerometer signal.
31. The method of any preceding claim, wherein training the tremor classification neural network to perform the tremor classification task comprises: obtaining: (i) a training accelerometer signal, and (ii) a target tremor classification for the training accelerometer signal; processing the training accelerometer signal using the embedding subnetwork to generate an embedding of the training accelerometer signal; processing the embedding of the training accelerometer signal using the tremor subnetwork to generate a score distribution over the set of tremor classes; and training the tremor subnetwork of the tremor classification neural network to optimize a tremor objective function that measures an error between: (i) the score distribution over the set of tremor classes, and (ii) the target tremor classification.
32. The method of claim 31, wherein parameter values of the encoder subnetwork are frozen during the training of the tremor classification neural network to perform the tremor classification task.
33. A system comprising: one or more computers; and one or more storage devices communicatively coupled to the one or more computers, wherein the one or more storage devices store instructions that, when executed by the one or more computers, cause the one or more computers to perform operations of the respective method of any one of claims 1-32.
34. One or more non-transitory computer storage media storing instructions that when executed by one or more computers cause the one or more computers to perform operations of the respective method of any one of claims 1-32.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202363502033P | 2023-05-12 | 2023-05-12 | |
| PCT/US2024/027768 WO2024238174A1 (en) | 2023-05-12 | 2024-05-03 | Parkinson's tremor classification using machine learning |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4710345A1 true EP4710345A1 (en) | 2026-03-18 |
Family
ID=91276854
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP24729147.9A Pending EP4710345A1 (en) | 2023-05-12 | 2024-05-03 | Parkinson's tremor classification using machine learning |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP4710345A1 (en) |
| CN (1) | CN121153086A (en) |
| WO (1) | WO2024238174A1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN120732373B (en) * | 2025-09-04 | 2026-01-02 | 福建医科大学附属第一医院 | Nerve disease detection and analysis method and system |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050234309A1 (en) * | 2004-01-07 | 2005-10-20 | David Klapper | Method and apparatus for classification of movement states in Parkinson's disease |
| EP4366820A4 (en) * | 2021-07-09 | 2024-11-20 | Cala Health, Inc. | Personalized therapy neurostimulation systems |
| IT202100019793A1 (en) * | 2021-07-26 | 2023-01-26 | Aldo Quattrone | DEVICE AND METHOD FOR THE CHARACTERIZATION OF THE TREMORE OF A LIMB |
| US20230118283A1 (en) * | 2021-10-18 | 2023-04-20 | Shahnaz MIRI | Performing neurological diagnostic assessments |
-
2024
- 2024-05-03 WO PCT/US2024/027768 patent/WO2024238174A1/en not_active Ceased
- 2024-05-03 EP EP24729147.9A patent/EP4710345A1/en active Pending
- 2024-05-03 CN CN202480031808.8A patent/CN121153086A/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| WO2024238174A1 (en) | 2024-11-21 |
| CN121153086A (en) | 2025-12-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Merlin Praveena et al. | Deep learning techniques for EEG signal applications–a review | |
| KR102197112B1 (en) | Computer program and method for artificial neural network model learning based on time series bio-signals | |
| Kaur et al. | Artificial intelligence in epilepsy | |
| Du et al. | Deep learning-based mental health monitoring scheme for college students using convolutional neural network | |
| KR102208759B1 (en) | Method for generating deep-learning model for diagnosing health status and pathology symptom based on biosignal | |
| Creagh et al. | Interpretable deep learning for the remote characterisation of ambulation in multiple sclerosis using smartphones | |
| Wang et al. | A survey of disease progression modeling techniques for Alzheimer's diseases | |
| Zou et al. | Sequence modeling of passive sensing data for treatment response prediction in major depressive disorder | |
| CN120051833A (en) | Artificial intelligence systems and methods for prognosis evaluation of autoimmune diseases | |
| Javed et al. | Enhancing chronic disease prediction in IoMT-enabled Healthcare 5.0 using deep machine learning: Alzheimer’s disease as a case study | |
| Cambay et al. | QuadTPat: Quadruple Transition Pattern-based explainable feature engineering model for stress detection using EEG signals | |
| Roncero-Parra et al. | Inter-hospital moderate and advanced Alzheimer's disease detection through convolutional neural networks | |
| Aanjankumar et al. | Prediction of malnutrition in kids by integrating ResNet-50-based deep learning technique using facial images | |
| Benabderrahmane et al. | A novel multi-modal model to assist the diagnosis of autism spectrum disorder using eye-tracking data | |
| Ismail et al. | Multivariate multi-step deep learning time series approach in forecasting Parkinson's disease future severity progression | |
| Obayya et al. | A novel automated Parkinson’s disease identification approach using deep learning and EEG | |
| Yang et al. | More to Less (M2L): Enhanced health recognition in the wild with reduced modality of wearable sensors | |
| Adnan et al. | Unmasking Parkinson's Disease with Smile: An AI-enabled Screening Framework | |
| Dhandapani et al. | Hybrid deep learning framework for heart disease prediction using ECG signal images | |
| WO2024238174A1 (en) | Parkinson's tremor classification using machine learning | |
| Sadruddin et al. | Issues and challenges in detecting mental stress from multimodal data using machine intelligence | |
| Li et al. | An Assisted Diagnosis of Alzheimer's Disease Incorporating Attention Mechanisms Med-3D Transfer Modeling. | |
| CN120183663A (en) | A personalized health management information recommendation method, system and electronic device | |
| Abd El-Khalek et al. | XV-AMD: An Explainable Vision Transformer Detection Framework for Age-Related Macular Degeneration Using Fundus Imaging | |
| KR102208760B1 (en) | Method for generating video data for diagnosing health status and pathology symptom based on biosignal |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20251212 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR |