Computer implemented method for storing incoming data provided at an input interface and corresponding wearable device
A staged data aggregation scheme with varying compression rates in memory areas optimizes storage in devices with limited capacity by prioritizing recent and relevant data, using machine learning models to enhance efficiency and reliability.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-09-08
- Publication Date
- 2026-03-12
AI Technical Summary
Devices with limited storage capacity face challenges in retaining relevant data due to storage limitations, leading to information loss through compression, and existing methods fail to optimize memory usage while preserving crucial data.
A staged data aggregation scheme with a sequence of memory areas, each with increasing data compression rates, prioritizes storing recent and relevant data losslessly while moving less relevant data to subsequent areas with higher compression, using lossless and lossy methods, including machine learning models to optimize storage efficiency.
This approach effectively manages storage capacity by preserving the most relevant data with minimal loss, ensuring reliable data analysis despite limited space, particularly in wearable devices.
Smart Images

Figure EP2025075394_12032026_PF_FP_ABST
Abstract
Description
[0001] Computer implemented method for storing incoming data provided at an input interface and corresponding wearable device
[0002] Field of the Invention
[0003] The invention relates to methods and systems for storing incoming data provided at an input interface. The methods and systems are based on an implementation of a specific data aggregation scheme that preserves the most relevant data despite limited storage space. The methods and systems can be used in devices with limited storage capacity such as wearable devices, in particular wearable sensor systems.
[0004] Background of the Invention
[0005] Devices with limited storage capacity that receive a stream of input data must discard data when the occupancy of the storage exceeds a maximum capacity. By applying compression algorithms to the data, the amount of data that can be stored is increased. However, at the same time compression can lead to a loss of information that can be valuable or even crucial for further tasks. Thus, simply discarding the oldest or the latest incoming data is usually suboptimal. Therefore, data aggregation schemes for preserving the most relevant data are important.
[0006] For health care monitoring in patients, for example, wearable devices are used. These devices are worn on the body to monitor the wearer’s health data. They use biosensors or human body sensors inserted under the skin to collect different data from the patient, such as heart rate, blood pressure, glucose levels, sleeping patterns, activity, etc. The collected data can be analyzed for correlations between different medical values, e.g., heart rate and activity patterns.
[0007] To allow for a continuing and accurate analysis of the measured data, it is important to continuously store the data on the wearable device despite its limited storage capacity. By means of compression, the memory required for storing the monitored data can be reduced. However, valuable or even crucial sensor information can be lost in this way. For this reason, it is important to lose as little information as possible. Yet, at the same time data needs to be discarded when the occupancy of the storage exceeds a maximum capacity. Therefore, a data aggregation scheme is required that preserves as much relevant data with a data compression rate as low as possible despite limited storage capacity. US 11445908 B2 discloses a compression module that applies multiple compression algorithms to the same data serially or alternatively until a desired data compression rate is achieved. However, relevant information is easily lost by applying one or more compression algorithms. Furthermore, the available memory space is not taken into account when selecting a compression algorithm.
[0008] US 2023 / 024977 A1 discloses a memory management method that reduces the required memory during training of a neural network. Determination tables indicate if intermediate data of a layer used to update parameters of the neural network during training should be deleted (input deletion bit) and where the data should be stored (transfer determination bit - SRAM, DRAM or both). The compression rate of the stored data may increase with the number of training steps of the neural network, since the precision of the data is less relevant with increasing training progress.
[0009] Therefore, it is an objective of the invention to improve the preservation of relevant data in a storage of limited capacity. In particular, it is an objective of the invention to preserve as much data as possible at a data compression rate as low as possible.
[0010] The objectives are achieved by the invention specified in the independent claims. Advantageous embodiments and further developments of the invention are specified in the dependent claims.
[0011] Summary of the invention
[0012] Embodiments of the invention concern computer implemented methods, computer- readable media, computer program products and systems implementing data aggregation schemes in a storage of limited capacity.
[0013] A first embodiment involves a computer implemented method for storing incoming data provided at an input interface. The method comprises: allocating a multitude of different memory areas of specified sizes in a storage, said multitude of memory areas forming a sequence of subsequent memory areas having n > 3 sequence members, wherein the first memory area in the sequence is used for storing data losslessly, and wherein each of the subsequent memory areas is configured for receiving data from the preceding memory area; associating each of the subsequent memory areas with a data aggregation scheme having a data compression rate, which increases according to the position of the subsequent memory area in the sequence; feeding the incoming data to the sequence of memory areas by losslessly storing the incoming data in the first memory area, wherein in case the occupancy of a memory area exceeds a maximum capacity, a portion of the data stored in this memory area is processed using the data aggregation scheme associated with the subsequent memory area and moved to the subsequent memory area, and wherein, in case the occupancy of the last memory area exceeds a maximum capacity, a portion of the data stored in the last memory area is discarded.
[0014] The invention uses a staged data aggregation scheme that allows to handle storage capacity limitations while preserving the most relevant data at a data compression rate as low as possible. To this end, a sequence of memory areas with increasing data compression rate is used such that each memory area preserves data at a different quality level. Incoming data is stored at the lowest possible compression rate. However, if the occupancy of a memory area exceeds a maximum capacity, the least relevant data is compressed and moved to a subsequent memory area that stores data at a lower quality level. The relevance of the data can be determined with respect to different criteria, e.g., the most recent time stamp (newest data). This hierarchical data aggregation scheme secures the most relevant data, e.g., the most recent data, with a high quality and accuracy while keeping the less relevant data at least at a lower quality level in order to handle storage space limitations. In this way, the method according to the invention takes into account the limited storage capacity and increases the reliability of the stored data despite the limited storage capacity, e.g., in case of a wearable device.
[0015] The term “data aggregation scheme” refers to a method that maps data to another representation of the data. A data aggregation scheme can be used to compress data, i.e., to map data to a compressed representation with a higher compression rate. A data aggregation scheme can be lossless or lossy. A lossless data aggregation scheme maps data to a representation without losing information. Thus, the original data can be fully recovered from the representation without an error. A lossy data aggregation scheme maps data to a representation while losing some of the information. Thus, the original data can only be approximately recovered from the representation, i.e., with an error. Data is stored losslessly, if the data is stored in a representation that allows to recover the original data without error. Data is stored lossy, if the data is stored in a representation that only allows to approximately recover the original data, i.e. , with an error.
[0016] The term “data compression rate” refers to the ratio of the number of bits used for representing the data before compression with respect to the number of bits used for representing the data after compression. Thus, the higher the data compression rate the more compressed is the representation of the data.
[0017] The term “compression loss” refers to the deviation of original data from its compressed representation or from a reconstruction of the original data from its compressed representation.
[0018] The term “incoming data” refers to the data received at the input interface. The incoming data can comprise all kinds of data, e.g., sensor data such as one or more medical values, biomarkers or continuous signals, images, audio signals, etc. For example, the incoming data can comprise one or more data streams that continuously provide new data items, e.g., motion, heart rates or glucose levels. Different data streams can be temporally correlated. A sequence of data items can make up a pattern.
[0019] According to an example, the sequence of memory areas comprises at least four different memory areas of specified sizes, or the sequence of memory areas comprises at least five different memory areas of specified sizes. The more memory areas of different sizes are used, the finer the gradation of the quality levels of the stored data can be selected. In this way, the flexibility of the hierarchical data aggregation scheme is increased and can be better adapted to user requirements. At the same time, the usage of the limited storage capacity is optimized.
[0020] In a preferred example, the allocated sizes of the memory areas decrease with their position in the sequence. Thus, the lower the quality of the stored data, the less memory space is reserved. In this way, the quality and reliability of the stored data is increased.
[0021] In an example, the allocated sizes of the subsequent memory areas negatively correlate with the data compression rates of the associated data aggregation schemes. In this way, each subsequent memory area is sufficiently large to accommodate all data stored in the preceding memory area.
[0022] According to an example, at least one of the subsequent memory areas is associated with a data aggregation scheme that comprises a lossless data compression method. A lossless data compression method reduces the required memory space without losing information, i.e., without compression loss. Thus, lossless data compression methods are particularly useful for preserving as much relevant data as possible.
[0023] According to an aspect of the invention, at least one of the subsequent memory areas is associated with a data aggregation scheme that uses a trained machine learning model to transform the data moved to this memory area to a representation of a higher data compression rate. The trained machine learning model is, thus, used for compression. Using a machine learning model for this task decreases the compression loss and increases the data compression rate to a particular extent, since machine learning models automatically derive the most important (and often hidden) relations from training data without a human having to define suboptimal rules by hand. In addition, the machine learning data aggregation scheme is optimally tailored to the specific data that is to be compressed, since it directly learns from training data. Furthermore, the effort is reduced for a user, since the data aggregation scheme is learned automatically and does not have to be selected or optimized by hand. Finally, the runtime of the data aggregation scheme is reduced, since the application of machine learning models during inference is usually very fast, e.g., requiring only a single forward pass in a neural network or a projection to a subspace, etc. In this way, the usage of the limited storage capacity is optimized.
[0024] The trained machine learning model can, for example, comprise one of an encoder - decoder neural network, a dictionary obtained using sparse dictionary learning, a neural network with at least one attention mechanism, a mapping obtained using a subspace method, a mapping obtained using a clustering method.
[0025] In an example, a subsequent memory area is associated with a data aggregation scheme that processes data moved to this subsequent memory area by extracting changes from this data. The extraction of changes from the data allows to minimize the memory space required for storing the data in case of redundant data with few changes such as user activity classes. According to an example, the portion of the data in a memory area that is moved to a subsequent memory area or discarded from the last memory area is selected with respect to a property from the group comprising incoming timestamp, memory requirement, relevance score, compression loss. The selected property defines the relevance (or irrelevance) of the data, since the defined portion of data is moved to a subsequent memory area with increased data compression rate or is discarded from the last memory area. By defining the portion of data with respect to one or more of these properties, the usage of the limited capacity data storage is optimized with respect to some criterion. The incoming timestamp can be used to preserve the most recent data, the memory requirement can be used to store as many different data items as possible by removing the larger ones, the relevance score can be used to preserve the most relevant data with respect to some analysis of the stored data that is to be carried out subsequently, and the compression loss can be used to preserve the most reliable data with minimal compression loss or the data with maximum anticipated compression loss in case it was processed and moved to a subsequent memory area.
[0026] According to an aspect, the portion of data comprises a percentage of the oldest data in the memory area, i.e., a specific percentage of data in the memory area with the oldest incoming timestamp. Thus, the newest data with the most recent incoming timestamp is preserved losslessly, whereas older data is preserved lossy or discarded.
[0027] According to an example, the method further comprises, upon a memory area receiving data, determining relevance scores for the data or subsections thereof. A relevance score measures the relevance of data, a data item or a data sequence, with respect to some further analysis or application. The relevance score can, for example, measure the unusualness of the data, e.g., a sudden change, or it can indicate the presence of a predefined important pattern, or it can measure the frequency of the data in order to reduce the storage of repetitive data, etc. Less relevant data can be further compressed, while more relevant data can be preserved from further compression. Using relevance scores, the storage capacity can be optimally used to store the most meaningful data with respect to a subsequent analysis or application. For example, in case the occupancy of a memory area exceeds a maximum capacity, data with a relevance score above a threshold is excluded from the portion of data being processed and moved to a subsequent memory area or being discarded from the last memory area. In this way, a write protection is activated for particularly relevant data. This data is prevented from being compressed or from being compressed further and / or from being discarded from the storage.
[0028] The relevance score can also be used to pre-select the data that is stored in the storage of limited capacity. In an example, data with a relevance score below a threshold is discarded. Incoming data can be directly discarded before saving it in the first memory area, or data received by a subsequent memory area can be directly discarded before saving it in the subsequent memory area. In this way, storage space is saved for data that is more relevant with respect to a subsequent analysis or application. Thus, the usage of the limited storage capacity is optimized.
[0029] According to an aspect of the invention, the incoming data at the input interface is provided by at least one sensor. The at least one sensor can provide, for example, medical values of a user of a wearable device, in particular of a wearable cardiac motion sensor. For example, the wearable cardiac motion sensor can contain an accelerometer that provides motion data of the heart in three dimensions x, y, z. For example, the wearable cardiac motion sensor can contain a 3-axis gyroscope that provides angular motion data in three dimensions. The wearable cardiac motion sensor can also contain a sensor for measuring oxygen saturation or temperature. The wearable device has a storage of limited capacity. Therefore, a data aggregation scheme according to the invention is beneficial to preserve the most relevant sensor data with as little compression as possible for a subsequent analysis or application.
[0030] According to an example, at least one data aggregation scheme comprises deriving meta data at an increased data compression rate from the received data, e.g., activity classes of a wearer of a wearable device can be derived from motion sensor signals. An activity class can be encoded using very few bits and, thus, achieve a high data compression rate.
[0031] A computer-readable medium according to a further embodiment of the invention stores a computer program executable by a computing device, the computer program comprising code for executing a computer implemented method according to the first embodiment of the invention described above.
[0032] A computer program product according to a further embodiment of the invention comprises instructions which, when the program is executed by a computer, cause the computer to carry out a computer implemented method according to the first embodiment of the invention described above.
[0033] A wearable device according to a further embodiment of the invention comprises at least one sensor, at least one processing unit and a machine-readable storage comprising instructions that are executable by the at least one processing unit to perform operations comprising a computer implemented method according to the first embodiment of the invention described above.
[0034] While the examples and embodiments of the invention are described with respect to sensor systems, in particular wearable devices, it is understood that the invention is not limited to sensor systems or wearable devices but can for example also be applied to various other systems that receive incoming data and have storage of limited capacity, e.g., a camera, a mobile phone.
[0035] The invention described by examples and embodiments is not limited to the embodiments and examples but can be implemented by those skilled in the art by various combinations or modifications thereof.
[0036] Brief Description of the Drawings
[0037] Fig. 1 shows a flowchart of a first embodiment of the computer implemented method for storing incoming data at an input interface;
[0038] Fig. 2 illustrates a flow of incoming data according to the computer implemented method for storing incoming data in a storage of limited capacity;
[0039] Fig. 3 illustrates an exemplary subdivision of the capacity of a storage into memory area capacities; and
[0040] Fig. 4 illustrates a wearable device, in particular a cardiac motion sensor. Detailed Description
[0041] In the following, advantageous exemplary embodiments of the invention are described and schematically shown in the figures. Throughout the figures and the description, same reference numbers are used to describe same features or components. Dashed lines indicate optional features.
[0042] Fig. 1 shows a flowchart of a first embodiment of the method for storing incoming data at an input interface. The computer implemented method 10 for storing incoming data provided at an input interface comprises: allocating a multitude of different memory areas of specified sizes in a storage, said multitude of memory areas forming a sequence of subsequent memory areas having n > 3 sequence members, wherein the first memory area in the sequence is used for storing data losslessly, and wherein each of the subsequent memory areas is configured for receiving data from the preceding memory area in a step T 1 ; associating each of the subsequent memory areas with a data aggregation scheme having a data compression rate, which increases according to the position of the subsequent memory area in the sequence in a step T2; and feeding the incoming data to the sequence of memory areas by losslessly storing the incoming data in the first memory area, wherein in case the occupancy of a memory area exceeds a maximum capacity, a portion of the data stored in this memory area is processed using the data aggregation scheme associated with the subsequent memory area and moved to the subsequent memory area, and wherein, in case the occupancy of the last memory area exceeds a maximum capacity, a portion of the data stored in the last memory area is discarded in a step T3.
[0043] Fig. 2 illustrates a flow of incoming data 16 according to the computer implemented method 10 for storing incoming data 16 in a storage 12 of limited capacity. The incoming data 16 is provided at an input interface 14. The input interface 14 can, for example, belong to a sensor system, in particular to a wearable device for health care monitoring such as a cardiac motion sensor. The input interface 14 can also belong to a different system with limited storage capacity, e.g., a mobile device. The incoming data 16 at the input interface 14 can contain information from one or more input channels that each contain a data stream. The data streams can, for example, originate from one or more sensors S1 ,..,Sn. The data items of the one or more data streams can, for example, be concatenated to form a single data stream. Alternatively, each data stream can be saved separately in a memory area.
[0044] The storage 12 contains at least three, preferably at least four, more preferably at least five different memory areas of specified sizes M1 ,..,M5. The memory areas are arranged in a sequence containing at least three members. The memory areas are pre-allocated. In an example, the first memory area M1 is allocated 50% of storage space, M2 25%, M3 15%, M4 7% and M5 3%. M5 is the last memory area. Note that in case the storage 12 is also used to store other data, the numbers refer to a subsection of the storage 12 that is available for storing the incoming data 16 at the input interface 14.
[0045] In an example, the sizes of the memory areas decrease with the position of the memory area in the sequence. Thus, the higher the data compression rate, the less memory space is allocated to the corresponding memory area. In this way, most of the stored data is preserved losslessly or at a low data compression rate in order to allow for a meaningful analysis of the stored data later on. Only a small amount of data is stored at a higher data compression rate and is, thus, preserved from being discarded despite the associated loss of information.
[0046] In an example, the allocated sizes of the subsequent memory areas negatively correlate with the data compression rates of the associated data aggregation schemes. For example, the allocated sizes of each two subsequent memory areas are configured such that the second memory area of the two subsequent memory areas can accommodate the maximum capacity of data stored in the first memory area of the two subsequent memory areas after applying the data aggregation scheme associated with the second memory area of the two subsequent memory areas. For example, the allocated sizes of each two subsequent memory areas are configured such that the size of the second memory area of each two subsequent memory areas exceeds (or is equal to) the size of the first memory area of each two subsequent memory areas multiplied by the data compression rate of the associated data aggregation scheme of the second memory area of each two subsequent memory areas. For example, let s1, s2indicate the allocated sizes of the first and the second memory area of subsequent memory areas, and let c2indicate the data compression rate of the second memory area. Then it holds s2> s1- c2, or s2= s1- c2. In this way, subsequent memory areas are sufficiently large to accommodate the same data, e.g., the same amount of temporal data. Furthermore, it is ensured that data stored in a memory area can be completely moved to the subsequent memory area. For example, the first memory area M1 is allocated 50% of the available storage space, the second memory area M2 is allocated 25% of the available storage space with a data compression rate 2 of the data aggregation scheme of M2. In this way, e.g., 10 minutes of motion data can be losslessly stored in the first memory area M1 and can be completely moved to the second memory M2 area after compression with a factor of 2.
[0047] The first memory area M1 is used store incoming data 16 losslessly, thereby preserving all information available. Each of the subsequent memory areas M2...M5 is configured for receiving a portion of data from the preceding memory area in case the occupation of a memory area exceeds a maximum capacity. The maximum capacity can be equal to the allocated size of the memory area, or the maximum capacity can be defined as a specific value lower than the allocated size of the memory area, e.g., by a user. In case the occupancy of the last memory area, here M5, exceeds a maximum capacity, a portion of the data in the last memory area is discarded 22.
[0048] In case the occupation of a memory area that is not the last memory area of the sequence, here M1 ,..,M4, exceeds a maximum capacity, a portion of the data in the memory area is processed using a data aggregation scheme of the subsequent memory area and is then moved to the subsequent memory area. Thus, a processed version of the portion of data is stored in the subsequent memory area and the portion of data is deleted from the current memory area. In case the occupancy of the last memory area M5 exceeds a maximum capacity, a portion of the data in the last memory area is discarded 22.
[0049] The portion of data can be selected with respect to a criterion. The criterion can be the same for all memory areas, or it can be different for two or more memory areas. The data in a memory area can be sorted according to the associated criterion. A portion of the data in a memory area can comprise, for example, X% of the data in the memory area, preferably X% of the data in the memory area sorted according to a criterion associated with the memory area. X% can, for example, refer to 100%, 75%, 50%, 25%, 10% or 5%.
[0050] Fig. 3 illustrates an exemplary subdivision of the capacity of a storage into memory areas M1 ,..,M5 of capacity C1 ,..,C5. Here, C1 contains 50% of the storage capacity, C225% of the storage capacity, C3 15% of the storage capacity, C47% of the storage capacity and C5 3% of the storage capacity.
[0051] The criterion can, for example, refer to an incoming timestamp of the data, a memory requirement of the data, a relevance of the data, a compression loss of the data, etc., or to a combination of two or more of these criteria.
[0052] The incoming timestamp is the timestamp when a data item is received by the input interface 14. The data in a memory area can, thus, be sorted with respect to the incoming timestamp. Then the portion of data in the memory area that is selected for processing and moving to the subsequent memory area can contain X% of the oldest data in the memory area. In this way, the oldest data is compressed further in order to preserve the most recent data at a low data compression rate. Alternatively, the portion of data can contain X% of the newest data in the memory area. In this way, the newest data is compressed further in order to preserve the oldest data at a low compression rate. This might be of advantage in case the most recent data is less relevant.
[0053] A memory requirement of data refers to the memory space required for saving the data. The data in a memory area can be sorted with respect to its memory requirement. Then the portion of data in the memory that is selected for processing and moving to the subsequent memory area can contain X% of the data in the memory area with the highest memory requirement. In this way, data that requires a lot of memory is compressed further in order to most effectively reduce the occupancy of the memory area. Alternatively, the portion of data can contain X% of the data in the memory area with the lowest memory requirement. In this way, data that requires little memory is compressed further in order to preserve larger data items that might contain more relevant information.
[0054] The relevance of data can be defined with respect to the information contents of the data for a subsequent analysis. For example, uncommon data or patterns may reveal important information for a subsequent analysis, whereas, for example, redundant data usually is of little interest to a subsequent analysis. The data in a memory area can, thus, be sorted with respect to its relevance for a subsequent analysis. Then the portion of data in the memory that is selected for processing and moving to the subsequent memory area can contain X% of the least relevant data in the memory area. In this way, the least relevant data is compressed further in order to preserve the most important data at a low data compression rate. The relevance of data can be measured using, for example, statistical criteria, e.g., the frequency of data or a pattern, the entropy of a data sequence, etc.
[0055] The compression loss of data refers to the error introduced into the processed data item by applying a data aggregation scheme. It can be computed by comparing the data before compression to the same data after compression and decompression and computing the deviation. The higher the compression loss, the higher is the deviation of the data from the processed data and the less useful or reliable is the data for a further analysis. The data in a memory area can, thus, be sorted with respect to its compression loss, e.g. with respect to the current compression loss that was already introduced, or with respect to an anticipated future compression loss that would be introduced by processing and moving the data to a subsequent memory area. The compression loss can, thus, be used as a measure of reliability of the data. The portion of data in the memory that is selected for processing and moving to the subsequent memory area can contain X% of the data with the highest current compression loss or the lowest anticipated compression loss in the memory area. In this way, the least reliable or useful data is compressed further, or the data with the lowest anticipated compression loss is compressed further, in order to minimize compression loss.
[0056] A combination of two or more criteria can, for example, indicate that the data in a memory area is sorted with respect to a relevance score multiplied by an inverse compression loss to preserve the most relevant data only if it the compression loss is limited, or with respect to an inverse measure of passed time multiplied by a relevance score to preserve the newest relevant data, etc.
[0057] Each of the subsequent memory areas is associated with a data aggregation scheme, indicated by D2,..,D5 in Fig. 2. The data aggregation scheme associated with a memory area processes data received by this memory area such that the data compression rate increases. In this way, the memory requirement of the incoming data is reduced before the data is moved to this memory area.
[0058] A data aggregation scheme can be lossless or lossy. A lossless data aggregation scheme increases the data compression rate without losing information. This can be accomplished using lossless data compression methods known in the art, e.g., by reducing the required bit resolution for saving data items or by reducing the number of variables to be saved. Using a lower bit resolution or a reduced number of variables for saving data increases the data compression rate.
[0059] An example of a lossless data compression method is Huffman coding, which determines the code of a data item according to its frequency. Alternatively, a mathematical operation can be applied to reduce the required bit resolution and, thus, increase the data compression rate.
[0060] For example, instead of absolute values difference values indicating the difference with respect to a previous data item or a corresponding data item in another input channel, or with respect to some other value, e.g., the mean value of the previous data items in the same or in all channels, can be saved.
[0061] In another example, instead of absolute values normalized values indicating a factor with respect to some value, e.g., with respect to a previous data item or a corresponding data item in another input channel, or with respect to some other value, e.g., the mean value of the previous data items in the same or in all channels, can be saved. For example, in case of two or more incoming data streams in two or more input channels, a second data stream can be normalized with respect to a first data stream by dividing each data item in the second data stream by the corresponding data item in the first data stream. This normalization can be carried out for a single data stream or for up to n-1 data streams. In this way, the number of variables to be saved as well as the required bit resolution are reduced and, thus, the data compression rate is increased.
[0062] A lossy data aggregation scheme increases the data compression rate by discarding information. This can be accomplished using lossy data compression methods known in the art. Lossy compression methods use inexact approximations or partial data discarding to represent the data. In this way, fewer data items are saved to increase the data compression rate.
[0063] For example, downsampling schemes can be used to increase the data compression rate, e.g., only every n-th data item can be saved while the other data items are discarded, or only an average value of every n data items is saved. Alternatively, sections of the data can be approximated using a parametric mathematical function such that only the fitted parameters need to be saved. In another example, instead of absolute values a quantized version of the absolute values can be saved. The absolute values can, for example, be quantized by defining value intervals and storing only an interval identifier instead of the absolute value.
[0064] A data aggregation scheme D2,..,D5 associated with a memory area M2,..,M5 can contain the application of a trained machine learning model to increase the data compression rate of the data received by this memory area.
[0065] In order to analyze large amounts of data requiring large amounts of measurements to be taken, machine learning methods can be used. Machine learning is a field of artificial intelligence. Machine learning methods generally build a parametric machine learning model based on training data consisting of a large number of samples. After training, the method is able to generalize the knowledge gained from the training data to new previously unencountered samples, thereby making predictions for new data. There are many machine learning methods, e.g., linear regression, k-means, support vector machines, decision trees, random forests, neural networks or deep learning approaches. Machine learning models are parametric models whose parameters are optimized during training. The machine learning model and the learned parameters can be applied to make predictions for new input data. Machine learning models comprise, for example, neural networks, support vector machines, decision trees, random forests, subspaces, cluster sets, etc.
[0066] Deep learning is a class of machine learning that uses artificial neural networks with numerous hidden layers between the input layer and the output layer. Due to this complex internal structure the networks are able to progressively extract higher-level features from the raw input data. Each level learns to transform its input data into a slightly more abstract and composite representation, thus deriving low and high level knowledge from the training data. The hidden layers can have differing sizes and tasks such as convolutional or pooling layers.
[0067] Machine learning models are trained using training data, i.e., examples, and, thus, independently derive their knowledge from the training data instead of requiring a user to define rules for defect detection. In this way, optimal defect detection results can be obtained automatically in a data-driven way. Thus, the use of machine learning methods increases the recall and precision of the stage specific defect detection methods and reduces the user effort.
[0068] At least one data aggregation scheme can comprise a machine learning model that is trained using representation learning. Representation learning refers to a set of machine learning techniques that allow a system to automatically map an input to a representation of the input in a feature space that is useful for a specific task. This replaces manual feature engineering. In case the feature space is of lower dimensionality than the input space, the representation of the input in the feature space constitutes a compressed representation of the input. To obtain a (possibly lossy) reconstruction of the original data from the representation in the feature space for further analysis later on, the trained machine learning model or at least a part of the trained machine learning model is required to compute the reconstruction, e.g., the decoder of an encoder - decoder neural network, the principal components in case principal component analysis is used, etc.
[0069] The machine learning model can be trained to perform lossless or lossy data compression by selecting corresponding training data and defining corresponding loss functions. The training data for training the machine learning model can be derived from sample applications, e.g., sensor data obtained from a sensor system can be used as training data. For example, in case of a cardiac motion sensor, the training data can contain acquired sensor data of an accelerometer that monitors the motion of the heart. Accelerometers are small, electronic devices that measure acceleration forces. These forces can be caused by movement or gravity, allowing the device to detect changes in motion, orientation, and vibration. Using accelerometer data, meta data such as activity classes can be derived using a data aggregation scheme associated with a memory area.
[0070] A suitable loss function for lossless or lossy compression maximizes the data compression rate of the training data. The data compression rate can be computed as the ratio of the number of bits of the input data with respect to the number of bits required for saving the output data of the machine learning model.
[0071] Alternatively or in addition, the loss function can contain a compression loss, i.e., an error measure that measures the deviation of the input data from the output data of the machine learning model or from a reconstruction of the input data using the output data of the machine learning model, e.g., a norm of the difference of the input data and the output data or of the input data and a reconstruction of the input data using the output data. Such a loss function is often used in case of an unsupervised machine learning method that maps the input data to a representation of lower dimensionality while minimizing the compression loss.
[0072] The compression loss can be weighted by a weighting factor in the loss function. The higher the weighting factor the lower will be the compression loss. The use of weighting factors in the loss function, thus, allows to define the importance of an increased data compression rate compared to a low compression loss.
[0073] Sparsity inducing loss function terms, e.g., an L1-norm of the output, can also be useful, since they aim at encoding input data with as few parameters as possible. In this way, the data compression rate can be increased.
[0074] In an example, an encoder - decoder neural network such as a ll-Net or an autoencoder, is used as a machine learning model. An encoder - decoder neural network is a convolutional neural network that uses a sequence of convolutions in the encoder to map the input into a feature space of lower dimensionality called bottleneck and a sequence of deconvolutions in the decoder to map the representation of the input in the feature space to an output. Skip connections can be used to directly access encoder information from the decoder in order to preserve details. In case of an autoencoder, the machine learning model is trained to reconstruct the input, i.e. , to minimize the deviation of the input and the output of the autoencoder. The bottleneck is a feature space of lower dimensionality. The encoder can, thus, be used to obtain a representation of the input in the feature space with an increased data compression rate. The input can later be reconstructed from the representation using the decoder.
[0075] In another example, a neural network with at least one attention mechanism, e.g., a Transformer, is used to generate representations of increased data compression rate from the input data.
[0076] The term “attention mechanism” refers to a computational method that is part of a machine learning method that transforms input data to output data. The computational method is used for recognizing relationships between parts of the input data that are relevant for the transformation. To recognize relationships between parts of the input data, the attention mechanism can transform an element of the input data into a new representation, thereby making use of one or more other elements of the input data and their similarity to the element.
[0077] In contrast to convolutional layers or fully-connected layers, e.g., in CNNs, the weights applied to the elements of the input data depend on the input data, more precisely on the similarity of each element to the other elements of the input data, instead of being fixed after training. Furthermore, in contrast to convolutional operations, the attention mechanism does not require a fixed sequence of the elements in the input data. Instead, context windows of dynamic or global size can be implemented instead of using context windows of fixed size as in case of convolutions. Finally, in contrast to fully- connected layers, the attention mechanism does not require a fixed number of elements in the input data but can be applied to input data sets of arbitrary size. An attention mechanism can, thus, be understood as a location-dependent convolution with input data dependent weights and a context window of arbitrary size. For example, the context window can comprise the complete input data.
[0078] By using at least one attention mechanism in the machine learning model, the temporal context of the data can be taken into account for compression. For example, patterns can be found in the data and can be represented using a specific encoding. Repetitive patterns can be represented with a specifically short encoding, rare patterns with a longer encoding in order to increase the data compression rate without losing relevant information. Context-dependent encoding is particularly important for further analyses, e.g., for finding important temporal patterns in the data that may be relevant for medical values such as heart rate or glucose level. By using attention mechanisms, the temporal context is not limited to the local receptive field of a convolution but can comprise large contexts. Thus, by using at least one attention mechanism, the output of the machine learning model preserves the most important temporal patterns in the data.
[0079] In another example, subspace methods are used in a data aggregation scheme. A subspace method is a machine learning method that maps input data to a subspace of lower dimension (feature space) that is learned from training data according to some criterion. A sequence of data can be compressed by representing it as a linear combination of features and storing the factors. Subspace methods comprise, for ex- ample, principal component analysis, independent component analysis or non-nega- tive matrix factorization that optimize different criteria. Further subspace methods can also be used in a data aggregation scheme.
[0080] Principal component analysis (PCA), for example, finds uncorrelated patterns called principal components in the training data that span a feature space. A sequence of data can be compressed by projecting it into the learned feature space, i.e. , by representing it as a linear combination of principal components (features). The principal components are obtained by minimizing the compression loss. The data compression rate can be selected by selecting the number of principal components used for representing the data in the learned subspace. The more principal components are used the lower the compression loss. The less principal components are used the higher the data compression rate. Depending on the eigenvalues associated with the principal components, the compression loss can be monitored and a good compromise between compression loss and data compression rate can be found.
[0081] While PCA finds uncorrelated components in the training data, Independent component analysis (ICA) finds independent components (features) by maximizing the statistical independence of the estimated components. To this end, a multivariate signal is decomposed into independent non-Gaussian signals. A sequence of data can then be compressed by representing it as a linear combination of independent components.
[0082] Non-negative matrix factorization (NMF) also finds a subspace in the training data by finding a decomposition of the input data using two non-negative matrices. The data can be compressed using a linear combination of features represented by matrix columns.
[0083] In another example, sparse dictionary learning is used to generate a dictionary machine learning model from training data. Sparse dictionary learning aims at finding a sparse representation of the input data in the form of a linear combination of basic elements as well as those basic elements themselves. These elements are called atoms and they compose a dictionary. Atoms in the dictionary are not required to be orthogonal, and they may be an over-complete spanning set. Due to the sparsity requirement, the input of the machine learning model can be represented using a linear combination of a few atoms only, thereby obtaining an increased data compression rate.
[0084] In another example, clustering methods can be used in a data aggregation scheme, e.g., k-means clustering, self-organizing feature maps, neural gas, expectation maximization (EM) clustering, hierarchical clustering, cluster trees, etc. Data (a data item or a sequence of data items) can then be compressed by finding the nearest cluster (feature vector) and representing the data by a cluster identifier. The more clusters are used the lower is the compression loss, but the more complex is the encoding of the cluster identifier and the lower the data compression rate.
[0085] TinyML methods can be used to make machine learning models work requiring little memory space and low power, e.g., on specific devices such as FPGAs. They can also be used to reduce the complexity or size of a machine learning model in order to reduce the required memory space or a learned feature space and, thus, the encoding of the input data.
[0086] In order to obtain higher data compression rates for memory areas in the sequence of memory areas, meta data can be extracted from the data received by these memory areas. The data is then compressed by storing only the extracted meta data instead of the data itself. Meta data refers to information derived from the data that is relevant for further analyses. For example, meta data can comprise an activity class that describes the activity of a user of a wearable device, e.g., “standing”, “walking”, “running”, “lying”, etc. The activity class can be derived from the data using some algorithm. Meta data can, for example, comprise an event indicator, e.g., an indicator of a specific pattern in the data. For example, a sudden change such as an increase or decrease in the data above a threshold can indicate some kind of event that may be interesting for further analyses. Meta data can also indicate the presence or absence of some condition, e.g., if data values lie above or below a threshold. In this case, a single bit is sufficient for saving this kind of information. Thus, by deriving meta data from the data, higher data compression rates can be achieved.
[0087] To obtain an even higher data compression rate, only changes in a meta data value can be saved in a memory area. For example, only changes in the activity class are saved instead of the activity class at regular intervals. In an exemplary embodiment of the invention illustrated with respect to Fig. 2, whenever the occupancy of a memory area exceeds a maximum capacity, the 10% of the stored data having the oldest timestamp is processed and transformed to a subsequent memory area, or discarded 22 in case of the last memory area of the sequence. The first memory area M1 stores the incoming data losslessly as raw data. Data that is moved to the second memory area M2 is processed using a data aggregation scheme D2 that performs lossless compression by saving difference values or normalized values instead of absolute values. Data that is moved to the third memory area M3 is processed using a lossy data aggregation scheme D3 that comprises a trained machine learning model, e.g., obtained by means of principal component analysis. The data is then reduced to the factors of a linear combination of k principal components. The number k determines the data compression rate and the compression loss. Data that is moved to the fourth memory area M4 is processed using a data aggregation scheme D4 that extracts activity classes from the data. Data that is moved to the last memory area M5 is processed using a data aggregation scheme that stores only changes of activity classes. In case, the occupancy of the last memory area M5 exceeds its maximum capacity, the 10% of the stored data with the oldest timestamp is discarded 22.
[0088] In a preferred embodiment, the computer implemented method for storing incoming data provided at an input interface further comprises, upon a memory area receiving data, determining relevance scores 18, as shown in Fig. 2, for the data or subsections thereof. Relevance scores 18 can be determined only for incoming data 16 of the first memory area M1 , or they can be determined for data received by one or more subsequent memory areas. Depending on the relevance scores 18, important data with relevance scores 18 above a threshold can be preserved 20 by preventing it from being compressed and moved to a subsequent memory area or from being discarded from the last memory area. Thus, the data is write-protected. At the same time, irrelevant data with relevance scores 18 below a threshold can directly be discarded 22 from a memory area, thereby saving memory space for more relevant data. Incoming data can be write- protected or directly discarded only in the first memory area when entering the system and / or received data in one or more subsequent memory areas can be write-protected or directly discarded. Each memory area can have a different method for determining relevance scores and for write-protecting or directly discarding data. The relevance scores and the thresholds can, for example, depend on the compression loss that would be caused by processing and moving the data to a subsequent memory area and, thus, differ for each memory area.
[0089] Relevance scores 18 for data can be optionally determined with respect to a specific analysis that will be carried out using the stored data later on. For example, high relevance scores 18 can be assigned to important activity classes such as “lying”, or low relevance scores 18 can be assigned to unimportant activity classes such as “high intensity running”. Relevance scores 18 can also be assigned with respect to a timestamp. For example, data stored in the morning can be assigned a higher relevance score than data stored at night. Relevance scores 18 can also be assigned with respect to specific patterns in the data. If a specific pattern is found, the relevance score 18 is set to a high value, e.g. in case of frequent changes or a high first derivative of a sensor value. Repetitive or common patterns in incoming or received data can be assigned a low relevance score 18.
[0090] Fig. 4 illustrates a wearable device 24, i.e. , a wearable sensor system, in particular a wearable cardiac motion sensor, comprising at least one sensor S1 ,S2,S3,..,Sn, at least one processing unit 26 and a machine-readable storage 12 comprising instructions that are executable by the at least one processing unit 26 to perform operations comprising the computer implemented method 10 described above. The storage 12 is of limited capacity. The wearable device 24 comprises four sensors S1 ,S2,S3,S4 that monitor medical values of a wearer of the wearable device 24. The sensors can, for example, include an accelerometer that provides motion data of the heart in three dimensions x, y, z. The wearable device 24 includes one or more processing units 26, e.g., implemented as a CPU or GPU. The one or more processing units 26 can receive the incoming data 16, e.g., the sensor signals, via an input interface 14. The one or more processing units 16 can execute program code for executing a computer implemented method 10 for storing incoming data 16 provided at an input interface 14 according to the first embodiment of the invention as described above. In this way, the use of the available storage capacity is optimized in order to preserve a lot of incoming data 16, in particular the most relevant data, with as little loss of information as possible.
[0091] Reference throughout this specification to “an embodiment” or “an example” or “an aspect” means that a particular feature, structure or characteristic described in con- nection with the embodiment, example or aspect is included in at least one embodiment, example or aspect. Thus, appearances of the phrases “according to an embodiment”, “according to an example” or “according to an aspect” in various places throughout this specification are not necessarily all referring to the same embodiment, example or aspect, but may. Furthermore, the particular features or characteristics may be combined in any suitable manner, as would be apparent to one of ordinary skill in the art from this disclosure, in one or more embodiments.
[0092] Furthermore, while some embodiments, examples or aspects described herein include some but not other features included in other embodiments, examples or aspects combinations of features of different embodiments, examples or aspects are meant to be within the scope of the claims, and form different embodiments, as would be understood by those skilled in the art.
[0093] In summary, the invention relates to a computer implemented method 10 for storing incoming data 16 provided at an input interface 14 comprising: allocating at least three memory areas M1 ,M2,M3,M4,M5 of specified sizes in a storage 12; associating each of the subsequent memory areas with a data aggregation scheme D2,D3,D4,D5 having an increasing data compression rate; feeding the incoming data 16 to the sequence of memory areas by losslessly storing the incoming data 16 in the first memory area, wherein in case the occupancy of a memory area exceeds a maximum capacity, a portion of the data stored in this memory area is processed using the data aggregation scheme associated with the subsequent memory area and moved to the subsequent memory area or is discarded 22 from the last one. The invention also relates to a wearable device, in particular, a cardiac motion sensor.
[0094] Reference number list
[0095] 10 Computer implemented method
[0096] 12 Storage
[0097] 14 Interface
[0098] 16 Incoming data
[0099] 18 Relevance score
[0100] 20 Preserve
[0101] 22 Discard
[0102] 24 Wearable device
[0103] 26 Processing unit
[0104] S1, S2,... ,Sn Sensor
[0105] M1 , M2, M3, M4, M5 Memory area
[0106] D2,..,D5 Data aggregation scheme
Claims
- 25 -Claims1. Computer implemented method (10) for storing incoming data (16) provided at an input interface (14), the method comprising:- Allocating a multitude of different memory areas (M1,M2,M3,M4,M5) of specified sizes in a storage (12), said multitude of memory areas forming a sequence of subsequent memory areas having n > 3 sequence members, wherein the first memory area (M1) in the sequence is used for storing data losslessly by storing it in a representation that allows to recover the original data without error, and wherein each of the subsequent memory areas (M2,M3,M4,M5) is configured for receiving data from the preceding memory area (M1 ,M2,M3,M4);- Associating each of the subsequent memory areas (M2,M3,M4,M5) with a data aggregation scheme (D2,D3,D4,D5) having a data compression rate, which increases according to the position of the subsequent memory area (M2,M3,M4,M5) in the sequence;Feeding the incoming data (16) to the sequence of memory areas (M1 ,M2,M3,M4,M5) by losslessly storing the incoming data (16) in the first memory area (M1), wherein in case the occupancy of a memory area (M1 ,M2,M3,M4) exceeds a maximum capacity, a portion of the data stored in this memory area is processed using the data aggregation scheme (D2,D3,D4,D5) associated with the subsequent memory area (M2,M3,M4,M5) and moved to the subsequent memory area (M2,M3,M4,M5), and wherein, in case the occupancy of the last memory area (M5) exceeds a maximum capacity, a portion of the data stored in the last memory area (M5) is discarded (22).
2. The method of claim 1 , wherein the sequence of memory areas comprises at least four different memory areas of specified sizes, or wherein the sequence of memory areas comprises at least five different memory areas of specified sizes.
3. The method of any one of the preceding claims, wherein at least one of the subsequent memory areas (M2,M3,M4,M5) is associated with a data aggregation scheme (D2,D3,D4,D5) that comprises a lossless data compression method.
4. The method of any one of the preceding claims, wherein at least one of the subsequent memory areas (M2,M3,M4,M5) is associated with a data aggregation scheme (D2,D3,D4,D5) that uses a trained machine learning model to transform the data moved to this memory area (M2,M3,M4,M5) to a representation of a higher data compression rate.
5. The method of claim 4, wherein the trained machine learning model comprises one of an encoder - decoder neural network, a dictionary obtained using sparse dictionary learning, a neural network with at least one attention mechanism, a mapping obtained using a subspace method, a mapping obtained using a clustering method.
6. The method of any one of the preceding claims, wherein a subsequent memory area (M2,M3,M4,M5) is associated with a data aggregation scheme (D2,D3,D4,D5) that processes data moved to this subsequent memory area (M2, M3, M 4, M 5) by extracting changes from this data.
7. The method of any one of the preceding claims, wherein the portion of the data in a memory area (M1 ,M2,M3,M4) that is moved to a subsequent memory area (M2,M3,M4,M5) or discarded (22) from the last memory area (M5) is selected with respect to a property from the group comprising incoming timestamp, memory requirement, relevance score, compression loss.
8. The method of any one of the preceding claims, further comprising, upon a memory area (M1 ,M2,M3,M4,M5) receiving data, determining relevance scores (18) for the data or subsections thereof.
9. The method of claim 8, wherein, in case the occupancy of a memory area (M1 ,M2,M3,M4,M5) exceeds a maximum capacity, data with a relevance score (18) above a threshold is excluded from the portion of data being processed and moved to a subsequent memory area (M2,M3,M4,M5) or being discarded (22) from the last memory area (M5).
10. The method of claim 8 or 9, wherein data with a relevance score (18) below a threshold is discarded (22).
11. The method of any one of the preceding claims, wherein the incoming data (16) at the input interface (14) is provided by at least one sensor (S1 ,S2,S3,..,Sn).
12. The method of any one of the preceding claims, wherein the incoming data (16) at the input interface (14) is provided by a sensor system comprising a cardiac motion sensor.
13. A computer-readable medium, having stored thereon a computer program executable by a computing device, the computer program comprising code for executing a computer implemented method (10) of any one of the preceding claims.
14. A computer program product comprising instructions which, when the program is executed by a computer, cause the computer to carry out a computer implemented method (10) of any one of claims 1 to 12.
15. A wearable device (24) comprising at least one sensor (S1 ,S2,S3,..,Sn), at least one processing unit (26) and a machine-readable storage (12) comprising instructions that are executable by the at least one processing unit (26) to perform operations comprising a computer implemented method (10) of any one of claims 1 to 12.
Citation Information
Patent Citations
Subcutaneous electrocardiography monitor configured for self-optimizing ECG data compression
US11445908B2
Methods of and apparatus for storing data in memory in graphics processing systems
US20220398686A1
Method of processing data, data processing device, data processing program, and method of generating neural network model
US20230024977A1
Multi-level memory compression
US9852056B2
Compressed cache as a cache tier
WO2023061567A1