This disclosure relates to a computer processing architecture, such as suitable for use in a neural network, such as suitable for artificial intelligence processing. Such networks are used, for example, in airplanes, airports, automobiles, boats, cameras, computers, data centers, data gathering devices, drones, factories, gaming applications, medical applications, point-of-sale registers, registration set-ups, robots, shopping, surveillance applications, trade shows, trains, trucks, in workspaces, etc., in industries such as, for example, aerospace, gaming, housing, healthcare, manufacturing, recreation, retail, surveillance, tourism, transportation, travel, etc.
Artificial neural networks (ANNs) comprise interconnected computer processing elements—commonly called nodes—that exhibit behaviors akin to organic brains. Among other things, ANNs can labor under processing burdens, as well as experience degraded performance when processing large blocks of data in a sequential fashion.
Against this background, this application is applicable to, at least, clustered neural network processing methods and systems for processing datasets, such as comprising data from an image, using multi-layered detector systems, methods, and/or mapping structures.
In various embodiments, a computer architecture for processing an aggregate dataset in an artificial neural network includes a master processor having a primary detector configured to analyze the aggregate dataset and segregate the aggregate dataset into component datasets; and two or more processing nodes in communication with the master processor, each of the processing nodes having secondary detectors configured to analyze the component datasets; wherein the master processor assigns the component datasets to the processing nodes based on processing capabilities of the processing nodes; and wherein the secondary detectors identify data labels associated with the processing nodes by analyzing the component datasets.
In various embodiments: communication between the master processor and processing nodes is bi-directional; the processing nodes operate independently of one another; the processing nodes train and update independently of one another; the processing nodes operate in parallel; at least one of the processing nodes segregates a component dataset into a further component dataset; the further component dataset decreases inference complexity associated with the further component dataset; and/or the master processor analyzes a subsequent aggregate dataset while the secondary detectors analyze the component datasets.
In various embodiments, a computer-implemented method for processing an aggregate dataset in an artificial neural network includes analyzing an aggregate dataset at a primary detector of a master processor; segregating the aggregate dataset into component datasets based on outputs from the primary detector; assigning the component datasets to two or more processing nodes in electronic communication with the master processor based on processing capabilities of the processing nodes; and analyzing the component datasets at the processing nodes to identify data labels associated with the processing nodes.
In various embodiments, the method further comprises bi-directionally communicating between the master processor and the processing nodes; operating the processing nodes independently of one another; training and updating the processing nodes independently of one another; operating the processing nodes in parallel; segregating a component dataset into a further component dataset; decreasing a number of inferences associated with the further component dataset; and/or analyzing a subsequent aggregate dataset while secondary detectors at the processing nodes analyze the component datasets.
In various embodiments, a non-transitory computer-readable medium embodying program code executable in at least one computing device, the program code, when executed by the at least one computing device, being configured to cause the at least one computing device to at least analyze an aggregate dataset at a primary detector of a master processor; segregate the aggregate dataset into component datasets based on outputs from the primary detector; assign the component datasets to two or more processing nodes in electronic communication with the master processor based on processing capabilities of the processing nodes; and analyze the component datasets at the processing nodes to identify data labels associated with the processing nodes.
In various embodiments: the program code is further configured to operate the processing nodes independently of one another; train and update the processing nodes independently of one another; and/or operate the processing nodes in parallel.
The accompanying drawings illustrate various embodiments employing the principles described herein and are a part of the specification. The illustrated embodiments are meant for description only, and they do not limit the scope of the claims, and in which:
This detailed description of exemplary embodiments references the accompanying drawings, which show exemplary embodiments by way of illustration. While these exemplary embodiments are described in sufficient detail to enable those skilled in the art to practice this disclosure, it should be understood that other embodiments may be realized and that logical changes and adaptations in design and construction may be made in accordance with this disclosure and the teachings herein described without departing from the scope and spirit hereof. Thus, this detailed description is presented for purposes of illustration only and not of limitation.
In accordance with various aspects of this disclosure, systems and methods are described for processing a dataset in an artificial neural network.
Referring generally, an artificial neural network (ANN) is a subset of machine learning, which is a subset of artificial intelligence (AI). ANN's computing systems are not just programmed to perform specific tasks, they are programmed to learn how to perform specific tasks. For example, rather than following task-specific rules, ANNs are programmed to review programmed examples and draw non-programmed inferences from such datasets, in various embodiments. The more examples that an ANN reviews, the deeper its learning is said to be, giving rise to terms such as deep AI and/or deep learning.
Simplified to an exemplary extreme, programmers program ANNs to solve mathematical algorithms, or functions, such as by f(x)=y, in which x is a plurality of examples that an algorithm f is programmed to examine, and y is a result of the analysis. An algorithm is said to train by building the relationship f(x)=y, and when the algorithm is then used to predict an unprogrammed outcome y based on an input x, the algorithm is said to make an inference. In other words, there are, in general, two primary processes involved in machine learning: training and inference. In various embodiments, ANNs learn during training by examining datasets, and ANNs then use that learning from the training to apply and/or draw predictive inferences based on new, unprogrammed datasets. As a result, outputs from ANNs comprise non-linear aggregations—e.g., averages, summations, etc.—from their inputs, enabling ANNs to process unsupervised (i.e., unprogrammed) learning through pattern recognitions and/or the like. In various embodiments, ANNs are thus adaptive models that change their dynamic structures based on internal and external dataflows through the ANNs.
In various embodiments, machine learning relies on centralized models for training, in which groups of machines (e.g., servers and data centers) run computer models against large, centrally-located datasets. When inferences are made, they are performed locally by layered processors, in various embodiments.
Referring now to
In various embodiments, the master processor 12 contains a data capture device 18, such as a camera (still, video, and/or other), infrared detector, laser and/or lidar detector, metal detector, motion detector, radar detector, speaker, ultrasound detector, and/or other for receiving an aggregate dataset from the computer architecture 10 and/or other. In various embodiments, the master processor 12 controls the data capture device 18, which may also be internal or external to the master processor 12.
In various embodiments, the master processor 12 comprises one or more servers, one or more computer banks, and/or a distributed computing arrangement, such as in a cloud-based arrangement.
In various embodiments, the master processor 12 and/or processing nodes 14 are each individually mapped to a single processing chipset, such as a single graphic processing unit/card.
In various embodiments, the master processor 12 contains a primary detector (PD) 20, and at least two or more of the processing nodes 14 contain secondary detectors (SDs), such as the first processing node (PN1) 14a comprising a first secondary detector (SD1) 22a trained on the first set of local data LD1, the second processing node (PN2) 14b comprising a second secondary detector (SD2) 22b trained on the second set of local data LD2, and/or the third processing node (PN3) 14c comprising a third secondary detector (SD3) 22c trained on the third set of local data LD3, etc.
Referring now to
In various embodiments, the components and/or functionality described herein also include computer instructions, programs, and/or software that is or are embodied in one or more external, tangible, non-transitory computer-readable media 32 that are used by the one or more controllers 26. As such, the computer-readable media 32 contains, maintains, and/or stores computer instructions, programs, and/or software that is used by the one or more controllers 26, including physical media, such as, for example, magnetic, optical, and/or semiconductor media, including, for example, flash, magnetic, and/or solid-state devices, in various embodiments. In various embodiments, one or more components described herein are implemented as components, modules, and/or subsystems of a single application, as well as using one computing device and/or multiple computing devices.
Referring now also to
For example, and referring now also to
For example, the master processor 12 of
Referring now also to
In addition, if the first set of local data LD1 from
Referring now also to
For example, the first processing node (PN1) 14a utilizes its first secondary detector (SD1) 22a, implemented as a tree detector, to determine that the type of tree 102 in the second image 100 is the oak tree 102a (among many images and/or types of possible trees), including analyzing first data labels 110a (e.g., tree labels) assigned to the first processing node (PN1) 14a by the master processor 12, in various embodiments. Likewise, the second processing node (PN2) 14b utilizes its second secondary detector (SD2) 22b, implemented as a person detector, to determine that the type of person 104 in the second image 100 is the female child 104a (among many images and/or types of possible people), including analyzing second data labels 110b (e.g., people labels) assigned to the second processing node (PN2) 14b by the master processor 12, in various embodiments. Likewise, the third processing node (PN3) 14c utilizes its third secondary detector (SD3) 22c, implemented as a hand-held item detector, to determine that the type of hand-held item 106 in the second image 100 is the helium birthday balloon 106a (among many images and/or types of hand-held items), including analyzing third data labels 110c (e.g., hand-held item labels) assigned to the third processing node (PN3) 14c by the master processor 12, in various embodiments.
In addition, if the first set of local data LD1 from
In addition, and referring now also to
In addition, and referring now also to
As described above, the master processor 12 pre-processes an aggregate dataset captured by a data capture device 18 to then segregate the aggregate database into component/constituent databases that are then individually processed by the processing nodes 14 of the neural network 16. By distributing shared processing to the processing nodes 14, the computer architecture 10 is able to draw faster inferences regarding individualized components of the aggregate database. In addition, if an individual processing node 14 needs to be individually updated and re-trained using constituent local data, the master processor 12 and other processing nodes 14 are unaffected by the local event. In
In addition, if one processing node 14 is unable and/or slow to draw an inference from a particular image, such as the first image 50 and/or the second image 100, then the other processing nodes 14 are still able to draw inferences in accordance with their individualized processing capacities and local datasets LDs, in various embodiments.
As described above, the master processor 12 analyzes the aggregate data captured by the data capture device 18 and performs subsequent actions based on its initial analysis of the dataset. For example, the master processor 12 of the neural network 16 of the computer architecture 10 of
Each of the processing nodes 14 receives its component dataset (raw or processed) distributed from the master processor 12 via, for example, download links, such as the first download connection D1 of the first processing node (PN1) 14a, the second download connection D2 of the second processing node (PN2) 14b, and/or the third download connection D3 of the third processing node (PN3) 14c, etc., in various embodiments.
In various embodiments, each of the processing nodes 14 analyzes the respective component dataset that it received from the master processor 12 according to its own processing routines and data labels assigned to it.
In various embodiments, each of the processing nodes 14 transmits its inferences back to the master processor 12 via, for example, upload links, such as the first upload connection U1 of the first processing node (PN1) 14a, the second upload connection U2 of the second processing node (PN2) 14b, and/or the third upload connection U3 of the third processing node (PN3) 14c, etc.
In addition, the first processing node (PN1) 14a, for example, trains on the first set of local data LD1, the second processing node (PN2) 14b trains on the second set of local data LD2, and the third processing node (PN3) 14c trains on the third set of local data LD3, in various embodiments.
Referring again to
As described, rather than running an entire dataset of hundreds and/or thousands (or more) of labels 110 sequentially through the global detector 108, as in
In various embodiments, inferences from the primary detector 20 trigger processing at the downstream secondary detectors (SDs) 22. As a result, when the plurality of processing nodes 14 execute routines in parallel, the master processor 12 is able to discern the objects in the datasets with higher confidence/correlation and/or in less time, particularly when compared to processing a dataset using the global detector 108 to linearly and/or sequentially review all of the data labels 110 of
Since the first processing node (PN1) 14a, the second processing node (PN2) 14b, and/or the third processing node (PN3) 14c are independently run by the master processor 12, they update independently and in parallel on the computer architecture 10, in various embodiments.
In various embodiments, each processing node 14 can also act as a sub-global detector 108 as well, further sending component data elements to additional processing nodes 14 for continued distribution and processing as well. For example, in the second image 100 of
Referring now also to
When operating in parallel, the processing nodes 14 thus recognize the grocery item 152 as a bottle of water 154a by Brand X 156a, which is, or at least may be, associated with a particular price (or other) for that particular grocery item 152, in various embodiments. The determinations of the independent processing nodes 14 intersect to draw a multi-layered conclusion as to the likely identity of the grocery item 152, in various embodiments. This allows the master processor 12 at the grocery store to not have to sequentially run through all the data labels for the food and/or items available at the grocer. And if an inconsistency arises between data label conclusions, then the master processor 12 can run a sub-routine to rectify, in various embodiments.
Referring now also to
In accordance with the description herein, technical benefits and effects of this disclosure include efficiently processing a dataset in an artificial neural network, such as using a global detector receiving an aggregate dataset to distribute parts of that dataset to two or more processing nodes for individually analyzing the parts of the dataset more quickly and efficiently and with greater accuracy than the global detector individually processing sequential data labels.
Advantages, benefits, improvements, and solutions, etc. have been described herein with regard to specific embodiments. Furthermore, connecting lines shown in the various figures contained herein are intended to represent exemplary functional relationships and/or physical couplings between the various elements. It should be noted that many additional and/or alternative functional relationships or physical connections may be present in a practical system. However, the advantages, benefits, improvements, solutions, etc., and any elements that may cause any advantage, benefit, improvement, solution, etc. to occur or become more pronounced are not to be construed as critical, essential, or required elements or features of this disclosure.
The scope of this disclosure is accordingly to be limited by nothing other than the appended claims, in which reference to an element in the singular is not intended to mean “one and only one” unless explicitly so stated, but rather “one or more.” It is to be understood that unless specifically stated otherwise, references to “a,” “an,” and/or “the” may include one or more than one, and that reference to an item in the singular may also include the item in the plural, and vice-versa. All ranges and ratio limits disclosed herein may be combined.
Moreover, where a phrase similar to “at least one of A, B, and C” is used in the claims, it is intended that the phrase be interpreted to mean that A alone may be present in an embodiment, B alone may be present in an embodiment, C alone may be present in an embodiment, or that any combination of the elements A, B, and C may be present in a single embodiment; for example, A and B, A and C, B and C, or A and B and C. Different cross-hatching may be used throughout the figures to denote different parts, but not necessarily to denote the same or different materials. Like depictions and numerals also generally represent like elements.
The steps recited in any of the method or process descriptions may be executed in any order and are not necessarily limited to the order presented. Furthermore, any reference to singular elements, embodiments, and/or steps includes plurals thereof, and any reference to more than one element, embodiment, and/or step may include a singular one thereof. Elements and steps in the figures are illustrated for simplicity and clarity and have not necessarily been rendered according to any particular sequence. For example, steps that may be performed concurrently or in different order are only illustrated in the figures to help to improve understanding of embodiments of the present, representative disclosure.
Any reference to attached, connected, fixed, or the like may include full, partial, permanent, removable, temporary and/or any other possible attachment option. Additionally, any reference to without contact (or similar phrases) may also include reduced contact or minimal contact. Surface shading lines may be used throughout the figures to denote different areas or parts, but not necessarily to denote the same or different materials. In some cases, reference coordinates may or may not be specific to each figure.
Apparatus, methods, and systems are provided herein. In the detailed description herein, references to “one embodiment,” “an embodiment,” “various embodiments,” etc., indicate that the embodiment described may include a particular characteristic, feature, or structure, but every embodiment may not necessarily include this particular characteristic, feature, or structure. Moreover, such phrases may not necessarily refer to the same embodiment. Further, when a particular characteristic, feature, or structure is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such characteristic, feature, or structure in connection with other embodiments, whether or not explicitly described. After reading the description, it will be apparent to one skilled in the relevant art(s) how to implement this disclosure in alternative embodiments.
Furthermore, no component, element, or method step in the present disclosure is intended to be dedicated to the public regardless of whether the component, element, or method step is explicitly recited in the claims. No claim element is intended to invoke 35 U.S.C. § 112(f) unless the element is expressly recited using the phrase “means for.” As used herein, the terms “comprises,” “comprising,” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that an apparatus, article, method, or process that comprises a list of elements does not include only those elements, but it may also include other elements not expressly listed or inherent to such apparatus, article, method, or process.
This application claims priority from U.S. Provisional Pat. No. 62/553,130, entitled “Multiplicity of Intersecting Neural Networks Overlay Workloads (MINNOW)” and filed Sep. 1, 2017.
Number | Date | Country | |
---|---|---|---|
62553130 | Sep 2017 | US |