Machine learning model domain adaptation for time series data
By identifying the transition point and clustering of time series data on the edge device, generating pseudo-labels for self-supervised training, the data scarcity and resource limitation problems of unsupervised domain adaptation on the edge device are solved, and the domain of the model is improved Adaptability.
Patent Information
- Application Number
- CN202410934048.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-07-12
- Filing Date
- 2024-07-12
- Publication Date
- 2025-01-14
AI Technical Summary
The prior art is difficult to achieve unsupervised domain adaptation on edge devices, especially due to data scarcity and resource limitations, and it is impossible to effectively solve the domain offset problem in time series data.
By analyzing unlabeled time series data, identifying transformation points and dividing them into segments, identifying features piece by piece and clustering, generating pseudo-labels for self-supervised training, used to tune machine learning without source data required Model.
Self-supervised training of machine learning models on resource-constrained edge devices is realized, reducing dependence on labeled data, improving the model's adaptability in domain offset situations, and reducing the need for storage and network bandwidth.
Smart Images

Figure CN119312109A_ABST
Abstract
Description
Technical Field
[0001] Examples of the present disclosure relate to machine learning model domain adaptation for time series data. Background Art
[0002] Machine learning models can usefully label data. However, domain (or distribution) shift in the input data causes shift in the data.
[0003] Domain (or distribution) shifts are caused by various uncontrollable factors such as changes in hardware components, environmental conditions, human behavior, etc. Due to these shifts, the performance may be severely degraded.
[0004] Existing solutions to the domain shift problem typically consider methods such as transfer learning, which retrains certain parts of the model (such as the last few layers) in a supervised manner to adapt to data from the new domain during deployment. However, applying transfer learning solutions is difficult to implement in practice because: training the model may be impossible due to data scarcity and the need for labeled data.
[0005] Unsupervised domain adaptation can overcome the need for labeled data. An adversarial domain discriminator is used to understand the shift that occurs between the source data used to initially train the model in a controlled setting and the offset data obtained during deployment. However, access to the source data (i.e., training time data) is required to learn this shift. This is a very challenging requirement, especially for edge devices such as smartphones, which may have limited storage capacity and network bandwidth.
[0006] It is desirable to provide domain adaptation in a manner designed for time series data and to provide deployment on resource-constrained edge devices. Summary of the invention
[0007] According to various but not necessarily all examples, there is provided an apparatus for labeling a time series of unlabeled data for self-supervised training of a machine learning model, the apparatus comprising means for:
[0008] (i) analyzing the time series of the unlabeled data to identify transition points where there is a change in the time series of the unlabeled data exceeding a defined threshold;
[0009] (ii) dividing the time series of unlabeled data into segments at transition points;
[0010] (iii) identifying multiple features in the time series of unlabeled data;
[0011] (iv) Clustering of the identified features is performed segment by segment to provide labels for the segments segment by segment.
[0012] In some but not necessarily all examples, the apparatus is configured for labeling time series of unlabeled data for self-supervised training of a machine learning model under memory constraints, and also includes components for storing the time series of unlabeled data and labels of the labeled segments in a memory.
[0013] In some but not necessarily all examples, the apparatus is configured to compensate for sensor field drift during deployment.
[0014] In some but not necessarily all examples, the means for analyzing the time series of unlabeled data to identify transition points where there is a change in the time series of the unlabeled data that exceeds a defined threshold further includes means for:
[0015] Sampling the time series of unlabeled data to create a series of non-overlapping samples;
[0016] determining the statistical distribution for each sample;
[0017] The statistical distributions of adjacent samples are compared to identify transition points where there is a change in the statistical distributions of adjacent samples that exceeds a defined threshold.
[0018] In some, but not necessarily all, examples, the threshold is a statistical measure of entropy for a multivariate distribution.
[0019] In some but not necessarily all examples, means for identifying a plurality of features in a time series of unlabeled data further comprises means for converting the time series of unlabeled data into parameters and identifying features using the parameters, wherein the features are distinct sets of parameters.
[0020] In some but not necessarily all examples, means for identifying features using the parameters further comprises means for identifying as features discrete clusters in a vector space spanned by the parameters.
[0021] In some but not necessarily all examples, the time series of unlabeled data is data generated by one or more sensors, and wherein the features are features configured for the one or more sensors to distinguish the sensor data.
[0022] In some but not necessarily all examples, the apparatus includes components for training a machine learning model using the segmented time series of unlabeled data and the labels of the labeled segments.
[0023] In some but not necessarily all examples, the apparatus includes components for retuning the machine learning model at runtime without using source data that was used to initially train the machine learning model.
[0024] In some but not necessarily all examples, the machine learning model is a multi-task machine learning model that is trained to produce two task outputs from an input comprising a time series of unlabeled data, the two task outputs comprising an inference output and a retrained output that provides inference labels that label the time series of the input unlabeled data.
[0025] In some but not necessarily all examples, the apparatus includes components for retraining the machine learning model in the deployment using a loss computed using generated labels for segments of the time series of labeled unlabeled data and inferred labels for the time series of labeled unlabeled data.
[0026] In some but not necessarily all examples, the machine learning model is an artificial neural network (ANN) that includes one or more batch normalization layers, and wherein training the machine learning network includes: fixing parameters of at least one or more hidden layers of the ANN other than the one or more batch normalization layers of the machine learning model, and training the one or more batch normalization layers using the segmented time series of unlabeled data and the labels of the labeled segments.
[0027] In some but not necessarily all examples, the apparatus is configured to train affine parameters of a batch normalization layer using gradient descent.
[0028] In some but not necessarily all examples, the apparatus further includes a dynamic scheduling component for scheduling training of the machine learning model using the labels.
[0029] In some, but not necessarily all, examples, the device is configured as a handheld portable device.
[0030] According to various but not necessarily all examples, there is provided an apparatus for labeling a time series of unlabeled data for self-supervised training of a machine learning model under memory constraints, comprising means for:
[0031] (i) analyzing the time series of the unlabeled data to identify transition points where there is a change in the time series of the unlabeled data exceeding a defined threshold;
[0032] (ii) dividing the time series of unlabeled data into segments at transition points;
[0033] (iii) identifying multiple features in the time series of unlabeled data;
[0034] (iv) performing clustering of the identified features on a segment-by-segment basis to provide labels for the segments on a segment-by-segment basis;
[0035] (iv) Storing the time series of unlabeled data and the labels of the labeled segments in memory.
[0036] According to various but not necessarily all examples, there is provided a method of labeling a time series of unlabeled data for self-supervised training of a machine learning model, the method comprising:
[0037] (i) analyzing the time series of the unlabeled data to identify transition points where there is a change in the time series of the unlabeled data exceeding a defined threshold;
[0038] (ii) dividing the time series of unlabeled data into segments at transition points;
[0039] (iii) identifying multiple features in the time series of unlabeled data;
[0040] (iv) Clustering of the identified features is performed segment by segment to provide labels for the segments segment by segment.
[0041] According to various but not necessarily all examples, there is provided a method of training a machine learning model, the method comprising labeling a time series of unlabeled data for self-supervised training of the machine learning model, wherein the labeling comprises:
[0042] (i) analyzing the time series of the unlabeled data to identify transition points where there is a change in the time series of the unlabeled data exceeding a defined threshold;
[0043] (ii) dividing the time series of unlabeled data into segments at transition points;
[0044] (iii) identifying multiple features in the time series of unlabeled data;
[0045] (iv) Clustering of the identified features is performed segment by segment to provide labels for the segments segment by segment.
[0046] According to various but not necessarily all examples, there is provided an apparatus for labeling a time series of unlabeled data for self-supervised training of a machine learning model to denoise a time series of unlabeled sensor data, the apparatus comprising means for:
[0047] (i) analyzing the time series of the unlabeled data to identify transition points where there is a change in the time series of the unlabeled data that exceeds a defined threshold;
[0048] (ii) dividing the time series of unlabeled data into segments at transition points;
[0049] (iii) identifying multiple features in the time series of unlabeled data;
[0050] (iv) Clustering of the identified features is performed segment by segment to provide labels for the segments segment by segment.
[0051] Examples claimed in the appended claims are provided in accordance with various, but not necessarily exhaustive, examples.
[0052] Although the above examples and optional features of the present disclosure are described separately, it is to be understood that their provision in all possible combinations and arrangements is included in the present disclosure. It is to be understood that various examples of the present disclosure may include any one or all of the features described with respect to other examples of the present disclosure, and vice versa. Moreover, it is to be understood that any one or more or all of the features in any combination may be implemented / included / executable by devices, methods and / or computer program instructions as desired and as the case may be. BRIEF DESCRIPTION OF THE DRAWINGS
[0053] Some examples will now be described with reference to the accompanying drawings, in which:
[0054] Figure 1 An example of an apparatus 100 for labeling a time series of unlabeled data 102 for supervised training of a machine learning model is illustrated;
[0055] Figure 2 An example of a method 200 for labeling a time series of unlabeled data 102 for supervised training of a machine learning model is illustrated;
[0056] Figure 3A , 3B , 3C illustrates a stage in the processing of a time series of unlabeled data 102;
[0057] Figure 4 An example of change point detection is illustrated;
[0058] Figure 5 A further example of the previously described apparatus is illustrated;
[0059] Figure 6 An example of a sensor is illustrated;
[0060] Figure 7 and 9 illustrates an example of initial training of a machine learning model;
[0061] Figure 8 and 10 1 to 12 illustrate an example of retraining in the deployment of a machine learning model;
[0062] Fig.13 An example of a controller suitable for the apparatus 100 is illustrated;
[0063] Fig.14 An example of a computer program suitable for controlling the operation of the apparatus 100 is illustrated.
[0064] The drawings are not necessarily drawn to scale. For the sake of clarity and brevity, certain features and views of the drawings may be shown schematically or exaggerated in scale. For example, the size of some elements in the drawings may be exaggerated relative to other elements to aid in illustration. Similar reference numerals are used in the drawings to designate similar features. For the sake of clarity, not all reference numerals need be shown in all drawings.
[0065] In the following description, reference numbers without subscript indexes (e.g., 10) may be used to refer to categories (or sets), reference numbers with numeric type subscript indexes (e.g., 10_1) may be used to refer to specific instances of categories (members of sets), and reference numbers with variable type subscript indexes (e.g., 10_i) may be used to refer to non-specific instances of categories (members of sets). DETAILED DESCRIPTION
[0066] Figure 1 An example of an apparatus 100 for labeling a time series of unlabeled data 102 for supervised training of a machine learning model is illustrated. The unlabeled data 102 does not have any labels (including ground truth labels or pseudo labels), and the labeling applies pseudo labels.
[0067] Figure 2 An example of a method 200 for labeling a time series of unlabeled data 102 for supervised training of a machine learning model is illustrated. The method 200 may be performed by the apparatus 100. The unlabeled data 102 does not have any labels (including ground truth labels or pseudo labels), and the labeling applies pseudo labels.
[0068] exist Figure 7 and 9 (Original Training) and Figure 8 and 10 An example of training a machine learning model is illustrated in Figures 1 to 12 (Training in Deployment).
[0069] In at least some examples, labeling of the time series of unlabeled data 102 may be described as automatic in the sense that it is performed or may be performed by device 100 without intervention or input from a user of device 100 .
[0070] Supervised training of machine learning model 410 requires labeled training data.
[0071] The time series of unlabeled data 102 is training data. The labeling 200 of the time series of unlabeled data 102 provides labels 160 for the training data. The labels 160 are pseudo labels. The labels are pseudo labels.
[0072] Reference Figure 1, the device 100 includes various components for performing different functions. The term component indicates that the function performed is of primary interest, while the details of the platform that performs the function are of secondary interest. These functions can be performed, for example, using any suitable circuit system, such as controller 800 ( Fig.14 ).
[0073] The apparatus 100 comprises an analysis component 110 for analyzing the time series of the unlabeled data 102 to identify transition points 127 where there is a change in the time series of the unlabeled data 102 exceeding a defined threshold.
[0074] The apparatus 100 comprises a segmentation component 120 for dividing the time series of unlabeled data 102 into segments 128 at transition points 127 .
[0075] The apparatus 100 includes a feature identification component 130 for identifying one or more features, such as a plurality of features, in the time series of the unlabeled data 102 .
[0076] The apparatus comprises a clustering component 140 for performing clustering of identification features segment by segment 128 to provide labels 160 (pseudo-labels) for the segments 128 segment by segment 128 .
[0077] Figure 2 An example of operation of the apparatus 100 is illustrated. The analysis component 110 analyzes the time series of the unlabeled data 102 to identify transition points 127 where there is a change in the time series of the unlabeled data 102 exceeding a defined threshold.
[0078] The segmentation component 120 divides the time series of unlabeled data 102 into segments 128 at transition points 127. The feature identification component 130 identifies one or more features 125 of the time series of unlabeled data 102. The clustering component 140 performs clustering of the identified features 125 segment by segment to provide labels 160 (pseudo labels) for the segments 128 segment by segment.
[0079] Label 160 (pseudo-label) depends on the cluster or clusters determined for segment 128 .
[0080] Figure 3A An example of a time series of unlabeled data 102 is shown. Figure 2 and 3BAs illustrated, the apparatus 100 is configured to process a time series of unlabeled data 102 to generate a segmented time series of unlabeled data 102. The segmented time series of unlabeled data 102 includes a series of consecutive non-overlapping segments 128. Each segment 128 includes a portion of the time series of unlabeled data 102. Each portion of the time series of unlabeled data 102 is in only one segment. Each segment 128 has a length L. The length L is the duration of a portion of the time series of unlabeled data 102 included in the segment 128. The length of the segment L can vary between the segments 128.
[0081] The boundary between adjacent segments 128 represents a transition point 127 where there is a detected change in the time series of the unlabeled data 102 that exceeds a defined threshold. In the case where there is a change in the time series of the unlabeled data 102 that exceeds a defined threshold, a transition point 127 and a boundary between segments 128 exist.
[0082] In at least some examples, transition point 127 separates two segments 128 having different entropies and an entropy difference exceeding a threshold. In at least some examples, transition point 127 (segment boundary) separates different quantized entropy states of the time series of unlabeled data 102.
[0083] like Figure 2 and 3C As illustrated, the apparatus 100 is configured to identify one or more features 125 in the time series of unlabeled data 102. The apparatus 100 is configured to identify the features 125 in each segment 128.
[0084] In at least some examples, feature identification is performed for all segments 128, and feature identification is selectively not performed for only some segments 128, and feature identification is not performed for other segments. In some, but not necessarily all, examples, processing for feature identification may be performed for a batch of sequences 128, where the batch includes one or more sequences. In some, but not necessarily all, examples, the batch is processed in a time-series order.
[0085] In some examples, apparatus 100 is configured to identify one or more features 125 , such as a plurality of features 125 , in segment 128 , segment by segment 128 in the time series of unlabeled data 102 .
[0086] The term 'segment-by-segment' refers to performing feature identification individually on the segments 128. It does not necessarily imply a time-sequential processing of the segments 128. In some, but not necessarily all, examples, processing for feature identification may be performed in a time-sequential order.
[0087] In some but not necessarily all examples, feature extraction is performed for all segments 128, and feature extraction is selectively not performed for only some segments 128, and feature extraction is not performed for other segments. In other examples, feature extraction is selectively performed for only some segments 128, and feature extraction is not performed for other segments.
[0088] The apparatus is configured to perform clustering of identification features on a segment-by-segment 128 basis to provide labels 160 (pseudo-labels) for the segments 128 on a segment-by-segment 128 basis.
[0089] The term 'segment-by-segment' refers to performing clustering individually on the segments 128. That is, the segments 128 are processed to find one or more features 125 that are clustered in the cluster 123 for that segment 128.
[0090] The term 'segment-by-segment' does not necessarily imply a time-sequential processing of the segments 128. In some, but not necessarily all, examples, the individual processing of the segments 128 may be performed in a time-sequential order.
[0091] In some but not necessarily all examples, clustering is performed for all segments 128, and clustering is selectively not performed only for some segments 128, and clustering is not performed for other segments. In other examples, clustering is selectively performed only for some segments 128, and clustering is not performed for other segments.
[0092] The resulting clusters 123 provide a 'signature' for the segments 127 which are used as labels 160 (pseudo-labels).
[0093] The term 'segment-wise' means that each segment 128 is individually labeled, ie, each segment 128 has its own label 160 (own pseudo-label). In some examples, all segments 128 are labeled, however, in other examples, not every segment 128 has a label 160 (pseudo-label).
[0094] In some but not necessarily all examples, marking is performed for all segments 128 and only some segments are selectively not marked, and other segments are not marked. In other examples, marking is selectively performed for only some segments 128, and other segments are not marked.
[0095] Figure 4 An example of a segmentation method for analyzing a time series of unlabeled data 102 to identify transition points 127 where there is a change in the time series of unlabeled data 102 exceeding a defined threshold is illustrated. In at least some examples, analysis component 110 of apparatus 100 is configured to perform method 400 .
[0096] The method 400 includes sampling a time series of unlabeled data 102 to create a series of non-overlapping samples in block 402 .
[0097] The method 400 includes determining, in block 404 , a statistical distribution for each sample.
[0098] The method 400 includes comparing the statistical distributions of adjacent samples in block 406 to identify transition points 127 where there is a change in the statistical distributions of adjacent samples that exceeds a defined threshold.
[0099] In at least some examples, the threshold is a statistical measure of entropy for a multivariate distribution.
[0100] In at least some examples, the samples have a time period of tens of ms.
[0101] One way to perform such change point detection can be to compare successive windows of the time series data for distribution changes and assign scores based on known measures such as the Kullback-Leibler divergence or Pearson divergence estimates. Alternatively, a different approach can be chosen by first estimating many change points and then slowly pruning them based on a penalty. In this approach, the larger the penalty, the more sensitive the module will be in detecting any spurious changes.
[0102] In some, but not necessarily all, examples, feature identification component 130 for identifying one or more features 125 of the time series of unlabeled data 102 is configured to identify application-specific features of the time series of unlabeled data 102 .
[0103] In some but not necessarily all examples, the feature identification component 130 for identifying one or more features of the time series of unlabeled data 102 is configured to perform feature identification in parameter space. In this example, the time series of unlabeled data 102 includes parameters or is converted into parameters. Features 125 are distinguishing characteristics of data defined by a set of parameters of the data. Features 125 are represented by discrete clusters in the vector space spanned by the parameters (clusters in parameter space).
[0104] These parameters may be, for example, the main components of the time series of the unlabeled data 102 .
[0105] In at least some examples, features are raw statistics of the data, such as the mean and / or variance.
[0106] In some, but not necessarily all, examples, clustering component 140 is configured to perform constrained clustering of identification features on a segment-by-segment 128 basis. In at least some examples, the clustering is constrained to produce a defined number N of clusters.
[0107] The clusters of segments 128 are ordered based on cluster population. The ordered clusters 123 are identified using identifiers that identify quantitative positions in feature space. Labels 160 (pseudo labels) are provided for the ordered identifiers of the clusters.
[0108] Reference Figure 5 In some but not necessarily all examples, the technical purpose of labeling is to train 622 a machine learning model 410 using supervised learning to model or characterize a time series of unlabeled data 102. This labeling applies pseudo labels 160 and may be referred to as pseudo labeling.
[0109] In some examples, the device 100 additionally includes a training component for training 622 the machine learning model 410, and the device 100 is configured to use labels 160 (pseudo labels) of the markers 200 from the time series of unlabeled data 102 as labeled training data for training the machine learning model 410 using supervised learning.
[0110] In some but not necessarily all examples, the apparatus 100 is memory-constrained and performs the labeling 200 (pseudo-labeling) under the memory constraint. The apparatus 100 is configured to store the time series of unlabeled data 102 and the labels 160 (pseudo-labels) of the segments 128 of the time series of the labeled unlabeled data 102 in the memory 804. In this example, the apparatus 100 additionally includes a storage component 150 for storing the time series of unlabeled data 102 and the labels 160 (pseudo-labels) of the labeled segments 128 in the memory 804.
[0111] The device 100 includes a scheduler 220 for dynamically scheduling in-deployment training 622 of the machine learning model 410. The in-deployment training 622 of the machine learning model 410 depends on the current workload of the device 100. The scheduler can, for example, estimate the time it will take to adapt the machine learning model 410. The scheduler determines when recalibration should be performed based on the current load.
[0112] The time series of unlabeled data 102 may come from any suitable source.
[0113] In at least some examples, analysis component 110 for analyzing the time series of unlabeled data 102 to identify transition points 127 at which there is a change in the time series of unlabeled data 102 that exceeds a defined threshold is configured depending on the source of the time series of unlabeled data 102 .
[0114] In at least some examples, feature identification component 130 for identifying one or more features of the time series of unlabeled data 102 is configured depending on the source of the time series of unlabeled data 102 .
[0115] In at least some examples, for example, Figure 6 As illustrated, the source of the time series of unlabeled data 102 is one or more sensors 500. The time series of unlabeled data 102 is then a time series of unlabeled sensor data.
[0116] In some examples, one or more sensors 500 are separate from device 100. In other examples, some or all of one or more sensors 500 are included in device 100.
[0117] The time series of unlabeled data 102 is data generated by one or more sensors 500. The identified features 125 are features that the sensors 500 are configured to distinguish the sensor data 102.
[0118] An example of sensor 500 is an accelerometer, such as a triaxial accelerometer for measuring acceleration in three orthogonal directions. In this example, transition points 127 can be determined using a measure such as a Pearson divergence estimate or a Kullback-Leibler divergence of the data from the triaxial accelerometer data, and features 125 can be identified using the per-axis mean of the accelerometer data.
[0119] An example of sensor 500 is a microphone. In this example, the distribution change of the acoustic data collected from the microphone can be used to determine the transition point 127, and the feature 125 can be identified using principle signal processing transforms for audio data, such as Fast Fourier Transform or Mel Frequency Cepstral Coefficients (MFCC).
[0120] Other sensors 500 may be used. For example, any sensor that produces time series data. Some examples are inertial sensors, heart rate sensors, photoplethysmography (PPG) sensors, electrocardiograms (ECG), electroencephalograms (EEG), microphones, position sensors, velocity sensors, acceleration sensors, force sensors, etc.
[0121] In at least some examples, the technical purpose of labeling 200 (pseudo-labeling) is to use supervised learning to train a machine learning model 410 to de-noise the time series of unlabeled sensor data 102. This removes sources of error. In some examples, supervised learning is used to train the machine learning model 410 to compensate for sensor domain shifts during deployment. This de-noises the sensor output by compensating for shifts in the sensor output distribution. Noise / error is a shift in the sensor output distribution.
[0122] The one or more sensors 500 may be, for example, environmental sensors. De-noising is advantageous when the one or more sensors 500 are in an environment that changes dynamically over time, affecting domain shifts of the sensors 500 during use.
[0123] Figure 7 An example of supervised training of a machine learning model 410 is illustrated. This illustrates the original training of the machine learning model 410.
[0124] The machine learning model 410 is initially trained using the time series of data 102, the labels 160 (pseudo labels) of the segments 128 of the time series of labeled data 102, and the supervised labels (ground truth labels) 602 (source data).
[0125] The time series of labeled data 602 includes supervised labels 604 (ground truth labels GTL) and time series of data used by label 200 as the time series of unlabeled data 102 to generate labels 160 (pseudo labels).
[0126] In the illustrated example, the machine learning model 410 is a multi-task machine learning model 410 that is trained to produce two task outputs 611, 612 from an input comprising a time series of unlabeled data 102, the two task outputs 611, 612 comprising a baseline truth inference output 611 and a retrained (retuned) output 612 that provides labels (inference pseudo-labels) that label segments 128 of the input time series of unlabeled data 102.
[0127] The time series of data 602 and the supervised labels 604 (ground truth labels GTL) are used to train 621 the ground truth inference output 611. The time series of data 602 and the generated labels 160 (pseudo labels) are used as input to train 622 the retrained (retuned) output 612.
[0128] Optionally, the time series of data 602 may be preprocessed 631 to identify features optimized for training ground truth inference output 611. Optionally, the time series of data 602 may be preprocessed 632 to identify features optimized for training retrained (retuned) output 612. This preprocessing may be, for example, the same feature identification used in labeling process 200.
[0129] Figure 8 An example of unsupervised (re)training of a machine learning model 410 is illustrated. This illustrates (re)training of a machine learning model 410 in deployment.
[0130] The time series of unlabeled data 102 is provided to the trained machine learning model 410 to produce as output a ground truth inference output 611. The time series of data 102 may optionally be pre-processed 631 to identify features, if this was used during training.
[0131] The time series of unlabeled data 102 is used for labeling 200 to generate labels 160 (pseudo labels).
[0132] The time series of unlabeled data 102 and the generated labels 160 (pseudo labels) are used to partially (re)train the machine learning model 410 based on the retraining (retuning) output 612.
[0133] The time series of unlabeled data 602 may optionally be preprocessed 632 to identify features optimized for training the retrained (retuned) output 612. For example, the preprocessing may be the same feature identification used in the labeling process 200.
[0134] The machine learning model 410 is partially retrained (retuned) when deployed using the segmented time series of unlabeled data 102 and the labels 160 (pseudo labels) of the labeled segments 128. This provides runtime retuning of the machine learning model 410 without using any source data used to originally train the machine learning model 410.
[0135] In deployment, retraining of the machine learning model 410 uses a loss that is calculated using the generated labels 160 (pseudo labels) of the segments 128 of the time series of labeled unlabeled data 102 and the retrained (retuned) labels 612 of the time series of labeled unlabeled data 102.
[0136] In some examples, the machine learning model 410 is an artificial neural network. An artificial neural network (ANN) includes multiple nodes arranged in layers. These layers include an input layer, an output layer, and one or more intermediate layers or hidden layers between the input layer and the output layer. The network has a forward direction from input to output and a reverse direction from output to input.
[0137] The nodes in one layer are individually interconnected to one or more or each of the nodes in the previous layer (if any), and are individually interconnected to one or more or each of the nodes in the following layer (if any). The neural network forms a directed weighted graph. Each node has a weight that determines the strength of the node's influence on the connected nodes in the forward direction.
[0138] In at least some examples, the machine learning model 410 is an artificial neural network (ANN) that includes one or more batch normalization layers.
[0139] A batch normalization layer is a layer that is used to normalize the activation values of the hidden nodes so that the distribution of these activations remains the same during training.
[0140] The batch normalization layer is fed from the node hidden layer. The affine parameters of the batch normalization layer are beta (β) and gamma (γ). These are learnable parameters. The mean moving average and variance moving average are update parameters used during inference.
[0141] For a batch, batch normalization involves computing the mean and variance of the node, normalizing the node output A (subtracting the mean and dividing by the standard (square root of the variance), and then scaling and shifting to obtain the normalized output: γA+β. The moving average is then updated.
[0142] The affine parameters (γ, β) are not hyperparameters (i.e., constants provided by the model designer), but are trainable parameters learned by the ANN. The batch normalization layer can optimally find the best affine parameters, and thus can offset and scale the normalized values to get the best predictions.
[0143] In deployment, retraining (retuning) of the machine learning model 410 includes fixing parameters of at least one or more hidden layers of the ANN 410 except for one or more batch normalization layers of the ANN 410, and training one or more batch normalization layers using the segmented time series of unlabeled data 102 and the labels of the labeled segments 128.
[0144] In at least some examples, for example, Figure 7 As illustrated, the ANN 410 is a multi-task machine learning model that is trained to produce two task outputs from an input including a time series of unlabeled data 102, the two task outputs including a ground truth inference output 611 and a retrained (retuned) output 612 that provides an inference label that labels the input time series of unlabeled data 102. All layers of the ANN are fixed, except for one or more batch normalization layers and a layer at the retrained (retuned) output 612 that provides an inference label that labels the input time series of unlabeled data 102.
[0145] The loss is calculated using the generated labels for the segments 128 of the time series of labeled unlabeled data 102 and the retrained (retuned) inference labels 612 for the segments of the time series of labeled unlabeled data 102. The loss is back-propagated to train one or more batch normalization layers and the layer at the retrained (retuned) output 612, which provides the inference labels for the input time series of labeled unlabeled data 102.
[0146] In at least some examples, apparatus 100 is configured to train affine parameters of a batch normalization layer using gradient descent.
[0147] In the previously described example, retraining (e.g., retuning 622 ( Figure 7 )) is based on labels 160 (pseudo-labels) generated only from a time series of unlabeled data 102. The machine learning model 410 is not used to generate the labels 160 (pseudo-labels) at all. Since the original model is not used to generate the labels 160 (pseudo-labels), there is no need to save a copy of the original model, nor is there a need for extended memory allocation for managing isolated model updates. This improves deployment on resource-constrained devices, such as edge devices, such as mobile phones or other handheld portable devices. There is no need to use the original source data for the original training of the machine learning model, nor is there a need to have labeled deployment (test time) data.
[0148] The machine learning model 410 is fine-tuned based only on the changes in the target domain and is tuned accordingly to the domain shift of the training time series of unlabeled data 102. In some examples, fine-tuning is performed only on the batch normalization layer and the computationally and resource-efficient small task head 612 of the machine learning model 410.
[0149] The described method is optimized for time series data. The method does not use an unadapted (or adapted) model 410 for generating labels 160 (pseudo labels), making it more robust to sharp domain shifts. The method does not use original source training data. The method captures shifts in unsupervised changes within sensor signals to indicate and capture domain shifts. The method uses dynamic segmentation based on change detection and feature clustering within segments to capture and correct domain shifts. The method uses constrained updates to the machine learning model 410. The method maintains calibration to the ground truth reasoning output 611 while adapting, so that even after adaptation, the model can perform well on the ground truth reasoning output 611 after adaptation.
[0150] This method can be used in any practical application that takes time series data as input.
[0151] For example, an application of interest may be performing test time adaptation on a new individual's ECG data (accommodating for heterogeneity across users). Another example may be performing deployment adaptation on audio.
[0152] Fig. 9 An example of supervised training of a machine learning model 410 is illustrated, where the machine learning model 410 is an artificial neural network (ANN). This illustrates the original training of the ANN 410.
[0153] The process is as previously referred to Figure 7 described above and using similar reference numerals.
[0154] Since it is not possible to train the model 410 on a dataset that fully represents all conditions at test time (deployment), any restrictions on how data is collected at the source may be impractical. With this in mind, a principle training regime is proposed that does not require any restrictions on its data source. When training the model 410 in the source domain, there is access to the original ground truth labeled time series data 602, and therefore, the training data can be represented as T train = <x train ,y train >. Where x train is data 102 and y train is the ground truth label (GTL) 604 .
[0155] Change points 127 are identified by determining and classifying changes in the time-spanning series data 102. The first step is to perform unsupervised change point detection on the sensor signal 102 obtained from the data source (i.e., microphone). Mathematically, the change point detection algorithm will detect changes in the distribution on the signal 102 and mark the moment when the distribution changes. The change points define dynamic windows (segments 128) on the data 102.
[0156] The change point detection module 120 performs the task of dividing the time series data into segments 128 (not necessarily of equal size) depending on how the signal changes across time. It is worth noting that since this module 120 will still be in use during test time when the baseline truth labels may not be available, we need to use an unsupervised method to achieve this. One way to perform this change point detection can be to compare consecutive windows of the time series data for distribution changes and assign scores based on known measures such as Kullback-Leibler divergence or Pearson divergence estimates. Alternatively, a different approach can also be selected by first estimating many change points and then slowly pruning them based on a penalty. In this method, the larger the penalty, the more sensitive the module will be in detecting any spurious changes.
[0157] Now, once these change points 127 are calculated, or in other words, the time series data is segmented, the next step is to understand the signal characteristics at these segments 128.
[0158] The apparatus 100 obtains signal-based features 125 from the segments 128 after change point detection. The signal-based features 125 may be principle features like spectrograms (eg acoustic data or radio signals) or any other specific features for a given data modality.
[0159] The signal processing module 130 may be used to extract one or more features 125. The features extracted in this module will depend on the type of signal being processed. For example, if the input signal is audio, the extracted features may be MFCC coefficients, whereas if the input data is from a three-axis accelerometer, the features may be a simple mean of all the individual axes on the individual segments.
[0160] Since this method of detecting changes is unsupervised, it is also important to understand that any number M of changes may be observed in the signal 102, and that M may or may not be equal to N, where N is the number of categories classified by the model 410. Therefore, in order to clearly observe how the changes spread the data 102 into the feature space, we rely on an unsupervised clustering method to cluster the data on the changes into only N clusters 125, and use the cluster index as the pseudo-label 160.
[0161] Once these clusters are completed, the pseudo labels are stored 160. This converts the training data from T train = <x train ,y train >Transform to in It is a pseudo label 160.
[0162] In the illustrated example, the pseudo label 160 is the cluster index from the cluster 125 to which the sample belongs. The true distribution of the signal is given by the true label y of the main task that simply represents what happened at that moment train Compare how ideas change over time.
[0163] Finally, once the transformed training data is obtained, the final step is to train the model 410 in a multi-task manner with two task heads, one for predicting the true training labels y train 611, and another one for predicting pseudo labels 612, which has a joint cross entropy loss from both tasks. This teaches the trained model 410 to understand task-specific information as well as actual changes in the signal distribution over time.
[0164] Fig.10 , 11 12 illustrates an example of unsupervised (re)training of a machine learning model 410, where the machine learning model 410 is an artificial neural network (ANN). This illustrates (re)training of the ANN 410 in deployment.
[0165] The process receives unlabeled test time data 102 and a pre-trained model 410_1 as input and gives an adapted model 410_2 as output. The adapted model 140_2 is applied to provide accurate predictions on unknown unlabeled test data 192.
[0166] Self-supervised training 622 is performed using the pseudo labels 160 from the labeling process 200 and using the time series of unlabeled data 102 , which optionally may have been processed 632 to extract features.
[0167] The scheduler 220 may schedule self-supervised training 622. The scheduling may be based on model architecture information 660 and / or memory requirements 662, for example.
[0168] The task scheduler 220 can schedule the adaptation task based on the current workload of the edge device. It includes a scheduler that calculates the time it takes to recalibrate the model by calculating the number of multiplication and accumulation (MAC) operations combined with empirical observations of the time consumed to update the parameters of the batch normalization layer (because they do not require MAC), and finally calculates the current tasks running on the device to get a schedule for recalibrating the model at test time.
[0169] During deployment, only the Fig. 9 The pre-trained model of the illustrated source) is used without the need for other models. No labeled test time data is required during deployment. Therefore, the model adaptation 622 is completely unsupervised.
[0170] The device 100 has access to unlabeled time series data 102 and can represent the data 102 during the deployment as T test = <x test >.
[0171] exist Fig.11 The pseudo-labeling process 200 is illustrated in more detail in FIG.
[0172] The analysis component 110 analyzes the time series of the unlabeled data 102 to identify transition points 127 where there is a change in the time series of the unlabeled data 102 that exceeds a defined threshold. The analysis component 110 performs unsupervised change point detection. This produces segments in the signal 102 with intra-segment semantic similarities in time and inter-segment semantic differences across time.
[0173] Segmentation component 120 divides the time series of unlabeled data 102 into segments 128 at transition points 127 .
[0174] The signal processing component and feature identification component 130 identifies one or more features in the time series of unlabeled data 102. The signal-based features 125 may be principle features (such as spectrograms for acoustic data) or any other specific features for a given data modality.
[0175] The clustering component 140 performs clustering of the identification features 125 on a segment-by-segment basis to provide pseudo labels 160 for the segments 128 on a segment-by-segment basis. Clustering identifies other similar activities across the data 102 in an unsupervised manner. The clustering component 140 clusters the features 125 in an unsupervised manner and stores the cluster index as the pseudo labels 160. This step transforms the unlabeled test time data 102 with the pseudo labels 160 and can be represented as in It is a pseudo label 160.
[0176] This is used to adapt the pre-trained model 410_1 using self-supervised training 622.
[0177] exist Fig.12 In the illustrated example, the trained model 410 does not rely entirely on the self-supervised task to adapt itself alone, but is also constrained to ensure that it accurately performs the intended final task.
[0178] Considering that sensors are extremely resource-constrained devices, such as smartphones with limited CPU, memory, and other tasks running in parallel, such recalibration can be extremely expensive. To alleviate this challenge, the present invention proposes a two-step solution:
[0179] First, the proposed recalibration only requires updating the normalization layer 412 and task head 414 of the batch of ANN 410 to predict with cross entropy loss The pseudo labels 612 of ANN 410 are obtained by performing the following operations. Except for these two partitions of ANN 410, it freezes all other layers of ANN 410 and all other weights of the task head dedicated to predicting the true labels.
[0180] Consider an industrial warehouse where delivery of goods is accomplished using a target-based delivery system where a smartphone is used as the control device to voice-control the capture of targets.
[0181] Considering the infrastructure provider of the target, the training model 410 uses data collected through some smartphones X. In this case, typical acoustic data can be captured at a sampling rate of 16 to 44kHz using 16-bit encoding and single-channel audio. The data captured in this case will contain different keywords such as up, left, right, down, stop and forward (N=6), which will be used to control the movement of the target. The infrastructure provider collects this audio data in a continuous form from multiple participants using the same device X in a controlled manner. However, the infrastructure provider understands that during test time (use), the warehouse staff can use any smartphone that may introduce hardware heterogeneity. This hardware heterogeneity will be caused, for example, by hardware components such as analog-to-digital converters (ADCs), which may be different for different manufacturers. In this scenario, the current method allows the infrastructure provider to manage hardware heterogeneity. As described above, the machine learning model is fine-tuned at test time (deployment) without access to the training data.
[0182] The details are as follows:
[0183] Refer to the following Figure 7 and 9 Describe the steps followed by the infrastructure provider for model development.
[0184] First, the audio data 102 is divided into windows of fixed duration (e.g., 2 seconds) and used to obtain a spectrogram using a short-term Fourier transform (STFT). The spectrogram image is then used 621 as training data 102 along with true ground truth labels 604. The true ground truth labels 604 here would be the keywords mentioned above (e.g., up, left, right, down, stop, and go).
[0185] In addition, the audio data 102 is passed through an unsupervised change point detection algorithm 110 to segment 120 the audio data 102 into segments 128 based on changes present in the audio data 102. It is worth noting that these segments 128 may or may not have equal lengths L.
[0186] One option is to perform such change detection by first dividing the audio into small windows of duration t (e.g., 50 ms), and then measuring the distribution change over the windows. If the distribution change is above some predefined threshold, then a segment 128 will be made in the audio stream 102. If not, then it is considered to be part of the same distribution, and no segment 128 will be created. Thus, the smallest window after this process will have a duration equal to t.
[0187] Once these change points are detected 127, and the audio data 102 is segmented 120 based on these changes, each segment 128 is passed through a signal processing unit 130 to calculate, for example, Mel-frequency cepstral coefficients (MFCCs). For example, that is, the audio is divided into n segments. We will then calculate MFCCs for each of these n segments. However, since n may or may not be equal to N. The next process is to perform k-means clustering 140 on the MFCC data obtained from the segments 128, where k=n.
[0188] After this step, each segment 128 in the segments 128 will now have a cluster index (also referred to as a pseudo label 160). For example, the first segment 128_1 may be clustered into cluster 1 based on its MFC coefficient.
[0189] Based on this, cluster indices for the second training dataset are also created 632, where the data is a Short Time Fourier Transform (STFT) image of the audio data 102, however, the reference truth labels are pseudo labels 160 (the indices will be integer ids such as 0 to 5).
[0190] Using these two training data, the infrastructure provider trains a Visual Geometry Group 16-layer model (VGG-16) as an encoder (or feature extractor) with two output heads. The purpose of one of the first output heads is to predict the true ground truth reasoning label 611 (keyword). On the other hand, the second output head will be used to predict the pseudo label 612. These output heads will share the entire VGG-16 network 410 as their feature extractor, and the models will be trained 621, 622 using the cross entropy loss backpropagated from the two heads optimized by the Adaptive Moment Estimation (Adam) optimizer, which adapts the learning rate of each parameter based on its historical gradient and momentum.
[0191] Once the model 410 is trained, the model with its head will be installed as a part of the keyword spotting application on the smartphones of different workers in the warehouse.
[0192] Refer to the following Fig.12 Describe the steps followed at the edge device (worker smartphone).
[0193] When installing the application, the back-propagation layers of the VGG-16 encoder 410 together with the second output head for pseudo labels 612 will be unfrozen, i.e., these layers can still be retrained during the deployment phase. Apart from these, the remaining layers of the VGG-16 encoder 410 and the first output head for ground truth inference labels 611 will be fixed and cannot be retrained on the device during deployment.
[0194] Source-free adaptation now happens during deployment. Adaptation is done on the device without any human intervention. Moreover, it requires neither real ground truth labeled test time data nor any access to training data collected earlier by the infrastructure provider. The adaptation process happens as follows.
[0195] Continuous unlabeled audio data 102 is captured on the device at the same prefix sampling rate, encoding, and channel settings at the test time. The scheduler 220 proposes a schedule for performing the adaptation depending on the current load of the device 100 and the resources available on the device 100. For example, the scheduler 220 may investigate the number of MAC operations required for the adaptation of the unfrozen layers of the deployed model and the current workload on the smartphone, and suggest an optimal time to perform the adaptation during the middle of the night when the phone 110 is charging.
[0196] During the adaptation phase, the original unlabeled audio data 102 is first passed through an unsupervised change point detection algorithm 110. Based on the changes observed in the signal 102, the audio data 102 is segmented 120 into p segments 128. The algorithm works in the same manner as during the training phase in that it requires neither any human intervention nor any real reference truth labeled data.
[0197] Next, MFCC features are calculated 130 for each of the p segments 128. The MFCC vectors are used to cluster 140 the p segments into N clusters, where N=6 is the number of keywords detected by the application.
[0198] For example, if there are 6 keywords to be detected, each segment is clustered into one of the 6 categories using the MFCC features calculated from the segment.
[0199] Once the clustering process 130 is completed, each segment 128 is assigned a cluster index, depending on which cluster 123 it belongs to, which is used as a pseudo label 160 for the segment 128. That is, for example, the cluster index 0 is assigned to the fourth segment 128_4, and then the pseudo label 160_4 of the corresponding data of the fourth segment is assigned to 0.
[0200] In parallel, the original audio 102 is also windowed to the same window length used during the training phase (ie, 2 seconds here as well), and 632 spectrogram images are obtained using STFT.
[0201] The spectrogram image 102 together with the pseudo labels 160 obtained after the change detection followed by the clustering step are used to create a pseudo dataset which is used to fine-tune 622 the unfrozen layers of the overall model 410 .
[0202] For example, in this application, the dataset will be used to update the affine parameters of the batch normalization layer of the VGG-16 encoder 410 and the weights of one fully connected layer of the second output head of the pseudo-labels 612 used as the entire model 410. To achieve this, the second output head of the pseudo-labels 612 will backpropagate the gradients it observes after predicting the pseudo-labels 612 and estimating the errors using the cross entropy loss optimized with the Adam optimizer.
[0203] Once adaptation 622 is complete, the application will use the keyword predictions 611 made by the first output head of the model 410 to control the targets in the warehouse.
[0204] Training the model 410 with the first head reference truth (pseudo labels 612 ) does not significantly impair the operation of the first head reference truth inference output 611 .
[0205] The described method achieves a 30% improvement which is achieved with low processing on the head.
[0206] In another example, the machine learning model 410 is a human activity recognition (HAR) model. The model architecture can be as described in "A Systematic Study of Unsupervised Domain Adaptation for Robust Human-Activity Recognition" by Chang et al. (Technology Volume Issue Article Number 39 Pages 1 to 30 https: / / doi.org / 10.1145 / 3380985), and the ML model 410 is a convolutional neural network (CNN) with a shared encoder.
[0207] The first head for Task 1 (Inference) is a true label classifier and consists of two dense layers followed by a Softmax layer. The second head for Task 2 (Domain Shift Adaptation) is a pseudo label classifier and consists of a Softmax layer. The true labels are 7 physical activity categories - climbing up and down stairs, jumping, lying down, standing, sitting, running / jogging, and walking.
[0208] Fig.13 An example of a controller 800 suitable for use with the device 100 is illustrated. Implementations of the controller 800 may be as controller circuitry. The controller 800 may be implemented solely in hardware, have certain aspects in software including firmware solely, or may be a combination of hardware and software (including firmware).
[0209] like Fig.13As illustrated, the controller 800 may be implemented using instructions that enable hardware functionality, such as by using executable instructions of a computer program 806 that may be stored in a general or special purpose processor 802 on a computer readable storage medium 804 (disk, memory, etc.), which is connected to the processor 802 and executed by such processor 802.
[0210] The processor 802 is configured to read from and write to the memory 804. The processor 802 may also include an output interface via which data and / or commands are output by the processor 802 and an input interface via which data and / or commands are input to the processor 802.
[0211] The memory 804 stores a computer program 806, which includes computer program instructions (computer program code) that control the operation of the device 100 when loaded into the processor 802. The computer program instructions of the computer program 806 provide logic and routines that enable the device to perform the methods illustrated in the accompanying drawings. By reading the memory 804, the processor 802 can load and execute the computer program 806.
[0212] The apparatus 100 comprises:
[0213] at least one processor 802; and
[0214] at least one memory 804 including computer program code;
[0215] The at least one memory 804 and the computer program code are configured to, together with the at least one processor 802, cause the apparatus 100 to at least perform:
[0216] (i) analyzing the time series of the unlabeled data to identify transition points where there is a change in the time series of the unlabeled data exceeding a defined threshold;
[0217] (ii) dividing the time series of unlabeled data into segments at transition points;
[0218] (iii) identifying one or more features, such as multiple features, in the time series of unlabeled data;
[0219] (iv) Clustering of identification features is performed segment by segment to provide labels for the segments segment by segment.
[0220] The apparatus 100 comprises:
[0221] at least one processor 802; and
[0222] at least one memory 804 including computer program code,
[0223] The at least one memory stores instructions that, when executed by the at least one processor 802, cause the apparatus to at least:
[0224] (i) analyzing the time series of the unlabeled data to identify transition points where there is a change in the time series of the unlabeled data exceeding a defined threshold;
[0225] (ii) dividing the time series of unlabeled data into segments at transition points;
[0226] (iii) identifying one or more features, such as multiple features, in the time series of unlabeled data;
[0227] (iv) Clustering of identification features is performed segment by segment to provide labels for the segments segment by segment.
[0228] like Fig.14 As illustrated, the computer program 806 may arrive at the apparatus 100 via any suitable delivery mechanism 808. The delivery mechanism 808 may be, for example, a machine-readable medium, a computer-readable medium, a non-transitory computer-readable storage medium, a computer program product, a memory device, a recording medium such as a compact disk read-only memory (CD-ROM) or a digital versatile disk (DVD) or a solid-state memory, an article of manufacture that includes or tangibly embodies the computer program 806. The delivery mechanism may be a signal configured to reliably transmit the computer program 806. The apparatus 100 may propagate or send the computer program 806 as a computer data signal.
[0229] The computer program instructions are used to cause the apparatus to at least perform the following operations or to perform at least the following operations:
[0230] (i) analyzing the time series of the unlabeled data to identify transition points where there is a change in the time series of the unlabeled data exceeding a defined threshold;
[0231] (ii) dividing the time series of unlabeled data into segments at transition points;
[0232] (iii) identifying one or more features, such as multiple features, in the time series of unlabeled data;
[0233] (iv) Clustering of identification features is performed segment by segment to provide segment labels segment by segment.
[0234] The computer program instructions may be included in a computer program, a non-transitory computer readable medium, a computer program product, a machine readable medium. In some but not necessarily all examples, the computer program instructions may be distributed over more than one computer program.
[0235] Although memory 804 is illustrated as a single component / circuitry, it may be implemented as one or more separate components / circuitry, some or all of which may be integrated / removable and / or may provide permanent / semi-permanent / dynamic / cached storage.
[0236] Although processor 802 is illustrated as a single component / circuitry, it may be implemented as one or more separate components / circuitry, some or all of which may be integrated / removable.Processor 802 may be a single-core or multi-core processor.
[0237] References to 'computer-readable storage medium', 'computer program product', 'tangibly embodied computer program', etc. or 'controller', 'computer', 'processor', etc. should be understood to cover not only computers with different architectures (such as single / multi-processor architectures and sequential (von Neumann) / parallel architectures), but also special purpose circuits such as field programmable gate arrays (FPGAs), application specific circuits (ASICs), signal processing devices and other processing circuit systems. References to computer programs, instructions, code, etc. should be understood to cover software for a programmable processor or firmware, such as, for example, the programmable content of a hardware device, whether instructions for a processor or configuration settings for a fixed function device, gate array or programmable logic device, etc.
[0238] As used in this application, the term 'circuitry' may refer to one or more or all of the following:
[0239] (a) hardware circuitry-only implementations (such as implementations in analog and / or digital circuitry only); and
[0240] (b) a combination of hardware circuitry and software such as (where applicable):
[0241] (i) a combination of analog and / or digital hardware circuits and software / firmware, and
[0242] (ii) any portion of a hardware processor(s) with software (including digital signal processor(s)), software and one or more memories that work together to enable a device such as a mobile phone or server to perform various functions, and
[0243] (c) Hardware circuit(s) and / or processor(s), such as microprocessor(s) or portion(s) of microprocessor(s), that require software (e.g., firmware) to operate, but which software may not be present when not required for operation.
[0244] This definition of circuitry applies to all uses of the term in this application, including in any claims. As yet another example, as used in this application, the term circuitry would also cover implementations of only hardware circuits or processors and their (or their) accompanying software and / or firmware. For example, and if applicable to a particular claim element, the term circuitry would also cover a baseband integrated circuit for a mobile device or similar integrated circuit in a server, cellular network device, or other computing or network device.
[0245] The illustrated blocks of the accompanying drawings may represent steps in a method and / or code segments in a computer program 806. The illustration of a particular order of blocks does not necessarily imply that the blocks have a required or preferred order, and the order and arrangement of the blocks may be changed. In addition, it is possible that some blocks may be omitted.
[0246] Where a structural feature has been described, it may be replaced by a component for performing one or more of the functions of the structural feature, whether that function or those functions are described explicitly or implicitly.
[0247] In some but not necessarily all examples, device 100 is configured to store data locally or not in memory 804 at device 100 and to transfer data from device 100 with or without processing the data locally by circuitry or a processor at device 100 .
[0248] The data may be stored remotely at one or more devices in a processed or unprocessed format. The data may be stored in the cloud.
[0249] The data may be processed remotely at one or more devices. The data may be processed partially locally and partially remotely at one or more devices.
[0250] For example, data may be wirelessly communicated to a remote device via short-range radio communications such as Wi-Fi or Bluetooth or by long-range cellular radio communications such as 5G (5th generation of the 3rd Generation Partnership Project (3GPP)), 6G, or any other generation. The apparatus may include a communication interface such as, for example, a radio transceiver for data communications.
[0251] The device 100 may be part of an Internet of Things (IoT) forming part of a larger distributed network.
[0252] Whether local or remote, data processing may be used for health monitoring, data aggregation, patient monitoring, vital sign monitoring, or other purposes.Data is received from one or more related sensors, which may reside in the device 100 or may be external sensors.
[0253] Whether local or remote, data processing may generate an output. The output may be delivered to / into the device 100, where it may generate an object-sensitive output, such as an audio output, a visual output, or a tactile output.
[0254] Systems, devices, methods and computer programs can use machine learning that can include statistical learning. Machine learning is a field of computer science that enables computers to learn without explicit programming. If the performance of a computer at a task in T (measured by P) improves with experience E, it learns from experience E relative to a certain class of tasks T and performance measurement P. Computers can usually learn from previous training data to predict future data. Machine learning includes fully or partially supervised learning and fully or partially unsupervised learning. It can enable discrete outputs (e.g., classification, clustering) and continuous outputs (e.g., regression). For example, machine learning can be implemented, for example, using different methods, such as cost function minimization, artificial neural networks, support vector machines, and Bayesian networks. For example, cost function minimization can be used for linear and polynomial regression and K-means clustering. Artificial neural networks (e.g., with one or more hidden layers) model the complex relationship between input vectors and output vectors. Support vector machines can be used for supervised learning. Bayesian networks are directed acyclic graphs that represent the conditional independence of multiple random variables.
[0255] As used herein, 'module' refers to a unit or device that does not include certain parts / components to be added by an end manufacturer or user. The device 100 may be a module.
[0256] The above examples find application as enabling components of: automotive systems; telecommunications systems; electronic systems, including consumer electronics; distributed computing systems; media systems for generating or rendering media content, including audio, visual and audiovisual content and mixed, mediated, virtual and / or augmented reality; personal systems, including personal health systems or personal fitness systems; navigation systems; user interfaces, also known as human-machine interfaces; networks, including cellular, non-cellular and optical networks; ad hoc networks; the Internet; the Internet of Things; virtualized networks; and related software and services.
[0257] According to the examples of the present disclosure, the device can be provided in an electronic device (e.g., a mobile terminal, such as a mobile communication device). However, it should be understood that the mobile terminal is merely an illustration of an electronic device that will benefit from the examples of the embodiments of the present disclosure, and therefore, the scope of the present disclosure should not be limited thereto. Although in some implementation examples, the device can be provided in a mobile terminal, other types of electronic devices, such as but not limited to: mobile communication devices, handheld portable electronic devices, wearable computing devices, portable digital assistants (PDAs), pagers, mobile computers, desktop computers, televisions, gaming devices, laptop computers, cameras, video recorders, GPS devices, and other types of electronic systems can easily adopt the examples of the present disclosure. In addition, the device can easily adopt the examples of the present disclosure, regardless of whether it is intended to provide mobility.
[0258] The term 'comprising' is used in this document in an inclusive rather than exclusive sense. That is, any reference to X including Y indicates that X may include only one Y or may include more than one Y. If the exclusive meaning of 'comprising' is intended, it will be obvious from the context by reference to "including only one..." or by use of "consisting of..."
[0259] In this description, the terms 'connected', 'coupled' and 'in communication' and their derivatives mean operatively connected / coupled / in communication. It should be appreciated that any number or combination of intervening components (excluding intervening components) may be present, i.e., so as to provide a direct or indirect connection / coupling / in communication. Any such intervening components may include hardware and / or software components.
[0260] As used herein, the term "determine / determining" (and grammatical variations thereof) may include, but are not limited to, calculating, computing, processing, deriving, measuring, investigating, identifying, searching (e.g., searching in a table, a database, or another data structure), ascertaining, etc. Furthermore, 'determining' may include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory), obtaining, etc. Furthermore, "determine / determining" may include resolving, selecting, choosing, establishing, etc.
[0261] In this description, reference has been made to various examples. The description of features or functions of an example indicates that those features or functions are present in the example. Whether explicitly specified or not, the use of the term 'example' or 'for example' or 'can' or 'may' in this article means that such features or functions are present at least in the example described, whether or not described as an example, and they may but not necessarily be present in some or all other examples. Therefore, 'example', 'for example', 'can' or 'may' refer to a specific instance in a class of examples. The characteristics of an instance may be characteristics of only the instance or characteristics of the class or characteristics of a subclass of the class (including some but not all instances in the class). Therefore, it is implicitly disclosed that features described with reference to one example rather than with reference to another example can be used as part of a working combination in the other example where possible, without having to be used in the other example.
[0262] Although the examples have been described in the preceding paragraphs with reference to various examples, it should be appreciated that modifications to the examples given can be made without departing from the scope of the claims.
[0263] Features described in the preceding description may be used in combinations other than the combinations explicitly described above.
[0264] Although functions have been described with reference to certain features, those functions may be performable by other features whether described or not.
[0265] Although features have been described with reference to certain examples, those features may also be present in other examples whether described or not.
[0266] The terms 'a', 'an' or 'the' are used in this document in an inclusive rather than exclusive sense. That is, any reference to X that includes a / an / the Y indicates that X may include only one Y or may include more than one Y, unless the context clearly indicates otherwise. If the use of 'a', 'an' or 'the' in an exclusive sense is intended, it will become apparent from the context. In some cases, the use of 'at least one' or 'one or more' may be used to emphasize the inclusive meaning, but the absence of these terms should not be considered to infer any exclusive meaning.
[0267] The presence of a feature (or combination of features) in a claim is a reference to that feature or (combination of features) itself and to features that achieve substantially the same technical effect (equivalent features). Equivalent features include, for example, features that are variations and achieve substantially the same result in substantially the same way. Equivalent features include, for example, features that perform substantially the same function in substantially the same way to achieve substantially the same result.
[0268] In this description, reference has been made to various examples using adjectives or adjective phrases to describe features of the examples. Such descriptions of features of the examples indicate that the features exist in some examples exactly as described, and in other examples substantially as described.
[0269] The above description describes some examples of the present disclosure, however, those of ordinary skill in the art will be aware of possible alternative structures and method features that provide functionality equivalent to the specific examples of such structures and features described above in this document, and for the sake of brevity and clarity, these structures and method features are omitted from the above description. However, the above description should be understood to implicitly include references to such alternative structures and method features that provide equivalent functionality, unless such alternative structures or method features are explicitly excluded in the above description of examples of the present disclosure.
[0270] While an effort has been made to draw attention in the foregoing description to those features regarded as particularly important, it will be appreciated that the applicant may seek protection by way of the claims for any patentable feature or combination of features cited above and / or shown in the accompanying drawings, whether or not emphasis has been placed thereon.
Claims
1. An apparatus for labeling a time series of unlabeled data for self-supervised training of a machine learning model, the apparatus comprising means for: (i) analyzing the time series of unlabeled data to identify transition points where there is a change in the time series of the unlabeled data exceeding a defined threshold; (ii) dividing the time series of unlabeled data into segments at the transition points; (iii) identifying a plurality of features in the time series of unlabeled data; (iv) performing clustering of the identified features on a segment-by-segment basis to provide labels for the segments on a segment-by-segment basis.
2. The apparatus of claim 1, further comprising a component for labeling a time series of unlabeled data for self-supervised training of a machine learning model under memory constraints, comprising: storing the time series of unlabeled data in a memory, and labeling the segments with the labels.
3. An apparatus according to claim 1 or 2, configured to compensate for sensor field drift during deployment.
4. The apparatus of any preceding claim, wherein the means for analyzing the time series of unlabeled data to identify transition points where there is a change in the time series of the unlabeled data exceeding a defined threshold further comprises means for: sampling the time series of unlabeled data to create a series of non-overlapping samples; determining the statistical distribution for each sample; The statistical distributions of adjacent samples are compared to identify transition points where there is a change in the statistical distributions of adjacent samples that exceeds a defined threshold.
5. The apparatus of claim 4, wherein the threshold is a statistical measure of entropy for a multivariate distribution.
6. The apparatus of any preceding claim, wherein the means for identifying a plurality of features in the time series of unlabeled data further comprises: Means for converting the time series of unlabeled data into parameters and identifying the features using the parameters, wherein a feature is a distinct set of parameters.
7. The apparatus of claim 6, wherein the means for identifying the feature using the parameter further comprises: Means for identifying as features discrete clusters in a vector space spanned by the parameters.
8. An apparatus according to any preceding claim, wherein the time series of unlabelled data is data generated by one or more sensors, and wherein the features are features configured for the one or more sensors to distinguish sensor data.
9. The apparatus according to any preceding claim, further comprising: A component for training a machine learning model using the segmented time series of unlabeled data and the labels for labeling the segments.
10. An apparatus according to any preceding claim, comprising: A component for retuning the machine learning model at runtime without using source data that was used to initially train the machine learning model.
11. An apparatus according to any preceding claim, wherein the machine learning model is a multi-task machine learning model, which is trained to produce two task outputs from an input comprising the time series of unlabeled data, the two task outputs comprising an inference output, and a retrained output providing an inference label, wherein the inference label labels the time series of input unlabeled data.
12. The apparatus according to claim 11, further comprising: A component for retraining the machine learning model in deployment using a loss calculated using the generated labels for the segments of the time series of labeled unlabeled data and the inferred labels for the time series of labeled unlabeled data.
13. The apparatus of any preceding claim, wherein the machine learning model is an artificial neural network (ANN) including one or more batch normalization layers, and wherein training the machine learning network comprises: The parameters of at least one or more hidden layers of the ANN except for one or more first batch normalization layers of the machine learning model are fixed, and the one or more first batch normalization layers are trained using the segmented time series of unlabeled data and the labels marking the segments.
14. The apparatus of claim 11, configured to train affine parameters of the batch normalization layer using gradient descent.
15. The apparatus according to any preceding claim, further comprising: A dynamic scheduling component is used to schedule the training of the machine learning model using the labels.
16. A device according to any preceding claim, configured as a hand-portable device.
17. An apparatus for labeling a time series of unlabeled data for self-supervised training of a machine learning model under memory constraints, comprising means for: (i) analyzing the time series of unlabeled data to identify transition points where there is a change in the time series of the unlabeled data exceeding a defined threshold; (ii) dividing the time series of unlabeled data into segments at the transition points; (iii) identifying a plurality of features in the time series of unlabeled data; (iv) performing clustering of the identified features on a segment-by-segment basis to provide labels for the segments on a segment-by-segment basis; (v) storing the time series of unlabeled data and the labels marking the segments in a memory.
18. A method for labeling a time series of unlabeled data for self-supervised training of a machine learning model, the method comprising: (i) analyzing the time series of unlabeled data to identify transition points where there is a change in the time series of the unlabeled data exceeding a defined threshold; (ii) dividing the time series of unlabeled data into segments at the transition points; (iii) identifying a plurality of features in the time series of unlabeled data; (iv) performing clustering of the identified features on a segment-by-segment basis to provide labels for the segments on a segment-by-segment basis.
19. A method of training a machine learning model, the method comprising labeling the time series of unlabeled data for the self-supervised training of the machine learning model, wherein the labeling comprises: (i) analyzing the time series of unlabeled data to identify transition points where there is a change in the time series of the unlabeled data exceeding a defined threshold; (ii) dividing the time series of unlabeled data into segments at the transition points; (iii) identifying a plurality of features in the time series of unlabeled data; (iv) Clustering of the identified features is performed segment by segment to provide labels for the segments segment by segment.
20. An apparatus for labeling a time series of unlabeled data for self-supervised training of a machine learning model to denoise the time series of unlabeled sensor data, the apparatus comprising means for: (i) analyzing the time series of unlabeled data to identify transition points where there is a change in the time series of the unlabeled data exceeding a defined threshold; (ii) dividing the time series of unlabeled data into segments at the transition points; (iii) identifying a plurality of features in the time series of unlabeled data; (iv) Clustering of the identified features is performed segment by segment to provide labels for the segments segment by segment.