The present disclosure is directed to methods and systems for using artificial intelligence to implement a cognitive information processing system. More specifically, in some embodiments, cognitive analytics are performed using representation learning and/or decision learning, for example to process encoding (such as metadata, data structure, code) generated from structured and unstructured data sources (such as image data, video data, table data, text data, and code). Furthermore, in some embodiments, cognitive information processing is performed to generate encoding from representation learning (e.g., using symbols or latent representations of data). Moreover, in some embodiments, cognitive information processing is performed to generate metadata from decision learning (e.g., including ranking, anomaly, prediction, association, recognition, and/or classification). One or more embodiments also include a method and system for cognitive information retrieval using the stored metadata generated from the representation learning and decision learning associated with source data and metadata. Alternatively, or in addition, the method and system can be configured as a recommendation system by implementing one or more embodiments of the disclosed methods.
Many currently available surveillance and monitoring systems (e.g., Internet of Things (IoT), information technology security, video surveillance systems, supervisory control and data acquisition (SCADA) systems, and the like) are trained to observe specific activities and alert an administrator after detecting those activities, for example based on predefined rules.
Methods disclosed herein include data analysis and self-supervised machine learning based on an acquired encoded pattern (e.g., metadata), in real-time and/or in an offline mode, using a single data source or multiple data sources. In some embodiments, a cognitive information processing system (“CIPS”) performs learning, based on associating with structured data and/or un-structured data sources, such as vector data, matrix data, image data, video data, and text, to generate one or more data representations for use in decision learning. A cognitive engine (also referred to herein as a cognitive analytics system (CAS)) compares the data representation(s) to learned patterns stored in memory, for example as weights. The memory can include semantic memory, episodic memory, and/or one or more longer-term memories built using artificial intelligence (e.g., neural network, statistical learning, etc.) that are used for associating patterns (e.g., for one or more specified workspaces). Data can be transformed into representations, and condition(s) may be generated based on new data received from a behavioral network. As used herein, a “condition” is a true/false expression based on one or more activities in a workspace, and can be used to trigger the selection of one or more codelets. Examples of conditions include, but are not limited to: fetching data from the memory, decoding data for instruction/condition, executing instruction/condition with data for functions such as similarity measures or pattern associations. Codelets associated with the condition(s) (e.g., in accordance with one or more rule sets) can then be executed, as part of cognitive analytics, to perform pattern association with stored weights and/or inferences. A codelet may include code for evaluating an expression (e.g., f(x), f(g(x)), f(g(h(x))), where f, g, and h are functions). As an example, when a first condition is evaluated with a first codelet (e.g., codelet1=f1(g1(x1)) and a second condition is evaluated with a second codelet (e.g., codelet2=f2(g2(x2)), the evaluations can trigger a further condition (e.g., codelet3=h(codelet1+codelet2)), where the “x” values can be values retrieved from memory e.g., semantic memory, long term memory, etc.). In the foregoing example, codelet1, codelet2, and codelet3 may be the same or may be different from one another, and codelet can be stateful and/or stateless, depending on the configuration.
In some embodiments, a computer-implemented method for implementing a CIPS for processing data is presented. The method includes associating representations of at least one condition to one or more output features, the representations being generated by a representation engine. The method also includes determining whether the at least one condition triggers execution of at least one node from multiple nodes. Each node from the multiple nodes represents a subtask of at least one task from multiple tasks. Each task in the multiple tasks includes an ordered set of subtasks. In addition, the method includes iteratively performing, for each node from the multiple nodes whose execution is triggered: executing that node, including performing the subtasks represented by that node, and determining whether executing that node generates an output. If executing that node does generate an output, the method includes updating the linguistic engine based on the output, generating at least one additional condition based on the output, and determining whether the at least one additional condition triggers execution of at least a second node from the multiple nodes.
In some embodiments, the representation engine tokenizes input data and generates an graph (e.g., an undirected graph), using self-supervised learning at runtime. Statistically significant features are correlated by incrementally combining 1-feature symbols, 2-feature symbols, 3-feature symbols, and/or n-feature symbols, via a learning process, such as representation learning (e.g., using a. symbolic approach), that generates features for use as inputs to a cognitive engine.
In some embodiments, the representation engine generates features by decoding the machine learning model correlating the input and the features, the decoding being performed utilizing an empirical model (e.g., a neural network) generated based on supervised learning such as performing one or more encoding stages and/or decoding stages via a plurality of autoencoders (also referred to herein as a “connectionist learning” approach to generating representations).
In some embodiments, the cognitive engine generates one or more sub-decisions and/or decisions, such as ordering, ranking, classification, and prediction, based on the learned patterns stored in memory, for example as weights, and by evaluating any associated conditions triggering node execution.
In some embodiments, the cognitive engine determines one or more similarity scores for input data, and performs anomaly detection on the input data based on the similarity scores and/or weights retrieved from the representation engine's memory.
In some embodiments, the cognitive engine also generates metadata associated with the input data source, and stores the metadata in a structured database for cognitive information retrieval for descriptive analytics, diagnostic analytics, predictive analytics, and/or prescriptive analytics with query lookup.
In some embodiments, the representation engine output(s) and representations of the associated input data source(s) are stored in a structured database for cognitive information retrieval for descriptive analytics, diagnostic analytics, predictive analytics, and/or prescriptive analytics with query lookup.
In some embodiments, a computer-readable medium includes instructions to cause a processor to implement one or more embodiments of the disclosed method. Alternatively or in addition, a system is configured to implement one or more embodiments of the disclosed methods.
In some embodiments, a computer-implemented method includes receiving input data from a plurality of sensors (e.g., video, motion sensors, light sensors, temperature sensors, pressure sensors, vibration sensors, acoustic sensors, door sensors, infrared sensors, traffic sensors, radio-frequency identification (RFID) sensors, virtual sensors (e.g., buttons, social media hashtags, etc.), Internet of Things (IoT) sensors (which can include one of, or any combination, of the foregoing sensors)), performing representation learning, and generating a decision learning output. As used herein, “IoT sensor” refers to a sensor that is embedded with a physical object, the physical object having a processor and/or software, and/or to a sensor that is virtual (e.g., buttons, social media hashtags, etc.). Performing the representation learning includes associating the input data with at least one latent feature, and grouping the at least one latent feature into at least one feature group. As used herein, a “latent feature” refers to feature data that has been transformed, or example to have a fuzzy value or meaning (e.g., cold, hot, high, low, old, new, etc.). Latent features can include categories and/r activities. At least one latent symbol is assigned to the at least one feature group, and the at least one latent symbol is grouped into at least one symbol group. At least one latent lexicon is assigned to the at least one symbol group, to generate a representation learning output. The generating the decision learning output is based on at least one of: the at least one latent symbol or the at least one latent lexicon. Data associated with a plurality of sensors (e.g., including meta data or/and output data) is compared to the representation learning output and the decision learning output, and the representation learning output is associated with and/or compared to the decision learning output. At least one of indexing, ranking, or sorting of the data associated with the plurality of sensors is performed, based on at least one of the representation learning output or the decision learning output, to produce modified data or code. A representation of at least one condition from a plurality of conditions is generated on based on the representation learning output, and a determination is made as to whether the at least one condition triggers execution of at least one node from a plurality of nodes, where each node from the plurality of nodes represents a subtask of at least one task from a plurality of tasks associated with the plurality of conditions, and each task from the plurality of tasks includes a plurality of subtasks in an order. First metadata and/or output data associated with the input data (e.g., the representation learning output and/or the decision learning output)) and a representation of a sensor from the plurality of sensors that is associated with the first metadata and/or output data, along with the and the modified data, are stored in a structured, queryable database, and second metadata and/or output of a cognitive engine and a representation of a sensor from the plurality of sensors that is associated with the at least one condition are stored in the structured, queryable database.
The drawings are primarily for illustrative purposes and are not intended to limit the scope of the subject matter described herein. The drawings are not necessarily to scale; in some instances, various aspects of the subject matter disclosed herein may be shown exaggerated or enlarged in the drawings to facilitate an understanding of different features. In the drawings, like reference characters generally refer to like features (e.g., functionally similar and/or structurally similar elements).
Known rule-based data-monitoring systems typically operate based on advance knowledge of what actions and/or objects to observe. This advance knowledge may be hard-coded into underlying applications, or the system may train itself based on user-provided definitions or rules. Unless the underlying code includes descriptions of rules, activities, behaviors, or cognitive responses for generating a special event notification for a given observation, the typical known rule-based data-monitoring system cannot recognize such behaviors. In other words, unless a given behavior conforms to a predefined rule, occurrences of that behavior can go undetected by the rule-based data-monitoring system. Even if the system trains itself to identify the behavior in some respects, the system is still configured to apply predefined rules to complete the identification. A rules-only-based approach is therefore too rigid for many modern applications, particularly for those where adaptability is desired.
Known behavior-based systems are less rigid than rule-based systems, however, given a behavior-based system that conforms to predefined behaviors, an occurrence of a new behavior can go undetected. For the behavior-based system to learn the behavior, learning behavior would need to be defined in advance.
In view of the foregoing challenges, many rule based and behavior-based approaches to data monitoring are not practical for real world applications and cannot adapt in real time to changing environments when specific rules and/or behaviors have not been defined in advance. Moreover, such systems are difficult to scale, lack robust analytics, and are inflexible in that they cannot recognize rules or behaviors that are novel.
Embodiments set forth herein include a method and an information processing system that overcome the shortcomings of known approaches noted above by analyzing and learning behavior based on acquired/input data. In some embodiments, a representation engine (such as an linguistic engine or other encoder) encodes input data into one or more compact representations for use in higher-order (e.g., cognitive analytics) processing, and a cognitive engine performs decision making based on the compact representation(s). The representation encoding can performed using a neural network, latent semantics, or any other suitable encoder. The representation engine and the cognitive engine can operate sequentially, in parallel, or overlapping in time.
In some embodiments, metadata is identified, encoded and/or generated (e.g., by the representation engine) based on input data from one or more data sources. The one or more data sources can include (but are not limited to) vectors, matrices, tensors, images, video, text, metadata from one or more application drivers (e.g., image metadata, video metadata, or text metadata), metadata from the cognitive information processing system and/or latent semantics. A representation engine can, for example, apply a machine learning process/method (e.g., a self-supervised machine learning method) to the input data to identify the metadata and/or to produce one or more representations (e.g., linguistic representations) of the input data, the representation(s) suitable for subsequent decision learning performed by the cognitive engine. Optionally, the machine learning process/method also outputs one or more conditions (or “rules”) applicable to subsequent codelet selection when criteria of the output are matched with the one or more conditions (e.g., store to memory, retrieve from memory, thresholding, ranking). The machine learning process can include comparing the metadata to learned patterns (e.g., represented as weights) stored in one or more of: semantic memory, episodic memory, longer-term memories, etc. The machine learning process can include the use of a linguistic engine.
In some embodiments, a system includes a representation engine with an encoder and a cognitive engine, and the system is modular in that each of the encoder and the cognitive engine can be independently substituted with different code. For example, a different encoder (e.g., an image detection/classification/segmentation algorithm or software) can be included and/or combined with a representation engine, and/or a convolutional neural network (“CNN”) can be included and/or combined with a given first cognitive engine. The combination can be performed prior to or during data monitoring activities. As such, a variety of unique combinations of encoders and cognitive engines can be implemented.
In some embodiments, the cognitive engine performs linear or nonlinear classification of data output from the representation engine. For example, decision nodes (e.g., neurons) of the cognitive engine can process data received from the encoder, for example by firing or not firing (in the case of neurons), to perform anomaly detection, generation of video summaries, indexing of metadata from representation learning associated with one or more sources for a query search (i.e., sources storing data to be queried), indexing metadata from decision learning associated with one or more sources for query search, analysis of semantic memory, and/or deconstruction of a decision-making process. Deconstruction of a decision-making process can include, for example, ranking with what has been defined as “normal”/expected. Alternatively or in addition, deconstruction of a decision-making process can include analyzing input data and associated CNN classifications to identify one or more mechanisms involved in the CNN classification process, for example by associating features of the CNN (such as convolutional kernels or class activation maps) with associated cognitive metadata from representation learning and metadata from decision learning, by correlating one or more features for descriptive analytics.
In some embodiments, a computer-implemented method for implementing a cognitive information processing system to process data includes building a representation engine by generating one or more representations of input data (e.g., encoded versions of the input data stream, which may include metadata) received from a plurality of sensors. The representations are generated by clustering (e.g., sequentially) the input data to produce clusters, and associating the clusters to associated symbols “Q.” Each symbol Q can include a one-symbol word or a letter. The symbols Q are then grouped into one-dimensional, two-dimensional, or three-dimensional groupings of variable size, each grouping having a dimension varying from 1 to N, where N is associated with the number of features of the input data. Each grouping of symbols Q is associated with a symbol R. The symbols R are then grouped into groupings of variable size, each grouping having a dimension varying from N to N×M, where M is associated with the number of R symbols. Each grouping of symbols R is associated with a symbol S.
The method also includes building a cognitive engine by generating a representation of at least one condition based on output data (e.g., at least one of the symbols Q, R, or S) generated by the representation engine, and determining whether the at least one condition triggers execution of at least one node from a plurality of nodes. Each node from the plurality of nodes represents a subtask of at least one task from a plurality of tasks, and each task from the plurality of tasks includes an ordered plurality of subtasks. The output of the representation engine and/or of the cognitive engine is stored into a structure database, with a representation of one or more associated input data sources (e.g., sensors from a plurality of sensors), for subsequent query lookup for analysis.
Subsequently, at time 2, a second set of input data is supplied to this ART network. Illustratively, the inputs map to the cluster 350, within the limits defined by the variance and choice variable specified for this ART network. Accordingly, the cluster 350 is trained using the set of inputs supplied at time 2, resulting in a cluster 355, at a slightly different position, i.e., a new mean is generated. Conversely, at time 3, a third set of input data is parsed to this ART network. However, the input data results in the creation of a new cluster 360.
At time 4, a set of input data is supplied to the input layer that results in a cluster 365 overlapping with cluster 355. In such a case, as additional input data sets are supplied to this ART network, clusters 355 and 365 may drift closer together—to the point that they overlap by an amount greater than a target percentage of their areas. A target percentage of fifty percent has proven to be effective in some cases. When two clusters overlap by an amount that exceeds the target percentage, the overlapping clusters may be merged. Doing so may help keep the number of distinct clusters managed by the ART network and evaluated by the cluster analysis tool manageable. The results of the merger are shown at time 5, where cluster 370 has an elliptical shape derived form clusters 355 and 365. For example, as noted above, each cluster may have a mean and a variance in each of the X and Y directions. In such a case the mean and variance from cluster 355 and cluster 365 (at time 4) may be used to create a merged cluster 370 shown at time 5.
In one embodiment, the Feature Analysis Component (FAC) 316 retrieves the normalized vectors of input data from the sensory memory component 135 and stages the input data in a pipeline architecture (e.g., provided by a graphics processing unit (GPU)). The classification analyzer component 317 evaluates the normalized data organized by the FAC component 316 and maps the data on a neural network. In one embodiment, the neural network may be a combination of a self-organizing map (SOM) and an adaptive resonance theory (ART) network.
The symbolic analysis component 318 clusters the data streams based on values occurring repeatedly in association with one another. Further, the symbolic analysis component 318 generates a set of probabilistic clusters for each input feature. For example, assuming that the input data corresponds to video data, features may include location, velocity, acceleration etc. The symbolic analysis component 318 may generate separate sets of probabilistic clusters for each of these features. Feature symbols (e.g., alpha symbols) are generated that correspond to each statistically relevant probabilistic cluster. The symbolic analysis component 318 learns alpha symbols (i.e., builds an alphabet of alphas) based on the probabilistic clustered input data. That is, the symbolic analysis component 318 generates a set of probabilistic clusters for each input feature. These clusters are tokenized into feature symbols (e.g., alphas). Thus, the symbolic analysis component 318 builds alphabet of alphas based on the probabilistic clustered input data. In one embodiment, the symbolic analysis component 318 may determine a statistical distribution (e.g., mean, variance, and standard deviation) of data in each probabilistic cluster and update the probabilistic clusters as more data is received. The symbolic analysis component 318 may further assign a set of alpha symbols to probabilistic clusters having statistical significance. Each probabilistic cluster may be associated with a statistical significance score that increases as more data that maps to the probabilistic cluster is received. The symbolic analysis component 318 may assign alpha symbols to probabilistic clusters whose statistical significance score exceeds a threshold. Further, each probabilistic cluster may have an associated family of alpha symbols defined by the mean and standard deviation. In some instances, each probabilistic cluster may have a collection of observations and the threshold may be a number relating to such observations. In addition, the symbolic analysis component 318 may decay the statistical significance of a probabilistic cluster as the symbolic analysis component 318 observes data mapping to the probabilistic cluster less often over time. The symbolic analysis component 318 “learns on-line” and may identify new alpha symbols as new probabilistic clusters reach statistical significance and/or merge similar observations to a more generalized cluster, which is then assigned a new alpha symbol. An alpha symbol may generally be described as a letter of an alphabet used to create betas used in the neuro-linguistic analysis of the input data. That is, a set of alphas may describe an alphabet. Alpha(s) can be used to create beta(s) and may be generally described as building blocks of beta(s). An alpha symbol provides a “fuzzy” representation of the data belonging to a given probabilistic cluster.
In one embodiment, the symbolic analysis component 318 may also evaluate an unusualness score for each alpha symbol that is assigned to a probabilistic cluster. The unusualness score may be based on the frequency of a given alpha symbol relative to other alpha symbols observed in the input data stream, over time. In some embodiments, the unusualness score indicates how infrequently a given alpha symbol has occurred relative to past observations. The unusualness score may increase or decrease over time as the neuro-linguistic module 315 receives additional data.
Once a probabilistic cluster has reached statistical significance, the symbolic analysis component 318 sends corresponding alpha symbols to the lexical analyzer component 319 in response to data that maps to that probabilistic cluster. Said another way, once alpha symbol(s) are mapped to a probabilistic cluster that has reached statistical significance, the symbolic analysis component 318 sends the corresponding alpha symbol(s) to the lexical analyzer component 319. In some instances, if a probabilistic cluster does not reach statistical significance the symbolic analysis component 318 may send an unknown symbol to the lexical analyzer component 319. In some embodiments, the symbolic analysis component 318 limits alpha symbols that can be sent to the lexical component 319 to the most statistically significant probabilistic clusters. Note, over time, the most frequently observed alpha symbols may change as probabilistic clusters increase (or decrease) in statistical significance. As such, it is possible for a given probabilistic cluster to lose statistical significance. Over time, thresholds for statistical significance can also increase, and thus, if the amount of observed data mapping to a given probabilistic cluster fails to meet a threshold, then the probabilistic cluster loses statistical significance.
Given the stream of the alpha symbols (e.g., base symbols) and other data such as timestamp data, unusualness scores, and statistical data (e.g., a representation of the probabilistic cluster associated with a given alpha symbol) received from the symbolic analysis component 318, the lexical analyzer component 319 builds a dictionary that includes combinations of co-occurring alpha symbols, e.g., betas, from the alpha symbols transmitted by the symbolic analysis component 318. That is, the lexical analyzer component 319 identifies repeating co-occurrences of alphas and features output from the symbolic analysis component 318 and calculates frequencies of the co-occurrences occurring throughout the alpha symbol stream. The combinations of alpha symbols may represent a particular activity, event, etc. In some embodiments, the lexical analyzer component 319 may limit the length of betas in the dictionary to allow the lexical analyzer component 319 to identify a number of possible combinations without adversely affecting the performance of the neuro-linguistic cognitive-based AI data analytics system. In practice, limiting a beta to a maximum of five or six alpha symbols has shown to be effective. Further, the lexical analyzer component 319 may use level-based learning models to analyze alpha symbol combinations and learn betas. The lexical analyzer component 319 may learn betas, up through the maximum alpha symbol combination length, at incremental levels, i.e., where one-alpha betas are learned at a first level, two-alpha betas are learned at a second level, and so on.
Like the symbolic analysis component 318, the lexical analyzer component 319 is adaptive. That is, the lexical analyzer component 319 may learn and generate betas in the dictionary over time. The lexical analyzer component 319 may also reinforce or decay the statistical significance of betas in the dictionary as the lexical analyzer component 319 receives subsequent streams of alpha symbols over time. Further, the lexical analyzer component 319 may determine an unusualness score for each beta based on how frequently the beta recurs in the data. The unusualness score may increase or decrease over time as the neuro-linguistic module 315 processes additional data. In some embodiments, the unusualness score indicates how infrequently a particular beta has occurred relative to past observations.
In addition, as observations (i.e., alpha symbols) are passed to the lexical analyzer component 319 and identified as a being part of a given beta, the lexical analyzer component 319 may eventually determine that the beta model has matured. Once a beta model has matured, the lexical analyzer component 319 may output observations of those betas in the model to the SXAC component 320. In some embodiments, the lexical analyzer component 319 limits betas sent to the SXAC component 320 to the most statistically relevant betas. In practice, for each single sample, outputting occurrences of the top thirty-two most statistically relevant betas has shown to be effective (while the most frequently occurring betas stored in the models can amount to thousands of betas). Note, over time, the most frequently observed betas may change as the observations of incoming alphas change in frequency (or as new alphas emerge by the clustering of input data by the symbolic analysis component 318).
The SXAC component 320 builds a feature syntax of gammas from the betas output by the lexical analyzer component 319 on the sequence of betas output from the lexical analyzer component 319. In one embodiment, the SXAC component 320 receives the betas identified by the lexical analyzer component 319 and generates a connected graph, where the nodes of the graph represent the betas, and the edges represent a relationship between the betas. The SXAC component 320 may reinforce or decay the links based on the frequency that the betas are connected with one another in a data stream. Thus, the SXAC component 320 can build an un-directed graph, i.e., feature syntax of gammas, based on co-occurrences of betas. In some embodiments, the SXAC component 320 may use a non-graph based approach to build gammas by stacking betas one after another (i.e., iteratively using the lexical analyzer component 319) to construct a layer. Similar to the symbolic analysis component 318 and the lexical analyzer component 319, the SXAC component 320 may also determine an unusualness score for each identified gamma based on how frequently the gamma recurs in the linguistic data. The unusualness score may increase or decrease over time as the neuro-linguistic module 315 processes additional data. Similar to the lexical analyzer component 319, the SXAC component 320 may also limit the length of a given gamma to allow the SXAC component 320 to be able to identify a number of possible combinations without adversely affecting the performance of the neuro-linguistic cognitive-based AI data analytics system.
As discussed, the SXAC component 320 identifies feature syntax gammas over observations of betas output from the lexical analyzer component 319. As observations of betas accumulate, the SXAC component 320 may determine that a given gamma has matured, i.e., a gamma has reached a measure of statistical relevance. The SXAC component 320 then outputs observations of that gamma to the cognitive module 325. The SXAC component 320 sends data that includes a stream of the alpha symbols, betas, gammas, timestamp data, unusualness scores, and statistical calculations to the cognitive module 325. That is, after maturing, the alphas, betas, and gammas generated by the neuro-linguistic module 315 form a semantic memory 330 of the input data that the neuro-linguistic cognitive-based AI data analytics system uses to compare subsequent observations of alphas, betas, and gammas against the mature semantic memory. The neuro-linguistic module 315 may update the linguistic model as new data is received. Further, when the neuro-linguistic module 315 receives subsequently normalized data, the module 315 can output an ordered stream of alpha symbols, betas, and gammas, all of which can be compared to the semantic memory 330 that has been generated to identify interesting patterns or detect deviations occurring in the stream of input data.
The context analyzer component 321 builds a higher order feature context from collections of gamma elements received from the syntax analyzer component. In one embodiment, analyzing trajectory is one of the core functions of the context analyzer component. Analyzing trajectory includes learning and/or inferring based on a time sequence of alphas, betas, or gammas. This builds a higher level of models by incorporating the temporal patterns and dependency among features or combination of features. A non-limiting example of trajectory analysis includes observing a video scene including cars and people. In particular, observing various tracks of cars and tracks of people in the video scene to identify clustering patterns of these tracks.
Thus, the neuro-linguistic module 315 generates a lexicon, i.e., builds a feature dictionary, of observed combinations of feature symbols/alphas (i.e., feature words/betas), based on a statistical distribution of feature symbols identified in the input data. Specifically, the neuro-linguistic module 315 may identify patterns of feature symbols associated with the input data at different frequencies of occurrence. Further, the neuro-linguistic module 315 can identify statistically relevant combinations of feature symbols at varying lengths (e.g., from one-symbol to collections of multiple symbol feature word length). The neuro-linguistic module 315 may include such statistically relevant combinations of feature symbols in a feature dictionary used to identify feature syntax.
The cognitive module 325 performs learning and analysis on the linguistic content (i.e., the identified alpha symbols, betas, gammas) produced by the neuro-linguistic module 315 by comparing new data to learned patterns in the models kept in memory and then estimating the unusualness of the new data. As shown, the cognitive module 325 includes a short-term memory 327, a semantic memory 330, a model repository 332, and an inference network 335. The semantic memory 330 stores a stable neuro-linguistic model generated by the neuro-linguistic module 315, i.e., stable copies from the symbolic analysis component 318, lexical analyzer component 319, and the SXAC component 320. The stable neuro-linguistic model may be similar to, or the same as, the neuro-linguistic module 315, but is updated less frequently, and changes less frequently. The inference network 335 may compare the stored copies of the models with each other and with the current models to detect changes over time, as well as create, use, and update current and stored models in the short-term memory 327, semantic memory 330, and model repository 332 to generate special event notifications when unusual or anomalous behavior is observed, as discussed in greater detail below.
In one embodiment, the short-term memory 327 may be implemented in one or more GPU(s) (e.g., in Compute Unified Device Architecture (“CUDA”)), and the short-term memory 327 may be a hierarchical key-value data store. In contrast, the semantic memory 330 may be implemented in computer memory and include a sparse distributed memory for storing models attaining statistical confidence thresholds from the short-term memory 327. The model repository 332 is a longer-term data store that stores models attaining statistical confidence thresholds from the semantic memory 330, and the model repository 332 may be implemented in the computer memory (e.g., a disk drive or a solid-state device). It should be understood that models stored in the semantic memory 330 and the model repository 332 may be generalizations including encoded data that is more compact than raw observational data. For example, the semantic memory 330 may be an episodic memory that stores linguistic observations related to a particular episode in the immediate past and encodes specific details, such as the “what” and the “when” of a particular event. The model repository 332 may instead store generalizations of the linguistic data with particular episodic details stripped away.
In another embodiment, a database (e.g., a Mongo database) distinct from the model repository 332 may also be used to store copies of models attaining statistical confidence thresholds. In yet another embodiment, the inference network 335 may have direct access to only the short-term memory 327, and data that is needed from longer-term memories such as the semantic memory 330 may be copied to the short-term memory 327 for use by the inference network 335.
The CPU 420 retrieves and executes programming instructions stored in the memory 423 as well as stores and retrieves application data residing in the storage 424. In some embodiments, the GPU 421 implements a CUDA. Further, the GPU 421 is configured to provide general purpose processing using the parallel throughput architecture of the GPU 421 to more efficiently retrieve and execute programming instructions stored in the memory 423 and also to store and retrieve application data residing in the storage 424. The parallel throughput architecture provides thousands of cores for processing the application and input data. As a result, the GPU 421 leverages the thousands of cores to perform read and write operations in a massively parallel fashion. Taking advantage of the parallel computing elements of the GPU 421 allows the cognitive AI system 400 to better process large amounts of incoming data (e.g., input from a video and/or audio source). As a result, the cognitive AI system 400 may scale with relatively less difficulty. In some embodiments, component 423 can be mapped and/or stored in component GPU 421, ASIC 422, and/or FPGA 425 for higher performance and throughput for cognitive information processing.
Note that
Data can be exchanged between each adaptor from the multiple adaptors 540 and the cognitive OS 550. For example, one or more adaptors from the multiple adaptors 540 can send data from one or more drivers of the multiple applications 530 to the cognitive OS 550. The representation learning engine 550C and the cognitive engine 550D are operably coupled to one another within the learning engine and can also exchange data. The application server 510 (or, each of the sources 520, applications 530, adaptors 540, and the cognitive OS 550, individually) is operably coupled to a high performance computing environment 560 (e.g., a wireless or wired network of compute devices).
Although shown and described as including a video data source 520A, in other embodiments the data sources 520 of the cognitive AI architecture 500 do not include a video data source 520A. Alternatively or in addition, in some embodiments, the data sources 520 do not include a source of time series data.
Although shown and described as including a representation learning engine 550C, in other embodiments the cognitive OS 550 does not include a representation learning engine 550C, and instead includes a different implementation of representation learning (e.g., using an AI symbolic approach and/or an AI connectionist approach). In an AI symbolic approach, strings of characters that represent real-world entities or concepts are processed, and symbols are arranged in structures such as lists, hierarchies, or networks showing how the symbols relate to each other. In an AI connectionist approach, data is sent from one end point to another as previously configured.
The cognitive information processing system 600B of
The set of physical layers 2404 includes at least one associated media access control (MAC) address 2404A, at least one associated internet protocol (IP) address 2404B, at least one associated geographic location 2404C, and at least one network protocol 2404D. The server OS/Cognitive OS 2406 includes a central processing unit (CPU) 2406A, a memory 2406B, a disk 2406C, at least one associated network 2406D (e.g., a wired communications network and/or a wireless communications network), a cognitive OS 2406E, and a data driver 2406F. The server OS/Cognitive OS 2406 can be configured to analyze the CPU 2406A (e.g., performance thereof), the memory 2406B, the disk 2406C, the at least one associated network 2406D, the cognitive OS 2406E, and/or the data driver 2406F. Alternatively or in addition, the server OS/Cognitive OS 2406 can be configured to detect a health status of hardware such as the CPU 2406A (e.g., performance thereof), the memory 2406B, the disk 2406C, hardware used to access the at least one associated network 2406D, the cognitive OS 2406E, and/or the data driver 2406F. The Server OS can also be configured to monitor the physical layers 2404, which include but are not limited to MAC address 2404A, IP address 2040B, geographic location 2404C, and network protocol 2404D.
The set of physical layers 2404 can be configured to perform Transmission Control Protocol/Internet Protocol (TCP/IP) and/or Open Systems Interconnection model (OSI model) functions. For example, the set of physical layers 2404 can analyze network topology of clients, servers and/or host compute devices within a computing environment. Alternatively or in addition, the set of physical layers 2404 can function as a gateway or network backbone.
The server application layer 2408 includes transaction data 2408A (e.g., received from a blockchain network), account data 2408B (e.g., received from the blockchain network), token data 2408C (e.g., received from the blockchain network), and an API 2408D. In some implementations, the API 2408D is configured to send/receive information such that the sender/receiver can perform one or more of: analyze host application activities, analyze token metadata, analyze transactions, analyze API activity, analyze utilization of network resources, etc. The server OS/Cognitive OS can process data received via the API 2408D and from the blockchain, from a common (i.e., the same) host/IP address on different ports. Alternatively or in addition, the server OS/Cognitive OS can process data received via the API 2408D and from the blockchain, from different hosts/IP addresses on a common (i.e., the same) port or on multiple different ports. Example applications of the server application layer 2408 include blockchain transactions, server applications, Software as a service (SaaS), and platform as a service (PaaS). Alternatively or in addition, the server application layer 2408 can be configured to perform the Meta Data 2402B, the Data Driver 2402C, and Custom 2402D.
Transitioning from
In some implementations, the representation learning 2604 is performed using an eutoencoder.
In some implementations, the associating the input data with at least one latent feature, at 2604A, is performed using a self-supervised machine learning method.
In some implementations, each condition from the at least one condition is associated with a cognitive analytics codelet.
In some implementations, the representation learning output includes a learned pattern.
In some embodiments, a system for implementing a cognitive information processing system for association, classification, and recognition includes a processor and a memory. The memory stores instructions that, when executed by a processor, cause the processor to receive input data from a plurality of sensors, and to perform representation learning. The representation learning includes associating the input data with at least one latent feature, grouping the at least one latent feature into at least one feature group, assigning at least one latent symbol to the at least one feature group, grouping the at least one latent symbol into at least one symbol group, and assigning at least one latent lexicon to the at least one symbol group, to generate a representation learning output. The memory also stores instructions that, when executed by a processor, cause the processor to generate a decision learning output based on at least one of: the at least one latent symbol or the at least one latent lexicon. The memory also stores instructions that, when executed by a processor, cause the processor to compare at least one of: (1) data associated with the plurality of sensors to the representation learning output, (2) data associated with the plurality of sensors to the decision learning output, or (3) the representation learning output to the decision learning output. The memory also stores instructions that, when executed by a processor, cause the processor to perform at least one of indexing, ranking, or sorting of the data associated with the plurality of sensors, based on at least one of the representation learning output or the decision learning output, to produce modified data. The memory also stores instructions that, when executed by a processor, cause the processor to generate a representation of at least one condition from a plurality of conditions based on the representation learning output, and determine whether the at least one condition triggers execution of at least one node from a plurality of nodes. Each node from the plurality of nodes can represent, for example, a subtask of at least one task from a plurality of tasks associated with the plurality of conditions, each task from the plurality of tasks including a plurality of subtasks in an order. The memory also stores instructions that, when executed by a processor, cause the processor to store the representation learning output and the modified data in a structured, queryable database, and to store at least one of metadata associated with the input data or an output of a cognitive engine and a representation of an input data source associated with the at least one condition in the structured, queryable database.
In some implementations, the cognitive engine is configured to convert unstructured data into structured data.
In some implementations, the input data includes unstructured data and structured data.
In some implementations, each node from the plurality of nodes is stored in the memory as part of an undirected graph.
In some implementations, the plurality of sensors includes at least one Internet of Things (IoT) sensor.
In some implementations, the representation learning output includes a learned pattern.
In some implementations, each condition from the at least one condition is associated with a cognitive analytics codelet.
In some embodiments, a non-transitory, processor-readable medium stores instructions for implementing a cognitive information processing system for association, classification, and recognition. The instructions can include instructions to cause a processor to receive input data from a plurality of sensors, and to perform representation learning using an autoencoder. The representation learning includes associating the input data with at least one latent feature, grouping the at least one latent feature into at least one feature group, assigning at least one latent symbol to the at least one feature group, grouping the at least one latent symbol into at least one symbol group, and assigning at least one latent lexicon to the at least one symbol group, to generate a representation learning output. The instructions also include instructions to cause the processor to generate a decision learning output based on at least one of: the at least one latent symbol or the at least one latent lexicon. The instructions also include instructions to cause the processor to compare at least one of data associated with the plurality of sensors to the representation learning output, data associated with the plurality of sensors to the decision learning output, or the representation learning output to the decision learning output. The instructions also include instructions to cause the processor to perform at least one of indexing, ranking, or sorting of the data associated with the plurality of sensors, based on at least one of the representation learning output or the decision learning output, to produce modified data. The instructions also include instructions to cause the processor to generate a representation of at least one condition from a plurality of conditions based on the representation learning output, and to determine whether the at least one condition triggers execution of at least one node from a plurality of nodes. The instructions also include instructions to cause the processor to store the representation learning output and the modified data in a structured, queryable database, and to store at least one of metadata associated with the input data or an output of a cognitive engine and a representation of a sensor from the plurality of sensors that is associated with the at least one condition in the structured, queryable database.
In some implementations, the cognitive engine is configured to convert unstructured data into structured data.
In some implementations, each node from the plurality of nodes represents a neuron of a neural network.
In some implementations, the plurality of sensors includes at least one Internet of Things (IoT) sensor.
In some implementations, the representation learning output includes a learned pattern.
In some implementations, each condition from the at least one condition is associated with a cognitive analytics codelet.
All combinations of the foregoing concepts and additional concepts discussed herewithin (provided such concepts are not mutually inconsistent) are contemplated as being part of the subject matter disclosed herein. The terminology explicitly employed herein that also may appear in any disclosure incorporated by reference should be accorded a meaning most consistent with the particular concepts disclosed herein.
The drawings are primarily for illustrative purposes, and are not intended to limit the scope of the subject matter described herein. The drawings are not necessarily to scale; in some instances, various aspects of the subject matter disclosed herein may be shown exaggerated or enlarged in the drawings to facilitate an understanding of different features. In the drawings, like reference characters generally refer to like features (e.g., functionally similar and/or structurally similar elements).
The entirety of this application (including the Cover Page, Title, Headings, Background, Summary, Brief Description of the Drawings, Detailed Description, Embodiments, Abstract, Figures, Appendices, and otherwise) shows, by way of illustration, various embodiments in which the embodiments may be practiced. The advantages and features of the application are of a representative sample of embodiments only, and are not exhaustive and/or exclusive. Rather, they are presented to assist in understanding and teach the embodiments, and are not representative of all embodiments. As such, certain aspects of the disclosure have not been discussed herein. That alternate embodiments may not have been presented for a specific portion of the innovations or that further undescribed alternate embodiments may be available for a portion is not to be considered to exclude such alternate embodiments from the scope of the disclosure. It will be appreciated that many of those undescribed embodiments incorporate the same principles of the innovations and others are equivalent. Thus, it is to be understood that other embodiments may be utilized and functional, logical, operational, organizational, structural and/or topological modifications may be made without departing from the scope and/or spirit of the disclosure. As such, all examples and/or embodiments are deemed to be non-limiting throughout this disclosure.
Also, no inference should be drawn regarding those embodiments discussed herein relative to those not discussed herein other than it is as such for purposes of reducing space and repetition. For instance, it is to be understood that the logical and/or topological structure of any combination of any program components (a component collection), other components and/or any present feature sets as described in the figures and/or throughout are not limited to a fixed operating order and/or arrangement, but rather, any disclosed order is exemplary and all equivalents, regardless of order, are contemplated by the disclosure.
The term “automatically” is used herein to modify actions that occur without direct input or prompting by an external source such as a user. Automatically occurring actions can occur periodically, sporadically, in response to a detected event (e.g., a user logging in), or according to a predetermined schedule.
The term “determining” encompasses a wide variety of actions and, therefore, “determining” can include calculating, computing, processing, deriving, investigating, looking up (e.g., looking up in a table, a database or another data structure), ascertaining and the like. Also, “determining” can include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory) and the like. Also, “determining” can include resolving, selecting, choosing, establishing and the like.
The phrase “based on” does not mean “based only on,” unless expressly specified otherwise. In other words, the phrase “based on” describes both “based only on” and “based at least on.”
The term “processor” should be interpreted broadly to encompass a general purpose processor, a central processing unit (CPU), a microprocessor, a digital signal processor (DSP), a controller, a microcontroller, a state machine and so forth. Under some circumstances, a “processor” may refer to an application specific integrated circuit (ASIC), a programmable logic device (PLD), a field programmable gate array (FPGA), etc. The term “processor” may refer to a combination of processing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core or any other such configuration.
The term “memory” should be interpreted broadly to encompass any electronic component capable of storing electronic information. The term memory may refer to various types of processor-readable media such as random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erasable programmable read only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, magnetic or optical data storage, registers, etc. Memory is said to be in electronic communication with a processor if the processor can read information from and/or write information to the memory. Memory that is integral to a processor is in electronic communication with the processor.
The terms “instructions” and “code” should be interpreted broadly to include any type of computer-readable statement(s). For example, the terms “instructions” and “code” may refer to one or more programs, routines, sub-routines, functions, procedures, etc. “Instructions” and “code” may comprise a single computer-readable statement or many computer-readable statements.
Some embodiments described herein relate to a computer storage product with a non-transitory computer-readable medium (also can be referred to as a non-transitory processor-readable medium) having instructions or computer code thereon for performing various computer-implemented operations. The computer-readable medium (or processor-readable medium) is non-transitory in the sense that it does not include transitory propagating signals per se (e.g., a propagating electromagnetic wave carrying information on a transmission medium such as space or a cable). The media and computer code (also can be referred to as code) may be those designed and constructed for the specific purpose or purposes. Examples of non-transitory computer-readable media include, but are not limited to, magnetic storage media such as hard disks, floppy disks, and magnetic tape; optical storage media such as Compact Disc/Digital Video Discs (CD/DVDs), Compact Disc-Read Only Memories (CD-ROMs), and holographic devices; magneto-optical storage media such as optical disks; carrier wave signal processing modules; and hardware devices that are specially configured to store and execute program code, such as Application-Specific Integrated Circuits (ASICs), Programmable Logic Devices (PLDs), Read-Only Memory (ROM) and Random-Access Memory (RAM) devices. Other embodiments described herein relate to a computer program product, which can include, for example, the instructions and/or computer code discussed herein.
Some embodiments and/or methods described herein can be performed by software (executed on hardware), hardware, or a combination thereof. Hardware modules may include, for example, a general-purpose processor, a field programmable gate array (FPGA), and/or an application specific integrated circuit (ASIC). Software modules (executed on hardware) can be expressed in a variety of software languages (e.g., computer code), including C, C++, Java™, Ruby, Visual Basic™, and/or other object-oriented, procedural, or other programming language and development tools. Examples of computer code include, but are not limited to, micro-code or micro-instructions, machine instructions, such as produced by a compiler, code used to produce a web service, and files containing higher-level instructions that are executed by a computer using an interpreter. For example, embodiments may be implemented using imperative programming languages (e.g., C, Fortran, etc.), functional programming languages (Haskell, Erlang, etc.), logical programming languages (e.g., Prolog), object-oriented programming languages (e.g., Java, C++, etc.) or other suitable programming languages and/or development tools. Additional examples of computer code include, but are not limited to, control signals, encrypted code, and compressed code.
Various concepts may be embodied as one or more methods, of which at least one example has been provided. The acts performed as part of the method may be ordered in any suitable way. Accordingly, embodiments may be constructed in which acts are performed in an order different than illustrated, which may include performing some acts simultaneously, even though shown as sequential acts in illustrative embodiments. Put differently, it is to be understood that such features may not necessarily be limited to a particular order of execution, but rather, any number of threads, processes, services, servers, and/or the like that may execute serially, asynchronously, concurrently, in parallel, simultaneously, synchronously, and/or the like in a manner consistent with the disclosure. As such, some of these features may be mutually contradictory, in that they cannot be simultaneously present in a single embodiment. Similarly, some features are applicable to one aspect of the innovations, and inapplicable to others.
In addition, the disclosure may include other innovations not presently described. Applicant reserves all rights in such innovations, including the right to embodiment such innovations, file additional applications, continuations, continuations-in-part, divisionals, and/or the like thereof. As such, it should be understood that advantages, embodiments, examples, functional, features, logical, operational, organizational, structural, topological, and/or other aspects of the disclosure are not to be considered limitations on the disclosure as defined by the embodiments or limitations on equivalents to the embodiments. Depending on the particular desires and/or characteristics of an individual and/or enterprise user, database configuration and/or relational model, data type, data transmission and/or network framework, syntax structure, and/or the like, various embodiments of the technology disclosed herein may be implemented in a manner that enables a great deal of flexibility and customization as described herein.
All definitions, as defined and used herein, should be understood to control over dictionary definitions, definitions in documents incorporated by reference, and/or ordinary meanings of the defined terms.
As used herein, in particular embodiments, the terms “about” or “approximately” when preceding a numerical value indicates the value plus or minus a range of 10%. Where a range of values is provided, it is understood that each intervening value, to the tenth of the unit of the lower limit unless the context clearly dictates otherwise, between the upper and lower limit of that range and any other stated or intervening value in that stated range is encompassed within the disclosure. That the upper and lower limits of these smaller ranges can independently be included in the smaller ranges is also encompassed within the disclosure, subject to any specifically excluded limit in the stated range. Where the stated range includes one or both of the limits, ranges excluding either or both of those included limits are also included in the disclosure.
The indefinite articles “a” and “an,” as used herein in the specification and in the embodiments, unless clearly indicated to the contrary, should be understood to mean “at least one.”
The phrase “and/or,” as used herein in the specification and in the embodiments, should be understood to mean “either or both” of the elements so conjoined, i.e., elements that are conjunctively present in some cases and disjunctively present in other cases. Multiple elements listed with “and/of” should be construed in the same fashion, i.e., “one or more” of the elements so conjoined. Other elements may optionally be present other than the elements specifically identified by the “and/or” clause, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, a reference to “A and/or B”, when used in conjunction with open-ended language such as “comprising” can refer, in one embodiment, to A only (optionally including elements other than B); in another embodiment, to B only (optionally including elements other than A); in yet another embodiment, to both A and B (optionally including other elements); etc.
As used herein in the specification and in the embodiments, “or” should be understood to have the same meaning as “and/or” as defined above. For example, when separating items in a list, “or” or “and/or” shall be interpreted as being inclusive, i.e., the inclusion of at least one, but also including more than one, of a number or list of elements, and, optionally, additional unlisted items. Only terms clearly indicated to the contrary, such as “only one of” or “exactly one of,” or, when used in the embodiments, “consisting of,” will refer to the inclusion of exactly one element of a number or list of elements. In general, the term “or” as used herein shall only be interpreted as indicating exclusive alternatives (i.e. “one or the other but not both”) when preceded by terms of exclusivity, such as “either,” “one of,” “only one of,” or “exactly one of.” “Consisting essentially of,” when used in the embodiments, shall have its ordinary meaning as used in the field of patent law.
As used herein in the specification and in the embodiments, the phrase “at least one,” in reference to a list of one or more elements, should be understood to mean at least one element selected from any one or more of the elements in the list of elements, but not necessarily including at least one of each and every element specifically listed within the list of elements and not excluding any combinations of elements in the list of elements. This definition also allows that elements may optionally be present other than the elements specifically identified within the list of elements to which the phrase “at least one” refers, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, “at least one of A and B” (or, equivalently, “at least one of A or B,” or, equivalently “at least one of A and/or B”) can refer, in one embodiment, to at least one, optionally including more than one, A, with no B present (and optionally including elements other than B); in another embodiment, to at least one, optionally including more than one, B, with no A present (and optionally including elements other than A); in yet another embodiment, to at least one, optionally including more than one, A, and at least one, optionally including more than one, B (and optionally including other elements); etc.
In the embodiments, as well as in the specification above, all transitional phrases such as “comprising,” “including,” “carrying,” “having,” “containing,” “involving,” “holding,” “composed of,” and the like are to be understood to be open-ended, i.e., to mean including but not limited to. Only the transitional phrases “consisting of” and “consisting essentially of” shall be closed or semi-closed transitional phrases, respectively, as set forth in the United States Patent Office Manual of Patent Examining Procedures, Section 2111.03.
This application claims priority to and benefit of U.S. Provisional Patent Application No. 63/094,095, filed on Oct. 20, 2020 and titled “Methods and System for Cognitive Information Processing Using Representation Learning and Decision Learning on Data,” the entirety of which is expressly incorporated by reference herein for all purposes. This application is related to U.S. Patent Application Publication No. 2017/0293609A1, published Oct. 12, 2017 and titled “Methods and Systems Using Cognitive Artificial Intelligence to Implement Adaptive Linguistic Models to Process Data,” and is related to U.S. Pat. No. 9,639,521, issued May 2, 2017 and titled “Cognitive Neuro-Linguistic Behavior Recognition System for Multi-Sensor Data Fusion,” and is related to U.S. Patent Application Publication No. 2019/0172449, published Jun. 6, 2019 and titled “Methods and Systems for Optimized Selection of Data Features for a Neuro-Linguistic Cognitive Artificial Intelligence System,” each of which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
63094095 | Oct 2020 | US |