IP Library Granted Patent US 12,141,691
Granted Patent B2
US 12,141,691 · App. 16/968,413 · Granted Nov 12, 2024

Generating output examples using recurrent neural networks conditioned on bit values

Inventors: Nal Emmerich Kalchbrenner (London, GB); Karen Simonyan (London, GB); Erich Konrad Elsen (San Francisco, CA)
Assignee: DeepMind Technologies Limited
G06N3/08G06F18/2113G06N3/045G06N3/063H03K19/173
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,141,691
App. No.
16/968,413
Granted
Nov 12, 2024
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for generating output examples using neural networks. Each output example includes multiple N-bit output values. To generate a given N-bit output value, a first recurrent input comprising the preceding N-bit output value is processed using a recurrent neural network and in accordance with a hidden state to generate a first score distribution. Then, values for the first half of the N bits are selected. A second recurrent input comprising (i) the preceding N-bit output value and (ii) the values for the first half of the N bits are processed using the recurrent neural network and in accordance with the same hidden state to generate a second score distribution. The values for the second half of the N bits of the output value are then selected using the second score distribution.

Claims (48)

1. A method of generating an output example comprising a respective N-bit output value at each generation time step of a sequence of generation time steps, the method comprising, for each generation time step:

processing, by a set of one or more computers, a first recurrent input comprising the N-bit output value at the preceding generation time step in the sequence using a recurrent neural network implemented on the set of one or more computers and in accordance with a hidden state of the recurrent neural network to generate a first score distribution over possible values for a first half of the N bits in the output value at the generation time step;

selecting, by the set of one or more computers and using the first score distribution, values for the first half of the N bits of the output value;

processing, by the set of one or more computers, a second recurrent input comprising (i) the N-bit output value at the preceding generation time step in the sequence and (ii) the values for the first half of the N bits using the recurrent neural network and in accordance with the same hidden state to generate a second score distribution over possible values for a second half of the N bits in the output value at the generation time step; and

selecting, by the set of one or more computers and using the second score distribution, values for the second half of the N bits of the output value.

2. The method of claim 1 , wherein the output value is conditioned on a respective conditioning input at each of the generation time steps, and wherein the first recurrent input and the second recurrent input each also comprise the conditioning input for the generation time step.

3. The method of claim 2 , further comprising:

generating the conditioning input at the generation time step by processing conditioning features using a conditioning neural network.

4. The method of claim 1 , wherein the recurrent neural network comprises one or more first output layers and one or more second output layers, and wherein processing the first recurrent input comprises:

processing the first recurrent input to generate a first half of an updated hidden state; and

processing the first half of the updated hidden state using the one or more first output layers to generate the first score distribution.

5. The method of claim 4 , wherein processing the second recurrent input comprises: processing the second recurrent input to generate a second half of an updated hidden state; and

processing the second half of the updated hidden state using the one or more second output layers to generate the second score distribution.

6. The method of claim 5 , wherein the one or more first output layers are configured to:

apply a first weight matrix to the first half of the updated hidden state to generate a first projected updated hidden state,

apply an element-wise non-linear activation function to the first projected updated hidden state to generate a first activation vector,

apply a second weight matrix to the first activation vector to generate first logits, and

apply a softmax function to the first logits to generate the first score distribution.

7. The method of claim 6 , wherein the one or more second output layers are configured to:

apply a third weight matrix to the second half of the updated hidden state to generate a second projected updated hidden state,

apply the element-wise non-linear activation function to the second projected updated hidden state to generate a second activation vector,

apply a fourth weight matrix to the second activation vector to generate second logits, and

apply the softmax function to the second logits to generate the second score distribution.

8. The method of claim 5 , wherein the recurrent neural network includes one or more gates, and wherein processing the first recurrent input comprises:

determining a respective recurrent contribution for each gate by applying a recurrent weight matrix to the hidden state; and

for each of the one or more gates:

determining a first input contribution for the gate from the first recurrent input, and

determining a first gate vector for the gate from at least the recurrent contribution for the gate and the first input contribution for the gate; and

generating the first half of the updated hidden state from the first gate vectors and the hidden state.

9. The method of claim 8 , wherein processing the second recurrent input comprises:

for each of the one or more gates:

determining a second input contribution for the gate from the second recurrent input, and

determining a second gate vector for the gate from at least the recurrent contribution for the gate and the second input contribution for the gate; and

generating the second half of the updated hidden state from the second gate vectors and the hidden state.

10. The method of claim 9 , wherein processing the second recurrent input comprises generating the second half of the updated hidden state without re-computing the recurrent contributions for the gates from the processing of the first recurrent input.

11. The method of claim 1 , wherein the recurrent neural network includes a single recurrent layer.

12. The method of claim 1 , wherein the first half of the N bits are the most significant bits and the second half of the N bits are the least significant bits.

13. The method of claim 1 , wherein selecting, using the first score distribution, values for the first half of the N bits of the output value comprises sampling the values from the first score distribution, and wherein selecting, using the second score distribution, values for the second half of the N bits of the output value comprises sampling the values from the second score distribution.

14. The method of claim 1 , further comprising loading parameters of the recurrent neural network into registers of a processing unit only once at the start of generating the output example, wherein the parameters of the recurrent neural network persist in the registers throughout the generating the output example.

15. The method of claim 1 wherein the set of one or more computers are a mobile device.

16. The method of claim 1 , wherein the respective output values at each generation time step are audio data values that define an audio waveform.

17. The method of claim 16 , wherein:

the audio waveform represents an utterance of a piece of text for converting text to speech.

18. A system comprising one or more computers and one or more storage devices storing instructions that when executed by the one or more computers cause the one or more computers to perform operations for generating an output example comprising a respective N-bit output value at each generation time step of a sequence of generation time steps, the operations comprising, for each generation time step:

processing a first recurrent input comprising the N-bit output value at the preceding generation time step in the sequence using a recurrent neural network implemented on the one or more computers and in accordance with a hidden state of the recurrent neural network to generate a first score distribution over possible values for a first half of the N bits in the output value at the generation time step;

selecting, using the first score distribution, values for the first half of the N bits of the output value;

processing a second recurrent input comprising (i) the N-bit output value at the preceding generation time step in the sequence and (ii) the values for the first half of the N bits using the recurrent neural network and in accordance with the same hidden state to generate a second score distribution over possible values for a second half of the N bits in the output value at the generation time step; and

selecting, using the second score distribution, values for the second half of the N bits of the output value.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2025
From: DEEPMIND TECHNOLOGIES LIMITED
To: GDM HOLDING LLC
Reel/Frame 071109/0414 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2020
From: KALCHBRENNER, NAL EMMERICH; SIMONYAN, KAREN; ELSEN, ERICH KONRAD
To: DEEPMIND TECHNOLOGIES LIMITED
Reel/Frame 053654/0612 →