Memory facilitation using directed acyclic graphs is described, for example, where a plurality of directed acyclic graphs are trained for gesture recognition from human skeletal data, or to estimate human body joint positions from depth images for gesture detection. In various examples directed acyclic graphs are grown during training using a training objective which takes into account both connection patterns between nodes and split function parameter values. For example, a layer of child nodes is grown and connected to a parent layer of nodes using an initialization strategy. In examples, various local search processes are used to find good combinations of connection patterns and split function parameters.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A computer implemented method at a machine learning system comprising: accessing a plurality of training examples; storing a graph of connected nodes at a memory of the machine learning system the nodes having split function parameters specifying tests for determining flow of elements through the graph; and adding, using a processor, new nodes to the graph in a manner which selects between possible connection patterns between nodes of the graph, and possible split function parameter values, by applying a training objective to elements of the training examples reaching nodes of the graph according to the split function parameters. 2. A method as claimed in claim 1 wherein adding new nodes to the graph comprises selecting between possible connection patterns only between the new nodes and a single parent layer of nodes of the graph. 3. A method as claimed in claim 1 wherein adding new nodes to the graph comprises alternating between a first search step and a second search step, the first search step being selection of candidate split function parameters and the second step being selection of a candidate connection pattern. 4. A method as claimed in claim 3 wherein adding new nodes to the graph occurs for single ones of the new nodes selected at random, and where the order of the first and second search steps is randomized. 5. A method as claimed in claim 1 wherein selecting between possible connection patterns comprises clustering the new nodes. 6. A method as claimed in claim 5 wherein selecting between possible connection patterns comprises calculating a distance between the new nodes and nodes of a parent layer of the graph on the basis of the clusters. 7. A method as claimed in claim 6 comprising reassigning branches between nodes of the parent layer and the new nodes on the basis of the calculated distances. 8. A method as claimed in claim 1 comprising adding new nodes to the graph using an initialization strategy and then reassigning branches between the new nodes and a parent layer of the graph. 9. A method as claimed in claim 8 wherein the initialization strategy comprises allocating branches between the new nodes and a parent layer of the graph on the basis of a measure of parent node energy. 10. A method as claimed in claim 1 wherein adding new nodes comprises adding a layer of child nodes and selecting a number of child nodes in the child layer on the basis of a total number of layers in the graph. 11. One or more tangible device-readable media with device-executable instructions that, when executed by a computing system, direct the computing system to perform steps comprising: at a machine learning system: accessing a plurality of training examples; storing a graph of connected nodes at a memory of the machine learning system the nodes having split function parameters specifying tests for determining flow of elements through the graph; and adding, using a processor, new nodes to the graph in a manner which selects between possible connection patterns between nodes of the graph, and possible split function parameter values, by applying a training objective to elements of the training examples reaching nodes of the graph according to the split function parameters; wherein adding new nodes to the graph comprises selecting between possible connection patterns only between the new nodes and a single parent layer of nodes of the graph. 12. A machine learning system comprising: an input arranged to access a plurality of training examples; a memory storing a graph of connected nodes, the nodes having split function parameters specifying tests for determining flow of elements through the graph; and a training logic arranged to add new nodes to the graph in a manner which selects between possible connection patterns between nodes of the graph, and possible split function parameter values, by applying a training objective to elements of the training images reaching nodes of the graph according to the split function parameters. 13. A machine learning system as claimed in claim 12 the training logic arranged to add new nodes to the graph by selecting between possible connection patterns only between the new nodes and a single parent layer of nodes of the graph. 14. A machine learning system as claimed in claim 12 the training logic arranged to add new nodes to the graph by alternating between a first search step and a second search step, the first search step being selection of candidate split function parameters and the second step being selection of a candidate connection pattern. 15. A machine learning system as claimed in claim 14 wherein the training logic is arranged to add new nodes to the graph for single ones of the new nodes selected at random, and where the order of the first and second search steps is randomized. 16. A machine learning system as claimed in claim 12 wherein the training logic is arranged to select between possible connection patterns by clustering the new nodes. 17. A machine learning system as claimed in claim 16 wherein the training logic is arranged to select between possible connection patterns by calculating a distance between the new nodes and nodes of a parent layer of the graph on the basis of the clusters. 18. A machine learning system as claimed in claim 17 wherein the training logic is arranged to reassigning branches between nodes of the parent layer and the new nodes on the basis of the calculated distances. 19. A machine learning system as claimed in claim 12 wherein the training logic is arranged to add new nodes to the graph using an initialization strategy and then reassigning branches between the new nodes and a parent layer of the graph. 20. A machine learning system as claimed in claim 12 the training logic being at least partially implemented using hardware logic selected from any one or more of: a field-programmable gate array, a program-specific integrated circuit, a program-specific standard product, a system-on-a-chip, a complex programmable logic device, a graphics processing unit.