Elastic centroid-based clustering

By using elastic clustering algorithm in machine learning, adjusting the center of mass position and relaxing its position, the problem of degradation of pattern recognition accuracy in dynamic mode is solved, especially when objects are moved or partially occluded, which achieves higher recognition accuracy and robustness.

CN114270365BActive Publication Date: 2025-06-10INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080059097.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-09-06
Filing Date
2020-08-25
Publication Date
2025-06-10
Estimated Expiration
2040-08-25

AI Technical Summary

Technical Problem

In dynamic mode, existing machine learning algorithms have difficulty maintaining pattern recognition accuracy after objects pass motion or transformation, especially when the object part is blocked.

Method used

The elastic clustering algorithm is used to adapt to the change of data points by adjusting the position of the center of mass within a predetermined time and relaxing the position of the center of mass according to the elastic stretching factor.

Benefits of technology

The pattern recognition accuracy in dynamic mode is improved, especially in the case of object movement or partial occlusion, and the recognition ability of occlusion robustness is enhanced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114270365B_ABST
    Figure CN114270365B_ABST
Patent Text Reader

Abstract

A computer device, a non-transitory computer storage medium, and a computer-implemented method for pattern recognition using an elastic clustering algorithm. An input data point sequence is assigned to a specific cluster based on a distance from a centroid k to the center of the specific cluster among K clusters. The centroid k in each of the K clusters is shifted from a first position to a second position closer to the input data point sequence than the first position. The position of the centroid k in each of the K clusters is relaxed from the second position towards an equilibrium point in the specific cluster among the K clusters. The relaxation of the position of the centroid k occurs based on the distance between the centroids k of the specific cluster at time t according to an elastic stretching factor.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure generally relates to cognitive computing and, more specifically, to identifying objects / data from partial patterns using machine learning. Background Art

[0002] In machine learning, K-means clustering is an unsupervised algorithm for identifying static patterns by identifying the number of clusters (K) in a dataset. A cluster represents an aggregation of points due to some common attributes. A centroid is a real or fictional location representing the center of a cluster. In the case of dynamic patterns, the accuracy of pattern recognition degrades with the continuity of time, where objects have been deformed or at least partially occluded by various types of motion (such as rotation, linear, straight, and non-linear motion) or the motion of other objects in the observation path, or by similar transformations in input pattern domains other than vision (such as auditory data (sound), financial data, biosignals, medical data sequences). Summary of the Invention

[0003] According to various embodiments, a computing device, a non-transitory computer-readable storage medium, and a computer-implemented method for performing pattern recognition using elastic clustering.

[0004] In one embodiment, a computer-implemented method for pattern recognition using an elastic clustering algorithm includes assigning an input data point of a sequence of data points representing a data group to a specific cluster based on a distance from the centroid k representing the center of a specific cluster among K clusters. Clustering of the data points is performed based on the position of the data points relative to the centroid k. The centroid k is shifted from a first position to a second position at a predetermined time, and the second position is determined to be closer to the sequence of input data points assigned to the specific cluster than the first position. The position of the centroid k is relaxed from the second position toward an equilibrium point in a specific cluster among the K clusters. The relaxation of the position of the centroid k from the second position toward the equilibrium point in a specific cluster among the K clusters occurs according to an elastic stretching factor.

[0005] In one embodiment, the elastic stretching factor includes dF / dt, where F is a short-term component related to the distance from the centroid k of a specific cluster during time t.

[0006] In one embodiment, a machine learning model is created to analyze a training set that includes sequences of data grouped within a time continuum, and each of these sequences is labeled by a subject matter expert (SME). The data sequences include dynamic images.

[0007] In one embodiment, a computing device includes a processor, a storage device coupled to the processor, and a pattern recognition module that uses an elastic clustering algorithm stored in the storage device, wherein execution of the pattern recognition module configures the computing system to: assign one or more input data points of a sequence of data points representing a data set to a particular one of K clusters based on a distance from a centroid k representing the center of the particular one of the K clusters; cluster the data points based on the position of the data points relative to the centroid k; shift the centroid k from a first position to a second position within a predetermined time period, the second position being determined to be closer to the sequence of input data points assigned to the particular one of the K clusters than the first position; and relax the position of the centroid k from the second position toward an equilibrium point within the particular one of the K clusters. The relaxation of the position of the centroid k from the second position toward the equilibrium point within the particular one of the K clusters is based on a distance between the centroid k of the particular cluster at time t occurring according to an elastic stretching factor.

[0008] In one embodiment, a computing device includes a circuit having input nodes and output nodes. At least one presynaptic neuron is coupled to the input nodes, and at least one postsynaptic neuron is coupled to the output nodes. A first synapse is configured to control a short-term component F(t) in conjunction with a learning function of a short-term spike-timing-dependent plasticity (ST-STDP) module, and a second synapse is configured to control a weight W(t) in conjunction with a learning function of a long-term standard plasticity STDP module. An adder is configured to receive the weight W(t) and the short-term component F(t) and output an efficacy to the postsynaptic neuron.

[0009] In one embodiment, a non-transitory computer-readable storage medium tangibly embodying computer-readable program code having computer-readable instructions that, when executed, cause a computer device to perform a method of performing pattern recognition using an elastic clustering algorithm. One or more of an input data point sequence of a sequence of data points representing an image are assigned to a particular cluster based on a distance from a centroid k representing the center of the particular one of K clusters. The centroid k is shifted from a first position to a second position within a predetermined time period, the second position being determined to be closer to the input data point sequence assigned to the particular one of the K clusters than the first position. The position of the centroid k is relaxed from the second position toward an equilibrium point within the particular one of the K clusters.

[0010] These and other features will become apparent from the following detailed description of its illustrative embodiments, which is to be read in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] The accompanying drawings are illustrative embodiments. They do not illustrate all embodiments. Additionally or alternatively, other embodiments may be used. Details that may be obvious or unnecessary may be omitted to save space or for more effective illustration. Some embodiments may be practiced with additional components or steps and / or without all of the components or steps shown. When the same reference numerals appear in different drawings, they refer to the same or similar components or steps.

[0012] Figure 1A An example architecture of a block diagram of a circuit configured to implement pattern recognition in an elastic clustering algorithm in a spiking neural network in accordance with an illustrative embodiment is illustrated.

[0013] Figure 1B The output of a pattern recognition test set based on temporal continuity of multiple views is illustrated.

[0014] Figure 2 An illustrative schematic diagram of an input clustered at a single time step in accordance with an illustrative embodiment is shown.

[0015] Figure 3A A list of operations in a clustering implementation in accordance with an illustrative embodiment is shown.

[0016] Figure 3B A list of operations of a neural implementation in accordance with an illustrative embodiment is shown.

[0017] Figure 4 An illustration of an equation that forms the basis of an implementation of an elastic clustering algorithm in accordance with an illustrative embodiment is shown.

[0018] Figure 5 A comparison of the use of an elastic clustering algorithm with a spiking neural network (SNN) and an elastic clustering algorithm with a convolutional neural network, a multi-layer neural network, or a recurrent neural network in accordance with an illustrative embodiment is shown.

[0019] Figure 6 A graph showing the percentage of correct frames of a convolutional neural network (CNN), a multi-layer perceptron (MLP), a recurrent neural network (RNN), and a spiking neural network (SNN) in accordance with an illustrative embodiment is shown.

[0020] Figure 7 The effect of short-term plasticity (STP) on occlusion robustness in the recognition of partial patterns in accordance with an illustrative embodiment is shown.

[0021] Figure 8It is a graphical representation of the performance of the percentage of correct identification of handwritten digits for CNN, MLP, and SNN networks on a modified National Institute of Standards and Technology (MNIST) database of handwritten digits and an Occluded MNIST (OMNIST) database of handwritten digits, which is consistent with the illustrative embodiments.

[0022] Figure 9 It is a flowchart consistent with the illustrative embodiments.

[0023] Figure 10 It is a functional block diagram illustration of a computer hardware platform that can be used to implement a computing device configured to execute an elastic clustering algorithm, which is consistent with the illustrative embodiments.

[0024] Figure 11 It depicts a cloud computing environment consistent with the illustrative embodiments.

[0025] Figure 12 It depicts an abstract model layer consistent with the illustrative embodiments. Detailed Description

[0026] Overview

[0027] In the following detailed description, numerous specific details are set forth by way of example in order to provide a thorough understanding of the relevant teachings. However, it should be apparent that the teachings may be practiced without such details. In other instances, well-known methods, procedures, components, and / or circuits have been described at a relatively high level without detail in order to avoid unnecessarily obscuring aspects of the teachings.

[0028] In a machine learning system, the introduction of images as multiple views of an object can be part of the training process to increase the speed and accuracy of pattern recognition. However, a machine learning system can apply inference to identify patterns, for example, when the location or configuration of an object does not match or partially match one of the training samples. In such cases, exhaustive training and a training set are used, where each face of the same pattern is treated as a separate pattern. Each face can be identified independently. However, in the absence of exhaustive training, it may not be clear, for example, whether two or more identified faces are from the same object or from different objects.

[0029] It should be understood that a spiking neural network (SNN) is configured to simulate the central nervous system on a computer chip. In an SNN, spiking neurons typically communicate by using voltage pulses that carry information in their timing. Synapses, which are the connections between neurons, include spike-timing-dependent plasticity (STDP) and short-term plasticity (STP) that dynamically change the synaptic efficiency depending on the timing of pre-synaptic and post-synaptic voltage pulses.

[0030] Regarding STDP and (STP), it should be understood that in STDP, there are changes in synaptic strength based on the timing difference between pre-synaptic and post-synaptic pulses. On the other hand, STP is characterized by instantaneous and temporary changes in synaptic strength. In addition, ST-STDP has synaptic changes as in STDP, but with an instantaneous effect.

[0031] Accordingly, in one embodiment, provided herein are methods and systems for using machine learning to save time and valuable network and computing resources. Now refer in detail to the examples shown in the accompanying drawings and discussed below.

[0032] Example architecture

[0033] Figure 1A A block diagram of an example architecture for pattern recognition in a spiking neural network implementing an elastic clustering algorithm in accordance with an illustrative embodiment is shown. Both long-term STDP and short-term STDP (ST-STDP) are utilized.

[0034] Reference Figure 1A , network 100A includes at least one pre-synaptic neuron 105 and one post-synaptic neuron 150. A first synapse 110 is configured to control a short-term component F(t) in conjunction with learning of short-term spike-timing-dependent plasticity (ST-STDP) 120, and a second synapse 115 is configured to control a weight W(t) in conjunction with learning of long-term standard plasticity STDP 125. The addition of the weight W(t) and F(t) at an adder 130 together constitutes the efficacy output of the post-synaptic neuron 150. In this embodiment, (ST-STDP) 120 is unsupervised and can be trained with static images and videos including occluded images. As Figure 1A shown, the number of epochs for training a machine learning module can be as few as 1, resulting in a significant reduction in epochs compared to training in a conventional machine learning environment. The reduction in epochs is particularly significant in the case of training for images with identity occlusion.

[0035] In unsupervised learning, historical data can be provided without labels as to what is an acceptable classification. By building a model based on stored previous inputs or a baseline therefrom, such algorithms can operate to make data-driven predictions or decisions (or, provide threshold conditions) to indicate whether a communication thread belongs to a predetermined cluster, rather than following strict static criteria. Based on machine learning, there can be identified patterns and trends, as well as any outlier data identified as not belonging to a cluster.

[0036] In various embodiments, machine learning can utilize techniques including supervised learning, unsupervised learning, semi-supervised learning, naive Bayes, Bayesian networks, decision trees, neural networks, fuzzy logic models, and / or probabilistic classification models.

[0037] Figure 1B Shows the output of a pattern recognition test set based on temporal continuity. In a conventional training set, all views must be provided during the training phase. For example, in the illustrated training set, images 155-1, 155-2, and 155-3 are provided during the training phase. Test set 1 shows that image recognition passes because 160-1, 160-2, and 160-3 are all parts of the training set. However, as shown in test set 2, the test fails because when 165-1, 165-2, and 165-3 are recognized, the images of object A rotated 135 degrees have not been previously learned. According to aspects of the present disclosure, by using temporal continuity, for example, all view sequences in test set 2 can be identified based on inferences from training set 1.

[0038] Figure 2 Is an illustrative example 200 of an input clustered at a single time step consistent with an illustrative embodiment. As Figure 2 shown, the new input 205 is shown to be close to the first cluster centroid 210 with an equilibrium point 212 and the second cluster centroid 215 with an equilibrium point 217. The new input 205 attracts the cluster centroids 210, 215 towards it. Springs 214, 219 represent the elasticity of the respective first cluster centroid 210 and second cluster centroid 215, both of which relax towards the new input 205 and in the opposite direction towards the respective equilibrium points 212, 217. As Figure 2 shown, the distance-dependent pulling force dF (F is the short-term component shown by the arrow) and the elastic pulling force can be calculated by dF / dt. Moreover, the position of the first cluster centroid 210 represented by G in Figure 2 can be calculated as G = W + F, where W is the weight and F is the short-term component. The elastic pulling force can depend on the displacement of the centroid from its equilibrium point, for example, in an exponential manner: dF / dt = -F / τ, in which case the kernel f(t) can be an exponential decay kernel with a time constant τ.

[0039] Regarding Figure 2 , it should be understood that the input can be implemented as a set of data. The data can be of various types, including but not limited to image data, audio data, medical data, financial data. The data can be dynamic data, such as moving images. The above non-limiting examples of data can be partially occluded, or can constitute a front view or a side view in the case of image data, for example.

[0040] Figure 3AA list of operations 300A in a clustering implementation consistent with the illustrative embodiments. In this example, an initial elastic clustering algorithm is used in the clustering operation. The first four bullet points are provided to establish the operations of the clustering implementation. For example, the input in N spatial dimensions is X(t) = {Xi(t)..Xn(t)}, which is normalized between 0 and 1, the K cluster centroids are Ci = {Gi(t)..Gn(t)}, Gi = Wi + Fi, and the K equilibrium points are Qi = {Wi(t)..Wn(t)} (e.g., found by K-means). There is a clustering of the spatio-temporal input X(0…t) to the centroids Ci.

[0041] Continuing to refer Figure 3A , the algorithm includes performing an elastic function to relax the position of the centroid towards the equilibrium by dF. The algorithm also includes assigning clusters by calculating the proximity P0 of the spatio-temporal input X(0,…,t) to the centroid trajectory Ci(0,…,t). The cluster assignment proximity P0(X,C) can be any metric function, e.g., Euclidean distance, or an activation function of (integrated input + leak). Optionally, there can be an integrated recurrent input from self / other centroids.

[0042] The algorithm also includes updating the clusters by moving Ci to update the proximity metric P1, which can be the same as P0 or can be different, e.g., P1 = f(P0). Additionally, P1 can be P0 scaled by a measurement of the input strength (e.g., the STDP curve portion of ST-STDP).

[0043] Figure 3B A list of operations 300B for a neural implementation consistent with the illustrative embodiments. In this example embodiment, an elastic clustering algorithm is used in a neural network implementation. The first three bullet points are provided to establish the neural implementation. For example, an input in N spatial dimensions Xi(t) = {Xi(t)..Xn(t)}, which is normalized between 0 and 1, there are K neurons with synaptic efficacy Gi, and F is the short-term component, Wi is the synaptic weight learned, e.g., by STDP / backpropagation, and pattern recognition of the spatio-temporal input.

[0044] Continuing to refer Figure 3B , the algorithm includes determining the short-term plasticity dF / dt (e.g., exponential). Figure 3B The algorithm also includes activating the neurons by calculating the proximity P0 of the spatio-temporal input Xi(0,…,t) to the centroid trajectory Ci(0,…,t). The cluster assignment proximity P0(X,C) can be any metric function, e.g., Euclidean distance, P0 = ReLu / Step / pulse activation function (integrated input + leak, optionally including recurrent connections). Figure 3BThe algorithm also includes updating synaptic efficacy by shifting Ci by P0, where P0 is scaled by an integral representation of the input (e.g., convolution with an exponential time kernel).

[0045] Figure 4 is an illustration of Equation 400 that forms the basis of an implementation of an elastic clustering algorithm consistent with an illustrative embodiment. In Figure 4 Equations (1) to (5) are shown. The mathematical basis for the state V(X1, t) that a neuron assumes due to an input X1 at time t. V(X1, ∞) is the state that the neuron would assume if it received the same input X1 at a time point infinitely far removed from any previous input. The state V can be the membrane potential of a spiking neuron. This state determines the activation O(V) of the neuron, which can be, for example, an output spike in the case of a spiking neuron or an analog value in other cases. Thus, Equation (1) describes a possible implementation whereby the state of the neuron is the state V(X1, ∞) that the neuron would assume in the absence of elastic clustering or ST-STDP, but this state is altered by components that depend on the most recent output O(t - dt), the most recent input X0(t - dt), and the current input X1. Equation (3) is more general in that the correlation is not only with the most recent input but with all past inputs, each of which is weighted according to a time kernel v(τ). Equations (4) and (5) are ways of describing the elastic clustering algorithm. Equation (5) is derived by further generalizing Equation (3) to also extend the correlation to additional past outputs O rather than just the most recent one O(t - dt). The state of the neuron is given by the weights W and a short-term component F that multiplies the input. In Equation (5), O represents the output of the neuron at t - tau, X is the input at t - tau, and the time kernels v and f. Figure 4 The illustration of can be used to understand the correlation between the input X and the activation of the neuron, including, for example, being similar to the proximity metric discussed previously herein. Regarding the dynamic nature of the correlation over time, there are Figure 4 two correlations shown in, v(τ) and f(τ), where f(τ) is the relaxation dynamic and v(τ) is the correlation over time of the attraction of the most recent input to past inputs. Thus, the inputs can be clustered and sorted. It will be understood that Figure 4 the equations shown in are provided for illustrative purposes, and the inventive concept of the present disclosure is not limited to the examples shown and described.

[0046] Figure 5 shows a comparison 500 of the use of an elastic clustering algorithm with a spiking neural network (SNN) versus an elastic clustering algorithm with a convolutional neural network (CNN), a multi-layer neural network (MLN), or a recurrent neural network (RNN) consistent with an illustrative embodiment. AsFigure 5 As shown, while the CNN / MLP / RNN is supervised during training, and in this example, to recognize occluded images, it takes about 20,000 epochs to train, the ST-STDP (SNN) is not supervised during training and uses a single real-time epoch during its training. While the CNN / MLP / RNN is trained with static images and occluded videos, the ST-STDP (SNN) is trained only with static images.

[0047] Finally, while the CNN / MLP / RNN is implemented as an artificial neural network with clock-based operations, the ST-STDP (SNN) functions more closely to how an actual nervous system would operate in event-based operations. Those skilled in the art have recognized that the actual biological nervous system is superior to machine-based forms of recognition, especially those that utilize reasoning, and the ST-STDP (SNN) is closer to such types of pattern recognition than the CNN / MLP / RNN.

[0048] Figure 6 Figure 600 shows the percentage of correct frames of CNN, MLP, RNN, and SNN consistent with the illustrative embodiment. Referring to the discussion above regarding Figure 5 , it can be seen in Figure 6 that the SNN has better results in terms of the percentage of correct frames compared to the CNN / MLP / RNN.

[0049] Figure 7 Figure 700 shows the impact of short-term plasticity (STP) on the robustness to occlusion in the recognition of partial patterns consistent with the illustrative embodiment. The input starts with a row of increasing occlusion of the first images 707-1 to 707-n. Without STP 709, as the occlusion increases from 707-1 to 707-n, there is a decrease in image recognition, as shown by the decreasing output in "STP" below 707-n. However, as shown by the output of the line with STP 711, there is still a fairly robust number of outputs for recognizing images with increasing occlusion. The synapses 715 are shown in the bottom row.

[0050] Figure 8 Figure 800 is a graphical representation of the performance of the percentage of correct identification of handwritten digits of the CNN, MLP, and SNN networks of the modified National Institute of Standards and Technology (MNIST) database of handwritten digits and the occluded MNIST (OMNIST) database of handwritten digits consistent with the illustrative embodiment. As Figure 8 shown, the SNN network has superior performance in the recognition of occluded handwritten characters (OMNIST), with the correct percentage approaching the range of 90%, which is a significant increase through the use of CNN and MLP.

[0051] Aspects of the present disclosure provide computer operations and another technology (e.g., identifying objects / data in a sample that may be partially occluded or have a distorted or altered viewpoint) through the concepts discussed herein. Improvements to computer operations include a substantial reduction or elimination of the utilization of resources associated with performing multiple epochs, which can count into the thousands, to provide multiple views of an object in motion that would be provided during a conventional training phase for subsequent identification.

[0052] Example Process

[0053] Through Figure 1A the foregoing overview of an example architecture, it may be helpful to now consider a high-level discussion of an example process. To that end, Figure 9 An illustrative process related to an identification pattern consistent with an illustrative embodiment is presented. Process 900 is illustrated in a logic flow diagram as a collection of blocks that represent a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, these blocks represent computer-executable instructions that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions can include routines, programs, objects, components, data structures, etc. that perform functions or implement abstract data types. In each process, the order in which the operations are described is not intended to be construed as a limitation, and any number of the described blocks can be combined and / or executed in any order to implement the process.

[0054] At 905, a processor of a computing device configured to perform pattern recognition using an elastic clustering algorithm assigns one or more of an input data point sequence to a corresponding cluster based on a distance from a centroid k to the center of a corresponding cluster representing K clusters. The input sequence can be an image or other type of data. For example, a series of images of a cat over time includes dynamic motion.

[0055] At 910, the centroid k is shifted from a first position to a second position within each corresponding one of the K clusters over a predetermined time period, and the second position is determined to be closer to the input data point sequence assigned to each corresponding one of the K clusters than the first position.

[0056] At 915, the position of the centroid k in each corresponding one of the K clusters is relaxed from the second position toward an equilibrium point within the corresponding one of the K clusters. Regarding operation 915, the relaxation of the position of the centroid k from the second position toward the equilibrium point within each of the K clusters is according to an elastic stretch dF / dt, where F is a short-term component related to the distance from the centroid k of a particular cluster over time t.

[0057] Example Computer Platform

[0058] As discussed above, functions related to adapting the content of an electronic communication based on an intended recipient can be performed using one or more computing devices for data communication via a wireless or wired communication connection, as Figure 1A shown in, and in accordance with Figure 9 process 900 as well as Figure 3A and Figure 3B the implementation in

[0059] Figure 10 is a functional block diagram illustration of a computer hardware platform of a specially configured computing device that is consistent with an illustrative embodiment and can be used to operate in conjunction with an example of a block diagram of operations for resilient clustering as shown in Figure 1A . In particular, Figure 10 illustrates a network or host computer platform 1000, such as can be used to implement a suitably configured server.

[0060] The computer platform 1000 can include a central processing unit (CPU) 1004, a hard disk drive (HDD) 1006, random access memory (RAM) and / or read-only memory (ROM) 1008, a keyboard 1010, a mouse 1012, a display 1014, and a communication interface 1016, which are connected to a system bus 1002.

[0061] In one embodiment, the HDD 1006 has the ability to store programs that can perform various processes, such as a pattern recognition system 1025, which includes a resilient clustering module 1030 that performs a resilient clustering algorithm in the manner described herein. Additional modules can be configured to perform different functions. For example, there can be an interaction module 1035, which is operated to receive electronic data from various sources, including static and video images for pattern recognition, as discussed herein.

[0062] In one embodiment, the resilient clustering module 1030 is operable to determine the content of each electronic communication. To this end, the resilient clustering module 1030 can use various techniques, such as a combination of ST-STDP and long-term STDP, as discussed herein.

[0063] There can be a machine learning module 1040, which is operable to learn from historical data during a training phase to establish one or more machine learning models that can be used to identify patterns.

[0064] In one embodiment, a program such as Apache TM can be stored for operating the system as a web server. In one embodiment, the HDD 1006 can store an execution application that includes one or more library software modules, such as Java for implementing a JVM (Java TM Virtual Machine)TM Those modules of the runtime environment program.

[0065] Example cloud platform

[0066] As discussed above, the functionality related to managing the compliance of one or more client domains may include the cloud. It should be understood that although this disclosure includes a detailed description of cloud computing, the implementation of the teachings recited herein is not limited to a cloud computing environment. Instead, embodiments of this disclosure are capable of being implemented in conjunction with any other type of computing environment now known or later developed.

[0067] Cloud computing is a service delivery model for enabling convenient on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage devices, applications, virtual machines, and services), which can be rapidly provisioned and released with minimal management effort or interaction with the provider of the service. The cloud model can include at least five characteristics, at least three service models, and at least four deployment models.

[0068] The characteristics are as follows:

[0069] On-demand self-service: Cloud consumers can unilaterally and automatically provision computing capabilities such as server time and network storage as needed, without the need for human interaction with the provider of the service.

[0070] Wide area network access: The capabilities are available over a network and are accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptop computers, and PDAs).

[0071] Resource pooling: The provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated according to demand. There is a location-independent meaning in that consumers generally do not control or know the exact location of the resources provided, but are able to specify a location at a higher level of abstraction (e.g., country, state, or data center).

[0072] Rapid elasticity: In some cases, the ability to rapidly scale out and rapidly scale in can be provided quickly and elastically. For consumers, the capabilities available for provisioning generally appear to be unlimited and can be purchased in any quantity at any time.

[0073] Measured service: The cloud system automatically controls and optimizes resource use by leveraging metering capabilities at a certain level of abstraction suitable for the service type (e.g., storage, processing, bandwidth, and active user accounts). Resource use can be monitored, controlled, and reported, thus providing transparency for both the provider and the consumer of the utilized service.

[0074] The service models are as follows:

[0075] Software as a Service (SaaS): The ability provided to the consumer is to use the provider's applications running on a cloud infrastructure. The applications can be accessed from various client devices through a thin client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even the individual application capabilities, with the possible exception of limited user-specific application configuration settings.

[0076] Platform as a Service (PaaS): The ability provided to the consumer is to deploy the applications created or acquired by the consumer onto the cloud infrastructure, where the applications created or acquired by the consumer are created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but has control over the deployed applications and possibly the application hosting environment configuration.

[0077] Infrastructure as a Service (IaaS): The ability provided to the consumer is to provide processing, storage, networks, and other fundamental computing resources that the consumer can deploy and run any software on, where the software can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but has control over the operating systems, storage, deployed applications, and possibly limited control over selected networking components (e.g., host firewalls).

[0078] The deployment models are as follows:

[0079] Private cloud: The cloud infrastructure is operated only for an organization. It can be managed by the organization or a third party and can exist inside or outside the building.

[0080] Community cloud: The cloud infrastructure is shared by several organizations and supports a specific community with shared concerns (e.g., tasks, security requirements, policies, and compliance considerations). It can be managed by the organization or a third party and can exist inside or outside the premises.

[0081] Public cloud: The cloud infrastructure can be used by the general public or large industrial groups and is owned by the organization selling the cloud services.

[0082] Hybrid cloud: The cloud infrastructure is a combination of two or more clouds (private, community, or public), where the clouds remain unique entities but are bound together through standardized or proprietary technologies (e.g., cloud bursting for load balancing between clouds) that enable data and application portability.

[0083] The cloud computing environment is service-oriented, with a focus on statelessness, low coupling, modularity, and semantic interoperability. At the core of cloud computing is the infrastructure of a network consisting of interconnected nodes.

[0084] Figure 11 depicts a cloud computing environment consistent with an illustrative embodiment. Now refer to Figure 11 , which depicts an illustrative cloud computing environment 1100. As shown, cloud computing environment 1100 includes one or more cloud computing nodes 1110 with which local computing devices used by cloud consumers can communicate, such as personal digital assistants (PDAs) or cellular phones 1114A, desktop computers 1154B, laptop computers 1154C, and / or automotive computer systems 1154N. The nodes 1110 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as a private cloud, community cloud, public cloud, or hybrid cloud or combinations thereof as described above. This allows the cloud computing environment 1150 to provide infrastructure, platform, and / or software as a service, for which cloud consumers do not need to maintain resources on local computing devices. It should be understood that Figure 11 the types of computing devices 1154A-N shown in

[0085] Now refer to Figure 12 , which shows a set of functional abstraction layers provided by cloud computing environment 1150 ( Figure 11 ). It should be understood in advance that Figure 12 the components, layers, and functions shown in

[0086] Hardware and software layer 1260 includes hardware and software components. Examples of hardware components include: hosts 1261; servers 1262 based on RISC (Reduced Instruction Set Computer) architecture; servers 1263; blade servers 1264; storage devices 1265; and network and network components 1266. In some embodiments, software components include network application server software 1267 and database software 1268.

[0087] Virtualization layer 1270 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual servers 1271; virtual storage devices 1272; virtual networks 1273, including virtual private networks; virtual applications and operating systems 1274; and virtual clients 1275.

[0088] In one example, the management layer 1280 can provide the functions described below. Resource provisioning 1281 provides dynamic procurement of computing resources and other resources that are used to perform tasks within a cloud computing environment. Metering and pricing 1282 provides cost tracking when resources are utilized in a cloud computing environment, as well as accounting or invoicing for the consumption of these resources. In one example, these resources can include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection for data and other resources. The user portal 1283 provides access to the cloud computing environment for consumers and system administrators. Service level management 1284 provides cloud computing resource allocation and management such that the required service levels are met. Service level agreement (SLA) planning and fulfillment 1285 provides pre-arrangement and procurement of cloud computing resources, where future demands are anticipated according to the SLA.

[0089] The workload layer 1290 provides examples of functions that can utilize a cloud computing environment. Examples of workloads and functions that can be provided from this layer include: mapping and navigation 1291; software development and lifecycle management 1292; virtual classroom education delivery 1293; data analysis processing 1294; transaction processing 1295; and the elastic clustering algorithm 1296 as discussed herein.

[0090] Conclusion

[0091] The description of the various embodiments of the present teachings has been presented for purposes of illustration, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein are chosen to best explain the principles of the embodiments, the practical application, or the technical improvement present in the marketplace, or to enable other ordinary skill in the art to understand the embodiments disclosed herein.

[0092] For example, those of ordinary skill in the art should understand that Figure 1A the example shown in is one of many ways in which the elastic clustering algorithm of the present disclosure can be practiced. It should be understood that, for example, any variant of a neural network with ST-STDP can be in software on hardware platforms such as CPUs, GPUs, and AI accelerators with synaptic dynamics, and can be simulated by updating the analog learning of programmable synapses on neuromorphic hardware.

[0093] In addition, ST-STDP can be simulated in neuromorphic hardware with spike-timing-dependent dynamics, such as in analog CMOS or digital CMOS in combination with short-term synaptic dynamics. Further, the hardware simulation can include phase change memory (PCM), resistive memory, where the non-volatile memory element has volatile characteristics that match the form of short-term decay. Volatility can be used for the short-term component (f), and non-volatility can be used for long-term STDP weight storage (w). Additionally, the hardware simulation of ST-STDP can be used in 3-terminal memristors. For example, the post-synaptic neuron output (including but not limited to Figure 1A the circuit shown in

[0094] Although the best mode and / or other examples have been described above, it should be understood that various modifications can be made therein, and the subject matter disclosed herein can be implemented in various forms and examples, and the teachings can be applied to many applications, only some of which are described herein. The appended claims are intended to claim any and all applications, modifications, and variations that fall within the true scope of this teaching.

[0095] The components, steps, features, purposes, benefits, and advantages discussed herein are merely illustrative. None of them, or the discussions associated with them, are intended to limit the scope of protection. Although various advantages have been discussed herein, it will be understood that not all embodiments must include all advantages. Unless otherwise stated, all measurements, values, ratings, positions, sizes, dimensions, and other specifications set forth in this specification, including the appended claims, are approximate and not exact. They are intended to have a reasonable range consistent with the functions associated with them and the conventions of the fields to which they belong.

[0096] Many other embodiments are also contemplated. These embodiments include those having fewer, additional, and / or different components, steps, features, purposes, benefits, and advantages. These also include those in which the components and / or steps are arranged and / or ordered in different ways.

[0097] Aspects of the present disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

[0098] These computer-readable program instructions can be provided to a processor of a suitably configured computer, a special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions executed via the processor of the computer or other programmable data processing apparatus create a means for implementing the functions / acts specified in one or more boxes of the flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, a programmable data processing apparatus, and / or other devices to function in a certain manner, such that the computer-readable storage medium in which the instructions are stored comprises an article of manufacture including instructions that implement aspects of the functions / acts specified in one or more boxes of the flowchart and / or block diagram.

[0099] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other devices to produce a computer-implemented process, such that the instructions executed on the computer, other programmable apparatus, or other devices implement the functions / acts specified in one or more boxes of the flowchart and / or block diagram.

[0100] The call flows, flowcharts, and block diagrams in the figures herein illustrate the architectures, functions, and operations of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each box in the flowchart or block diagram may represent a module, segment, or portion of instructions, which includes one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions noted in the box may not occur in the order noted in the figures. For example, two boxes shown in succession may in fact be executed substantially concurrently, or the boxes may sometimes be executed in the reverse order, depending on the functions involved. It will also be noted that each box of the block diagrams and / or flowchart illustrations, and combinations of boxes in the block diagrams and / or flowchart illustrations, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or combinations of special purpose hardware and computer instructions.

[0101] While the foregoing has been described in connection with exemplary embodiments, it should be understood that the term "exemplary" is merely meant as an example, and not the best or optimal. Except as just stated above, whether or not stated or recited in the claims, what has been stated or illustrated is not intended or should not be construed as dedicating any component, step, feature, object, benefit, advantage, or equivalent to the public.

[0102] It should be understood that, unless a specific meaning is otherwise set forth herein, the terms and expressions used herein have the ordinary meanings consistent with those terms and expressions in their respective fields of investigation and research. Relational terms such as first and second may be used solely to distinguish one entity or action from another, without necessarily requiring or implying any actual such relationship or order between these entities or actions. The term "comprising," "including," or any other variation thereof is intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element preceded by "a" or "an" does not exclude the presence of additional identical elements in the process, method, article, or apparatus that includes the element.

[0103] A summary of the present disclosure is provided to enable the reader to quickly ascertain the nature of the technical disclosure. It should be understood that it is not intended to be used to interpret or limit the scope or meaning of the claims. Additionally, in the foregoing detailed description, it can be seen that for the sake of fluidity of the present disclosure, various features are grouped together in various embodiments. The disclosed method should not be construed as reflecting an intention that the claimed embodiments have more features than those expressly recited in each claim. On the contrary, as reflected by the appended claims, the subject matter of the present invention lies in less than all of the features of a single disclosed embodiment. Accordingly, the appended claims are hereby incorporated into the detailed description, where each claim stands on its own as a separately claimed subject matter.

Claims

1. A computer-implemented method of pattern recognition using an elastic clustering algorithm, the method comprising: assigning one or more input data points of a sequence of data points representing a data set, which includes image data, to a particular cluster based on a distance from a centroid k representing the center of the particular cluster among K clusters; in each of the K clusters: clustering the data points based on the position of the data points relative to the centroid k; shifting the centroid k from a first position to a second position within a predetermined time period, the second position being determined to be closer to the sequence of input data points assigned to the particular cluster than the first position, wherein the shift is based on the distance between the sequence of input data points and the centroid k; and relaxing the position of the centroid k from the second position towards an equilibrium point within the particular cluster, wherein relaxing the position of the centroid k from the second position towards the equilibrium point within the particular cluster occurs according to an elastic stretching factor.

2. The computer-implemented method according to claim 1, wherein the elastic stretching factor includes dF / dt, where F is a short-term component related to the distance from the centroid k of the particular cluster at time t.

3. The computer-implemented method according to claim 2, wherein: the relaxation time constant is set to match the time constant of the input data points, and dF / dt is set to 1 / R, where R is the rate of change of the input data points.

4. The computer-implemented method according to claim 1, wherein the shift of the centroid k from the first position to the second position is calculated using an amplitude proportional to the proximity P k (t) to the corresponding position of the input data point sequence assigned to the particular cluster at time t.

5. The computer-implemented method according to claim 1, wherein the speed of relaxing the position of the centroid k from the second position towards equilibrium is determined by the magnitude of dF.

6. The computer-implemented method according to claim 1, wherein the elastic clustering algorithm is implemented in a short-term pulse timing-dependent plasticity (ST-STDP) neural network.

7. The computer-implemented method according to claim 1, further comprising a machine learning model, the machine learning model being configured during a training phase to: analyze a training set including data sequences grouped within a time continuum; and label each of the sequences by a subject matter expert (SME), wherein the data sequences include dynamic data.

8. The computer-implemented method according to claim 1, further comprising: assigning a cluster assignment proximity P0(X,C) by calculating the proximity P0 of a spatio-temporal input X(0,…,t) to a centroid trajectory Ci(0,…,t); and updating the cluster by moving the centroid trajectory Ci to update a proximity metric P1.

9. The computer-implemented method according to claim 8, wherein the proximity metric P1 is equal to the proximity metric P0 scaled by a measurement of the intensity of the input.

10. The computer-implemented method according to claim 8, wherein the cluster assignment proximity P0(X,C) includes an Euclidean distance.

11. The computer-implemented method according to claim 8, wherein the cluster assignment proximity P0(X,C) includes an activation function of at least one of an integral input or a leakage current.

12. The computer-implemented method according to claim 8, wherein the cluster assignment proximity P0(X,C) includes an integral recursive input from the centroids of the K clusters.

13. A computer program product, the computer program product comprising readable instructions that, when executed, cause a computer device to perform a method of performing pattern recognition using an elastic clustering algorithm, the method comprising: assigning one or more input data points of a sequence of data points representing a data set, the data set including image data, to a particular cluster based on a distance from a centroid k representing the center of the particular cluster among K clusters; clustering the data points based on the position of the data points relative to the centroid k; shifting the centroid k in each of the K clusters from a first position to a second position within a predetermined time period, the second position being determined to be closer to the sequence of input data points assigned to the particular cluster among the K clusters than the first position; and relaxing the position of the centroid k in each of the K clusters from the second position toward an equilibrium point in the particular cluster among the K clusters.

14. The computer program product according to claim 13, wherein: the elastic clustering algorithm is implemented in a spiking-timing-dependent plasticity (ST-STDP) neural network, and relaxing the position of the centroid k from the second position toward the equilibrium point in the particular cluster among the K clusters occurs according to an elastic stretch dF / dt, where F is a short-term component related to the distance from the centroid k of the particular cluster at time t.

15. The computer program product according to claim 13, wherein the speed of relaxing the position of the centroid k from the second position toward equilibrium is determined by the magnitude of dF.

16. A computing device, comprising: a processor; a storage device coupled to the processor; a pattern recognition module that uses an elastic clustering algorithm stored in the storage device, wherein execution of the pattern recognition module by the processor configures the computing system to: assign one or more input data points of a sequence of data points representing a data set, the data set including image data, to a particular cluster based on a distance from a centroid k representing the center of the particular cluster among K clusters, and cluster the data points based on the position of the data points relative to the centroid k; shift the centroid from a first position to a second position within a predetermined time period, the second position being determined to be closer to the sequence of input data points assigned to the particular cluster among the K clusters than the first position; and relax the position of the centroid from the second position toward an equilibrium point in the particular cluster among the K clusters, wherein the position of the centroid k is relaxed from the second position toward the equilibrium point in the particular cluster among the K clusters according to an elastic stretch factor based on the distance between the centroid k of the particular cluster at time t.

17. The computing device according to claim 16, wherein the elastic stretching factor includes dF / dt, where F is the short-term component related to the distance from the centroid k of the specific cluster at the time t.

18. The computing device according to claim 16, wherein the shift of the centroid k in each of the K clusters to the second position is calculated using an amplitude proportional to the proximity P k (t) from the centroid k to the corresponding position of the sequence of input data points assigned to the particular cluster at the time t.

19. The computing device according to claim 16, further comprising: a circuit including an input node and an output node; at least one presynaptic neuron coupled to the input node; at least one postsynaptic neuron coupled to the output node; a first synapse configured to control the short-term component F(t) in combination with the learning function of a short-term spike timing-dependent plasticity (ST-STDP) module; a second synapse configured to control the weight W(t) in combination with the learning function of a long-term standard plasticity (LT-STDP) module; and an adder configured to receive the weight W(t) and the short-term component F(t), and output an efficacy to the postsynaptic neuron.

20. The computing device according to claim 16, further comprising a machine learning model, which is configured during a training phase to: analyze a training set including data sequences grouped within a time continuum; and label each of the data sequences in the data sequences by a subject matter expert (SME), wherein the data sequences include dynamic images.

Citation Information

Patent Citations

  • A globally optimized K-means clustering method and system based on sample density

    CN108985318A

  • Recurrent machine learning system for lifelong learning

    US10325223B1