WO2020201684A1 - Feature dataset classification - Google Patents

Feature dataset classification Download PDF

Info

Publication number
WO2020201684A1
WO2020201684A1 PCT/GB2020/050469 GB2020050469W WO2020201684A1 WO 2020201684 A1 WO2020201684 A1 WO 2020201684A1 GB 2020050469 W GB2020050469 W GB 2020050469W WO 2020201684 A1 WO2020201684 A1 WO 2020201684A1
Authority
WO
WIPO (PCT)
Prior art keywords
class
feature
indications
feature data
class indications
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/GB2020/050469
Other languages
French (fr)
Inventor
Emre ÖZER
Gavin Brown
Charles Edward Michael REYNOLDS
Jedrzej KUFEL
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Priority to CN202080022498.5A priority Critical patent/CN113597647B/en
Priority to US17/593,716 priority patent/US12067086B2/en
Publication of WO2020201684A1 publication Critical patent/WO2020201684A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • G06F18/24155Bayesian classification
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/68Arrangements of detecting, measuring or recording means, e.g. sensors, in relation to patient
    • A61B5/6801Arrangements of detecting, measuring or recording means, e.g. sensors, in relation to patient specially adapted to be attached to or worn on the body surface
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/68Arrangements of detecting, measuring or recording means, e.g. sensors, in relation to patient
    • A61B5/6801Arrangements of detecting, measuring or recording means, e.g. sensors, in relation to patient specially adapted to be attached to or worn on the body surface
    • A61B5/6813Specially adapted to be attached to a specific body part
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/20ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for computer-aided diagnosis, e.g. based on medical expert systems
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2220/00Measuring of physical parameters relating to sporting activity
    • A63B2220/80Special sensors, transducers or devices therefor
    • A63B2220/83Special sensors, transducers or devices therefor characterised by the position of the sensor
    • A63B2220/836Sensors arranged on the body of the user
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/259Fusion by voting
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H10/00ICT specially adapted for the handling or processing of patient-related medical or healthcare data
    • G16H10/60ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
    • G16H10/65ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records stored on portable record carriers, e.g. on smartcards, RFID tags or CD
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H40/00ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
    • G16H40/60ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices

Definitions

  • the present techniques relate to the field of data processing.
  • Various approaches may be taken to classify an input data set on the basis of a number of feature data values which make up that feature data set.
  • an apparatus may be constructed on the basis of naive Bayes classifiers which apply Bayes' Theorem.
  • a common implementation is based on the Gaussian naive Bayes algorithm, in which each factor of the likelihood term in the Bayes equation is modelled as a (univariate) Gaussian distribution.
  • a naive Bayes algorithm implementation can be trained using training data sets (in which the desired class to be predicted is known) and then this trained model can be used for new input data sets to generate class predictions.
  • Such an implementation may, in hardware, still require a significant level of computation ability in order to process each input data set and generate the predicted class on the basis of the trained model.
  • At least some examples provide an apparatus comprising: feature dataset input circuitry to receive a feature dataset comprising multiple feature data values indicative of a set of features, wherein each feature data value is represented by a set of bits; class retrieval circuitry responsive to reception of the feature dataset from the feature dataset input circuitry to retrieve from class indications storage a class indication for each feature data value received in the feature dataset, wherein class indications are predetermined and stored in the class indications storage for each permutation of the set of bits for each feature; and classification output circuitry responsive to reception of class indications from the class retrieval circuitry to determine a classification in dependence on the class indications.
  • At least some examples provide a method of operating an apparatus comprising: receiving at a feature dataset input a feature dataset comprising multiple feature data values indicative of a set of features, wherein each feature data value is represented by a set of bits; retrieving from class indications storage a class indication for each feature data value received in the feature dataset, wherein class indications are predetermined and stored in the class indications storage for each permutation of the set of bits for each feature; and determining a classification in dependence on the class indications.
  • At least some examples provide an apparatus comprising: means for receiving a feature dataset comprising multiple feature data values indicative of a set of features, wherein each feature data value is represented by a set of bits; means for retrieving from means for storing class indications a class indication for each feature data value received in the feature dataset, wherein class indications are predetermined and stored in the means for storing class indications for each permutation of the set of bits for each feature; and means for determining a classification in dependence on the class indications.
  • Figure 1 schematically illustrates an apparatus according to some example embodiments
  • Figure 2 schematically illustrates a training arrangement according to which a Gaussian naive Bayes model implementation is trained using feature training data sets in some example embodiments;
  • Figures 3A and 3B show examples feature distributions on which the trained model may be based in some example embodiments
  • Figure 4 schematically illustrates an apparatus comprising multiple class lookup tables which are accessed in parallel in some example embodiments
  • Figure 5 schematically illustrates an apparatus comprising a single class lookup table which is serially accessed for multiple feature values in some example embodiments
  • Figure 6A schematically illustrates the weighting of class values in some example embodiments
  • Figure 6B schematically illustrates a selection between indicated classes by vote in some example embodiments
  • Figure 7 schematically illustrates a low precision implementation for receiving 5-bit feature values to be used to lookup 3-bit class values in some example embodiments
  • Figure 8A schematically illustrates a set of sensors generating the input feature data set for an apparatus in some example embodiments
  • Figure 8B schematically illustrates an apparatus embodied as a plastic fabricated device in some example embodiments
  • Figure 9 schematically illustrates an apparatus designed to be a wearable device in some example embodiments.
  • Figure 10 shows a sequence of steps which are taken according to the method of some example embodiments.
  • an apparatus comprising: feature dataset input circuitry to receive a feature dataset comprising multiple feature data values indicative of a set of features, wherein each feature data value is represented by a set of bits; class retrieval circuitry responsive to reception of the feature dataset from the feature dataset input circuitry to retrieve from class indications storage a class indication for each feature data value received in the feature dataset, wherein class indications are predetermined and stored in the class indications storage for each permutation of the set of bits for each feature; and classification output circuitry responsive to reception of class indications from the class retrieval circuitry to determine a classification in dependence on the class indications.
  • Naive Bayes is a probabilistic machine learning algorithm based on the application of Bayes’ Theorem. It uses the simplifying assumption that all features are statistically independent once conditioned on the value of the class label. This simplifies the Bayes equation into the following:
  • Gaussian Naive Bayes is a variant in which each factor of the likelihood term is modelled as a (univariate) Gaussian distribution:
  • Equation 3 If the features are assumed to follow the Gaussian distribution, then each likelihood term will be substituted by the Gaussian probability density function as follows:
  • Equation 4 Equation 4 Eventually, this reduces to a simple form like the equation below:
  • Equation 5 where C y is the log prior of the class, and K0 y i , K 1 y i and K2 y i are constant and coefficients for each class/feature combination. Generally, although these values can be pre-computed in a training stage, and stored in memory, calculating the class probabilities is still compute-intensive requiring multiple MAC operations.
  • the present techniques provide an apparatus which receives a feature data set comprising multiple feature data values and on the basis of that received feature data set determines a classification (i.e. a class) representative of that feature data set.
  • a classification i.e. a class
  • an approach is proposed in which class probabilities for each possible value of each feature are precomputed. That is to say in the classifier apparatus proposed, instead of considering a single classifier with multiple features, multiple distinct classifiers are generated and from those one is selected to be the representative class.
  • the inventors of the present techniques have established that in an apparatus implementing this approach this can enable the gate count to be reduced, and potentially make the operation of class determination faster.
  • the class indications stored in the class indications storage for each feature are each predetermined as a best class indication which maximises a Bayes Classifier for the feature in a training phase using feature training datasets. Accordingly, the class probabilities for each feature are precomputed in the training phase and the best class for that feature can then be selected under its corresponding Bayes classifier:
  • Bayes Classifier is a Gaussian na ⁇ ve Bayes Classifier.
  • Each feature of the set of features may be modelled using a range of different distribution types.
  • the Bayes Classifier is based on a single distribution type used for each feature of the set of features.
  • the Bayes Classifier is based on heterogeneous distribution types used for the set of features. These distribution types may take a variety of forms such as for example Gaussian, exponential, uniform and so on. The approach proposed does not constrain each feature to come from a particular type of distribution or for all features to come from the same type of distribution, which allows more flexibility in the implementation, for example if exact distributions of the features are known.
  • the retrieval of the class indications from the class indication storage may take a variety of forms but in some embodiments the class indications storage has a look-up table format and the class retrieval circuitry is arranged to perform a look-up procedure with respect to the look-up table format for each feature data value received in the feature dataset. This allows for a ready retrieval of precomputed class indications.
  • the class retrieval circuitry is arranged to retrieve in parallel the class indications for each feature data value received in the feature dataset. In some embodiments the class retrieval circuitry is arranged to retrieve in a serial sequence the class indications for each feature data value received in the feature dataset. Accordingly, it may be selected between the two different approaches, in dependence on the relative priority in a given implementation of the greater storage required when class indications are to be retrieved in parallel versus the longer retrieval time required for the class indications to be retrieved in a serial sequence.
  • the final classification may be determined in a variety of ways, but in some embodiments the classification output circuitry is responsive to reception of the class indications from the class retrieval circuitry to determine the classification by a vote amongst the class indications.
  • the vote itself may have a variety of configurations, but for example the class selected may be that which is the most frequent class amongst the class indications retrieved by the class retrieval circuitry. In other words it may be the statistical mode of the set of class indications.
  • the class indications are weighted. This allows for a further degree of control over the final classification selected. This weighting may be predetermined in the sense that it is pre-calculated, for example where weights for the class indications are determined in a training phase using feature training datasets. Alternatively these weights may be independently user defined. This allows greater user control over the allocation and selection of the classes.
  • weights of the class indications are used as a tiebreaker when the vote selects more than one class indication.
  • weights of the class indications may be used as tiebreaker in this situation to decide between them.
  • each feature data value is represented by a set of fewer than 10 bits. Further, in some embodiments each feature data value is represented by a set of 5 bits.
  • the class indications are stored in the class indications storage using a representation of fewer than 5 bits. In some embodiments the class indications are stored in the class indication storage using a representation of 3 bits (i.e. allowing 8 different classes to be defined).
  • the present techniques may find applicability in a wide variety of contexts, but where they may be implemented in a notably low-complexity manner (in particular in terms of the gate count required) the techniques may find implementation in portable and indeed in wearable contexts. Accordingly, in some embodiments the apparatus is a wearable device.
  • the feature data set input may be provided from a variety of sources, but in some embodiments the feature dataset input is coupled to a plurality of sensors each providing a respective feature data value.
  • the apparatus is embodied as a plastic fabricated device.
  • a data processing device embodied in plastic (as opposed to for example being embodied as a silicon-based device) may make it particularly suitable for implementation as a wearable device, whether embedded in clothing or worn next to the skin for example.
  • the above mentioned low gate count of the apparatus may for example be noted in some embodiments in which the apparatus is embodied comprising fewer than 1000 logic gates. Further, in some embodiments the apparatus is embodied comprising fewer than 500 logic gates.
  • a method of operating an apparatus comprising: receiving at a feature dataset input a feature dataset comprising multiple feature data values indicative of a set of features, wherein each feature data value is represented by a set of bits; retrieving from class indications storage a class indication for each feature data value received in the feature dataset, wherein class indications are predetermined and stored in the class indications storage for each permutation of the set of bits for each feature; and determining a classification in dependence on the class indications.
  • an apparatus comprising: means for receiving a feature dataset comprising multiple feature data values indicative of a set of features, wherein each feature data value is represented by a set of bits; means for retrieving from means for storing class indications a class indication for each feature data value received in the feature dataset, wherein class indications are predetermined and stored in the means for storing class indications for each permutation of the set of bits for each feature; and means for determining a classification in dependence on the class indications.
  • Figure 1 schematically illustrates an apparatus 100 in some example embodiments.
  • the apparatus comprises feature dataset input circuitry 101 which receives a set of feature data values.
  • Four feature data values are shown in Figure 1 (and for simplicity and clarity of illustration this example number of inputs is continued through various example embodiments illustrated and discussed here), but the present techniques are not limited to this number of inputs in the feature dataset.
  • This feature data set comprising multiple feature data values is passed to class retrieval circuitry 102 which uses the individual feature data values to retrieve a corresponding set of class indications from class indications storage 103.
  • class indications are then passed to classification output circuitry 104 which determines a final, single predicated classification based on that set of class indications received from the class retrieval circuitry 102.
  • the final classification may be output from the apparatus 100 (as shown in Figure 1), but in other embodiments this classification may be utilised within the apparatus 100, for example to generate an indication which a user can perceive.
  • the class indications stored in the class indications storage are predetermined during a training phase for the apparatus, during which feature training data sets are used. This will be described in more detail with respect to Figure 2.
  • Figure 2 schematically illustrates a process for carrying out a training phase according to which a model (specifically the machine learning algorithm of the present techniques based on a modified Gaussian naive Bayes model) is trained before being used. It should be understood that this part of the training process is carried out, for example, on a general purpose computing device and not on an apparatus such as that illustrated in Figure 1.
  • step 200 various feature training data sets are used as inputs. Then for each combination of feature and class, at step 201 full precision constants and coefficients are computed. An iterative process then begins to step though each feature and class to determine the respective class probabilities (see Equation 6 above) for each possible input value. Note that in this example the inputs will be quantized to a 5-bit value (though the present techniques are not limited to this quantization of input value), so there are 32 possible input values for each input. The inventors of the present techniques have found that the class prediction accuracy drops only by around 1% when such quantised input values are used.
  • the first feature (Featureo)
  • the first class (Class 0 )
  • the corresponding class probability is determined (see Equation 6 above). It is then checked at step 206 if all classes (for this feature and input value combination) have now been considered. In some embodiments described here there are 8 classes (though the present techniques are not limited to this particular number of classes). Whilst they have not, step 207 gets the next class to consider and the flow returns to step 205. Once all class probabilities for all classes (for this feature and input combination) have been determined the flow proceeds to step 208, where the class with the maximum probability is found.
  • This class (“MaxClass”) is then stored into class indications storage, such as a lookup table for this feature and input value combination at step 209.
  • An algorithm is used by the present techniques, according to which instead of considering a single naive Bayes classifier with d features, d distinct Bayes classifiers are considered and their predictions are aggregated to select the final classification.
  • a useful characteristic is that each feature (represented by a feature value) may derive from a completely different distribution (e.g. Gaussian, exponential, uniform, etc.).
  • Figure 3A shows an example set of distributions according to which each of four feature value data sets are assumed to be represented by Gaussian distributions
  • Figure 3B shows a set of four feature value distributions in which two are Gaussian distributions and two are uniform distributions.
  • FIG. 4 schematically illustrates an apparatus 400 in some example embodiments.
  • the class retrieval circuitry 401 comprises 4 lookup tables (LUT) 402, one of which is provided for each feature data value which the apparatus is configured to receive - note that in this example the feature dataset input circuitry is not explicitly represented. Accordingly, on receipt of a feature data set, each feature data value is used in a lookup in a respective LUT 402 and a class indication from each is read out. This set of class indications is then passed to class selection circuitry 304 which selects a single representative class on the basis of the class indications received.
  • LUT lookup tables
  • Figure 5 schematically illustrates an apparatus 500 in some example embodiments.
  • Feature data values are received by a feature data input data 501 which holds these values such that the lookup control circuitry 502 can make use of them in sequence to perform a lookup in the single lookup table 503. That is to say four lookups in the lookup table 503 are performed in a serial sequence under the control of the lookup control 502 using the four feature data values received.
  • the result of each lookup in the lookup table 503 is passed to the class determination circuitry 504 where, whilst the serial lookup procedure is being carried out, the classes received are temporarily stored in class storage 505. From here they are then retrieved for the class voting circuitry 506 to determine a single class for output on the basis of a vote between them.
  • the vote is performed by majority in the sense that the most common (mode) class is selected as the winning class for output.
  • FIG 6A schematically illustrates one example embodiment in which weights 600-603 are associated with the classes retrieved from the class indication storage before a class selection takes place.
  • These weights may be learnt as part of the training, as for example carried out as shown in Figure 2, or may be explicitly set by a user, wishing to influence the balance of the class selection.
  • an associated weight is used for each.
  • the weights can be stored in the same lookup table as the classes or they can be in a separate storage. It is to be noted therefore that this weight is thus effectively applied for the“importance” of each respective feature data value, but the class values themselves are not amended since these are integer values used for enumerating the set of possible classes.
  • Each class and its associated weight are then received by the class selection circuitry 604 which performs a determination of the selected class on the basis of the distribution of classes themselves, and their associated weights.
  • the weights may indicate the relative voting weight that each feature data value thus has in the final selection.
  • the class selection circuitry 604 may comprise tie breaker circuitry 605 which can make use of the weight in the event that a tie break is necessary.
  • a tie break occurs when the selection procedure (e.g. mode voting) cannot differentiate between two or more selected classes.
  • the respective associated weights may be used as a tie break influence.
  • the selection between the class indications received from the class indication storage may take a variety of forms, but in some embodiments such as that illustrated in Figure 6B, this selection is by vote, for example by mode vote.
  • Figure 7 schematically illustrates some components of an apparatus 700 in one embodiment.
  • eight feature data values are received, each quantised into 5-bit values.
  • These respective 5-bit values are used to perform lookups in a corresponding set of eight lookup tables (of which only two 701 and 702 have been explicitly shown, purely of the sake of clarity) which have each been pre-populated (in a training phase) with 3 -bit class indications for each possible value of each feature value.
  • eight lookup actions are performed in parallel to retrieve eight 3 -bit class values which are passed to the class voting circuitry 703.
  • the class voting circuitry 703 then performs the final selection of the class prediction which in this example is on the basis of a mode vote amongst the eight class indications received.
  • An implementation such at that shown in Figure 7 (using the new algorithm described herein) has been demonstrated to have a class prediction accuracy of 91%, which is very close to the accuracy of the Gaussian na ⁇ ve Bayes.
  • Figure 8A gives an example of particular implementation where the feature data set is generated by a set of sensors.
  • an apparatus 800 is shown which receives respective feature data values from four sensors 801-803. These are received by the feature data set input 804 which passes them to the class lookup table 805 in order for a set of four class indications to be retrieved.
  • the class voting circuitry 806 (as described above) then selects a single one of these class indications as the final class output, here by mode voting.
  • the sensors may be external to the apparatus but other examples are possible, one of which is illustrated in Figure 8B.
  • the apparatus 810 is a self-contained unit wherein four sensors 811- 814 form part of the apparatus 810. As in the example of Figure 8A the output of these sensors is received by a feature dataset input 815 which can temporarily hold these values before they are passed to a set of class lookup tables 816, in order for a corresponding set of class indications to be read out. These class indications are passed to the class voting circuitry 817 which then determines a single class on the basis of a vote between them.
  • the apparatus 810 in this example further indicates four indicators 818-821 which are used by the apparatus to indicate which class was selected.
  • the present techniques are not constrained to this number of classes (and further that the fact that four inputs are shown from four sensors is purely coincidental).
  • These indicators may take a variety of forms, but to name just one example may be a visual indication, e.g. illuminating a light or changing the colour of a small surface area or a different LED for each class, such that a user can perceive that on the basis of the current sensor data input a particular class has been selected. Accordingly, in such an example the class indications can characterise different situations which may be linked to different balances of sensor data input.
  • the apparatus 810 may be physically constructed in a variety of different ways.
  • the apparatus may instead be embodied as a plastic fabricated device.
  • the number of logic gates which can be provided for a given area of plastic fabricated device by comparison to a silicon fabricated device is considerably lower, the particularly low gate counts which are possible according to the present techniques have been found to lend themselves particularly well to such plastic fabricated devices.
  • the above discussed implementation shown in Figure 7 has been implemented in hardware using such plastic technology.
  • the class prediction can be made in 10ms, which is 2-8x faster than a Gaussian na ⁇ ve Bayes implementation. Moreover it consumes only 315 gates, which is 10-30x smaller than a Gaussian naive Bayes implementation.
  • Figure 9 shows the torso area of a user in an example in which the apparatus may be a wearable device.
  • the apparatus 901 which may for example be arranged in accordance with the example of Figure 8B as described above, is worn on or close to the skin of a user 900.
  • the sensors which form part of the apparatus are then configured to be responsive to local environment conditions which it is desirable to monitor. These could be variously configured from a range of known sensors. Any available sensors may be deployed here, but examples such as sensors for temperature, humidity, pressure, ECG/EMG, or the presence of particular chemicals may be contemplated.
  • the position of the apparatus in the example of Figure 9 is merely for clarity of illustration and this device could be worn in any appropriate location on or near to the skin.
  • the apparatus embodied as a plastic fabricated device might be worn underneath the armpit, such that a range of chemical sensors could determine the balance of chemicals present and activate one of the indicators to signal to the user a particular message about the current“chemical balance” of the under arm area.
  • Figure 10 shows a sequence of steps which are taken accord to the method of one example embodiment.
  • a feature data set is received and then at step 1001 each bit set (representing each feature value in the feature data set) is used to perform a lookup in a lookup table of class indications.
  • the corresponding set of class indications is then read out at step 1002 and at step 1003 a vote is conducted based on the set of class indications read out to determine a selected class.
  • the selected class is then output at step 1004.
  • An apparatus comprises feature dataset input circuitry to receive a feature dataset comprising multiple feature data values indicative of a set of features, wherein each feature data value is represented by a set of bits.
  • Class retrieval circuitry is responsive to reception of the feature dataset from the feature dataset input circuitry to retrieve from class indications storage a class indication for each feature data value received in the feature dataset, wherein class indications are predetermined and stored in the class indications storage for each permutation of the set of bits for each feature.
  • Classification output circuitry is responsive to reception of class indications from the class retrieval circuitry to determine a classification in dependence on the class indications. A predicated class may thus be accurately generated from a simple apparatus.
  • a“configuration” means an arrangement or manner of interconnection of hardware or software.
  • the apparatus may have dedicated hardware which provides the defined operation, or a processor or other processing device may be programmed to perform the function.“Configured to” does not imply that the apparatus element needs to be changed in any way in order to provide the defined operation.

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Public Health (AREA)
  • Medical Informatics (AREA)
  • Biomedical Technology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Pathology (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Surgery (AREA)
  • Animal Behavior & Ethology (AREA)
  • Veterinary Medicine (AREA)
  • Primary Health Care (AREA)
  • Epidemiology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Apparatuses and methods of operating such apparatuses are disclosed. An apparatus comprises feature dataset input circuitry to receive a feature dataset comprising multiple feature data values indicative of a set of features, wherein each feature data value is represented by a set of bits. Class retrieval circuitry is responsive to reception of the feature dataset from the feature dataset input circuitry to retrieve from class indications storage a class indication for each feature data value received in the feature dataset, wherein class indications are predetermined and stored in the class indications storage for each permutation of the set of bits for each feature. Classification output circuitry is responsive to reception of class indications from the class retrieval circuitry to determine a classification in dependence on the class indications. A predicated class may thus be accurately generated from a simple apparatus.

Description

FEATURE DATASET CLASSIFICATION
The present techniques relate to the field of data processing. Various approaches may be taken to classify an input data set on the basis of a number of feature data values which make up that feature data set. For example an apparatus may be constructed on the basis of naive Bayes classifiers which apply Bayes' Theorem. A common implementation is based on the Gaussian naive Bayes algorithm, in which each factor of the likelihood term in the Bayes equation is modelled as a (univariate) Gaussian distribution. A naive Bayes algorithm implementation can be trained using training data sets (in which the desired class to be predicted is known) and then this trained model can be used for new input data sets to generate class predictions. Such an implementation may, in hardware, still require a significant level of computation ability in order to process each input data set and generate the predicted class on the basis of the trained model. There may be some implementation contexts in which it is desirable for the class prediction to be generated by a simpler device with limited data processing ability.
At least some examples provide an apparatus comprising: feature dataset input circuitry to receive a feature dataset comprising multiple feature data values indicative of a set of features, wherein each feature data value is represented by a set of bits; class retrieval circuitry responsive to reception of the feature dataset from the feature dataset input circuitry to retrieve from class indications storage a class indication for each feature data value received in the feature dataset, wherein class indications are predetermined and stored in the class indications storage for each permutation of the set of bits for each feature; and classification output circuitry responsive to reception of class indications from the class retrieval circuitry to determine a classification in dependence on the class indications. At least some examples provide a method of operating an apparatus comprising: receiving at a feature dataset input a feature dataset comprising multiple feature data values indicative of a set of features, wherein each feature data value is represented by a set of bits; retrieving from class indications storage a class indication for each feature data value received in the feature dataset, wherein class indications are predetermined and stored in the class indications storage for each permutation of the set of bits for each feature; and determining a classification in dependence on the class indications.
At least some examples provide an apparatus comprising: means for receiving a feature dataset comprising multiple feature data values indicative of a set of features, wherein each feature data value is represented by a set of bits; means for retrieving from means for storing class indications a class indication for each feature data value received in the feature dataset, wherein class indications are predetermined and stored in the means for storing class indications for each permutation of the set of bits for each feature; and means for determining a classification in dependence on the class indications.
The present techniques will be described further, by way of example only, with reference to embodiments thereof as illustrated in the accompanying drawings, to be read in conjunction with the following description, in which:
Figure 1 schematically illustrates an apparatus according to some example embodiments;
Figure 2 schematically illustrates a training arrangement according to which a Gaussian naive Bayes model implementation is trained using feature training data sets in some example embodiments;
Figures 3A and 3B show examples feature distributions on which the trained model may be based in some example embodiments;
Figure 4 schematically illustrates an apparatus comprising multiple class lookup tables which are accessed in parallel in some example embodiments;
Figure 5 schematically illustrates an apparatus comprising a single class lookup table which is serially accessed for multiple feature values in some example embodiments; Figure 6A schematically illustrates the weighting of class values in some example embodiments;
Figure 6B schematically illustrates a selection between indicated classes by vote in some example embodiments;
Figure 7 schematically illustrates a low precision implementation for receiving 5-bit feature values to be used to lookup 3-bit class values in some example embodiments;
Figure 8A schematically illustrates a set of sensors generating the input feature data set for an apparatus in some example embodiments;
Figure 8B schematically illustrates an apparatus embodied as a plastic fabricated device in some example embodiments;
Figure 9 schematically illustrates an apparatus designed to be a wearable device in some example embodiments; and
Figure 10 shows a sequence of steps which are taken according to the method of some example embodiments.
In one example herein there is an apparatus comprising: feature dataset input circuitry to receive a feature dataset comprising multiple feature data values indicative of a set of features, wherein each feature data value is represented by a set of bits; class retrieval circuitry responsive to reception of the feature dataset from the feature dataset input circuitry to retrieve from class indications storage a class indication for each feature data value received in the feature dataset, wherein class indications are predetermined and stored in the class indications storage for each permutation of the set of bits for each feature; and classification output circuitry responsive to reception of class indications from the class retrieval circuitry to determine a classification in dependence on the class indications.
Before discussing features of the present techniques, for context the core features of the Naive Bayes algorithm are first outlined. Naive Bayes is a probabilistic machine learning algorithm based on the application of Bayes’ Theorem. It uses the simplifying assumption that all features are statistically independent once conditioned on the value of the class label. This simplifies the Bayes equation into the following:
Figure imgf000006_0001
Equation 1 y* is the class label that maximises the equation where Y = {set of classes}, and d is the number of features, and xi are the observed feature values. p(y) are the priors, and
Figure imgf000006_0002
is the likelihood function. The denominator term may be omitted, because it has no effect on the maximum, and the logarithm is taken to turn multiplications into additions:
Figure imgf000006_0003
Equation 2
Gaussian Naive Bayes is a variant in which each factor of the likelihood term is modelled as a (univariate) Gaussian distribution:
Figure imgf000006_0004
Equation 3 If the features are assumed to follow the Gaussian distribution, then each likelihood term will be substituted by the Gaussian probability density function as follows:
Figure imgf000006_0005
Equation 4 Eventually, this reduces to a simple form like the equation below:
Figure imgf000007_0001
Equation 5 where Cy is the log prior of the class, and K0y i, K 1y i and K2y i are constant and coefficients for each class/feature combination. Generally, although these values can be pre-computed in a training stage, and stored in memory, calculating the class probabilities is still compute-intensive requiring multiple MAC operations.
In this context the present techniques provide an apparatus which receives a feature data set comprising multiple feature data values and on the basis of that received feature data set determines a classification (i.e. a class) representative of that feature data set. However, instead of accumulating all of the features to find the probability of each possible class, and then determining the class with the maximum probability, an approach is proposed in which class probabilities for each possible value of each feature are precomputed. That is to say in the classifier apparatus proposed, instead of considering a single classifier with multiple features, multiple distinct classifiers are generated and from those one is selected to be the representative class. The inventors of the present techniques have established that in an apparatus implementing this approach this can enable the gate count to be reduced, and potentially make the operation of class determination faster.
In some embodiments the class indications stored in the class indications storage for each feature are each predetermined as a best class indication which maximises a Bayes Classifier for the feature in a training phase using feature training datasets. Accordingly, the class probabilities for each feature are precomputed in the training phase and the best class for that feature can then be selected under its corresponding Bayes classifier:
Figure imgf000008_0001
Equation 6
Various forms of Bayes classifier may be implemented, but in some embodiments the Bayes Classifier is a Gaussian naïve Bayes Classifier.
Each feature of the set of features may be modelled using a range of different distribution types. In some embodiments the Bayes Classifier is based on a single distribution type used for each feature of the set of features. In some embodiments the Bayes Classifier is based on heterogeneous distribution types used for the set of features. These distribution types may take a variety of forms such as for example Gaussian, exponential, uniform and so on. The approach proposed does not constrain each feature to come from a particular type of distribution or for all features to come from the same type of distribution, which allows more flexibility in the implementation, for example if exact distributions of the features are known.
The retrieval of the class indications from the class indication storage may take a variety of forms but in some embodiments the class indications storage has a look-up table format and the class retrieval circuitry is arranged to perform a look-up procedure with respect to the look-up table format for each feature data value received in the feature dataset. This allows for a ready retrieval of precomputed class indications.
In some embodiments the class retrieval circuitry is arranged to retrieve in parallel the class indications for each feature data value received in the feature dataset. In some embodiments the class retrieval circuitry is arranged to retrieve in a serial sequence the class indications for each feature data value received in the feature dataset. Accordingly, it may be selected between the two different approaches, in dependence on the relative priority in a given implementation of the greater storage required when class indications are to be retrieved in parallel versus the longer retrieval time required for the class indications to be retrieved in a serial sequence. Once the class indications have been retrieved from the class indications storage in the class retrieval circuitry, the final classification may be determined in a variety of ways, but in some embodiments the classification output circuitry is responsive to reception of the class indications from the class retrieval circuitry to determine the classification by a vote amongst the class indications. The vote itself may have a variety of configurations, but for example the class selected may be that which is the most frequent class amongst the class indications retrieved by the class retrieval circuitry. In other words it may be the statistical mode of the set of class indications.
In some embodiments the class indications are weighted. This allows for a further degree of control over the final classification selected. This weighting may be predetermined in the sense that it is pre-calculated, for example where weights for the class indications are determined in a training phase using feature training datasets. Alternatively these weights may be independently user defined. This allows greater user control over the allocation and selection of the classes.
In some embodiments weights of the class indications are used as a tiebreaker when the vote selects more than one class indication. Thus where selection between the class indications to determine a unique class indication is not possible on the basis of the vote, for example because more than one class has been selected the same number of times in the process, then weights of the class indications may be used as tiebreaker in this situation to decide between them.
The inventors of the present techniques have found that successful implementations, in the sense that they maintain a usefully high prediction accuracy for the predicted class of a given input future data sets, can be maintained even when each feature data value is represented at a low precision. For example in some embodiments each feature data value is represented by a set of fewer than 10 bits. Further, in some embodiments each feature data value is represented by a set of 5 bits. In some embodiments the class indications are stored in the class indications storage using a representation of fewer than 5 bits. In some embodiments the class indications are stored in the class indication storage using a representation of 3 bits (i.e. allowing 8 different classes to be defined).
The present techniques may find applicability in a wide variety of contexts, but where they may be implemented in a notably low-complexity manner (in particular in terms of the gate count required) the techniques may find implementation in portable and indeed in wearable contexts. Accordingly, in some embodiments the apparatus is a wearable device.
The feature data set input may be provided from a variety of sources, but in some embodiments the feature dataset input is coupled to a plurality of sensors each providing a respective feature data value.
In some embodiments the apparatus is embodied as a plastic fabricated device. Such a data processing device, embodied in plastic (as opposed to for example being embodied as a silicon-based device) may make it particularly suitable for implementation as a wearable device, whether embedded in clothing or worn next to the skin for example.
The above mentioned low gate count of the apparatus may for example be noted in some embodiments in which the apparatus is embodied comprising fewer than 1000 logic gates. Further, in some embodiments the apparatus is embodied comprising fewer than 500 logic gates.
In one example herein there is a method of operating an apparatus comprising: receiving at a feature dataset input a feature dataset comprising multiple feature data values indicative of a set of features, wherein each feature data value is represented by a set of bits; retrieving from class indications storage a class indication for each feature data value received in the feature dataset, wherein class indications are predetermined and stored in the class indications storage for each permutation of the set of bits for each feature; and determining a classification in dependence on the class indications.
In one example herein there is an apparatus comprising: means for receiving a feature dataset comprising multiple feature data values indicative of a set of features, wherein each feature data value is represented by a set of bits; means for retrieving from means for storing class indications a class indication for each feature data value received in the feature dataset, wherein class indications are predetermined and stored in the means for storing class indications for each permutation of the set of bits for each feature; and means for determining a classification in dependence on the class indications.
Some particular embodiments are now described with reference to the figures.
Figure 1 schematically illustrates an apparatus 100 in some example embodiments. The apparatus comprises feature dataset input circuitry 101 which receives a set of feature data values. Four feature data values are shown in Figure 1 (and for simplicity and clarity of illustration this example number of inputs is continued through various example embodiments illustrated and discussed here), but the present techniques are not limited to this number of inputs in the feature dataset. This feature data set comprising multiple feature data values is passed to class retrieval circuitry 102 which uses the individual feature data values to retrieve a corresponding set of class indications from class indications storage 103. These class indications are then passed to classification output circuitry 104 which determines a final, single predicated classification based on that set of class indications received from the class retrieval circuitry 102. The final classification may be output from the apparatus 100 (as shown in Figure 1), but in other embodiments this classification may be utilised within the apparatus 100, for example to generate an indication which a user can perceive. The class indications stored in the class indications storage are predetermined during a training phase for the apparatus, during which feature training data sets are used. This will be described in more detail with respect to Figure 2. Figure 2 schematically illustrates a process for carrying out a training phase according to which a model (specifically the machine learning algorithm of the present techniques based on a modified Gaussian naive Bayes model) is trained before being used. It should be understood that this part of the training process is carried out, for example, on a general purpose computing device and not on an apparatus such as that illustrated in Figure 1. As shown in Figure 2, at step 200 various feature training data sets are used as inputs. Then for each combination of feature and class, at step 201 full precision constants and coefficients are computed. An iterative process then begins to step though each feature and class to determine the respective class probabilities (see Equation 6 above) for each possible input value. Note that in this example the inputs will be quantized to a 5-bit value (though the present techniques are not limited to this quantization of input value), so there are 32 possible input values for each input. The inventors of the present techniques have found that the class prediction accuracy drops only by around 1% when such quantised input values are used. Hence at the first iteration at step 202 the first feature (Featureo), at step 203 the first input (Input = 0), and at step 204 the first class (Class0) are set to be considered. For these parameters, at step 205, the corresponding class probability is determined (see Equation 6 above). It is then checked at step 206 if all classes (for this feature and input value combination) have now been considered. In some embodiments described here there are 8 classes (though the present techniques are not limited to this particular number of classes). Whilst they have not, step 207 gets the next class to consider and the flow returns to step 205. Once all class probabilities for all classes (for this feature and input combination) have been determined the flow proceeds to step 208, where the class with the maximum probability is found. This class (“MaxClass”) is then stored into class indications storage, such as a lookup table for this feature and input value combination at step 209. At step 210 it is then determined if the last input value (in this 5-bit example, this being number 31) has been reached. Whilst it has not step 211 increments the input value and the flow returns to step 204. Once the last input value has been reached the flow proceeds to step 212, where it is determined if the last feature of the set has been reached. Whilst it has not step 213 gets the next feature to consider and the flow returns to step 203. Once the last features has been reached, then the full set of iterations (over features, input values and classes) is complete the flow of the training process concludes at step 214.
An algorithm is used by the present techniques, according to which instead of considering a single naive Bayes classifier with d features, d distinct Bayes classifiers are considered and their predictions are aggregated to select the final classification. A useful characteristic is that each feature (represented by a feature value) may derive from a completely different distribution (e.g. Gaussian, exponential, uniform, etc.).
Figure 3A shows an example set of distributions according to which each of four feature value data sets are assumed to be represented by Gaussian distributions, whilst Figure 3B shows a set of four feature value distributions in which two are Gaussian distributions and two are uniform distributions.
Figure 4 schematically illustrates an apparatus 400 in some example embodiments. Here the class retrieval circuitry 401 comprises 4 lookup tables (LUT) 402, one of which is provided for each feature data value which the apparatus is configured to receive - note that in this example the feature dataset input circuitry is not explicitly represented. Accordingly, on receipt of a feature data set, each feature data value is used in a lookup in a respective LUT 402 and a class indication from each is read out. This set of class indications is then passed to class selection circuitry 304 which selects a single representative class on the basis of the class indications received.
Figure 5 schematically illustrates an apparatus 500 in some example embodiments. Feature data values are received by a feature data input data 501 which holds these values such that the lookup control circuitry 502 can make use of them in sequence to perform a lookup in the single lookup table 503. That is to say four lookups in the lookup table 503 are performed in a serial sequence under the control of the lookup control 502 using the four feature data values received. The result of each lookup in the lookup table 503 is passed to the class determination circuitry 504 where, whilst the serial lookup procedure is being carried out, the classes received are temporarily stored in class storage 505. From here they are then retrieved for the class voting circuitry 506 to determine a single class for output on the basis of a vote between them. Here the vote is performed by majority in the sense that the most common (mode) class is selected as the winning class for output.
Figure 6A schematically illustrates one example embodiment in which weights 600-603 are associated with the classes retrieved from the class indication storage before a class selection takes place. These weights may be learnt as part of the training, as for example carried out as shown in Figure 2, or may be explicitly set by a user, wishing to influence the balance of the class selection. Hence, for each class received from the class indications storage (e.g. a lookup table) an associated weight is used for each. The weights can be stored in the same lookup table as the classes or they can be in a separate storage. It is to be noted therefore that this weight is thus effectively applied for the“importance” of each respective feature data value, but the class values themselves are not amended since these are integer values used for enumerating the set of possible classes. Each class and its associated weight are then received by the class selection circuitry 604 which performs a determination of the selected class on the basis of the distribution of classes themselves, and their associated weights. For example, the weights may indicate the relative voting weight that each feature data value thus has in the final selection. Additionally, or as an alternative, the class selection circuitry 604 may comprise tie breaker circuitry 605 which can make use of the weight in the event that a tie break is necessary. A tie break occurs when the selection procedure (e.g. mode voting) cannot differentiate between two or more selected classes. In this instance the respective associated weights may be used as a tie break influence. As mentioned above the selection between the class indications received from the class indication storage may take a variety of forms, but in some embodiments such as that illustrated in Figure 6B, this selection is by vote, for example by mode vote.
Figure 7 schematically illustrates some components of an apparatus 700 in one embodiment. In this example eight feature data values are received, each quantised into 5-bit values. These respective 5-bit values are used to perform lookups in a corresponding set of eight lookup tables (of which only two 701 and 702 have been explicitly shown, purely of the sake of clarity) which have each been pre-populated (in a training phase) with 3 -bit class indications for each possible value of each feature value. In other words, there are 32 entries in each lookup table. Hence, eight lookup actions are performed in parallel to retrieve eight 3 -bit class values which are passed to the class voting circuitry 703. The class voting circuitry 703 then performs the final selection of the class prediction which in this example is on the basis of a mode vote amongst the eight class indications received. An implementation such at that shown in Figure 7 (using the new algorithm described herein) has been demonstrated to have a class prediction accuracy of 91%, which is very close to the accuracy of the Gaussian naïve Bayes.
The present techniques may find implementation in variety of contexts, but Figure 8A gives an example of particular implementation where the feature data set is generated by a set of sensors. Accordingly, an apparatus 800 is shown which receives respective feature data values from four sensors 801-803. These are received by the feature data set input 804 which passes them to the class lookup table 805 in order for a set of four class indications to be retrieved. The class voting circuitry 806 (as described above) then selects a single one of these class indications as the final class output, here by mode voting. As in the example of Figure 8A the sensors may be external to the apparatus but other examples are possible, one of which is illustrated in Figure 8B. Here the apparatus 810 is a self-contained unit wherein four sensors 811- 814 form part of the apparatus 810. As in the example of Figure 8A the output of these sensors is received by a feature dataset input 815 which can temporarily hold these values before they are passed to a set of class lookup tables 816, in order for a corresponding set of class indications to be read out. These class indications are passed to the class voting circuitry 817 which then determines a single class on the basis of a vote between them. The apparatus 810 in this example further indicates four indicators 818-821 which are used by the apparatus to indicate which class was selected. Accordingly it will be understood that four different classes are defined in this example, but note that the present techniques are not constrained to this number of classes (and further that the fact that four inputs are shown from four sensors is purely coincidental). These indicators may take a variety of forms, but to name just one example may be a visual indication, e.g. illuminating a light or changing the colour of a small surface area or a different LED for each class, such that a user can perceive that on the basis of the current sensor data input a particular class has been selected. Accordingly, in such an example the class indications can characterise different situations which may be linked to different balances of sensor data input. It is to be further noted that the apparatus 810 may be physically constructed in a variety of different ways. This could for example be a small system on chip embodied in silicon but in other examples (in particular such as will be described below with reference to Figure 9, the apparatus may instead be embodied as a plastic fabricated device. Although according to contemporary technologies the number of logic gates which can be provided for a given area of plastic fabricated device by comparison to a silicon fabricated device is considerably lower, the particularly low gate counts which are possible according to the present techniques have been found to lend themselves particularly well to such plastic fabricated devices. The above discussed implementation shown in Figure 7 has been implemented in hardware using such plastic technology. The class prediction can be made in 10ms, which is 2-8x faster than a Gaussian naïve Bayes implementation. Moreover it consumes only 315 gates, which is 10-30x smaller than a Gaussian naive Bayes implementation.
Figure 9 shows the torso area of a user in an example in which the apparatus may be a wearable device. Hence in this example the apparatus 901, which may for example be arranged in accordance with the example of Figure 8B as described above, is worn on or close to the skin of a user 900. In just one example embodiment the sensors which form part of the apparatus are then configured to be responsive to local environment conditions which it is desirable to monitor. These could be variously configured from a range of known sensors. Any available sensors may be deployed here, but examples such as sensors for temperature, humidity, pressure, ECG/EMG, or the presence of particular chemicals may be contemplated. It should be noted that the position of the apparatus in the example of Figure 9 is merely for clarity of illustration and this device could be worn in any appropriate location on or near to the skin. For example in one contemplated example the apparatus embodied as a plastic fabricated device might be worn underneath the armpit, such that a range of chemical sensors could determine the balance of chemicals present and activate one of the indicators to signal to the user a particular message about the current“chemical balance” of the under arm area.
Figure 10 shows a sequence of steps which are taken accord to the method of one example embodiment. At step 1000 a feature data set is received and then at step 1001 each bit set (representing each feature value in the feature data set) is used to perform a lookup in a lookup table of class indications. The corresponding set of class indications is then read out at step 1002 and at step 1003 a vote is conducted based on the set of class indications read out to determine a selected class. The selected class is then output at step 1004.
In brief overall summary, apparatuses and methods of operating such apparatuses are disclosed. An apparatus comprises feature dataset input circuitry to receive a feature dataset comprising multiple feature data values indicative of a set of features, wherein each feature data value is represented by a set of bits. Class retrieval circuitry is responsive to reception of the feature dataset from the feature dataset input circuitry to retrieve from class indications storage a class indication for each feature data value received in the feature dataset, wherein class indications are predetermined and stored in the class indications storage for each permutation of the set of bits for each feature. Classification output circuitry is responsive to reception of class indications from the class retrieval circuitry to determine a classification in dependence on the class indications. A predicated class may thus be accurately generated from a simple apparatus.
In the present application, the words“configured to...” are used to mean that an element of an apparatus has a configuration able to carry out the defined operation. In this context, a“configuration” means an arrangement or manner of interconnection of hardware or software. For example, the apparatus may have dedicated hardware which provides the defined operation, or a processor or other processing device may be programmed to perform the function.“Configured to” does not imply that the apparatus element needs to be changed in any way in order to provide the defined operation.
Although illustrative embodiments have been described in detail herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments, and that various changes, additions and modifications can be effected therein by one skilled in the art without departing from the scope of the invention as defined by the appended claims. For example, various combinations of the features of the dependent claims could be made with the features of the independent claims without departing from the scope of the present invention.

Claims

1. Apparatus comprising:
feature dataset input circuitry to receive a feature dataset comprising multiple feature data values indicative of a set of features, wherein each feature data value is represented by a set of bits;
class retrieval circuitry responsive to reception of the feature dataset from the feature dataset input circuitry to retrieve from class indications storage a class indication for each feature data value received in the feature dataset, wherein class indications are predetermined and stored in the class indications storage for each permutation of the set of bits for each feature; and
classification output circuitry responsive to reception of class indications from the class retrieval circuitry to determine a classification in dependence on the class indications.
2. The apparatus as claimed in claim 1, wherein the class indications stored in the class indications storage for each feature are each predetermined as a best class indication which maximises a Bayes Classifier for the feature in a training phase using feature training datasets.
3. The apparatus as claimed in claim 2, wherein the Bayes Classifier is a Gaussian naïve Bayes Classifier.
4. The apparatus as claimed in claim 2 or claim 3, wherein the Bayes Classifier is based on a single distribution type used for each feature of the set of features.
5. The apparatus as claimed in claim 2 or claim 3, wherein the Bayes Classifier is based on heterogeneous distribution types used for the set of features.
6. The apparatus as claimed in any preceding claim, wherein the class indications storage has a look-up table format and the class retrieval circuitry is arranged to perform a look-up procedure with respect to the look-up table format for each feature data value received in the feature dataset.
7. The apparatus as claimed in any preceding claim, wherein the class retrieval circuitry is arranged to retrieve in parallel the class indications for each feature data value received in the feature dataset.
8. The apparatus as claimed in any of claims 1-6, wherein the class retrieval circuitry is arranged to retrieve in a serial sequence the class indications for each feature data value received in the feature dataset.
9. The apparatus as claimed in any preceding claim, wherein the classification output circuitry is responsive to reception of the class indications from the class retrieval circuitry to determine the classification by a vote amongst the class indications.
10. The apparatus as claimed in any preceding claim, wherein the class indications are weighted.
11. The apparatus as claimed in claim 10, wherein weights for the class indications are determined in a training phase using feature training datasets.
12. The apparatus as claimed in claim 10 when dependent on claim 9, wherein weights of the class indications are used as a tiebreaker when the vote selects more than one class indication.
13. The apparatus as claimed in any preceding claim, wherein each feature data value is represented by a set of fewer than 10 bits, preferably by a set of 5 bits.
14. The apparatus as claimed in any preceding claim, wherein the class indications are stored in the class indications storage using a representation of fewer than 5 bits, preferably using a representation of 3 bits.
15. The apparatus as claimed in any preceding claim, wherein the apparatus is a wearable device.
16. The apparatus as claimed in any preceding claim, wherein the feature dataset input is coupled to a plurality of sensors each providing a respective feature data value.
17. The apparatus as claimed in any preceding claim, wherein the apparatus is embodied as a plastic fabricated device.
18. The apparatus as claimed in any preceding claim, wherein the apparatus is embodied comprising fewer than 1000 logic gates and preferably comprising fewer than 500 logic gates.
19. A method of operating an apparatus comprising:
receiving at a feature dataset input a feature dataset comprising multiple feature data values indicative of a set of features, wherein each feature data value is represented by a set of bits;
retrieving from class indications storage a class indication for each feature data value received in the feature dataset, wherein class indications are predetermined and stored in the class indications storage for each permutation of the set of bits for each feature; and
determining a classification in dependence on the class indications.
20. Apparatus comprising:
means for receiving a feature dataset comprising multiple feature data values indicative of a set of features, wherein each feature data value is represented by a set of bits;
means for retrieving from means for storing class indications a class indication for each feature data value received in the feature dataset, wherein class indications are predetermined and stored in the means for storing class indications for each permutation of the set of bits for each feature; and means for determining a classification in dependence on the class indications.
PCT/GB2020/050469 2019-03-29 2020-02-27 Feature dataset classification Ceased WO2020201684A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202080022498.5A CN113597647B (en) 2019-03-29 2020-02-27 Feature dataset classification
US17/593,716 US12067086B2 (en) 2019-03-29 2020-02-27 Feature dataset classification

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1904481.7A GB2582665B (en) 2019-03-29 2019-03-29 Feature dataset classification
GB1904481.7 2019-03-29

Publications (1)

Publication Number Publication Date
WO2020201684A1 true WO2020201684A1 (en) 2020-10-08

Family

ID=66443028

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2020/050469 Ceased WO2020201684A1 (en) 2019-03-29 2020-02-27 Feature dataset classification

Country Status (4)

Country Link
US (1) US12067086B2 (en)
CN (1) CN113597647B (en)
GB (1) GB2582665B (en)
WO (1) WO2020201684A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12493784B1 (en) * 2019-08-09 2025-12-09 Nvidia Corporation Tie-breaker for inference reproducibility

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689437B1 (en) * 2000-06-16 2010-03-30 Bodymedia, Inc. System for monitoring health, wellness and fitness
US7004794B2 (en) * 2003-09-11 2006-02-28 Super Talent Electronics, Inc. Low-profile USB connector without metal case
JP2008504803A (en) * 2004-01-09 2008-02-21 ザ リージェンツ オブ ザ ユニバーシティ オブ カリフォルニア Cell type-specific pattern of gene expression
US7565369B2 (en) * 2004-05-28 2009-07-21 International Business Machines Corporation System and method for mining time-changing data streams
GB2430073A (en) * 2005-09-08 2007-03-14 Univ East Anglia Analysis and transcription of music
US7405679B1 (en) * 2007-01-30 2008-07-29 International Business Machines Corporation Techniques for 9B10B and 7B8B coding and decoding
US20130132377A1 (en) * 2010-08-26 2013-05-23 Zhe Lin Systems and Methods for Localized Bag-of-Features Retrieval
US9219694B2 (en) * 2013-03-15 2015-12-22 Wisconsin Alumni Research Foundation Content addressable memory with reduced power consumption
US8902086B1 (en) * 2013-09-11 2014-12-02 Allegiance Software, Inc. Data encoding for analysis acceleration
WO2018232581A1 (en) * 2017-06-20 2018-12-27 Accenture Global Solutions Limited AUTOMATIC EXTRACTION OF A LEARNING CORPUS FOR A DATA CLASSIFIER BASED ON AUTOMATIC LEARNING ALGORITHMS
US10706535B2 (en) * 2017-09-08 2020-07-07 International Business Machines Corporation Tissue staining quality determination
US20190147296A1 (en) * 2017-11-15 2019-05-16 Nvidia Corporation Creating an image utilizing a map representing different classes of pixels
US20190247650A1 (en) * 2018-02-14 2019-08-15 Bao Tran Systems and methods for augmenting human muscle controls
US11106708B2 (en) * 2018-03-01 2021-08-31 Huawei Technologies Canada Co., Ltd. Layered locality sensitive hashing (LSH) partition indexing for big data applications
US20200113489A1 (en) * 2018-04-27 2020-04-16 Mindmaze Holding Sa Apparatus, system and method for a motion sensor
US11099208B2 (en) * 2018-10-30 2021-08-24 Stmicroelectronics S.R.L. System and method for determining whether an electronic device is located on a stationary or stable surface

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "ASCII - Wikipedia", 7 February 2019 (2019-02-07), XP055689521, Retrieved from the Internet <URL:https://en.wikipedia.org/w/index.php?title=ASCII&oldid=882225814> [retrieved on 20200427] *
ANONYMOUS: "Program to implement ASCII lookup table - GeeksforGeeks", 11 December 2015 (2015-12-11), XP055689525, Retrieved from the Internet <URL:https://www.geeksforgeeks.org/program-implement-ascii-lookup-table/> [retrieved on 20200427] *

Also Published As

Publication number Publication date
CN113597647B (en) 2025-09-30
US20220156531A1 (en) 2022-05-19
CN113597647A (en) 2021-11-02
GB2582665A (en) 2020-09-30
GB201904481D0 (en) 2019-05-15
GB2582665B (en) 2021-12-29
US12067086B2 (en) 2024-08-20

Similar Documents

Publication Publication Date Title
Zhang et al. Reinforcement online active learning ensemble for drifting imbalanced data streams
CN106886599B (en) Image retrieval method and device
Kontkanen et al. Comparing predictive inference methods for discrete domains
US12339910B2 (en) Systems and methods for weighted quantization
US9960904B2 (en) Correlation determination early termination
CN108701259A (en) The system and method that the data handled using binary classifier carry out create-rule
CN115408449B (en) User behavior processing method, device and equipment
CN114091597A (en) Countermeasure training method, device and equipment based on adaptive group sample disturbance constraint
US12067086B2 (en) Feature dataset classification
US10140581B1 (en) Conditional random field model compression
US9053434B2 (en) Determining an obverse weight
Zhang et al. Research of neural network classifier based on FCM and PSO for breast cancer classification
CN114218420A (en) Image retrieval acceleration method, retrieval device, electronic device and storage medium
Chen et al. Kernel classifier construction using orthogonal forward selection and boosting with Fisher ratio class separability measure
JP2010067259A (en) Method for classifying data in system having limited memory
CN112734039B (en) A virtual confrontation training method, device and equipment for deep neural network
CN109212960B (en) Weight sensitivity-based binary neural network hardware compression method
Shukla et al. Voting based extreme learning machine with accuracy based ensemble pruning
US20220398409A1 (en) Class prediction based on multiple items of feature data
Kim et al. A Simple Up-and-Down Weight Update Method for Tiny 8-bit Quantized CNN Training
CN119295896B (en) Computer vision processing method, device, equipment and storage medium
WO2021239248A1 (en) Training a machine learning classifier
Agranovskii et al. Comparative Analysis of Results of Modern Classification Algorithms Usage for Determining the Type of Physical Activity Based on Integrated Sensors Data
Park Application of an Adaptive Incremental Classifier for Streaming Data
US20260064628A1 (en) Reduced-size file type classification with deep learning

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20710265

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20710265

Country of ref document: EP

Kind code of ref document: A1

WWG Wipo information: grant in national office

Ref document number: 202080022498.5

Country of ref document: CN