IP Library › Granted Patent US 11,620,487
Granted Patent B2
US 11,620,487 · App. 16/776,108 · Granted Apr 4, 2023

Neural architecture search based on synaptic connectivity graphs

Inventors: Sarah Ann Laszlo (Mountain View, CA); Philip Edwin Watson (Santa Cruz, CA); Georgios Evangelopoulos (Venice, CA)
Assignee: X Development LLC
G06N3/006G06K9/6217G06K9/6262G06K9/6267G06N3/04G06N3/08G06V10/426G10L25/30G10L25/51
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,620,487
App. No.
16/776,108
Granted
Apr 4, 2023
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for selecting a neural network architecture for performing a machine learning task. In one aspect, a method comprises: obtaining data defining a synaptic connectivity graph representing synaptic connectivity between neurons in a brain of a biological organism; generating data defining a plurality of candidate graphs based on the synaptic connectivity graph; determining, for each candidate graph, a performance measure on a machine learning task of a neural network having a neural network architecture that is specified by the candidate graph; and selecting a final neural network architecture for performing the machine learning task based on the performance measures.

Claims (79)

1. A method performed by one or more data processing apparatus, the method comprising:

obtaining data defining a synaptic connectivity graph representing synaptic connectivity between neurons in a brain of a biological organism, wherein:

the synaptic connectivity graph comprises a plurality of nodes and edges, wherein each edge connects a pair of nodes, each node corresponds to a respective neuron in the brain of the biological organism, and each edge connecting a pair of nodes in the synaptic connectivity graph corresponds to a synaptic connection between a pair of neurons in the brain of the biological organism; and

the synaptic connectivity graph is generated by processing a three-dimensional (3D) synaptic resolution image of at least a portion of the brain of the biological organism;

processing the synaptic connectivity graph derived from the 3D synaptic resolution image of the brain of the biological organism to generate data defining a plurality of candidate graphs, wherein each of the candidate graphs is different than the synaptic connectivity graph;

determining, for each of the candidate graphs generated by processing the synaptic connectivity graph derived from the 3D synaptic resolution image of the brain of the biological organism, a performance measure characterizing a performance of a neural network having a neural network architecture that is specified by the candidate graph in accomplishing a machine learning task; and

selecting, based on the determined performance measures, one or more final neural network architectures for performing the machine learning task, wherein each final neural network architecture is specified by a respective candidate graph from the plurality of candidate graphs.

2. The method of claim 1 , wherein obtaining data defining the synaptic connectivity graph representing synaptic connectivity between neurons in the brain of the biological organism comprises:

obtaining the 3D synaptic resolution image of at least the portion of the brain of the biological organism; and

processing the 3D synaptic resolution image to segment: (i) a plurality of neurons in the 3D synaptic resolution image, and (ii) a plurality of synaptic connections between pairs of neurons in the 3D synaptic resolution image.

3. The method of claim 1 , wherein the 3D synaptic resolution image of the brain of the biological organism is generated using electron microscopy techniques.

4. The method of claim 1 , wherein generating data defining the plurality of candidate graphs based on the synaptic connectivity graph comprises:

for each of a plurality of graph features:

determining a value of the graph feature for the synaptic connectivity graph; and

determining a constraint corresponding to the graph feature based on the value of the graph feature for the synaptic connectivity graph, wherein the constraint corresponding to the graph feature specifies a target value or a range of target values of the graph feature for the candidate graphs; and

generating the plurality of candidate graphs based on the constraints corresponding to the graph features.

5. The method of claim 4 , wherein the plurality of graph features comprise one or more of: (i) a graph feature that specifies a number of nodes in a graph, (ii) a graph feature that specifies a number of edges in a largest cluster in a two-dimensional array representing a graph, (iii) a graph feature that specifies a number of clusters in a two-dimensional array representing a graph that include a number of edges that is within a predefined range of values, (iv) an average path length between nodes in a graph, or (v) a maximum path length between nodes in a graph.

6. The method of claim 4 , wherein generating a candidate graph based on the constraints corresponding to the graph features comprises:

initializing the candidate graph; and

at each of one or more iterations:

updating the candidate graph to cause the candidate graph to satisfy a corresponding constraint.

7. The method of claim 6 , wherein initializing the candidate graph comprises randomly initializing the candidate graph.

8. The method of claim 1 , wherein generating data defining the plurality of candidate graphs based on the synaptic connectivity graph comprises:

generating a set of current graphs based on the synaptic connectivity graph, wherein each current graph is generated by applying one or more random modifications to the synaptic connectivity graph;

updating the set of current graphs at each of a plurality of iterations, comprising, at each iteration:

randomly sampling a plurality of current graphs from the set of current graphs;

determining, for each sampled graph, a performance measure on the machine learning task of a neural network having a neural network architecture that is specified by the sampled graph; and

updating the set of current graphs based on the performance measures of the sampled graphs; and

after a final iteration of the plurality of iterations, identifying each current graph in the set of current graphs as a candidate graph.

9. The method of claim 8 , wherein updating the set of current graphs based on the performance measures of the sampled graphs comprises:

removing any sampled graph having a performance measure that does not satisfy a threshold from the set of current graphs.

10. The method of claim 8 , wherein updating the set of current graphs based on the performance measures of the sampled graphs comprises:

identifying one or more of the sampled graphs having the highest performance measures; and

generating one or more new graphs based on the randomly sampled graphs, wherein each new graph is generated by applying one or more random modifications to the sampled graph; and

adding the new graphs to the set of current graphs.

11. The method of claim 1 , wherein determining a performance measure on a machine learning task of a neural network having a neural network architecture that is specified by a candidate graph comprises determining the neural network architecture that is specified by the candidate graph, comprising:

mapping each node in the candidate graph to a corresponding artificial neuron in the neural network architecture; and

for each edge in the candidate graph:

mapping the edge to a connection between a pair of artificial neurons in the neural network architecture that correspond to the pair of nodes in the candidate graph that are connected by the edge.

12. The method of claim 1 , wherein selecting one or more final neural network architectures for performing the machine learning task comprises:

selecting a neural network architecture specified by a candidate graph associated with a highest performance measure as a final neural network architecture for performing the machine learning task.

13. The method of claim 1 , wherein the machine learning task comprises processing image data to generate a classification of the image data.

14. The method of claim 1 , wherein the machine learning task comprises processing audio data to generate a classification of the audio data.

15. The method of claim 1 , wherein the biological organism is an animal.

16. The method of claim 1 , wherein generating data defining the plurality of candidate graphs based on the synaptic connectivity graph comprises, at each of a plurality of iterations:

generating a candidate graph by applying one or more transformation operations to the synaptic connectivity graph, wherein the transformation operations are specified by current values of transformation operation parameters;

determining a performance measure of the on the machine learning task of a neural network having a neural network architecture that is specified by the candidate graph; and

updating the current values of the transformation operation parameters based at least in part on the performance measure.

17. A system comprising:

one or more computers; and

one or more storage devices communicatively coupled to the one or more computers, wherein the one or more storage devices store instructions that, when executed by the one or more computers, cause the one or more computers to perform operations comprising:

obtaining data defining a synaptic connectivity graph representing synaptic connectivity between neurons in a brain of a biological organism, wherein:

the synaptic connectivity graph comprises a plurality of nodes and edges, wherein each edge connects a pair of nodes, each node corresponds to a respective neuron in the brain of the biological organism, and each edge connecting a pair of nodes in the synaptic connectivity graph corresponds to a synaptic connection between a pair of neurons in the brain of the biological organism; and

the synaptic connectivity graph is generated by processing a three-dimensional (3D) synaptic resolution image of at least a portion of the brain of the biological organism;

processing the synaptic connectivity graph derived from the 3D synaptic resolution image of the brain of the biological organism to generate data defining a plurality of candidate graphs, wherein each of the candidate graphs is different than the synaptic connectivity graph;

determining, for each of the candidate graphs generated by processing the synaptic connectivity graph derived from the 3D synaptic resolution image of the brain of the biological organism, a performance measure characterizing a performance of a neural network having a neural network architecture that is specified by the candidate graph in accomplishing a machine learning task; and

selecting, based on the determined performance measures, one or more final neural network architectures for performing the machine learning task, wherein each final neural network architecture is specified by a respective candidate graph from the plurality of candidate graphs.

18. One or more non-transitory computer storage media storing instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:

obtaining data defining a synaptic connectivity graph representing synaptic connectivity between neurons in a brain of a biological organism, wherein:

the synaptic connectivity graph comprises a plurality of nodes and edges, wherein each edge connects a pair of nodes, each node corresponds to a respective neuron in the brain of the biological organism, and each edge connecting a pair of nodes in the synaptic connectivity graph corresponds to a synaptic connection between a pair of neurons in the brain of the biological organism; and

the synaptic connectivity graph is generated by processing a three-dimensional (3D) synaptic resolution image of at least a portion of the brain of the biological organism;

processing the synaptic connectivity graph derived from the 3D synaptic resolution image of the brain of the biological organism to generate data defining a plurality of candidate graphs, wherein each of the candidate graphs is different than the synaptic connectivity graph;

determining, for each of the candidate graphs generated by processing the synaptic connectivity graph derived from the 3D synaptic resolution image of the brain of the biological organism, a performance measure characterizing a performance of a neural network having a neural network architecture that is specified by the candidate graph in accomplishing a machine learning task; and

selecting, based on the determined performance measures, one or more final neural network architectures for performing the machine learning task, wherein each final neural network architecture is specified by a respective candidate graph from the plurality of candidate graphs.

19. The non-transitory computer storage media of claim 18 , wherein obtaining data defining the synaptic connectivity graph representing synaptic connectivity between neurons in the brain of the biological organism comprises:

obtaining the 3D synaptic resolution image of at least the portion of the brain of the biological organism; and

processing the 3D synaptic resolution image to segment: (i) a plurality of neurons in the 3D synaptic resolution image, and (ii) a plurality of synaptic connections between pairs of neurons in the 3D synaptic resolution image.

20. A method performed by one or more data processing apparatus, the method comprising:

obtaining data defining a synaptic connectivity graph representing synaptic connectivity between neurons in a brain of a biological organism, wherein:

the synaptic connectivity graph comprises a plurality of nodes and edges, wherein each edge connects a pair of nodes, each node corresponds to a respective neuron in the brain of the biological organism, and each edge connecting a pair of nodes in the synaptic connectivity graph corresponds to a synaptic connection between a pair of neurons in the brain of the biological organism;

generating data defining a plurality of candidate graphs based on the synaptic connectivity graph, comprising:

generating a set of current graphs based on the synaptic connectivity graph, wherein each current graph is generated by applying one or more random modifications to the synaptic connectivity graph;

updating the set of current graphs at each of a plurality of iterations, comprising, at each iteration:

randomly sampling a plurality of current graphs from the set of current graphs;

determining, for each sampled graph, a performance measure on the machine learning task of a neural network having a neural network architecture that is specified by the sampled graph; and

updating the set of current graphs based on the performance measures of the sampled graphs; and

after a final iteration of the plurality of iterations, identifying each current graph in the set of current graphs as a candidate graph;

determining, for each candidate graph, a performance measure characterizing a performance of a neural network having a neural network architecture that is specified by the candidate graph in accomplishing a machine learning task; and

selecting a final neural network architecture for performing the machine learning task based on the performance measures.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2020
From: LASZLO, SARAH ANN; WATSON, PHILIP EDWIN; EVANGELOPOULOS, GEORGIOS
To: X DEVELOPMENT LLC
Reel/Frame 052402/0880 →
Priority Claims (1)
GR 20190100588 · Dec 31, 2019 · national
Continuity (1)
Related Publication 20210201107A1 · Jul 1, 2021