Methods, systems, and apparatus, including computer programs encoded on computer storage media, for augmenting neural networks with an external memory. One of the methods includes providing an output derived from a first portion of a neural network output as a system output; determining one or more sets of writing weights for each of a plurality of locations in an external memory; writing data defined by a third portion of the neural network output to the external memory in accordance with the sets of writing weights; determining one or more sets of reading weights for each of the plurality of locations in the external memory from a fourth portion of the neural network output; reading data from the external memory in accordance with the sets of reading weights; and combining the data read from the external memory with a next system input to generate the next neural network input.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. An augmented neural network system for processing a sequence of system inputs to generate a sequence of system outputs, the augmented neural network system comprising: a neural network, wherein the neural network is configured to receive a sequence of neural network inputs and to process each neural network input to generate a neural network output from the neural network input; an external memory; and a memory interface subsystem, wherein the memory interface subsystem is configured to perform operations comprising, for each of the neural network outputs: providing an output derived from a first portion of the neural network output as a system output in the sequence of system outputs; determining one or more sets of writing weights for each of a plurality of locations in the external memory from a second portion of the neural network output; writing data defined by a third portion of the neural network output to the external memory in accordance with the sets of writing weights; determining one or more sets of reading weights for each of the plurality of locations in the external memory from a fourth portion of the neural network output; reading data from the external memory in accordance with the sets of reading weights; and combining the data read from the external memory with a next system input in the sequence of system inputs to generate a next neural network input in the sequence of neural network inputs. 2. The augmented neural network system of claim 1, the operations further comprising, for each of the neural network outputs: determining one or more sets of erasing weights for each of the plurality of locations in the external memory from a fifth portion of the neural network output; and erasing data from the external memory in accordance with the sets of erasing weights. 3. The augmented neural network system of claim 2, wherein the sets of erasing weights are the same as the sets of writing weights and the second portion is the same as the fifth portion. 4. The augmented neural network system of claim 1, wherein determining each of the one or more sets of writing weights comprises: determining a set of content-based writing weights from the second portion of the neural network output. 5. The augmented neural network system of claim 4, wherein determining each of the one or more sets of writing weights further comprises: determining a set of location-based writing weights; and adjusting the content-based writing weights using the location-based writing weights to generate the set of writing weights. 6. The augmented neural network system of claim 1, wherein determining each of the one or more sets of reading weights comprises: determining a set of content-based reading weights from the fourth portion of the neural network output. 7. The augmented neural network system of claim 6, wherein determining each of the one or more sets of reading weights further comprises: determining a set of location-based reading weights; and adjusting the content-based reading weights using the location-based reading weights to generate the set of reading weights. 8. The augmented neural network system of claim 1, wherein reading data from the external memory in accordance with the sets of reading weights comprises, for each set of reading weights: determining a weighted average of values stored in the plurality of locations in the external memory in accordance with the reading weights in the set of reading weights. 9. The augmented neural network system of claim 1, wherein writing data defined by the third portion of the neural network output to the external memory in accordance with the sets of writing weights comprises, for each of the sets of writing weights: determining, from the third portion of the neural network output, a write vector for the set of writing weights; and writing the write vector to the plurality of locations in accordance with the set of writing weights. 10. A method for processing a sequence of system inputs to generate a sequence of system outputs using an augmented neural network system comprising a neural network and an external memory, wherein the neural network is configured to receive a sequence of neural network inputs and to process each neural network input to generate a neural network output from the neural network input, and wherein the method comprises, for each neural network output: providing an output derived from a first portion of the neural network output as a system output in the sequence of system outputs; determining one or more sets of writing weights for each of a plurality of locations in the external memory from a second portion of the neural network output; writing data defined by a third portion of the neural network output to the external memory in accordance with the sets of writing weights; determining one or more sets of reading weights for each of the plurality of locations in the external memory from a fourth portion of the neural network output; reading data from the external memory in accordance with the sets of reading weights; and combining the data read from the external memory with a next system input in the sequence of system inputs to generate a next neural network input in the sequence of neural network inputs. 11. The method of claim 10, further comprising, for each of the neural network outputs: determining one or more sets of erasing weights for each of the plurality of locations in the external memory from a fifth portion of the neural network output; and erasing data from the external memory in accordance with the sets of erasing weights. 12. The method of claim 11, wherein the sets of erasing weights are the same as the sets of writing weights and the second portion is the same as the fifth portion. 13. The method of claim 10, wherein determining each of the one or more sets of writing weights comprises: determining a set of content-based writing weights from the second portion of the neural network output. 14. The method of claim 13, wherein determining each of the one or more sets of writing weights further comprises: determining a set of location-based writing weights; and adjusting the content-based writing weights using the location-based writing weights to generate the set of writing weights. 15. The method of claim 10, wherein determining each of the one or more sets of reading weights comprises: determining a set of content-based reading weights from the fourth portion of the neural network output. 16. The method of claim 15, wherein determining each of the one or more sets of reading weights further comprises: determining a set of location-based reading weights; and adjusting the content-based reading weights using the location-based reading weights to generate the set of reading weights. 17. The method of claim 10, wherein reading data from the external memory in accordance with the sets of reading weights comprises, for each set of reading weights: determining a weighted average of values stored in the plurality of locations in the external memory in accordance with the reading weights in the set of reading weights. 18. The method of claim 10, wherein writing data defined by the third portion of the neural network output to the external memory in accordance with the sets of writing weights comprises, for each of the sets of writing weights: determining, from the third portion of the neural network output, a write vector for the set of writing weights; and writing the write vector to the plurality of locations in accordance with the set of writing weights. 19. A computer program product encoded on one or more non-transitory computer storage media, the computer program product storing instructions that when executed by one or more computers cause the one or more computers to perform operations for processing a sequence of system inputs to generate a sequence of system outputs using an augmented neural network system comprising a neural network and an external memory, wherein the neural network is configured to receive a sequence of neural network inputs and to process each neural network input to generate a neural network output from the neural network input, and wherein the operations comprise, for each neural network output: providing an output derived from a first portion of the neural network output as a system output in the sequence of system outputs; determining one or more sets of writing weights for each of a plurality of locations in the external memory from a second portion of the neural network output; writing data defined by a third portion of the neural network output to the external memory in accordance with the sets of writing weights; determining one or more sets of reading weights for each of the plurality of locations in the external memory from a fourth portion of the neural network output; reading data from the external memory in accordance with the sets of reading weights; and combining the data read from the external memory with a next system input in the sequence of system inputs to generate a next neural network input in the sequence of neural network inputs. 20. The computer program product of claim 19, the operations further comprising, for each of the neural network outputs: determining one or more sets of erasing weights for each of the plurality of locations in the external memory from a fifth portion of the neural network output; and erasing data from the external memory in accordance with the sets of erasing weights.