IP Library › Granted Patent US 12,050,979
Granted Patent B2
US 12,050,979 · App. 16/357,603 · Granted Jul 30, 2024

Budgeted neural network architecture search system and method

Inventors: Abhishek Singh (Pleasanton, CA); Debojyoti Dutta (Santa Clara, CA)
Assignee: Cisco Technology, Inc.
G06N3/044G06N3/08
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 12,050,979
App. No.
16/357,603
Granted
Jul 30, 2024
Kind
B2
Abstract

A neural network architecture search may be conducted by a controller to generate a neural network. The controller may perform the search by generating a directed acyclic graph across nodes in a search space, the nodes representing compute operations for a neural network. As the search is performed, the controller may retrieve resource availability information to modify the likelihood of a generated neural network architecture including previously unused nodes.

Claims (61)

1. A method comprising:

training, by a controller, a first candidate model based on a first set of components of a first neural network architecture applied to training data;

determining a first availability of one or more resources for generating models;

updating the controller based on a first exploration preference and the first availability of the one or more resources, wherein the first exploration preference is based on an entropy value that corresponds with a learning gradient based on exploring unseen neural network architectures in previous trainings of different neural network architectures, the entropy value being further based on (i) the first set of components of the first neural network architecture and (ii) a performance level of the first candidate model;

iteratively generating a second neural network architecture based on a second availability of the one or more resources by modifying the first neural network architecture based on the first exploration preference, wherein a number of new components are interconnected with the first set of components to train a second candidate model;

adapting the first exploration preference to a decrease of the second availability of the one or more resources for generating models by performing an exponential decay of the first exploration preference based on the learning gradient to generate a second exploration preference, the exponential decay causing the second exploration preference to correspond to an exponentially constrained preference for sampling new components based on a remaining time for performing an architecture search;

iteratively generating a third neural network architecture based on a third availability of the one or more resources by modifying the second neural network architecture based on the second exploration preference, wherein the number of new components interconnected with the first set of components is reduced and a number of previously sampled components is increased based on the exponential decay of the first exploration preference to train a third candidate model; and

comparing a performance level of the first candidate model applied to the training data, a performance level of the second candidate model, and a performance level of the third candidate model to identify whether the first exploration preference or the second exploration preference produces a preferred neural network architecture.

2. The method of claim 1 , further comprising:

generating the second or more candidate models by exploring an architecture space based on the first exploration preference and the performance level of the trained first candidate model, exploration of the architecture space comprising generating a second sample of the architecture space, the second sample comprising the new components;

training the second or more candidate models; and

determining a respective performance level of each trained candidate model of the trained second or more candidate models;

wherein an output of the one of the first trained candidate model or the second trained candidate model is based on a comparison of the performance levels of each of the trained first, second and more candidate models.

3. The method of claim 1 , wherein the controller initializes a search model with hyper-parameters comprising operational training parameters for the search model, and wherein the hyper-parameters are received by the initialized controller comprising a recurrent neural network (RNN) and the method further comprising updating the RNN with the exploration preference.

4. The method of claim 3 , wherein the initialized controller updates the RNN using reinforcement learning, the method further comprising:

determining an exploitation reward based on the generated first candidate model, the exploitation reward corresponding to a preference for including known model components in a generated model; and

updating the RNN based on either or both of the exploitation reward and the exploration preference, wherein the initialized controller uses the updated RNN to explore an architecture space of the second neural network architecture.

5. The method of claim 1 , wherein the one or more resources for generating models includes a remaining compute power.

6. The method of claim 1 , wherein determining the first availability of the one or more resources comprises making an application programming interface (API) call to one or more external resources.

7. The method of claim 1 , wherein the first exploration preference is proportional to the availability of the one or more resources for generating models.

8. A system comprising:

one or more processors; and

a memory comprising instructions which cause the one or processors to:

train, by a controller, a first candidate model based on a first set of components of a first neural network architecture applied to training data;

determine a first availability of one or more resources for generating models;

update the controller based on a first exploration preference and the first availability of the one or more resources, wherein the first exploration preference is based on an entropy value that corresponds with a learning gradient based on exploring unseen neural network architectures in previous trainings of different neural network architectures, the entropy value being further based on (i) the first set of components of the first neural network architecture and (ii) a performance level of the first candidate model; and

iteratively generate a second neural network architecture based on a second availability of the one or more resources by modifying the first neural network architecture based on the first exploration preference, wherein a number of new components are interconnected with the first set of components to train a second candidate model;

adapt the first exploration preference to a decrease of the second availability of the one or more resources for generating models by performing an exponential decay of the first exploration preference based on the learning gradient to generate a second exploration preference, the exponential decay causing the second exploration preference to correspond to an exponentially constrained preference for sampling new components based on a remaining time for performing an architecture search;

iteratively generate a third neural network architecture based on a third availability of the one or more resources by modifying the second neural network architecture based on the second exploration preference, wherein the number of new components interconnected with the first set of components is reduced and a number of previously sampled components is increased based on the exponential decay of the first exploration preference to train a third candidate model; and

compare a performance level of the first candidate model applied to the training data, a performance level of the second candidate model, and a performance level of the third candidate model to identify whether the first exploration preference or the second exploration preference produces a preferred neural network architecture.

9. The system of claim 8 , wherein the memory further comprises instructions to:

generate the second or more candidate models by exploring an architecture space based on the first exploration preference and the performance level of the trained first candidate model, exploration of the architecture space comprising generating a second sample of the architecture space, the second sample comprising the new components;

train the second or more candidate models; and

determine a respective performance level of each trained candidate model of the trained second or more candidate models;

wherein an output of the one of the first trained candidate model or the second trained candidate model is based on a comparison of the performance levels of each of the first, second and more trained candidate models.

10. The system of claim 8 , wherein the controller initializes a search model with hyper-parameters comprising operational training parameters for the search model, and wherein the hyper-parameters are received by the initialized controller comprising a recurrent neural network (RNN) and the memory further comprises instructions to update the RNN with the exploration preference.

11. The system of claim 10 , wherein the initialized controller updates the RNN using reinforcement learning, the memory further comprising instructions to:

determine an exploitation reward based on the generated first candidate model, the exploitation reward corresponding to a preference for including known model components in a generated model; and

update the RNN based on either one or both of the exploitation reward and the exploration preference, wherein the initialized controller uses the updated RNN to explore an architecture space of the second neural network architecture.

12. The system of claim 8 , wherein the one or more resources for generating models includes a remaining compute power.

13. The system of claim 8 , wherein determining the first availability of the one or more resources comprises making an application programming interface (API) call to one or more external resources.

14. The system of claim 8 , wherein the first exploration preference is proportional to the availability of the one or more resources for generating models.

15. A non-transitory computer readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to:

train, by a controller, a first candidate model based on a first set of components of a first neural network architecture applied to training data;

determine a first availability of one or more resources for generating models;

update the controller based on a first exploration preference and the first availability of the one or more resources, wherein the first exploration preference is based on an entropy value that corresponds with a learning gradient based on exploring unseen neural network architectures in previous trainings of different neural network architectures, the entropy value being further based on (i) the first set of components of the first neural network architecture and (ii) a performance level of the first candidate model; and

iteratively generate a second neural network architecture based on a second availability of the one or more resources by modifying the first neural network architecture based on the first exploration preference, wherein a number of new components are interconnected with the first set of components to train a second candidate model;

adapt the first exploration preference to a decrease of the second availability of the one or more resources for generating models by performing an exponential decay of the first exploration preference based on the learning gradient to generate a second exploration preference, the exponential decay causing the second exploration preference to correspond to an exponentially constrained preference for sampling new components based on a remaining time for performing an architecture search;

iteratively generate a third neural network architecture based on a third availability of the one or more resources by modifying the second neural network architecture based on the second exploration preference, wherein the number of new components interconnected with the first set of components is reduced and a number of previously sampled components is increased—based on the exponential decay of the first exploration preference to train a third candidate model; and

compare a performance level of the first candidate model applied to the training data, a performance level of the second candidate model, and a performance level of the third candidate model to identify whether the first exploration preference or the second exploration preference produces a preferred neural network architecture.

16. The non-transitory computer readable medium of claim 15 , further comprising instructions to:

generate the second or more candidate models by exploring an architecture space based on the first exploration preference and the performance level of the trained first candidate model, exploration of the architecture space comprising generating a second sample of the architecture space, the second sample comprising the new components;

train the second or more candidate models; and

determine a respective performance level of each trained candidate model of the trained second or more candidate models;

wherein an output of the one of the first trained candidate model or the second trained candidate model is based on a comparison of the performance levels of each of the first, second and more trained candidate models.

17. The non-transitory computer readable medium of claim 15 , wherein the controller initializes a search model with hyper-parameters comprising operational training parameters for the search model, and wherein the hyper-parameters are received by the initialized controller comprising a recurrent neural network (RNN), and further comprising instructions to:

determine an exploitation reward based on the generated first candidate model, the exploitation reward corresponding to a preference for including known model components in a generated model; and

update the RNN based on either one or both of the exploitation reward and the exploration preference, wherein the initialized controller uses the updated RNN to explore an architecture space of the second neural network architecture.

18. The non-transitory computer readable medium of claim 15 , wherein the one or more resources for generating models includes a remaining compute power.

19. The non-transitory computer readable medium of claim 15 , wherein determining the first availability of the one or more resources comprises making an application programming interface (API) call to one or more external resources.

20. The non-transitory computer readable medium of claim 15 , wherein the first exploration preference is proportional to the availability of the one or more resources for generating models.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2019
From: SINGH, ABHISHEK; DUTTA, DEBOJYOTI
To: CISCO TECHNOLOGY, INC.
Reel/Frame 048633/0907 →
Continuity (1)
Related Publication 20200302270A1 · Sep 24, 2020
Cited By (1)
US 12,488,234