A data processing system is disclosed for machine learning. The system comprises a sampling module (13) and a computational module (15) interconnected by a data communications link (17). The computational module is configured to store a parameter vector representing an energy function of a network having a plurality of visible units connected using links to a plurality of hidden units, each link being a relationship between two units. The sampling module is configured to receive the parameter vector from the first processing module and to sample from the probability distribution defined by the parameter vector to produce state vectors for the network. The computational module is further configured to receive the state vectors from the second processing module and to apply an algorithm to produce new data. The sampling and computational modules are configured to operate independently from one another.
Please help me write a proper abstract based on the patent claims. CLAIM: 1-48. (canceled) 49. A method comprising: storing, by a first processing module, a parameter vector representing an energy function of a network having a plurality of visible units connected using links to a plurality of hidden units, each link being a relationship between two units; and receiving, by the first processing module, the state vectors from a second processing module and applying an algorithm to produce new data, wherein the state vectors produced for the network by the second processing module are sampled from a probability distribution defined by the parameter vector produced by the first processing module; and wherein the sampling is performed independently from the producing the new data. 50. A method according to claim 49, comprising sampling and producing the new data at least partially in parallel. 51. A method according to claim 49, comprising sampling and/or producing the new data until a predetermined condition is reached, at which time data is exchanged from one processing module to the other processing module. 52. A method according to claim 51, wherein applying the algorithm comprises applying a learning algorithm to produce an updated parameter vector that is subsequently sent to the second processing module for re-sampling when the predetermined condition is reached. 53. A method according to claim 52, comprising sending the updated parameter vector to the second processing module for re-sampling when a predetermined plural number of iterations of the learning algorithm have been performed. 54. A method according to claim 49, wherein the algorithm takes as input the state vectors and the parameter vector to generate output data representing a probability distribution. 55. A method according to claim 49, comprising buffering the samples received prior to applying the algorithm. 56. A method according to claim 49, comprising using at least two samplers to generate the state vectors and, prior to applying the algorithm, receiving the sampled output from each and removing duplicates. 57. A method according to claim 49, wherein the second processing module is implemented as a quantum annealing machine. 58. A system comprising: a first processing module configured to store a parameter vector representing an energy function of a network having a plurality of visible units connected using links to a plurality of hidden units, each link being a relationship between two units; and wherein the first processing module is further configured to receive the state vectors from a second processing module and to apply an algorithm to produce new data, wherein the state vectors produced for the network by the second processing module are sampled from a probability distribution defined by the parameter vector produced by the first processing module. wherein the processing modules are configured to sample and produce the new data independently from one another. 59. A system according to claim 58, wherein the processing modules are configured to sample and produce the new data at least partially in parallel. 60. A system according to claim 58, wherein the processing modules are configured to sample and/or produce the new data until a predetermined condition is reached, at which time data is exchanged between the two processing modules. 61. A system according to claim 60, wherein the first processing module is configured to apply a learning algorithm to produce an updated parameter vector and subsequently to send it to the second processing module for re-sampling when the predetermined condition is reached. 62. A system according to claim 61, wherein the first processing module is configured to send the updated parameter vector to the second processing module for re-sampling when a predetermined plural number of iterations of the learning algorithm have been performed. 63. A system according to claim 58, wherein the first processing module is configured to take as input the state vectors and the parameter vector, and to generate output data representing a probability distribution. 64. A system according to claim 58, wherein the first processing module is configured to buffer the samples received prior to applying the algorithm. 65. A system according to claim 58, wherein the second processing module comprises at least two samplers configured to generate the state vectors and, prior to applying the algorithm, to receive the sampled output from each and to remove duplicates. 66. A system according to claim 58, wherein the first and second processing modules are implemented on different hardware modules having their own microprocessor or microcontroller. 67. A system according to claim 58, wherein the second processing module is implemented as a quantum annealing machine. 68. A non-transitory computer-readable storage medium having stored thereon computer-readable code, which, when executed by computing apparatus, causes the computing apparatus to perform a method comprising: storing, by a first processing module, a parameter vector representing an energy function of a network having a plurality of visible units connected using links to a plurality of hidden units, each link being a relationship between two units; and receiving, by the first processing module, the state vectors from a second processing module and applying an algorithm to produce new data, wherein the state vectors produced by the second processing module are sampled from a probability distribution defined by the parameter vector produced by the first processing module; and wherein the sampling is performed independently from the producing the new data.