IP Library › Granted Patent US 11,410,040
Granted Patent B2
US 11,410,040 · App. 16/168,015 · Granted Aug 9, 2022

Efficient dropout inference for bayesian deep learning

Inventors: Seungwoo Yoo (Yongin-si, KR); Heesoo Myeong (Cheongju-si, KR); Hee-Seok Lee (Yongin-si, KR); Hyun-Mook Cho (Seoul, KR)
Assignee: Qualcomm Incorporated
G06N3/082G06N3/04G06N5/04G06N7/005
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,410,040
App. No.
16/168,015
Granted
Aug 9, 2022
Kind
B2
Abstract

Certain aspects of the present disclosure are directed to methods and apparatus for deep learning in an artificial neural network. One example method generally includes receiving input data at an input to a layer of the neural network; replicating a group of neural processing units in the layer to form a superset of neural processing units, the superset comprising n instances of the group of neural processing units; processing the input data using the superset to generate output data for the layer; and determining an uncertainty of the output data. Processing the input data includes performing a dropout function by zeroing out one or more weights of a set of weights for each of the n instances of the superset of neural processing units and convolving, for each of the n instances in parallel, the input data with one or more non-zeroed out weights of the set of weights.

Claims (43)

1. A method for deep learning in an artificial neural network comprising a plurality of neural processing units, comprising:

receiving input data at an input to a layer of the neural network;

replicating a group of neural processing units in the layer of the neural network to form a superset of neural processing units, wherein the superset of neural processing units comprises n instances of the group of neural processing units;

processing the input data using the superset of neural processing units to generate output data for the layer of the neural network, wherein processing the input data comprises:

performing a dropout function by zeroing out one or more weights of a set of weights for each of the n instances of the superset of neural processing units; and

convolving, for each of the n instances of the superset of neural processing units in parallel, the input data with one or more non-zeroed out weights of the set of weights; and

determining an uncertainty of the output data for the layer of the neural network.

2. The method of claim 1 , wherein the n instances of the superset of neural processing units are independent from each other.

3. The method of claim 2 , wherein each instance of the n instances of the superset of neural processing units maintains no connections to other instances of the n instances of the superset of neural processing units.

4. The method of claim 1 , further comprising repeating the method a predetermined number of times using the output data as the received input data at the input to the layer of the neural network.

5. The method of claim 1 , wherein zeroing out the one or more weights comprises zeroing out different combinations of weights for each instance of the n instances of the superset of neural processing units.

6. The method of claim 5 , wherein zeroing out the different combinations of weights for each instance of the n instances of the superset of neural processing units comprises applying a predefined dropout mask to the superset of neural processing units.

7. The method of claim 6 , wherein the predefined dropout mask includes a predefined pattern of weights to zero out for each instance in the superset of neural processing units.

8. The method of claim 1 , further comprising determining n based on at least one of a computing budget associated with the neural network or a power budget associated with the neural network.

9. The method of claim 1 , further comprising determining in which of the n instances of the superset of neural processing units to zero out the weights based on at least one of a computing budget associated with the neural network or a power budget associated with the neural network.

10. The method of claim 1 , wherein:

the dropout function comprises a structured sparsity-styled dropout; and

performing the dropout function by zeroing out the one or more weights of the set of weights comprises zeroing out one or more groups of weights in the set of weights in at least one of a filter-wise, channel-wise, shape-wise, or depth-wise manner.

11. The method of claim 1 , wherein performing the dropout function comprises performing a Monte Carlo dropout.

12. The method of claim 1 , wherein determining the uncertainty comprises determining a variance of the output data for the layer of the neural network.

13. An apparatus for deep learning in an artificial neural network comprising a plurality of neural processing units, comprising:

at least one processor configured to:

receive input data at an input to a layer of the neural network;

replicate a group of neural processing units in the layer of the neural network to form a superset of neural processing units, wherein the superset of neural processing units comprises n instances of the group of neural processing units; and

process the input data using the superset of neural processing units to generate output data for the layer of the neural network, wherein processing the input data comprises:

performing a dropout function by zeroing out one or more weights of a set of weights for each of the n instances of the superset of neural processing units; and

convolving, for each of the n instances of the superset of neural processing units in parallel, the input data with one or more non-zeroed out weights of the set of weights; and

determine an uncertainty of the output data for the layer of the neural network; and

a memory coupled to the at least one processor.

14. The apparatus of claim 13 , wherein then instances of the superset of neural processing units are independent from each other.

15. The apparatus of claim 14 , wherein each instance of then instances of the superset of neural processing units maintains no connections to other instances of the n instances of the superset of neural processing units.

16. The apparatus of claim 13 , wherein the at least one processor is further configured to repeat the replicating, the processing, and the determining a predetermined number of times using the output data as the received input data at the input to the layer of the neural network.

17. The apparatus of claim 13 , wherein the at least one processor is configured to zero out the one or more weights by zeroing out different combinations of weights for each instance of the n instances of the superset of neural processing units.

18. The apparatus of claim 13 , wherein the at least one processor is further configured to determine n based on at least one of a computing budget associated with the neural network or a power budget associated with the neural network.

19. The apparatus of claim 13 , wherein the at least one processor is configured to determine the uncertainty by determining a variance of the output data for the layer of the neural network.

20. A non-transitory computer-readable medium for deep learning in an artificial neural network comprising a plurality of neural processing units, the medium comprising instructions that, when executed by at least one processor, configure the at least one processor to:

receive input data at an input to a layer of the neural network;

replicate a group of neural processing units in the layer of the neural network to form a superset of neural processing units, wherein the superset of neural processing units comprises n instances of the group of neural processing units;

process the input data using the superset of neural processing units to generate output data for the layer of the neural network, wherein processing the input data comprises:

performing a dropout function by zeroing out one or more weights of a set of weights for each of the n instances of the superset of neural processing units; and

convolving, for each of the n instances of the superset of neural processing units in parallel, the input data with one or more non-zeroed out weights of the set of weights; and

determine an uncertainty of the output data for the layer of the neural network.

21. The method of claim 1 , wherein each instance of the group of neural processing units is associated with a same set of weights.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2019
From: YOO, SEUNGWOO; MYEONG, HEESOO; LEE, HEE-SEOK; CHO, HYUN-MOOK
To: QUALCOMM INCORPORATED
Reel/Frame 048164/0298 →
Continuity (1)
Related Publication 20200125953A1 · Apr 23, 2020