Method and apparatus for deep machine learning

The self-evolving deep machine learning method addresses the limitations of existing models by clustering encoded input data and providing representative examples, enabling efficient, adaptive learning without extensive retraining.

WO2025056864A1PCT designated stage expired Publication Date: 2025-03-20UNIV OF LANCASTER
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/GB2024/051325
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-15
Filing Date
2024-05-22
Publication Date
2025-03-20

AI Technical Summary

Technical Problem

Existing deep machine learning models require extensive computational resources, time, and data for fine-tuning, and they do not support lifelong learning with simultaneous semi-supervised and unsupervised learning.

Method used

A method of self-evolving deep machine learning that involves receiving input data, encoding it using a pre-trained machine learning module, grouping the encoded data into clusters based on similarity, and providing representative examples for each cluster, allowing for continuous learning and adaptation without the need for extensive retraining.

Benefits of technology

This approach reduces complexity by eliminating the need for fine-tuning and enables efficient use of unsupervised or semi-supervised learning techniques, facilitating faster learning and problem-solving with fewer parameters.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure GB2024051325_20032025_PF_FP_ABST
    Figure GB2024051325_20032025_PF_FP_ABST
Patent Text Reader

Abstract

An example presented herein provides a method of self-evolving deep machine learning on at least one apparatus, the method comprising: performing operations comprising: receiving, by a first apparatus, input data; transmitting the input data to a pre-trained machine learning module of the first apparatus; encoding, by the pre-trained machine learning module, the input data; grouping, by the first apparatus, the encoded input data into a plurality of first clusters based on a similarity of individual data points of the input data; providing, by the first apparatus for each of the plurality of first clusters, a first representative example; receiving, by the first apparatus, object input data corresponding to a request for object identification; encoding, by the pre-trained machine learning module, the object input data; identifying, by the first apparatus, whether one of the first representative examples corresponds to the encoded object input data based on a degree of association of the encoded object input data with each first cluster of the plurality of first clusters; and grouping, by the first apparatus, the encoded object input data into a cluster based on the degree of association of the encoded object input data with each first cluster of the plurality of first clusters, such that the encoded object input data is used in future implementation of the machine learning.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Method and Apparatus for Deep Machine Learning Technical Field [1] Examples of the present applica^on relate to using self-evolving deep machine learning to iden^fy input data and output a signal which indicates a representa^ve example corresponding to the iden^fied input data. In par^cular, various examples disclosed in the present applica^on provide methods, apparatuses and computer program products for self-evolving deep machine learning. Background [2] Founda^onal models for machine learning, when applied to large generic data sets, offer an opportunity tofine-tune the models for specific target data sets by applying complex deep learning models with o^en millions of trainable parameters. Although this results in highly accurate models, these models are most o^en trained using itera^ve gradient descent algorithms which require a large amount of computa^onal resources, ^me, and data. Further, they do not allow lifelong learning with simultaneous semi-supervised and unsupervised learning. [3] Thus, there is a need for a method of self-evolving deep machine learning which reduces complexity when working with target data by not requiringfinetuning and offering the use of unsupervised or semi-supervised learning techniques. [4] It is with the above context that the present disclosure was devised. Brief Summary [5] It is an aim of certain examples of the present disclosure to address, solve and / or mi^gate, at least partly, at least one of the problems and / or disadvantages associated with the related art, for example at least one of the problems and / or disadvantages described herein. It is an aim of certain examples of the present disclosure to provide at least one advantage over the related art, for example at least one of the advantages described herein. [6] Aspects of the present disclosure are provided by the independent claims. Various examples of the present disclosure are outlined in the dependent claims. [7] According to an aspect of the present disclosure, there is provided a method of self-evolving deep machine learning on at least one apparatus, the method comprising: performing opera^ons comprising: receiving, by afirst apparatus, input data; transmi^ng the input data to a pre-trained machine learning module of thefirst apparatus; encoding, by the pre-trained machine learning module, the input data; grouping, by thefirst apparatus, the encoded input data into a plurality of first clusters based on a similarity of individual data points of the input data; providing, by thefirst apparatus for each of the plurality offirst clusters, afirst representa^ve example; receiving, by the first apparatus, object input data corresponding to a request for object iden^fica^on; encoding, by the pre-trained machine learning module, the object input data; iden^fying, by thefirst apparatus, whether one of thefirst representa^ve examples corresponds to the encoded object input data based on a degree of associa^on of the encoded object input data with eachfirst cluster of the plurality offirst clusters; and grouping, by thefirst apparatus, the encoded object input data into a cluster based on the degree of associa^on of the encoded object input data with eachfirst cluster of the plurality offirst clusters, such that the encoded object input data is used in future implementa^on of the machine learning. [8] According to various examples, the input data is received con^nuously; and wherein the opera^ons are repeated as long as the input data is being received. [9] According to various examples, the method further comprises: receiving, by thefirst apparatus, an input by a user indica^ng a category for at least onefirst cluster of the plurality offirst clusters; and / or receiving, by thefirst apparatus, target output data.

[0010] According to various examples, the method further comprises: if it is iden^fied that one of thefirst representa^ve examples corresponds to the object input data, outpu^ng, by thefirst apparatus, afirst signal indica^ng thefirst representa^ve example that corresponds to the object input data, or if it is iden^fied that none of thefirst representa^ve examples correspond to the object input data, outpu^ng, by thefirst apparatus, a second signal indica^ng that the object input data does not correspond to any of the plurality offirst clusters or any of thefirst representa^ve examples.

[0011] According to various examples, thefirst signal is output by controlling thefirst apparatus to flash a light, output a sound, and / or display informa^on on a display.

[0012] According to various examples, if it is iden^fied that one of thefirst representa^ve examples corresponds to the object input data, the object input data is grouped into thefirst cluster represented by the one of thefirst representa^ve examples; and wherein if it is iden^fied that none of thefirst representa^ve examples correspond to the object input data, the object input data is grouped into a new cluster, and op^onally a new category is assigned to the new cluster by thefirst apparatus.

[0013] According to various examples, the degree of associa^on of the encoded object input data with eachfirst cluster of the plurality offirst clusters is the distance between the encoded object input data and the cluster centre of saidfirst cluster; and wherein the iden^fying is performed based on comparing the degree of associa^on of the encoded object input data with eachfirst cluster of the plurality offirst clusters and afirst threshold.

[0014] According to various examples, thefirst threshold is set based on the standard devia^on of the plurality offirst clusters.

[0015] According to various examples, the input data comprises at least onefirst image; wherein the encoding of the input data comprises: for each of the at least onefirst image, dividing saidfirst image into a plurality of non-overlappingfirst patches; and encoding the plurality offirst patches; and wherein the encoded input data comprises the encodedfirst patches.

[0016] According to various examples, the object input data comprises a second image and encoding the object input data comprises encoding the second image; wherein the method comprises dividing the second image into a plurality of non-overlapping second patches and encoding the second patches; and wherein grouping the encoded object input data comprises grouping each of the encoded second image and the encoded second patches into at least one cluster.

[0017] According to various examples, the iden^fying comprises: performing afirst iden^fica^on of whether one of thefirst representa^ve examples corresponds to the encoded second image based on a degree of associa^on of the encoded second image with eachfirst cluster of the plurality offirst clusters; and performing, for each encoded second patch, a second iden^fica^on of whether one of thefirst representa^ve examples corresponds to said encoded second patch based on a degree of associa^on of said encoded second patch with eachfirst cluster of the plurality offirst clusters.

[0018] According to various examples, the method further comprises: providing a decision in response to the request for object iden^fica^on based on thefirst iden^fica^on and the second iden^fica^on.

[0019] According to various examples, the method further comprises: labelling a data point for each first cluster of the plurality offirst clusters to obtain a plurality of labelled data points; and classifying the labelled data points using linear discriminant analysis (LDA) to provide an LDA model.

[0020] According to various examples, the encoding of the input data comprises: transforming the input data into a vector; wherein the vector is a set of numerical values configured such that the similarity of individual data points is represented by a func^on of the numerical values represen^ng the closeness of individual data points; and wherein the number of numerical values corresponds to the dimensionality of the vector and is defined according to the pre-trained machine learning module.

[0021] According to various examples, the method further comprises: performing principal component analysis (PCA) on the vector to reduce the dimensionality of the vector.

[0022] According to various examples, the grouping of the encoded data comprises: determining, for each individual data point, that the individual data point belongs to afirst cluster of the plurality offirst clusters if said individual data point is closer in vector space to a point from saidfirst cluster than any other individual data point that belongs to a differentfirst cluster.

[0023] According to various examples, the providing thefirst representa^ve example comprises: determining a cluster centre for eachfirst cluster of the plurality offirst clusters or a nearest individual data point to the cluster centre within the vector space for eachfirst cluster of the plurality offirst clusters; iden^fying a category associated with eachfirst cluster of the plurality offirst clusters; and providing thefirst representa^ve example for eachfirst cluster based on the iden^fied category associated with eachfirst cluster.

[0024] According to various examples, the request for object iden^fica^on relates to at least one of autonomous vehicles, space and avia^on, cyber security, robo^cs, agricultural work, categorizing symptoms of disease and diagnosis, infrastructure quality monitoring, deepfake analysis, road quality analysis, medical data analysis, domain adapta^on, self-localisa^on and mapping (SLAM) and human ac^vity data analysis; and / or wherein the input data includes at least one of image data, natural language data, spectroscopy data, CT scan data, MRI scan data, ECG or EKG (electrocardiogram) data or tabular data including temperature, pressure, accelerometer, velocity, ^me series, economic or biological data.

[0025] According to various examples, the at least one apparatus further includes a second apparatus; wherein the method further comprises: transmi^ng, by thefirst apparatus, thefirst representa^ve examples to the second apparatus.

[0026] According to various examples, the method further comprises: receiving, by the second apparatus, other input data; transmi^ng the input data to a pre-trained machine learning module of the second apparatus; encoding, by the pre-trained machine learning module of the second apparatus, the other input data; grouping, by the second apparatus, the encoded other input data into a plurality of second clusters based on a similarity of individual data points of the other input data; providing, by the second apparatus for each of the plurality of second clusters, a second representa^ve example; and transmi^ng, by the second apparatus, the second representa^ve examples to thefirst apparatus; wherein, op^onally, one or more of thefirst clusters corresponds to one or more of the second clusters, or each of thefirst clusters differs from each of the second clusters.

[0027] According to another aspect of the present disclosure, there is provided an apparatus for self-evolving deep machine learning, the apparatus comprising: a memory configured to store a set of representa^ve examples; a pre-trained machine learning module; a clustering module; at least one processor, communicably connected to the pre-trained learning module and the clustering module, the at least one processor is configured to: receive input data; transmit the input data to the pre-trained machine learning module; encode, by the pre-trained machine learning module, the input data; group, by the clustering module, the encoded input data into a plurality offirst clusters based on a similarity of individual data points of the input data; provide, for each of the plurality of first clusters, afirst representa^ve example; receive object input data corresponding to a request for object iden^fica^on; encode, by the pre-trained machine learning module, the object input data; iden^fy whether one of thefirst representa^ve examples corresponds to the encoded object input data based on a degree of associa^on of the encoded object input data with eachfirst cluster of the plurality offirst clusters; and group the encoded object input data into a cluster based on the degree of associa^on of the encoded object input data with eachfirst cluster of the plurality offirst clusters, such that the encoded object input data is used in future implementa^on of the machine learning.

[0028] According to another aspect of the present disclosure, there is provided a system comprising: afirst apparatus; and a second apparatus, wherein the second apparatus is communicably connected to thefirst apparatus via a communica^on link; wherein thefirst apparatus is configured to: receive input data; transmit the input data to a pre-trained machine learning module of thefirst apparatus; encode, by the pre-trained machine learning module of thefirst apparatus, the input data; group, by a clustering module of thefirst apparatus, the encoded input data into a plurality offirst clusters based on a similarity of individual data points of the input data; provide, for each of the plurality offirst clusters, afirst representa^ve example; transmit thefirst representa^ve examples to the second apparatus; receive object input data corresponding to a request for object iden^fica^on; encode, by the pre-trained machine learning module, the object input data; iden^fy whether one of thefirst representa^ve examples corresponds to the encoded object input data based on a degree of associa^on of the encoded object input data with eachfirst cluster of the plurality offirst clusters; and group the encoded object input data into a cluster based on the degree of associa^on of the encoded object input data with eachfirst cluster of the plurality offirst clusters, such that the encoded object input data is used in future implementa^on of the machine learning; and wherein the second apparatus is configured to: receive other input data; transmit the other input data to a pre-trained machine learning module of the second apparatus; encode, by the pre-trained machine learning module of the second apparatus, the other input data; group, by a clustering module of the second apparatus, the encoded other input data into a plurality of second clusters based on a similarity of individual data points of the other input data; provide, for each of the plurality of second clusters, a second representa^ve example; and transmit the second representa^ve examples to thefirst apparatus.

[0029] According to various examples, the system further comprises a plurality of further apparatuses communicably connected to each other, thefirst apparatus, and the second apparatus via a communica^on link; and wherein thefirst apparatus and the second apparatus are configured to transmit thefirst representa^ve examples and the second representa^ve examples, respec^vely, to the plurality of further apparatuses.

[0030] According to various examples, thefirst apparatus and the second apparatus are configured to perform federated learning via exchange of thefirst representa^ve examples and the second representa^ve examples.

[0031] According to another example of the present disclosure, there is provided a method for self- evolving deep machine learning on at least one apparatus, the method comprising: performing opera^ons (e.g., a set of opera^ons, aflow of opera^on, a procedure, a rou^ne etc.) comprising: receiving, by afirst apparatus, input data; transmi^ng the input data to a pre-trained machine learning module (which may be a founda^on feature extractor, FFE) of thefirst apparatus; encoding, by the pre-trained machine learning module of thefirst apparatus, the input data; grouping, by the first apparatus, the encoded input data into a plurality of clusters based on a similarity of individual data points of the input data; and providing, by thefirst apparatus at least one representa^ve example to represent each cluster of the plurality of clusters. Advantageously, such a method may provide faster learning and / or problem solving than a method employing an itera^ve gradient descent algorithms, requiring fewer parameters.

[0032] According to an example, the opera^ons are repeated as long as the input data is being received.

[0033] According to an example, the method may further comprise receiving, by thefirst apparatus, a request for object iden^fica^on; receiving, by thefirst apparatus, object input data corresponding to the request for object iden^fica^on; providing, by thefirst apparatus, a degree of associa^on of the object input data with (or for) each cluster of the plurality of clusters; iden^fying, by thefirst apparatus, whether one of the at least one representa^ve example corresponds to the object input data based on the provided degree of associa^on; and if so, outpu^ng, by thefirst apparatus, a signal indica^ng the at least one representa^ve example that corresponds to the object input data.

[0034] According to an example, the method may further comprise receiving, by thefirst apparatus, an input by a user indica^ng a category for at least one cluster of the plurality of clusters; and / or receiving, by thefirst apparatus, target output data.

[0035] According to an example, the object input data is: encoded, by the pre-trained machine learning module of thefirst apparatus; and the encoded object input data is grouped, by thefirst apparatus, into at least one cluster (e.g., which may be one or the plurality of clusters, or a new cluster) based on a similarity of the individual data points of the object input data such that the individual data points are used in future implementa^on of the machine learning. Advantageously, this may support lifelong learning.

[0036] According to an example, the signal is output by controlling thefirst apparatus toflash a light, output a sound, and / or display informa^on on a display.

[0037] According to an example, the request for object iden^fica^on relates to at least one of autonomous vehicles, space and avia^on, cyber security, robo^cs, agricultural work, categorizing symptoms of disease and diagnosis, and human ac^vity data analysis.

[0038] According to an example, the encoding of the input data comprises: transforming, by thefirst apparatus, the input data into a vector; the vector is a set of numerical values configured such that the similarity of individual data points is represented by a func^on of the numerical values represen^ng the closeness of individual data points; and the number of numerical values is defined according to the pre-trained machine learning module.

[0039] According to an example, grouping of the encoded data comprises: determining, by thefirst apparatus, for each individual data point, that the individual data point belongs to a cluster of the plurality of clusters if said individual data point is closer in vector space to a point from said cluster than any other individual data point that belongs to a different cluster.

[0040] According to an example, the providing the at least one representa^ve example comprises: determining a cluster centre for each cluster of the plurality of clusters or a nearest individual data point to the cluster centre within the vector space for each cluster of the plurality of clusters; iden^fying a category associated with each cluster of the plurality of clusters; and providing the at least one representa^ve example based on the iden^fied category.

[0041] According to an example, the input data includes at least one of image data, natural language data, spectroscopy data, CT scan data, MRI scan data, ECG, EKG data or tabular data including temperature, pressure, accelerometer, velocity, ^me series, economic or biological data.

[0042] According to an example, the at least one apparatus further includes a second apparatus; wherein the method further comprises: transmi^ng, by thefirst apparatus, the at least one representa^ve example to the second apparatus.

[0043] According to an example, the method may further comprise: receiving, by the second apparatus, other input data; transmi^ng the input data to a pre-trained machine learning module of the second apparatus; encoding, by the pre-trained machine learning module of the second apparatus, the other input data; grouping, by the second apparatus, the encoded other input data into a plurality of clusters based on a similarity of individual data points of the other input data; providing, by the second apparatus at least one representa^ve example to represent each cluster of the plurality of clusters; and transmi^ng, by the second apparatus, the at least one representa^ve example to thefirst apparatus.

[0044] According to another example of the present disclosure, there is provided an apparatus for self-evolving deep machine learning, the apparatus comprising: a memory configured to store a set of representa^ve examples; a pre-trained machine learning module; a clustering module; at least one processor, communicably connected to the pre-trained learning module and the clustering module, the at least one processor is configured to: receive input data; transmit the input data to the pre-trained machine learning module; encode, by the pre-trained machine learning module, the input data; group, by the clustering module, the encoded input data into clusters based on a similarity of individual data points of the input data; and provide at least one representa^ve example, of the set of representa^ve examples, to represent each cluster.

[0045] According to an example, the apparatus may further comprise an image capturing apparatus.

[0046] According to various examples, the apparatus may be arranged or configured to perform a method according to any of the examples provided above or any combina^on of the examples provided above.

[0047] According to another aspect of the present disclosure, there is provided a system comprising: afirst apparatus; and a second apparatus, wherein the second apparatus is connected to thefirst apparatus via a communica^on link; wherein thefirst apparatus is configured to: receive input data; transmit the input data to a pre-trained machine learning module; encode, by the pre- trained machine learning module, the input data; group, by the clustering module, the encoded input data into clusters based on a similarity of individual data points of the input data; provide at least one representa^ve example, of a set of representa^ve examples, to represent each cluster; and transmit the at least one representa^ve example to the second apparatus; and wherein the second apparatus is configured to: receive other input data; transmit the other input data to a pre-trained machine learning module; encode, by the pre-trained machine learning module, the other input data; group, by the clustering module, the encoded other input data into clusters based on a similarity of individual data points of the other input data; provide at least one other representa^ve example, of a set of representa^ve examples, to represent each cluster; and transmit the at least one other representa^ve example to thefirst apparatus.

[0048] According to an example, the system further comprises a plurality of further apparatuses are connected to each other, thefirst apparatus, and the second apparatus via a communica^on link; and thefirst apparatus and the second apparatus are configured to transmit the at least one representa^ve example and the at least one other representa^ve example to the plurality of further apparatuses.

[0049] According to an example, thefirst apparatus and the second apparatus are configured to perform federated learning via exchange of the at least one representa^ve example.

[0050] According to another example of the present disclosure, there is provided a computer- readable storage medium comprising instruc^ons which, when executed by a computer, cause the computer to: receive input data; transmit the input data to a pre-trained machine learning module; encode, by the pre-trained machine learning module, the input data; group, by the clustering module, the encoded input data into clusters based on a similarity of individual data points of the input data; and provide at least one representa^ve example, of a set of representa^ve examples, to represent each cluster.

[0051] According to another aspect of the present disclosure, there is provided a computer- readable storage medium comprising instruc^ons which, when executed by a computer, cause the computer to perform a method according to any of the examples described above or any combina^on of the examples described above.

[0052] Other aspects, advantages, and salient features of the inven^on will become apparent to those skilled in the art from the following detailed descrip^on taken in conjunc^on with the accompanying drawings. Brief Descrip^on of Drawings

[0053] Figure 1 shows aflowchart illustra^ng an example method of self-evolving deep machine learning on at least one apparatus according to the present disclosure;

[0054] Figure 2 shows aflowchart illustra^ng an example method of providing an output for a method of self-evolving deep machine learning according to the present disclosure;

[0055] Figure 3 illustrates various examples of applica^ons of the method of self-evolving deep machine learning according to the present disclosure;

[0056] Figure 4 illustrates an example of a clustering method according to the present disclosure;

[0057] Figure 5 is a diagram illustra^ng an example of self-evolving deep machine learning according to the present disclosure;

[0058] Figure 6 is a diagram illustra^ng a plurality of apparatuses for implemen^ng the self-evolving deep machine learning according to various examples of the present disclosure; and

[0059] Figure 7 is a diagram illustra^ng an apparatus for implemen^ng the self-evolving machine learning according to various examples of the present disclosure.

[0060] Figures 8A and 8B illustrate a vision transformer (ViT) and a transformer encoder according to various examples of the present disclosure.

[0061] Figures 9A and 9B illustrate 2D plots of posi^ons rela^ng to self-localisa^on and mapping (SLAM) examples, according to the present disclosure.

[0062] Figure 10 illustrates domain adapta^on according to various examples of the present disclosure.

[0063] Figure 11 illustrates a map of a road network indica^ng road quality to various examples of the present disclosure. Detailed Descrip^on

[0064] Hereina^er, embodiments of the disclosure are described with reference to the accompanying drawings. However, it should be appreciated that the disclosure is not limited to the embodiments, and all changes and / or equivalents or replacements thereto also belong to the scope of the disclosure. The same or similar reference denota^ons may be used to refer to the same or similar elements throughout the specifica^on and the drawings.

[0065] As used herein, the terms “have”, “may have”, “include”, or “may include” referring to a feature (e.g., a number, func^on, opera^on, or a component such as a part) indicate the existence of the feature and do not exclude the existence of other features.

[0066] As used herein, the terms “A or B”, “A and / or B”, “at least one of A and / or B”, or “one or more of A and / or B” may include all possible combina^ons of A and B. For example, “A or B”, “at least one of A and B”, “at least one of A or B” may indicate all of (1) including at least one A, (2) including at least one B, or (3) including at least one A and at least one B.

[0067] As used herein, the terms “first” and “second” may modify various components regardless of importance and do no limit the components. These terms are only used to dis^nguish one component from another. For example, afirst user device and a second user device may indicate user devices different from each other regardless of the order or importance of the devices. For example, afirst component may be denoted a second component, and vice versa without depar^ng from scope of the disclosure.

[0068] It will be understood that when an element (e.g., afirst element) is referred to as being (opera^vely or communica^vely) “coupled with / to,” or “connected with / to” another element (e.g., a second element), it can be coupled or connected with / to the other element directly or via a third element. In contrast, it will be understood that when an element (e.g., afirst element) is referred to as being “directly coupled with / to” or “directly connected with / to” another element (e.g., a second element), no other element (e.g., a third element) intervenes between the element and the other element.

[0069] As used herein, the terms “configured (or set) to” may be interchangeably used with the terms “suitable for,” “having the capacity to,” “designed to,” “adapted to,” “made to,” or “capable of” depending on circumstances. The term “configured (or set) to” does not essen^ally mean “specifically designed in hardware to.” Rather, the term “configured to” may mean that a device can perform an opera^on together with another device or parts.

[0070] For example, the term “processor configured (or set) to perform A, B, and C” may mean a generic-purpose processor (e.g., a CPU or applica^on processor) that may perform the opera^ons by execu^ng one or more so^ware programs stored in a memory device or a dedicated processor (e.g., an embedded processor) for performing the opera^ons.

[0071] The terms as used herein are provided merely to describe some embodiments thereof, but not to limit the scope of other embodiments of the disclosure. It is to be understood that the singular forms “a,” “'an,” and “the” include plural references unless the context clearly dictates otherwise. All terms including technical and scien^fic terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiments of the disclosure belong. It will be further understood that terms, such as those defined in commonly used dic^onaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein. In some cases, the terms defined herein may be interpreted to exclude embodiments of the disclosure.

[0072] Reference will now be made to Figure 1, which illustrates a method of self-evolving deep machine learning on at least one apparatus. The method may provide con^nual learning in a machine learning context using only shallow learning techniques (such as clustering) using pre- trained latent spaces that do not requirefinetuning.

[0073] As described in more detail with reference to Figures 5 and 6, the at least one apparatus may include afirst apparatus and a second apparatus. The at least one apparatus may further include one or more further apparatuses, connected to each other (directly or indirectly) and thefirst apparatus and the second apparatus via a communica^on link (for example, an internet link or other communica^ons link).

[0074] In step S110, thefirst apparatus is configured to receive input data. The input data may be image data, natural language data, spectroscopy data, CT scan data, MRI scan data, or tabular data (for example, data stored in tables) including temperature, pressure, accelerometer (or accelera^on), velocity, ^me series, economic or biological data or the like. Thefirst apparatus may be a computer, a smart phone, a wearable device, or any other suitable device.

[0075] In step S120, thefirst apparatus is configured to transmit the input data to a pre-trained machine learning module of thefirst apparatus. The pre-trained machine learning module may be a founda^on feature extractor (FFE) which may use a pre-trained founda^on model (PT-FM) which may be pre-trained on large scale data (for example, generic large scale data) such as ImageNet or JFT- 300M or similar non-image data. These data sets may be generic and may differ from a specific problem posed by the input data, which may represent specific data which a user of the apparatus is trying to iden^fy. Other examples of founda^onal models include DINOv2 and CLIP.

[0076] In step S130, thefirst apparatus is configured to encode (or transform) the input data, by the pre-trained machine learning apparatus. For example, the input data may be encoded via a complex non-linear transforma^on which may be provided by the pre-trained founda^on model of the pre- trained machine learning module, and which may include a number of trainable parameters (for example, the number of trainable parameters may be large, in the millions or billions).

[0077] The transforma^on of the input data may include transforming the input data into an n- dimensional vector, wherein the number of dimensions may be predefined or predetermined by the pre-trained founda^on model of the pre-trained machine learning module and may be a power of 2 (for example, 1024, 2048, 4096, or 64). This transforma^on may thus be considered as encoding the input data into a vector (or code) or numerical values such that each individual data item is represented as a numerical value. The numerical values may be assigned such that data items which are similar or close in the vector space result in larger similarity in numerical value.

[0078] That is, the encoding of the input data may comprise: transforming the input data into a vector, wherein the vector is a set of numerical values configured such that the similarity of individual data points is represented by a func^on of the numerical values represen^ng the individual data points, and wherein the number of numerical values is defined according to the pre- trained machine learning module.

[0079] For example, the func^on may be an inverse of a norm of a difference in the numerical values represen^ng the individual data points, regularised by adding a posi^ve value (e.g.1). That is, the numerical values may be assigned such that individual data points which are similar (or, in other words, close in vector space) result in larger similarity in numerical values. In other words, if two individual data points have a high similarity, this may be reflected in a corresponding difference in the numerical values of the individual data points.

[0080] In step S140, thefirst apparatus is configured to group (or cluster) the encoded input data into a plurality of clusters based on a similarity of individual data points of the input data. This may be performed using exis^ng clustering techniques such as k-means, DBSCAN (Ester, Mar^n; Kriegel, Hans-Peter; Sander, Jörg; Xu, Xiaowei (1996). Simoudis, Evangelos; Han, Jiawei; Fayyad, Usama M. (eds.). “A density-based algorithm for discovering clusters in large spa^al databases with noise” (PDF). Proceedings of the Second Interna^onal Conference on Knowledge Discovery and Data Mining (KDD-96). AAAI Press. pp.226–231. CiteSeerX 10.1.1.121.9220. ISBN 1-57735-004-9.), ELM (Baruah, Rashmi Du^a, and Plamen Angelov. "Evolving local means method for clustering of streaming data." 2012 IEEE interna^onal conference on fuzzy systems. IEEE, 2012.), ADP (X. Gu, P. Angelov, J. Principe, “A method for autonomous data par^^oning”, Informa^on Sciences, vol.460-461, pp.65-82, Sept. 2018, DOI: 10.1016 / j / ins.2018.05.030.), or the like. Alterna^vely, other types of unsupervised learning may also be used.

[0081] The grouping may be performed either online or offline, wherein the input data is con^nually received by thefirst apparatus in an online mode (for example, the input data may be received in the form of an input stream). For example, the input data may be received and processed in real-^me, but there is no limit to how frequently the input data must be received in the online mode. For example, intervals of seconds, minutes, or days may pass between the input data being received. It will be appreciated that this can allow for lifelong learning to be provided by a method of the present disclosure. In an offline mode, a complete data set, or batches of data from a complete data set, is processed at a single ^me, rather than the input data being received in real-^me.

[0082] The grouping may comprise determining for each individual data point, that the individual data point belongs to a cluster of the plurality of clusters if said individual data point is closer in vector space a point from said cluster than any other individual data point that belongs to a different cluster.

[0083] In more detail, the grouping may be performed by iden^fying individual data points of the input data which are similar to each other, and determining clusters of data points which are closest to individual data points in similarity and, if the individual data point is closest to a certain cluster than any other individual data point that belongs to another cluster, determining that the individual data point belongs to that cluster. Thus, a plurality of clusters of data points is generated.

[0084] The grouping is further discussed with reference to Figure 4 below.

[0085] According to various examples, a combina^on of ELM and another clustering method, such as k-means, are used for providing the plurality of clusters. In such a case, ELM is used to determine the number of clusters in advance, prior to performance of the other clustering method (e.g. k- means). Determining the number of clusters in advance can be difficult and ^me-consuming, therefore a benefit of this approach is to avoid the need to pre-define the number of clusters by using ELM to iden^fy the number of clusters. Once the number of clusters has been iden^fied using ELM, upon receiving input data (e.g. the encoded input data, a stream of encoded input data etc.), k- means clustering can be used to determine a cluster to which the input data belongs, such as through a nearest-neighbour method (e.g. k-medoids). The input data may then be added or associated with to the determined cluster, thereby evolving the model such as by causing a shi^ of the cluster centre.

[0086] Such an example may therefore be considered to ini^ally use ELM to obtain the number of clusters for a data set, and to then use k-means (or another suitable clustering method) in combina^on with a nearest-neighbour approach for input data which is to be classified based on the clusters (e.g. clustered into one of the plurality of clusters), thereby evolving the model without supervision. Further examples of combining ELM with other clustering are described below.

[0087] In step S150, thefirst apparatus is configured to provide at least one representa^ve example (or prototype) to represent each cluster of the plurality of clusters. The at least one representa^ve example may be an example which represents a cluster of individual data points. For example, if a cluster of individual data points is related to images of dogs, the at least one representa^ve example may be an image of a dog. In another example, if a cluster of individual data points is related to data represen^ng a par^cular road hazard, the at least one representa^ve example may be data related to road hazards, or data related to the par^cular road hazard.

[0088] In more detail, the providing of the at least one representa^ve example may further comprise: determining a cluster centre for each cluster of the plurality of clusters or a nearest individual data point to the cluster centre within the vector space for each cluster of the plurality of clusters; iden^fying a category associated with each cluster of the plurality of clusters; and providing the at least one representa^ve example based on the iden^fied category.

[0089] In an example, determining the cluster centre for each cluster of the plurality of clusters may comprise determining (orfinding, or genera^ng, or calcula^ng) a central point in space of the cluster based on its dimensions within the vector space. The central point may be determined, for example, by averaging point coordinates in Cartesian space. Alterna^vely, a nearest point to the cluster centre may be determined. This is because the cluster centre may not correspond to an actual individual data point and may therefore represent a less useful example; that is, the nearest individual data point to the cluster centre represents a real-life data point which can be used to provide, as an example, be^er interpretability for the method than averaged data points.

[0090] In an example, iden^fying a category associated with each cluster of the plurality of cluster may comprise predic^ng a category which should be associated with each cluster. The category may be a label that indicates the type of data represented by the cluster. For example, if the cluster is related to images of dogs, the category iden^fied may be “images of dogs” or the like.

[0091] In addi^on to the above-described steps, the method may further comprise transmi^ng, by thefirst apparatus, the at least one representa^ve example to a second apparatus (or to a plurality of other apparatus).

[0092] Step S160, represented by a dashed line extending from step S150 to step S110, represents that the method steps may be repeated. For example, when the input data is con^nuously received, the method of claim 1 may be repeated as long as the input data is being received.

[0093] For example, the method steps may be repeated indefinitely, or may be repeated a number of ^mes. In an example in which the grouping is performed online, and the input data is being received con^nually, the method steps may be repeated as long as the input data is being received. That is, when the grouping is performed online, the method steps may be repeated un^l the data stream ends or, alterna^vely, un^l a stop condi^on is applied. For instance, if a condi^on is predefined (such as, for instance, a certain number of clusters is reached or an error occurs), when that condi^on is met, the method may end at step S150 a^er a number of repe^^ons.

[0094] Referring now to Figure 2, the method steps described with reference to Figure 1 may con^nue into the steps described below. That is, step S150 of Figure 1 may con^nue into step S210 of Figure 2. Figure 2 may also be considered in isola^on, however.

[0095] In step S210, thefirst apparatus may be configured to receive a request for object iden^fica^on.

[0096] For example, the request for object iden^fica^on may be a request to iden^fy data. For example, the data may be image data and it may be requested for the subject of the image to be iden^fied. For example, the user may have an image of a plant which requires recogni^on. In another example, the data may be natural language data and the user may require that a sen^ment analysis of the natural language data be performed.

[0097] The request for object iden^fica^on may relate to at least one of autonomous vehicles, space and avia^on, cyber security, robo^cs, agricultural work, categorizing symptoms of disease and diagnosis, and human ac^vity data analysis, no^ng that these are non-limi^ng examples. Detailed examples of these applica^ons will be discussed with reference to Figure 3.

[0098] In step S220, thefirst apparatus may be configured to receive object input data corresponding to the request for object iden^fica^on. The object input data may be image data, natural language data, spectroscopy data, CT scan data, MRI scan data, or tabular data (for example, data stored in tables) including temperature, pressure, accelerometer (or accelera^on), velocity, ^me series, economic or biological data or the like, no^ng that these are non-limi^ng examples.

[0099] In step S230, thefirst apparatus may be configured to provide a degree of associa^on of the object input data for each cluster of the plurality of clusters.

[0100] For example, for each individual data point of the object input data it may be iden^fied how similar the individual data point is to each cluster of the plurality of clusters. Thus, a degree of associa^on may be iden^fied and provided which may indicate at least one cluster of the plurality of the clusters which may correspond to the object input data.

[0101] In order to provide a degree of associa^on of the object input data for each cluster of the plurality of clusters, the object input data may be encoded in the same manner as described by reference to step S130 of Figure 1.

[0102] In step S240, thefirst apparatus may be configured to iden^fy whether one of the at least one representa^ve example corresponds to the object input data based on the degree of associa^on.

[0103] For example, if there is a high degree of associa^on between the object input data and one cluster of the plurality of clusters, it may be iden^fied that a representa^ve example represen^ng that cluster corresponds to the object input data. For example, the object input data may be image data represen^ng an image of a plant which requires iden^fica^on. Thus, it may be iden^fied that the image data has a high degree of associa^on with a cluster of the plurality of clusters with a category of “thistle” (or a broader classifica^on of plant, such as “weed”) and with a corresponding representa^ve example.

[0104] In an example, following step S230, a category for the nearest cluster may be iden^fied. For example, the category may be a label that indicates the type of data represented by the cluster. For example, if the cluster is related to images of dogs, the category iden^fied may be “images of dogs” or the like. Further to this example, the at least one representa^ve example may be iden^fied at least partly based on the iden^fied category.

[0105] In step S250, if it is iden^fied that one of the at least one representa^ve example corresponds to the object input data, thefirst apparatus may be configured to output a signal indica^ng the at least one representa^ve example that corresponds to the object input data.

[0106] For example, the signal may be output by controlling thefirst apparatus toflash a light, output a sound, and / or display informa^on on a display. Thefirst apparatus may alterna^vely be controlled to output the signal in another suitable way. Thefirst apparatus may include, for example, at least one light emi^ng device (such as an LED or the like), at least one speaker, and a display configured to display informa^on. For example, if it is iden^fied (or determined) that one of the at least one representa^ve example corresponds to the object input data, an LED may be lit up to indicate that a match has been iden^fied. In another example, thefirst apparatus may be controlled to output a sound indica^ng that a match has been iden^fied. In yet another example, thefirst apparatus may be controlled to display, on the display, informa^on indica^ng that a corresponding representa^ve example has been iden^fied; this may include displaying the representa^ve example itself.

[0107] Alterna^vely, thefirst apparatus may transmit the signal to control a separate device connected to thefirst apparatus via a communica^on link and thereby control the separate device to flash a light, output a sound, or display informa^on on a display, or provide another suitable output.

[0108] In another example, it may not be iden^fied that one of the at least one representa^ve example corresponds to the object input data based on the degree of associa^on. For example, if the degree of associa^on is below a predefined threshold, it may be iden^fied that an indeterminate result has been found. In this case, a signal may be output which represents the indeterminate result. Addi^onally, or alterna^vely, a new cluster and corresponding category may be created (or generated). This new cluster would then be available for future implementa^ons of the self-evolving machine learning model. For example, when new input data is input to be encoded and grouped, similarity to the new cluster would also be iden^fied (or determined). As such, even input data which cannot be iden^fied immediately is used to inform and improve the model for future implementa^ons.

[0109] Further to this example, if, in a future implementa^on, it is iden^fied that another received input data produces an indeterminate result, said input data may be compared to all previous data inputs for which an indeterminate result was output. Then, if the encoded individual data points of the new input data are iden^fied as being similar to the previously received individual data points of input data, the new and previous individual data points may be grouped to form (or generate) a new cluster with an associated category. Addi^onally, a plurality of new clusters with associated categories may be formed (or generated) in the same way, if it is iden^fied that the encoded individual data points of the new input data are similar to mul^ple different sets of previously received encoded individual data points of input data.

[0110] In addi^on to the steps of Figure 2 described above, the object input data may further be processed according to the steps described with reference to Figure 1. That is, the object input data may further be encoded, by the pre-trained machine learning module of thefirst apparatus and the encoded object input data may be grouped, by thefirst apparatus, into at least one cluster based on a similarity of the individual data points of the object input data such that the individual data points are used in future implementa^ons of the self-evolving deep machine learning. For example, once the object input data has been received and it has been iden^fied whether one of the at least one representa^ve examples corresponds to the object input data, the object input data may be further used to train the machine learning model by being encoded and grouped such that the individual data points of the object input data are added to at least one cluster based on a similarity of the individual data points of the object input data.

[0111] In addi^on to the steps of Figure 1 and Figure 2 described above, thefirst apparatus may addi^onally receive an input by a user indica^ng a category for at least one cluster of the plurality of clusters and / or receive target output data. Thus, semi-supervised and / or supervised machine learning may be provided.

[0112] For example, the user may provide, to thefirst apparatus, a category for all of the clusters of the plurality of clusters, or a category for a selec^on of the plurality of clusters, or a category for one of the clusters of the plurality of clusters. The category may be used to inform the machine learning model to provide a more accurate output corresponding to the said human-defined category.

[0113] For example, the user may provide, to thefirst apparatus, target output data that indicates an output result that is expected. This provides addi^onal training to the machine learning model which may result in more accurate outputs over ^me and / or a decrease in the ^me required to produce the output.

[0114] Various examples of the present disclosure include a combina^on of clustering, such as described herein (e.g. in rela^on to Figure 1 and / or, described above) and LDA (Linear Discriminant Analysis). In an example, the sequence of performing clustering and then performing LDA is provided. This may be regarded as using LDA in a one label per cluster only (i.e.1-shot) mode / form. Examples of this combina^on of clustering and LDA are now provided.

[0115] In afirst process (e.g. an extrac^on block): at least one training image of a given dimension (e.g. n x n pixels, such as 224x224 pixels) is received as an input; a trained founda^on ViT (visual transformer) model is used to create latent space embeddings for all training images, thereby genera^ng (or otherwise providing) an M dimensional latent space per training image (in an example, M = 1024). Accordingly, it may be said that, in thefirst process (i.e. extrac^on block), an apparatus such as disclosed herein extracts latent space embeddings per training image (e.g. where at least one training image is input). Thefirst process may be regarded as similar to the process described in step S130, which provides a more general defini^on.

[0116] In a second process (e.g. a clustering block), the latent space embeddings of all of the training images are taken as an input.

[0117] Op^onally, principal component analysis (PCA) is applied in the second process to reduce the dimensionality. This provides advantages such as reducing computa^onal costs (e.g. reducing processing ^me, emission (e.g. CO2) output and / or monetary costs) due to reducing, poten^ally by an order of magnitude, the dimensionality. For example, experimentally PCA has been applied to reduce the dimensionality from 1024 to approximately 90, with accuracy being found largely the same.

[0118] Op^onally, ELM is used to es^mate the number of clusters (e.g. as described above). Here, for each datapoint, similarity with other datapoints is checked. Based on the results of this checking, said datapoint is then assigned to an exis^ng cluster or to a new cluster (i.e. a new cluster is created for the datapoint). This may be achieved by using a threshold, whereby if similarity is below the threshold then a new cluster is created; for example, as a default for data normalized in the range [0;1], a threshold can be 0.1. A^er all datapoints are processed in this manner, the number of clusters, K, is extracted (or iden^fied, determined etc.).

[0119] In the second process (e.g. a^er ELM and / or PCA may have been applied), clustering is performed. If ELM has been performed, clustering (e.g. K-means clustering) is performed using K derived by the ELM clustering method as the number of resul^ng clusters. If ELM has not been performed then the number of clusters may be predefined or obtained in another way. Output of the second process is clusters of latent space embeddings. The second process may be regarded as similar to the process described in step S140 (e.g. many repe^^ons of the process of step S140).

[0120] In various examples of combining clustering and LDA, thefirst process and the second process are performed in line with the descrip^on of each given above (with or without the inclusion of the op^onal features). A detailed descrip^on of LDA is not included in the present disclosure, as sources of such are readily available, e.g. see C. M. Bishop, “Pa^ern Recogni^on and Machine Learning” (Informa^on Science and Sta^s^cs), Berlin, Heidelberg: Springer-Verlag, 2006, ISBN-10: 0- 387-31073-8 ISBN-13: 978-0387-31073-2.

[0121] Following this, there is a process, or opera^on, of labelling one sample per cluster. Input(s) to this process are clusters and cluster centres. Data points (e.g. images) closest to cluster centres may be extracted (i.e. for each cluster). Alterna^vely, data points sa^sfying another criteria with respect to the cluster centres may be extracted (e.g. instead of extrac^ng data points closest to a cluster centre, a next-closest or other data point is extracted). True labels are obtained for the extracted data points, and the data points and true labels are added to a new subset. This subset of labelled data is output. The number of labelled data in the subset is equal to the number of clusters. The extracted data points may be labelled automa^cally, or by a user. That is, a label can be assigned to the extracted data point of each cluster automa^cally, such as by using labels such as “A”, “B”, “C”… etc. or “cluster 1”, “cluster 2”, “cluster 3”… etc.,. As a result, it will be appreciated that examples of clustering with LDA may be regarded as self-learning or autonomous learning (or semi-supervised, depending on user input / interac^on).

[0122] Following the labelling process, there is a process, or opera^on, of LDA. The input to this process is the subset of labelled data, which is used to op^mise an LDA model, i.e. the LDA model is op^mized on the labelled data to provide an op^mized LDA model.

[0123] The use of LDA within a Founda^on Feature space provides highly accurate results. However, by combining it with clustering, the decisions can be adapted when new data (e.g. new input data) arrives. As a result, data can be processed with dri^ and shi^ in the distribu^on and adapt the decision to it, while obtaining highly accurate predic^ons. That is, accuracy is increased as least compared to a case where only clustering is performed (i.e. without LDA), and in some cases accuracy has been found to be close to that given by a fullfinetuning method. Other advantages arise through the combina^on of LDA with clustering being faster (e.g. many orders of magnitude faster) than other methods, such as fullfinetuning, thereby using less computa^ons resources and so saving on ^me, emissions, money etc. Further, methods of LDA and clustering in sequence may be implemented en^rely on-chip.

[0124] Examples u^lizing such a sequence of clustering and LDA require very few labels yet the machine learning nature of LDA means the model further learns and adapts to the shi^ing and dri^ing of the data pa^ern. Without LDA, clustering methods as disclosed herein also learn and adapt to the shi^ and dri^; however, when combined with LDA, this is made more apparent. In some cases, an algorithm or process including clustering and LDA as disclosed herein may be regarded as close to so-called 1-shot learning.

[0125] Although thefirst process and the second process above have been described in rela^on to examples in which clustering and LDA are combined / implemented, it will be appreciated that the first process and the second process may be referred to in other examples of clustering methods, such as those where LDA is not performed / implemented. In other words, thefirst process and the second process are not dependent on LDA or clustering in combina^on with LDA.

[0126] Various examples of the present disclosure provide methods in which no labels are provided ini^ally, but where there is a data ini^alisa^on stage (or an ini^al stage) in which the data (e.g. images) are only being clustered (i.e. not labelled). Here, class labels can be considered the same as cluster index / number, e.g. class 1 = cluster 1, class 2 = cluster 2, etc. Such examples may be termed zero-shot class incremental learning (although are not limited to being called such).

[0127] In an example of such a method, the second process (i.e. clustering block) is performed ini^ally. This establishes σinivalues from the clusters, (i.e. establishes / derives / obtains standard devia^on values for each cluster). Following this, there is a process is which new data points are associated with the clusters. Here, new data point(s) are received. These may be taken as an input to the process together with the cluster centres of the clusters formed during the clustering block process performed previously. For each new data point, the distances between the data point and the cluster centres is iden^fied. If the distance is less than a threshold (e.g.2σini) then the data point is associated with the nearest cluster centre; otherwise, the data point is indicated as not belonging to any of the clusters, e.g. it is classified as “unknown” or “I do not know” or the like.

[0128] Following this, a process of forming new classes is performed. This process relates to the “I do not know” data points (i.e. those found not to belong to any of the exis^ng clusters). σ is calculated between each of the "I do not know" data points (i.e. a standard devia^on value is calculated / determined / obtained for each of the “I do not know” data point(s)), resul^ng in σnew (for each of these data point(s)). If σnewis less than σavgthen a new class is created, where σavg= mean(σini). It will be appreciated that other condi^ons may be used for determining to create a new class, e.g. based on σnewbeing less than some func^on of σavg. For example, if there are C exis^ng clusters and it is determined to create a new class, the new class may be named C+1; if it is determined to create another new class, the other new class may be named C+2.

[0129] According to various examples of the present disclosure, PCA is combined with the clustering method disclosed herein. Similar to as described in rela^on to the second process defined above, in some examples PCA is performed to reduce the dimensionality of the latent space prior to clustering being performed. Advantageously, this allows for a reduc^on in the compute complexity, poten^ally by an order of magnitude or more. For example, PCA is performed for a case of a 1024D latent space to reduce the dimensionality to approximately 90D, thereby reducing ^me and computa^onal costs significantly. Op^onally, LDA is performed following the clustering.

[0130] According to various examples of the present disclosure, a clustering method as disclosed herein is applied to a case of patches (or image por^ons). An example of this is shown in Figures 8A and 8B, which will be described later.

[0131] In various examples, clustering methods as disclosed herein, op^onally in combina^on with LDA, ELM and / or PCA (e.g. such as described above), are applied at the level of patches (or segments) of a piece of data (e.g. an image). For instance, clustering is performed for patches of an image such that the patches are clustered, and op^onally the image itself is also clustered thereby providing more informa^on. That is, regarding the la^er case, the result is an M dimensional (e.g. 1024D) vector for an image (or, more generally, input data) and an M dimensional data for the patches (i.e. per patch) of the image (or, more generally, patches of the input data), where these vectors differ in nature and in the informa^on they provide.

[0132] Note that “patches” or “patch-based segments” may refer to the parts of an image that are o^en interpretable by humans (e.g. ears of dogs or cats, nose, wings of airplanes, etc.), i.e. “human interpretable segments”. Ini^ally these are patches, e.g.14x14 pixels of an image (e.g. in the case of the DINOv2 founda^onal model), but when either clustering as disclosed herein (or applying PCA and thresholding as described in rela^on to whole images in M. Oquab, et al, “Dinov2: Learning robust visual features without supervision,” 2024, arXiv:2304.07193) they become bigger segments as if a mosaic of patches has been used.

[0133] In a method of clustering patches, according to an example, a patch extrac^on opera^on is performed. Here, a process similar to that of thefirst process (extrac^on block) is used, with a difference in that extrac^on occurs from a last transformer block instead of from the last transformer layer of the network. As would be understood by the skilled person, more detail regarding the last transformer layer can be found in: Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Ma^hias Minderer, Georg Heigold, Sylvain Gelly, Jakob Uszkoreit, and Neil Houlsby. “An image is worth 16x16 words: Transformers for image recogni^on at scale”. Interna^onal Conference on Learning Representa^ons, 2021, arXiv: 2010.11929. The last transformer block is the last transformer block preceding thefinal feature extrac^on layer. In patch extrac^on, an image is taken as an input. This image may have dimensions of n x n pixels, such as 224 x 224 pixels). The image is then divided into non-overlapping patches with a given dimensionality, e.g. dimensionality m x m (e.g. for an image of 224 x 224 pixels, m can equal 14). Patches are extracted as M dimensional vectors (e.g. M can equal 1024, as discussed elsewhere herein) from a last transformer block of a ViT model. The output of the extrac^on is a tensor of shape [B, N, M], where B is the batch size, N is the number of patches and M is the dimension of the embeddings (as men^oned above). For example, for the case of n = 224, m = 14 and M = 1024, the tensor is of shape [B, 256, 1024].

[0134] Referring to Figures 8A and 8B, an example of the vision transformer (ViT) 800 is shown. ViT 800 comprises, amongst other components / elements, transformer encoder 810. An image 830 may be divided into patches as shown in 835, with patches 830-1 to 800-9 illustrated (it will be appreciated that the use of le^ers ‘A’ to ‘I’ in the image is merely to represent the dividing of the image into patches; each of these le^ers may be regarded as represen^ng a part of the image 830). These patches 830-1 to 830-9 arefla^ened and linearly projected to the transformer encoder 810 as shown. The posi^on of the patches (i.e. in the image 830) may also be embedded, e.g. as shown through the numbering of the boxes in 840. Note that the box containing “ * ” denotes an extra learnable [class] embedding . The transformer encoder 810 is shown in more detail in Figure 8B, where it is shown how the embedded patches are processed within the encoder 810. The skilled person would appreciate that Figure 8B shows a standard scheme for transformers, more detail may be found in Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Ma^hias Minderer, Georg Heigold, Sylvain Gelly, Jakob Uszkoreit, and Neil Houlsby. “An image is worth 16x16 words: Transformers for image recogni^on at scale”. Interna^onal Conference on Learning Representa^ons, 2021, arXiv: 2010.11929.

[0135] Following patch extrac^on, having obtained N patches formed of M dimensional latent space embeddings per image, PCA thresholding may be performed. Here, PCA is applied to the patch embeddings. A variance threshold is set tofilter out less informa^ve patches; patches with less significant contribu^on to the variance (determined by the variance threshold) are discarded to focus on more salient features. Accordingly, as a result of PCA, patches may be discarded.

[0136] Following PCA (of patch extrac^on, if PCA is not performed), a clustering opera^on is performed. This clustering opera^on is similar to the second process (clustering block) described above, but with a difference in that the clustering applies to the patch embeddings as opposed to the whole image embeddings. This clustering step applies to all patches from all the image data – not per class and not per image.

[0137] Following clustering, a decision making opera^on is performed. In an example, three scenarios are considered: ^ average pooling: consider a set of patches P = {^^, ^^, … , ^^} and the decision D = {^^, ^^, … , ^^}per-patch. NOTE: the patch labels and hence decisions D are inferred from the whole training images set{^^ ^ ^ , … ^^,}only where R is the size of the training image set, no labels are provided per-patch. Each decision d ^ ^ ^ i , i ∈ [1, N] is a vector ^^^, ^^, … ^^^, where ^ ^ is a val ∑ ^ ^ ue between [0, 1],^ ∈[^…^]^^ = 1. Then the average pooling performs Dpatches= mean(^^, … , ^^)to calculate the mean decision. ^ maximum pooling: the same as above but Dpatches= max(^^, … , ^^)to calculate the decision. ^ a^en^on pooling: the same as above but Dpatches= a^en^on({^^, … , ^^} ); θ) to calculate the decision, where a^en^on (for more informa^on, see D. Bahdanau, K. Cho, and Y. Bengio, “Neural machine transla^on by jointly learning to align and translate,” arXiv preprint arXiv:1409.0473, 2014.) is an a^en^on mechanism calculated over the set of patches {^^, ^^, … , ^^}, with the θ parameters are adjusted using a training dataset. ^ inter-image patch distribu^on matching: consider a set of patches P = {^^, ^^, … , ^^} and the representa^on embedding for every patch as described in the patch extrac^on opera^on above, and clustering as per the clustering opera^on described above. Then one can compose a histogram of cluster ID distribu^ons for each class {H1, ...,HC }, further referred to simply as distribu^ons. For the query Q, the distribu^ons can be composed in the same way and then it can be compared with the distribu^ons for each of the classes. Thefinal decision Dpatchesis obtained byfinding the closest (in terms of distance d) distribu^on across all classes to the query distribu^on HQ:

[0138] Thefinal a 1. Dpatches(decisions based on the patches) 2. Dimage(decision making process based on the embeddings of the image, e.g. as described in rela^on to Figs.1 and 2 for example).

[0139] Dfinal= F(Dpatches, Dimage). As a representa^ve example, F(Dpatches, Dimage) can be presented as:

[0140] where α and β are for weigh^ng (e.g. weigh^ng factors). In more examples, the basis for the determina^on is said to be the mean of the individual decisions of each patch (or a subset of the patches), or the maximum of the individual decisions of each patch, or the a^en^on of the individual decisions of each patch, or the distribu^ons of the patches and the query.

[0141] An advantage of a method in which clustering is applied to patches of an image / images (and also to the image / images as a whole) is that more informa^on is provided, allowing for an in-depth understanding of the decisions. For example, in a deepfake applica^on, it is possible to determine both whether or not an image is fake and parts of the image which are faked. Further, according to the methods disclosed herein, this may be done automa^cally – clustering patches as disclosed herein may avoid the need for human involvement (e.g. in the predefini^on of segments in image data) and may reduce computa^onal expense of segmenta^on.. Patches are may be naturally derived as part of the visual Transformer, ViT (e.g. part of DINOv2) using so called a^en^on mechanism.

[0142] In addi^on to the clustering method, clustering and LDA methods, clustering and PCA methods etc. disclosed herein, various examples of the present disclosure also provide a lightweight (or shallow) transformer through the provision of patches. Patches are intrinsically related to transformers: transformers may be built based on patches and may provide informa^on about the patches rela^on. In addi^on to clustering patches, and applying PCA and LDA on patches, the present disclosure considers to also apply supervised training in regards to patches by a transformer. A full transformer includes mul^ple layers and large / huge amount of tuneable parameters; however, here there is considered a ‘shallow’ transformer with only parameters that relate to a mutual link between patches being tuneable / trained. Such an a^en^on mechanism can be implemented using, for example, off-the-shelf methodologies such as Bahdanau a^en^on (Bahdanau, Dzmitry, Kyunghyun Cho, and Yoshua Bengio. "Neural machine transla^on by jointly learning to align and translate." Interna^onal Conference on Learning Representa^ons, 2015, arXiv: 1409.0473). That is, instead offine tuning the original Founda^on Model, e.g. DINOv2, a new architecture is provided - a neural network with just a few layers - similar of same as the very last few layers of a transformer which do learn the mutual rela^on and dependence between patches. The lightweight transformer can be trained in either an unsupervised manner (so called one class classifier, e.g. to dis^nguish between a class of normality and "anything else" / abnormality (for anomaly detec^on, deep fake detec^on, cyber a^acks, faults, medical problems, etc.)) or semi supervised (using one label per class).

[0143] Figure 3 illustrates various examples of how the self-evolving deep machine learning can be applied to different examples.

[0144] Theflow diagram (E) shows a prac^cal example of how the method of self-evolving deep machine learning is applied in the real world.

[0145] In step S310, input data (for example, the object input data of Figure 2) is received by the first apparatus. For example, the input data may be real-^me data being received from a sensor such as an image capturing device, a spectroscope, a temperature sensor, a pressure sensor, a biometric sensor, or may be received from a connected device (for example, data may be received from a server or the like). For example, the input data may be received in real-^me.

[0146] In step S320, the input data is processed according to the steps described with reference to Figure 2.

[0147] In step S330, thefirst apparatus outputs a signal (for example, the signal of Figure 2) which may be used to perform a real-^me ac^on. For example, if the input data is image data, the output may indicate that the image data has been recognised and the iden^fica^on, and may thus cause the first apparatus to perform an ac^on based on the iden^fica^on.

[0148] In step S340, thefirst apparatus may further process the input data according to the steps described with reference to Figure 1, such that the individual data points of the input data are used in future implementa^ons of the self-evolving deep machine learning.

[0149] Examples will now be described in which steps S310 to S340 are used in real-world applica^ons. These examples focus on elements of object recogni^on, however it will be understood that the applica^ons are not limited thereto.

[0150] Example (A) illustrates an example in which thefirst apparatus is included in a vehicle 301 (such as a car, lorry, or the like, wherein the vehicle may be en^rely or par^ally autonomous or self- driving). For example, thefirst apparatus may form part of the vehicle 301, or may be included in a device which is used inside the vehicle (such as a smartphone). In the example, the vehicle 301 is driving on a road 303 and encounters a hazard 302 (such as an animal on the road). The hazard may be a new object, for example an object which has not been encountered before by the self-evolving deep machine learning model (such as a deer on the road, or the like).

[0151] For example, while driving along the road 303, thefirst apparatus (or vehicle 301) may be recording image data using an image capturing device (such as a camera) and the image data may be con^nually input to thefirst apparatus (alterna^vely, the image data may be collected at regular intervals, or when a sensor detects a change in road condi^ons, and may thus be input in at least one discrete packet). The image data may then be processed according to the steps described by reference to Figure 2. When image data represen^ng the hazard is input to thefirst apparatus, it may be iden^fied that the hazard corresponds to at least one representa^ve example based on a degree of associa^on of each of the individual data points of the image data with a cluster of the plurality of clusters. For example, it may be determined that the image data represen^ng the hazard corresponds to a representa^ve example corresponding to a cluster with the category “animal” (or a more specific category, such as “deer”).

[0152] If at least one representa^ve example is iden^fied, thefirst apparatus outputs a signal indica^ng the at least one representa^ve example. For example, thefirst apparatus may display an image on a display (for example, on a screen of the vehicle, or on a screen of another device being used in the vehicle 301, such as a smartphone) which indicates the hazard, or may output a warning sound through the speakers (for example, the speakers of the vehicle, or the speakers of another device being used in the vehicle 301, such as a smartphone), or mayflash a warning light (for example, a light of the vehicle, or a light of another device being used in the vehicle 301, such as a smartphone). The signal may recommend that the driver of the vehicle 301 stop driving. In another example, the signal be output in the form of a control signal which automa^cally causes the vehicle 301 to brake, stopping the vehicle 301 before it impacts the hazard.

[0153] In alterna^ve examples, the method for self-evolving deep machine learning may also be used for seman^c segmenta^on, reading road signs, and classifica^on of road condi^ons.

[0154] Thus, new, previously unaccounted for, situa^ons on the road can be assessed and iden^fied, with classifying, detec^ng, and segmen^ng of new objects.

[0155] Example (B) illustrates an example in which thefirst apparatus is used to iden^fy an obscured (or hidden or camouflaged) object 304. In another, similar example, thefirst apparatus may be used to iden^fy small objects or objects that are otherwise difficult to see with the human eye.

[0156] For example, thefirst apparatus may be part of, or on board, an autonomous or piloted vehicle (such as a plane or an aerospace vehicle such as an unmanned avia^on vehicle (UAV)) which is used for object and situa^onal recogni^on. According to this example, thefirst apparatus (or vehicle) may be recording image data using an image capturing device (such as a camera, or infra-red camera, or the like) and the image data may be con^nually input to thefirst apparatus (alterna^vely, the image data may be collected at regular intervals, or when a sensor detects a change in environmental condi^ons, and may thus be input in at least one discrete packet). The image data may then be processed according to the steps described by reference to Figure 2. When image data represen^ng the obscured object 304 is input to thefirst apparatus, it may be iden^fied that the obscured object corresponds to at least one representa^ve example based on a degree of associa^on of each of the individual data points of the image data with a cluster of the plurality of clusters. For example, it may be determined that the image data represen^ng the obscured object corresponds to a representa^ve example corresponding to a cluster with the category “vehicle” (or a more specific category, such as “car”).

[0157] If at least one representa^ve example is iden^fied, thefirst apparatus outputs a signal indica^ng the at least one representa^ve example. For example, thefirst apparatus may display an image on a display (for example, on a screen of the vehicle) which indicates the obscured object, or may output a sound through the speakers (for example, the speakers of the vehicle), or mayflash a light (for example, a light of the vehicle). The loca^on of the obscured object 304 may then, for example, be recorded as loca^on data by storing, for example, coordinates in a memory of thefirst apparatus, or, in another example, the loca^on data may be transmi^ed to an external device.

[0158] In alterna^ve examples, the method for self-evolving deep machine learning may also be used for seman^c segmenta^on, iden^fying changes in landscapes, and classifica^on of weather condi^ons.

[0159] Thus, automa^c detec^on and recogni^on of objects which are obscured or otherwise difficult to see for the human eye may be provided.

[0160] Example (C) illustrates a further example rela^ng to Example (B), in which thefirst apparatus is used to iden^fy objects 306 within a new environment, such as a disaster area (for example, a wildfire,flood, mudslide or the like), where the objects may be obscured, and wherein the objects to be iden^fied may be, for example, people in need of recovery and rescue.

[0161] In this example, thefirst apparatus is part of an unmanned avia^on vehicle (UAV) 305 such as a drone or the like. Alterna^vely, there may be a plurality of apparatuses on board a plurality of UAVs 305, working in coordina^on. According to this example, thefirst apparatus (or the UAV) may be recording image data using an image capturing device (such as a camera, or infra-red camera, or the like) and the image data may be con^nually input to thefirst apparatus (alterna^vely, the image data may be collected at regular intervals, or when a sensor detects a change in environmental condi^ons, and may thus be input in at least one discrete packet). Alterna^vely or addi^onally, the UAV 305 may be recording sound data from the environment using a microphone, and the sound data may be con^nually input to thefirst apparatus (alterna^vely, the image data may be collected at regular intervals, or when a sensor detects a change in environmental condi^ons, and may thus be input in at least one discrete packet). The image and / or sound data may then be processed according to the steps described by reference to Figure 2. When image or sound data represen^ng an object 306 is input to thefirst apparatus, it may be iden^fied that the object 306 corresponds to at least one representa^ve example based on a degree of associa^on of each of the individual data points of the image data with a cluster of the plurality of clusters. For example, it may be determined that the image data represen^ng the object corresponds to a representa^ve example corresponding to a cluster with the category “human” (or a more specific category, such as the name of a person).

[0162] If at least one representa^ve example is iden^fied, thefirst apparatus outputs a signal indica^ng the at least one representa^ve example. For example, thefirst apparatus may display an image on a display (for example, on a screen of the vehicle) which indicates the object, or may output a sound through the speakers (for example, the speakers of the vehicle), or mayflash a light (for example, a light of the vehicle). The loca^on of the object 306 may then, for example, be recorded as loca^on data by storing, for example, coordinates in a memory of thefirst apparatus, or, in another example, the loca^on data may be transmi^ed to an external device. In an example in which sound data is being used, it may be the case that a recording of the sound is used to further inves^gate the area to search for the object 306 which the sound originates from.

[0163] Thus, automa^c detec^on and recogni^on of objects or people which are obscured or otherwise difficult to see for the human eye, such as in a disaster area may be provided in a ^mely and efficient manner requiring li^le effort.

[0164] Example (D) illustrates an example in which thefirst apparatus is part of an agricultural vehicle 307 (such as a tractor, a harvester, or the like) wherein object recogni^on is required for iden^fying plants to be harvested.

[0165] In this example, the agricultural vehicle 307 is harves^ng plants and requires iden^fica^on of which plants are crops 309 and which plants are weeds 308. According to this example, thefirst apparatus (or the agricultural vehicle 307) may be recording image data using an image capturing device (such as a camera, or infra-red camera, or the like) and the image data may be con^nually input to thefirst apparatus (alterna^vely, the image data may be collected at regular intervals, or when a sensor detects a change in environmental condi^ons and may thus be input in at least one discrete packet). The image data may then be processed according to the steps described by reference to Figure 2. When image data represen^ng a plant 308, 309 is input to thefirst apparatus, it may be iden^fied that the image data corresponds to at least one representa^ve example based on a degree of associa^on of each of the individual data points of the image data with a cluster of the plurality of clusters. For example, it may be determined that the image data represen^ng the plant corresponds to a representa^ve example corresponding to a cluster with the category “weed” (or a more specific category, such as “thistle”). In another example, it may be determined that the image data corresponds to a representa^ve example corresponding to a cluster with the category “crop” (or a more specific category, such as “potato”).

[0166] If at least one representa^ve example is iden^fied, thefirst apparatus outputs a signal indica^ng the at least one representa^ve example. For example, thefirst apparatus may display an image on a display (for example, on a screen of the agricultural vehicle or on a remote screen held by a user) which indicates the predicted iden^ty plant, or may output a sound through the speakers (for example, the speakers of the agricultural vehicle 307 or of thefirst apparatus), or mayflash a light indica^ng whether the plant is a weed (for example, a light of the agricultural vehicle 307 or of the first apparatus). The category of plant may then be used to control the agricultural vehicle 307 to harvest the plant if it is a crop 309, or ignore the plant if it is a weed 308.

[0167] In alterna^ve examples, the method for self-evolving deep machine learning may also be used for monitoring the growing condi^ons of crops, including iden^fying disease among the plants, pests, and environmental condi^ons which might affect the crops.

[0168] Thus, a quick and efficient method of simplifying the maintaining and harves^ng of crops may be provided.

[0169] In another example (not illustrated) thefirst apparatus may be part of a biometric measuring device (such as a heart rate monitor, a wearable device such as a smart watch, blood sugar monitoring device, or the like). In this case, thefirst apparatus receives biometric data which requires monitoring for changes, par^cularly changes which correspond to health or emergency events for the user of the biometric measuring device. According to this example, thefirst apparatus receives biometric input data recorded by a sensor of the biometric device which may be received by thefirst apparatus as a con^nuous data stream (alterna^vely, the image data may be collected at regular intervals, or when a predefined condi^on of the sensor is met and may thus be input in at least one discrete packet). The biometric data may then be processed according to the steps described by reference to Figure 2. For example, when biometric data represen^ng a health event is input to the first apparatus, it may be iden^fied that the biometric data corresponds to at least one representa^ve example based on a degree of associa^on of each of the individual data points of the image data with a cluster of the plurality of clusters. For example, it may be determined that the biometric data corresponds to a representa^ve example corresponding to a cluster with the category “dangerously high heart rate” (or a more specific category, such as “cardiac arrest”).

[0170] If at least one representa^ve example is iden^fied, thefirst apparatus outputs a signal indica^ng the at least one representa^ve example. For example, thefirst apparatus may display an image on a display (for example, on a screen of the biometric device) which indicates the health event, or may output a sound through the speakers (for example, speakers of the biometric device), or mayflash a light indica^ng a health event is occurring (for example, a light of the biometric device). The biometric data and iden^fied health event may then be used to provide a warning to the user of the biometric device, alert the user to contact a relevant authority, or, in another example, the biometric data may be transmi^ed to a health provider of the user of the biometric device or the emergency services.

[0171] In alterna^ve examples, the method for self-evolving deep machine learning may also be used for iden^fying an ac^vity of the user of a wearable device, iden^fying health trends in the user of a wearable device, or the like.

[0172] Thus, automa^c detec^on and iden^fica^on of biometric events may be provided.

[0173] In other examples, clustering methods applied to patches, as disclosed herein, may be provided for deepfake detec^on. The deepfake detec^on problem outlines the scenario of: (1) detec^ng when an image is totally or par^ally generated by some sta^s^cal model, such as a genera^ve adversarial network or a diffusion model; and (2) outline which parts, if any, that have been generated. A method or apparatus according to the disclosure provides such mechanism through the analysis of patches such as described above (i.e. referring to the descrip^on of the clustering for patches and Figs.8A and 8B given above). The following algorithm describes an example of a deepfake detec^on method as disclosed herein.

[0174] Considering, as an input, an image I, which may contain deepfake parts. Using the methods / processes / opera^ons described above in rela^on to the applica^on of clustering methods to patches (e.g. patch extrac^on and decision making on the level of the patch embeddings), a per- patch label (i.e. fake / not fake) is es^mated. Then, process the image I and the output-per-patch, F, of the parts of the image which allegedly contain deepfake elements and, using the decision making procedure described in associated with the clustering for patches examples above, provide the decision D (Real / Fake) for the en^re image. Following this, the decision D and the map F (i.e. the map of the parts of the image which contain deepfake elements) for the en^re decision making procedure is output, if D is fake. By outpu^ng both D and F, more informa^on is provided for the decision.

[0175] In other examples, clustering methods as disclosed herein are used in road maintenance applica^ons. Known methods of monitoring the condi^ons of roads or other infrastructure involve periodic or regular monitoring (e.g. monitoring for 24 / 7, 365 days a year; ‘round-the-clock’ monitoring. Examples of the present disclosure related to providing a system that can be incorporated within vehicles which will use the road, such as private vehicles (e.g. a car, bicycle or motorcycle used by an individual for their day-to-day journeys), public vehicles (such as police cars, ambulances,fire engines), commercial vehicles (such as trucks, lorries etc.). It will be appreciated that a similar approach could also be extended to trains (i.e. railways) and trams (i.e. tramlines) etc. Such a system comprises a computer chip and a camera (e.g. a microcamera).

[0176] Each vehicle (i.e. road user) collects and processes video. In various examples, this is without the use of the internet or the cloud (i.e. the processing is performed en^rely at the vehicle / in the system, on-board). The processing may perform a clustering method as disclosed herein (e.g. as in Fig.1, with op^onal use of PCA, ELM, LDA as described herein also etc.) and produce a class label.

[0177] For example, a^er processing a number of images each of which includes a sec^on of a road, each image is clustered with other images including a road sec^on es^mated to have the same, or similar, quality. In an example involving images A, B, C, D, E, F, G and H: images A,E and H are clustered together and labelled as having Grade 1 (i.e. high quality), images B, C and F are clustered together and labelled as having Grade 2 (i.e. middle quality), and images D and G are clustered together and labelled as having Grade 3 (i.e. low quality). Taking the example of image G, when this image is processed it may be compared against exis^ng clusters (i.e. corresponding to Grades 1, 2 and 3, all of which exist at the ^me image G is being processed) and found to be similar (i.e. similarity above a threshold) to the Grade 3 cluster. In some cases, if example (labelled) image(s) for Grades 1, ..., Grade 5 are provided in advance / ini^ally, LDA, can also be applied as described above / earlier.

[0178] All loca^on points and images, are stored at the vehicle (i.e. on-board); the loca^on points may correspond to the loca^ons where an image was captured, so are stored for each image.

[0179] At a future ^me, the loca^on points (and op^onally the images) and result of the clustering (i.e. the clusters and associated labels) are uploaded to an external device. This may be performed when the journey of over, such as when the vehicle has arrived at its des^na^on. The uploaded data may be a triplet for each image that was processed, the triplet comprises two coordinates (longitude and la^tude) and an indica^on (e.g. integer) that represents the quality of the road in the image (e.g. Grade 1, Grade 2, …, Grade 5).

[0180] The external device may correspond to, or be made available to, a centre for collec^ng the data, which can perform vo^ng to get a distribu^on of the results. Here, for a given stretch of road, mul^ple vehicles will pass and collect informa^on, and based on this informa^on one may build distribu^ons and perform vo^ng, or similar. For example, for a given loca^on there may be 87% of vehicles classifying the road as Grade 1, 11% of vehicles classifying the road as Grade 2, and 2% of vehicles classify.

[0181] An output of such a method / applica^on may include a map of the road network which is updated in real-^me with informa^on indica^ng the quality of the road surface. For example, a map which indicates road conges^on through use of different colours on different sec^ons of road (with different colours represen^ng different levels of conges^on) is known. An output of this applica^on of the present disclosure may be such a map, but where the different colours represent different levels of road quality, thereby allowing users to know about the road they will be travelling on, and allowing an en^ty tasked with maintaining the road network to understand where resources / repair is most needed. Figure 11 shows an example of such a map. Road quality is indicated by coloured indicators 1110, 1120, 1130, 1140, which are ordered from high (or excellent) quality to low (or damaged) quality. The map includes roads within the geographic area covered by the map. For a selected road 1140, sec^ons of road for which there exists road quality data are displayed with a colour corresponding to their decided (or determined) road quality. For example, sec^on 1125 has quality 1120 while sec^on 1135 has quality 1130, meaning sec^on 1125 has a higher quality road surface than sec^on 1135 according to the decision making method.

[0182] In various examples of the present disclosure, a clustering method as disclosed herein is applied to the problem of self-localisa^on and mapping (SLAM), which is a well-known problem in robo^cs. SLAM has, in general, the following two sub-problems: (1) iden^fy landmarks (LM) from a sequence of observed images; and (2) use only INS / IMU (iner^al sensor) and algorithms like Kalman Filter or deriva^ves of it, such as EnKF (Ensemble Kalman Filter) plus the LMs, but no GPS or GNSS

[0183] Problem (1) can be performed using a method such as disclosed in US 8250004 B2 and recursive density es^ma^on (RDE) byfinding minimum points as LM. Further informa^on on this may be found in X. Zhou and P. Angelov, "Autonomous Visual Self-localiza^on in Completely Unknown Environment using Evolving Fuzzy Rule-based Classifier," 2007 IEEE Symposium on Computa^onal Intelligence in Security and Defense Applica^ons, Honolulu, HI, USA, 2007, pp.131- 138, doi: 10.1109 / CISDA.2007.368145.” and P. Sadeghi-Tehran, S. Behera, P. Angelov and J. Andreu, "Autonomous visual self-localiza^on in completely unknown environment," 2012 IEEE Conference on Evolving and Adap^ve Intelligent Systems, Madrid, Spain, 2012, pp.90-95, doi: 10.1109 / EAIS.2012.6232811. Further descrip^on of solving problem (1) is omi^ed as it is not the focus.

[0184] With regards to problem (2), when performing (2) without any true value provided, deriva^on from the actual values becomes excessive. An example of this is seen in Figure 9A, which is a 2D plot of posi^ons (e.g. of a vehicle or robot, such as a drone), where: the x axis and y axis are coordinates (i.e. la^tude and longitude), line 910 shows the ground truth, line 920 shows the GPS measured posi^on, and line 930 shows the posi^on obtained / es^mated using a Kalman Filter method.

[0185] To improve the es^ma^on the Kalman Filter (e.g. the EnKF) has to be provided true values from ^me to ^me, e.g. Landmarks (LM). When traversing a route, the vehicle / robot can take images and compare them in terms of similarity to LMs iden^fied in (1). Similarity is proposed to be compared using FF (founda^onal feature) space – the same M dimensional (e.g.1024 dimensional) rich feature space produced by a pre-trained FM (founda^on model). Using such “correc^on” (addi^onal informa^on) a much be^er self-localisa^on and trajectory can be achieved. An example of this is shown in Figure 9B, where such a correc^on is implemented to the case of Figure 9A. Figure 9B shows a 2D plot of posi^ons where line 940 shows the ground truth, line 950 shows the GPS measured posi^on and line 960 shows the Kalman Filter es^mated posi^on (with “correc^on”). As can be seen, line 960 is more similar to the GPS measured posi^on of line 950 and the ground truth of line 940 than line 930 in Figure 9A.

[0186] Various examples of the present disclosure relate to domain adapta^on. Here, we consider a source image dataset ^ = ^^^ ^ , … , ^^^^ and a target dataset ^ ={^^ ^ , … , ^^^ }. These datasets share the same set of classes{^^… ^^}, however the training labels are only for the source dataset. A problem addressed by examples of the present disclosure is, given a classifier trained on a source dataset, to adapt it, without any target data labels, to classify data on a target dataset.

[0187] A purpose of domain adapta^on is to reuse the model trained in one domain (e.g. visible light imaging or sketches) to another domain (e.g., infrared imaging or op^cal RGB images). The classes stay the same, but the appearance of objects will be different. This may be useful in rela^on to medical applica^ons such as to transfer between different types of medical scanners, or for robots / SLAM scenario, reflec^ng different recogni^on tasks for the same types of objects within different se^ngs.

[0188] An example of a method for domain adapta^on is illustrated in Figure 10, and is as follows: 1) Images from mul^ple domains (e.g., sketches 1020 and real images 1010) are embedded into the feature space 1000 (e.g. using feature extractor 1030) and, for each domain, separately clustered using k-means (e.g. into clusters 1040, 1045, 1050, 1055, 1060, 1065) . The cluster centroids 1040-1, 1050-1, 1060-1 for one of the domains (’source domain’), shownfilled-in in thefigure and referred to as ’prototypes’, are provided with labels (e.g., in this case, “diamond”, “aircra^ carrier”, “chandelier”). 2) Domain adapta^on is performed through inter-domain cluster matches with (e.g. based on) ℓ2or Wasserstein distance. For example, cluster 1040 is matched with cluster 1045, cluster 1050 is matched with cluster 1055, and cluster 1060 is matched with cluster 1065. 3) Decision making through nearest-neighbour prototype classifier performs the predic^on.

[0189] In an example, a specific algorithm for domain adapta^on is as follows:

[0002]

[0190]

[0191] of a vector space (such as a Hilbert space) of a plurality of clusters. The vector space includes afinite sequence of input vectors which are each assigned a cluster. In this example, there are three clusters, represented by a 4-pointed star 401, a 5- pointed star 403, and a 7-pointed star 405, respec^vely, wherein the stars each represent the cluster centre of each cluster. The input vectors, which correspond to the individual data points of the input data, can be seen in groups around the stars.

[0192] In an example, if an individual data point of encoded input data exists in the vector space such that it is closer to the 4-pointed star 401 than either other star (or alterna^vely, is closest to a nearest individual data point to the cluster centre within the vector space than any individual data point belonging to another cluster), it may be iden^fied that the individual data point corresponds to that cluster (i.e., the cluster represented by the 4-pointed star 401). The individual data point may then be grouped into that cluster.

[0193] Further to this example, if individual data point(s) of encoded input data are iden^fied as belonging to the same cluster, it may be iden^fied that a degree of associa^on of the input data for that cluster is high and thus a corresponding at least one representa^ve example may be iden^fied. As such, a signal may be output indica^ng the at least one representa^ve example that corresponds to the input data. Addi^onally, in various examples, a plurality of clusters (i.e., more than one) may correspond to one concept or category. As such, a signal may be output for the closest representa^ve example of a / the user-defined concept or category that corresponds to the input data along the lines disclosed above and / or the closest representa^ve example of a cluster if a user has not provided such input; that is, where a user may provide a category (or concept) for all of the clusters of the plurality of clusters, or a category (or concept) for a selec^on of the plurality of clusters, or a category (or concept) for one of the clusters of the plurality of clusters, where the category (or concept) provided by the user may be used to inform the machine learning model to provide a more accurate output corresponding to the said human-defined category.

[0194] Figure 5 is a diagram represen^ng a plurality of apparatuses for self-evolving deep machine learning. For example, the method of self-evolving deep machine learning as described with reference to Figures 1 and 2 may be implemented on at least one apparatus. The at least one apparatus may include afirst apparatus 501 and a second apparatus 502, wherein thefirst apparatus 501 and the second apparatus 502 are connected to each other via a communica^on link. In various examples, the at least one apparatus may further include one or more further apparatus 503, 504, wherein the further apparatus 503, 504 are connected to each other, thefirst apparatus 501, and the second apparatus 502 via a communica^on link. In another case, each apparatus of the plurality of apparatus may be either directly or indirectly connected to each other apparatus; in other words, even if thefirst apparatus 501 cannot directly communicate with one of the further apparatus 503, 504, thefirst apparatus 501 is s^ll capable of indirectly sending data to said further apparatus 503, 504 (e.g., via the second apparatus 502, if the second apparatus 502 is directly connected to thefirst apparatus 501 and said further apparatus 503, 504).

[0195] Thefirst apparatus 501 may be configured to perform the steps described by reference to Figures 1 and 2. Thefirst apparatus 501 may be configured, a^er performing the steps described by reference to Figure 1, to addi^onally transmit the at least one representa^ve example (e.g., at least onefirst representa^ve example) to the second apparatus 502 and / or the plurality of further apparatuses 503.

[0196] The second apparatus 502 may be configured to perform the steps described by reference to Figures 1 and 2. The second apparatus 502 may be configured, a^er performing the steps described by reference to Figure 1, to addi^onally transmit the at least one representa^ve example (e.g., at least one second representa^ve example) to thefirst apparatus 501 and / or the further apparatuses 503, 504.

[0197] For example, the method described with reference to Figure 1, when carried out on the second apparatus 502, may comprise transmi^ng the input data to a pre-trained machine learning module (which may be a FFE) of the second apparatus 502, encoding, by the pre-trained machine learning module of the second apparatus 502, the other input data, grouping the encoded other input data into a plurality of clusters based on a similarity of individual data points of the other input data, providing at least one other representa^ve example to represent each cluster of the plurality of clusters, and transmi^ng the at least one other representa^ve example (e.g., at least one second representa^ve example) to thefirst apparatus 501.

[0198] The further apparatuses 503, 504 may also be configured to perform the steps described by reference to Figures 1 and 2. Each further apparatus 503, 504 may be configured, a^er performing the steps described by reference to Figure 1, to addi^onally transmit the at least one representa^ve example (e.g., at least one further representa^ve example) to thefirst apparatus 501 and / or the second apparatus 502.

[0199] In an example, thefirst apparatus 501 and the second apparatus 502 may be configured to perform federated learning via exchange of the at least one representa^ve example (e.g., the respec^ve at least one representa^ve example).

[0200] Figure 5 illustrates what may be considered to be a decentralised case where each apparatus may be regarded as equal (e.g., in terms of role). For example, each apparatus performs a deep learning method as disclosed herein, and shares the result with the other apparatus, so as to provide an updated model, updated clusters, or updated representa^ve examples etc. at all of the apparatus. In other examples, the methods of the present disclosure may be provided in a centralised case, in which one apparatus is provided with a different role (e.g., specialised) compared to the others. In such a case, this one apparatus may perform one or more addi^onal or different opera^on(s) to those performed by the other apparatus. For example, the one apparatus may receive the updated model or results (or similar) from each of the other apparatus, and be responsible for colla^ng the updates into a single updated model for sharing with the other apparatus. Of course, the skilled person would understand how one apparatus may be provided with a number of different roles compared to the remaining apparatus, and so to centrally perform specialised features.

[0201] Figure 6 is a diagram represen^ng a system comprising afirst apparatus (for example, the first apparatus 501 of Figure 5) and a second apparatus (for example, the second apparatus 502 of Figure 5), wherein the second apparatus is connected to thefirst apparatus via a communica^on link. For example, thefirst apparatus and the second apparatus may be connected via the internet or other communica^on link (e.g., a wired link, ethernet, WiFi, 3G, 4G, 5G, B5G, 3GPP-based, Bluetooth etc.).

[0202] In step S610, thefirst apparatus 501 receives input data.

[0203] In step S615, the second apparatus 502 receives other input data.

[0204] In step S620, thefirst apparatus 501 transmits the input data to a pre-trained machine learning module of thefirst apparatus 501.

[0205] In step S625, the second apparatus 502 transmits the other input data to a pre-trained machine learning module of the second apparatus 502.

[0206] In step S630, thefirst apparatus 501 encodes, by the pre-trained machine learning module, the input data.

[0207] In step S635, the second apparatus 502 encodes, by the pre-trained machine learning module, the other input data.

[0208] In step S640, thefirst apparatus 501 groups, by a clustering module, the encoded input data into clusters based on a similarity of individual data points of the input data.

[0209] In step S645, the second apparatus 502 groups, by a clustering module, the encoded other input data into clusters based on a similarity of individual data points of the object input data.

[0210] In step S650, thefirst apparatus 501 provides at least one representa^ve example, of a set of representa^ve examples, to represent each cluster.

[0211] In step S655, the second apparatus 502 provides at least one other representa^ve example, of a set of representa^ve examples, to represent each cluster.

[0212] In step S660, thefirst apparatus 501 transmits the at least one representa^ve example to the second apparatus 502.

[0213] In step S665, the second apparatus 502 transmits the at least one other representa^ve example to thefirst apparatus 501.

[0214] In addi^on to the above-described steps, thefirst apparatus 501 and the second apparatus 502 may transmit the at least one representa^ve example and the at least one other representa^ve example to the plurality of further apparatuses 503, 504 and may, in turn, receive at least one representa^ve example from the plurality of further apparatuses 503, 504.

[0215] In a related example, thefirst apparatus 501 and the second apparatus 502 may be configured to perform federated learning (e.g., decentralised or centralised) via exchange of the at least one representa^ve example and the at least one other representa^ve example. The federated learning may also include exchange of representa^ve examples with the plurality of further apparatuses 503, 504.

[0216] Figure 7 is a diagram of an apparatus 700 for self-evolving deep machine learning.

[0217] The apparatus 700 comprises a memory 710, a pre-trained machine learning module 720, a clustering module 730, and at least one processor 740.

[0218] The memory 710 is configured to store a set of representa^ve examples.

[0219] The pre-trained learning module is configured to receive and encode the input data. The pre- trained learning module may be a founda^on feature extractor (FFE). The founda^on feature extractor may use a pre-trained founda^on model (PT-FM), as described above.

[0220] The clustering module is configured to group the encoded input data into clusters based on a similarity of individual data points of the input data.

[0221] The clustering module and the pre-trained learning module may be part of or controllable by the at least one processor.

[0222] The apparatus 700 may further comprise an image capturing apparatus (such as a camera, micro-camera, infra-red camera or the like). The apparatus 700 may further comprise a sensor (such as a biometric sensor, temperature sensor, pressure sensor, gyroscope, accelerometer, or the like).

[0223] The apparatus 700 may be part of another device such as a vehicle (for example, a car, agricultural vehicle, automated or self-driving vehicle, UAV, or the like), smartphone, medical device, or the like.

[0224] Various examples of the present disclosure are now provided in the form of numbered paragraphs:

[0225] Paragraph 1. method of self-evolving deep machine learning on at least one apparatus, the method comprising: performing opera^ons comprising: receiving, by afirst apparatus, input data; transmi^ng the input data to a pre-trained machine learning module of thefirst apparatus; encoding, by the pre-trained machine learning module of thefirst apparatus, the input data; grouping, by thefirst apparatus, the encoded input data into a plurality of clusters based on a similarity of individual data points of the input data; and providing, by thefirst apparatus at least one representa^ve example to represent each cluster of the plurality of clusters.

[0226] Paragraph 2. The method of Paragraph 1, wherein the input data is received con^nuously; and wherein the opera^ons are repeated as long as the input data is being received.

[0227] Paragraph 3. The method of Paragraph 1 or Paragraph 2, wherein the method further comprises: receiving, by thefirst apparatus, a request for object iden^fica^on; receiving, by thefirst apparatus, object input data corresponding to the request for object iden^fica^on; providing, by the first apparatus, a degree of associa^on of the object input data with each cluster of the plurality of clusters; iden^fying, by thefirst apparatus, whether one of the at least one representa^ve example corresponds to the object input data based on the provided degree of associa^on; and if so, outpu^ng, by thefirst apparatus, a signal indica^ng the at least one representa^ve example that corresponds to the object input data.

[0228] Paragraph 4. The method of any of Paragraphs 1 to 3, wherein the method further comprises: receiving, by thefirst apparatus, an input by a user indica^ng a category for at least one cluster of the plurality of clusters; and / or receiving, by thefirst apparatus, target output data.

[0229] Paragraph 5. The method of Paragraph 3 or Paragraph 4, wherein the object input data is encoded, by the pre-trained machine learning module of thefirst apparatus; and wherein the encoded object input data is grouped, by thefirst apparatus, into at least one cluster based on a similarity of the individual data points of the object input data such that the individual data points are used in future implementa^on of the machine learning.

[0230] Paragraph 6. The method of any of Paragraphs 3 to 5, wherein the signal is output by controlling thefirst apparatus toflash a light, output a sound, and / or display informa^on on a display.

[0231] Paragraph 7. The method of any of Paragraphs 3 to 6, wherein the request for object iden^fica^on relates to at least one of autonomous vehicles, space and avia^on, cyber security, robo^cs, agricultural work, categorizing symptoms of disease and diagnosis, and human ac^vity data analysis.

[0232] Paragraph 8. The method of any of Paragraphs 1 to 7, wherein the encoding of the input data comprises: transforming the input data into a vector; wherein the vector is a set of numerical values configured such that the similarity of individual data points is represented by a func^on of the numerical values represen^ng the closeness of individual data points; and wherein the number of numerical values is defined according to the pre-trained machine learning module.

[0233] Paragraph 9. The method of any of Paragraphs 1 to 8, wherein the grouping of the encoded data comprises: determining for each individual data point, that the individual data point belongs to a cluster of the plurality of clusters if said individual data point is closer in vector space to a point from said cluster than any other individual data point that belongs to a different cluster.

[0234] Paragraph 10. The method of any of Paragraphs 1 to 9, wherein the providing the at least one representa^ve example further comprises: determining a cluster centre for each cluster of the plurality of clusters or a nearest individual data point to the cluster centre within the vector space for each cluster of the plurality of clusters; iden^fying a category associated with each cluster of the plurality of clusters; and providing the at least one representa^ve example based on the iden^fied category.

[0235] Paragraph 11. The method of any of Paragraphs 1 to 10, wherein the input data includes at least one of image data, natural language data, spectroscopy data, CT scan data, MRI scan data, or tabular data including temperature, pressure, accelerometer, velocity, ^me series, economic or biological data.

[0236] Paragraph 12. The method of any of Paragraphs 1 to 11, wherein the at least one apparatus further includes a second apparatus; wherein the method further comprises: transmi^ng, by the first apparatus, the at least one representa^ve example to the second apparatus.

[0237] Paragraph 13. The method of Paragraph 12, wherein the method further comprises: receiving, by the second apparatus, other input data; transmi^ng the input data to a pre-trained machine learning module of the second apparatus; encoding, by the pre-trained machine learning module of the second apparatus, the other input data; grouping, by the second apparatus, the encoded other input data into a plurality of clusters based on a similarity of individual data points of the other input data; providing, by the second apparatus at least one representa^ve example to represent each cluster of the plurality of clusters; and transmi^ng, by the second apparatus, the at least one representa^ve example to thefirst apparatus.

[0238] Paragraph 14. An apparatus for self-evolving deep machine learning, the apparatus comprising: a memory configured to store a set of representa^ve examples; a pre-trained machine learning module; a clustering module; at least one processor, communicably connected to the pre- trained learning module and the clustering module, the at least one processor is configured to: receive input data; transmit the input data to the pre-trained machine learning module; encode, by the pre-trained machine learning module, the input data; group, by the clustering module, the encoded input data into clusters based on a similarity of individual data points of the input data; and provide at least one representa^ve example, of the set of representa^ve examples, to represent each cluster.

[0239] Paragraph 15. The apparatus of Paragraph 14, wherein the apparatus further comprises an image capturing apparatus.

[0240] Paragraph 16. A system comprising: afirst apparatus; and a second apparatus, wherein the second apparatus is communicably connected to thefirst apparatus via a communica^on link; wherein thefirst apparatus is configured to: receive input data; transmit the input data to a pre- trained machine learning module of thefirst apparatus; encode, by the pre-trained machine learning module of thefirst apparatus, the input data; group, by a clustering module of thefirst apparatus, the encoded input data into clusters based on a similarity of individual data points of the input data; provide at least one representa^ve example, of afirst set of representa^ve examples, to represent each cluster; and transmit the at least one representa^ve example to the second apparatus; and wherein the second apparatus is configured to: receive other input data; transmit the other input data to a pre-trained machine learning module of the second apparatus; encode, by the pre-trained machine learning module of the second apparatus, the other input data; group, by a clustering module of the second apparatus, the encoded other input data into clusters based on a similarity of individual data points of the other input data; provide at least one other representa^ve example, of a second set of representa^ve examples, to represent each cluster; and transmit the at least one other representa^ve example to thefirst apparatus.

[0241] Paragraph 17. The system of Paragraph 16, wherein the system further comprises a plurality of further apparatuses communicably connected to each other, thefirst apparatus, and the second apparatus via a communica^on link; and wherein thefirst apparatus and the second apparatus are configured to transmit the at least one representa^ve example and the at least one other representa^ve example, respec^vely, to the plurality of further apparatuses.

[0242] Paragraph 18. The system of Paragraph 16 or Paragraph 17, wherein thefirst apparatus and the second apparatus are configured to perform federated learning via exchange of the at least one representa^ve example and the at least one other representa^ve example.

[0243] Paragraph 19. A computer-readable storage medium comprising instruc^ons which, when executed by a computer, cause the computer to perform the method of any of Paragraphs 1 to 13.

[0244] The present disclosure also provides a computer-readable storage medium comprising instruc^ons which, when executed by a computer, cause the computer to receive input data, transmit the input data to a pre-trained machine learning module, encode, by the pre-trained machine learning module, the input data, group, by the clustering module, the encoded input data into clusters based on a similarity of individual data points of the input data, and provide at least one representa^ve example, of a set of representa^ve examples, to represent each cluster.

[0245] For each example, aspects, embodiments etc. disclosed herein, there is provided an apparatus configured to provide such an example, aspect, embodiment etc. For example, where an example describes a method, there is also provided an apparatus configured to perform said method. Said apparatus may correspond to that described in rela^on to Figure 7, e.g. may comprise the components shown in Figure 7.

[0246] Features, integers, characteris^cs or groups described in conjunc^on with a par^cular aspect, embodiment or example of the inven^on are to be understood to be applicable to any other aspect, embodiment or example described herein unless incompa^ble therewith. All of the features disclosed in this specifica^on (including any accompanying claims, abstract and drawings), and / or all of the steps of any method or process so disclosed, may be combined in any combina^on, except combina^ons where at least some of such features and / or steps are mutually exclusive. The disclosure is not restricted to the details of any foregoing embodiments. The disclosure extends to any novel one, or any novel combina^on, of the features disclosed in this specifica^on (including any accompanying claims, abstract and drawings), or to any novel one, or any novel combina^on, of the steps of any method or process so disclosed. In par^cular, any dependent claims may be combined with any of the independent claims and any of the other dependent claims.

Claims

Claims:

1. A method of self-evolving deep machine learning on at least one apparatus, the method comprising: performing opera^ons comprising: receiving, by afirst apparatus, input data; transmi^ng the input data to a pre-trained machine learning module of thefirst apparatus; encoding, by the pre-trained machine learning module, the input data; grouping, by thefirst apparatus, the encoded input data into a plurality offirst clusters based on a similarity of individual data points of the input data; providing, by thefirst apparatus for each of the plurality offirst clusters, afirst representa^ve example; receiving, by thefirst apparatus, object input data corresponding to a request for object iden^fica^on; encoding, by the pre-trained machine learning module, the object input data; iden^fying, by thefirst apparatus, whether one of thefirst representa^ve examples corresponds to the encoded object input data based on a degree of associa^on of the encoded object input data with eachfirst cluster of the plurality offirst clusters; and grouping, by thefirst apparatus, the encoded object input data into a cluster based on the degree of associa^on of the encoded object input data with eachfirst cluster of the plurality offirst clusters, such that the encoded object input data is used in future implementa^on of the machine learning.

2. The method of claim 1, wherein the input data is received con^nuously; and wherein the opera^ons are repeated as long as the input data is being received.

3. The method of any preceding claim, wherein the method further comprises: receiving, by thefirst apparatus, an input by a user indica^ng a category for at least onefirst cluster of the plurality offirst clusters; and / or receiving, by thefirst apparatus, target output data.

4. The method of any preceding claim, wherein the method further comprises: if it is iden^fied that one of thefirst representa^ve examples corresponds to the object input data, outpu^ng, by thefirst apparatus, afirst signal indica^ng thefirst representa^ve example that corresponds to the object input data, orif it is iden^fied that none of thefirst representa^ve examples correspond to the object input data, outpu^ng, by thefirst apparatus, a second signal indica^ng that the object input data does not correspond to any of the plurality offirst clusters or any of thefirst representa^ve examples.

5. The method of claim 4, wherein thefirst signal is output by controlling thefirst apparatus to flash a light, output a sound, and / or display informa^on on a display.

6. The method of any previous claim, wherein if it is iden^fied that one of thefirst representa^ve examples corresponds to the object input data, the object input data is grouped into thefirst cluster represented by the one of thefirst representa^ve examples; and wherein if it is iden^fied that none of thefirst representa^ve examples correspond to the object input data, the object input data is grouped into a new cluster, and op^onally a new category is assigned to the new cluster by thefirst apparatus.

7. The method of any previous claim, wherein the degree of associa^on of the encoded object input data with eachfirst cluster of the plurality offirst clusters is the distance between the encoded object input data and the cluster centre of saidfirst cluster; and wherein the iden^fying is performed based on comparing the degree of associa^on of the encoded object input data with eachfirst cluster of the plurality offirst clusters and afirst threshold.

8. The method of claim 7, wherein thefirst threshold is set based on the standard devia^on of the plurality offirst clusters.

9. The method of any previous claim, wherein the input data comprises at least onefirst image; wherein the encoding of the input data comprises: for each of the at least onefirst image, dividing saidfirst image into a plurality of non-overlappingfirst patches; and encoding the plurality offirst patches; and wherein the encoded input data comprises the encodedfirst patches.

10. The method of claim 9, wherein the object input data comprises a second image and encoding the object input data comprises encoding the second image; wherein the method comprises dividing the second image into a plurality of non-overlapping second patches and encoding the second patches; and wherein grouping the encoded object input data comprises grouping each of the encoded second image and the encoded second patches into at least one cluster.

11. The method of claim 10, wherein the iden^fying comprises: performing afirst iden^fica^on of whether one of thefirst representa^ve examples corresponds to the encoded second image based on a degree of associa^on of the encoded second image with eachfirst cluster of the plurality offirst clusters; and performing, for each encoded second patch, a second iden^fica^on of whether one of the first representa^ve examples corresponds to said encoded second patch based on a degree of associa^on of said encoded second patch with eachfirst cluster of the plurality offirst clusters.

12. The method of claim 11, further comprising: providing a decision in response to the request for object iden^fica^on based on thefirst iden^fica^on and the second iden^fica^on.

13. The method of any of claims 1 to 6 , further comprising: labelling a data point for eachfirst cluster of the plurality offirst clusters to obtain a plurality of labelled data points; and classifying the labelled data points using linear discriminant analysis (LDA) to provide an LDA model.

14. The method of any preceding claim, wherein the encoding of the input data comprises: transforming the input data into a vector; wherein the vector is a set of numerical values configured such that the similarity of individual data points is represented by a func^on of the numerical values represen^ng the closeness of individual data points; and wherein the number of numerical values corresponds to the dimensionality of the vector and is defined according to the pre-trained machine learning module.

15. The method of claim 14, further comprising: performing principal component analysis (PCA) on the vector to reduce the dimensionality of the vector.

16. The method of any preceding claim, wherein the grouping of the encoded data comprises: determining, for each individual data point, that the individual data point belongs to afirst cluster of the plurality offirst clusters if said individual data point is closer in vector space to a point from saidfirst cluster than any other individual data point that belongs to a differentfirst cluster.

17. The method of claim 16, wherein the providing thefirst representa^ve example comprises: determining a cluster centre for eachfirst cluster of the plurality offirst clusters or a nearest individual data point to the cluster centre within the vector space for eachfirst cluster of the plurality offirst clusters; iden^fying a category associated with eachfirst cluster of the plurality offirst clusters; and providing thefirst representa^ve example for eachfirst cluster based on the iden^fied category associated with eachfirst cluster.

18. The method of any preceding claim, wherein the request for object iden^fica^on relates to at least one of autonomous vehicles, space and avia^on, cyber security, robo^cs, agricultural work, categorizing symptoms of disease and diagnosis, infrastructure quality monitoring, deepfake analysis, road quality analysis, medical data analysis, domain adapta^on, self-localisa^on and mapping (SLAM) and human ac^vity data analysis; and / or wherein the input data includes at least one of image data, natural language data, spectroscopy data, CT scan data, MRI scan data, ECG or EKG (electrocardiogram) data or tabular data including temperature, pressure, accelerometer, velocity, ^me series, economic or biological data.

19. The method of any preceding claim, wherein the at least one apparatus further includes a second apparatus; wherein the method further comprises: transmi^ng, by thefirst apparatus, thefirst representa^ve examples to the second apparatus.

20. The method of claim 19, wherein the method further comprises: receiving, by the second apparatus, other input data; transmi^ng the input data to a pre-trained machine learning module of the second apparatus; encoding, by the pre-trained machine learning module of the second apparatus, the other input data; grouping, by the second apparatus, the encoded other input data into a plurality of second clusters based on a similarity of individual data points of the other input data; providing, by the second apparatus for each of the plurality of second clusters, a second representa^ve example; and transmi^ng, by the second apparatus, the second representa^ve examples to thefirst apparatus;wherein, op^onally, one or more of thefirst clusters corresponds to one or more of the second clusters.

21. An apparatus for self-evolving deep machine learning, the apparatus comprising: a memory configured to store a set of representa^ve examples; a pre-trained machine learning module; a clustering module; at least one processor, communicably connected to the pre-trained learning module and the clustering module, the at least one processor is configured to: receive input data; transmit the input data to the pre-trained machine learning module; encode, by the pre-trained machine learning module, the input data; group, by the clustering module, the encoded input data into a plurality offirst clusters based on a similarity of individual data points of the input data; provide, for each of the plurality offirst clusters, afirst representa^ve example; receive object input data corresponding to a request for object iden^fica^on; encode, by the pre-trained machine learning module, the object input data; iden^fy whether one of thefirst representa^ve examples corresponds to the encoded object input data based on a degree of associa^on of the encoded object input data with eachfirst cluster of the plurality offirst clusters; and group the encoded object input data into a cluster based on the degree of associa^on of the encoded object input data with eachfirst cluster of the plurality offirst clusters, such that the encoded object input data is used in future implementa^on of the machine learning.

22. A system comprising: afirst apparatus; and a second apparatus, wherein the second apparatus is communicably connected to thefirst apparatus via a communica^on link; wherein thefirst apparatus is configured to: receive input data; transmit the input data to a pre-trained machine learning module of thefirst apparatus; encode, by the pre-trained machine learning module of thefirst apparatus, the input data;group, by a clustering module of thefirst apparatus, the encoded input data into a plurality offirst clusters based on a similarity of individual data points of the input data; provide, for each of the plurality offirst clusters, afirst representa^ve example; transmit thefirst representa^ve examples to the second apparatus; receive object input data corresponding to a request for object iden^fica^on; encode, by the pre-trained machine learning module, the object input data; iden^fy whether one of thefirst representa^ve examples corresponds to the encoded object input data based on a degree of associa^on of the encoded object input data with eachfirst cluster of the plurality offirst clusters; and group the encoded object input data into a cluster based on the degree of associa^on of the encoded object input data with eachfirst cluster of the plurality of first clusters, such that the encoded object input data is used in future implementa^on of the machine learning; and wherein the second apparatus is configured to: receive other input data; transmit the other input data to a pre-trained machine learning module of the second apparatus; encode, by the pre-trained machine learning module of the second apparatus, the other input data; group, by a clustering module of the second apparatus, the encoded other input data into a plurality of second clusters based on a similarity of individual data points of the other input data; provide, for each of the plurality of second clusters, a second representa^ve example; and transmit the second representa^ve examples to thefirst apparatus.

23. The system of claim 22, wherein the system further comprises a plurality of further apparatuses communicably connected to each other, thefirst apparatus, and the second apparatus via a communica^on link; and wherein thefirst apparatus and the second apparatus are configured to transmit thefirst representa^ve examples and the second representa^ve examples, respec^vely, to the plurality of further apparatuses.

24. The system of claim 22 or claim 23, wherein thefirst apparatus and the second apparatus are configured to perform federated learning via exchange of thefirst representa^ve examples and the second representa^ve examples.

25. A computer-readable storage medium comprising instruc^ons which, when executed by a computer, cause the computer to perform the method of any of claims 1 to 22.

Citation Information

Patent Citations

  • Machine learning

    US8250004B2