A computer-implemented method for training a learning machine, the method performed using a master node in communication with a plurality of worker nodes, the method comprising: broadcasting, using the master node, an initial global model for a training cycle to the plurality of worker nodes; generating, at each of the plurality of worker nodes in parallel, an updated local model, based on a data split assigned to the worker node and the initial global model for the training cycle; receiving, at the master node an updated local model from each of the plurality of worker nodes; using the master node, aggregating the plurality of updated local models to obtain an aggregated model; and using the master node, generating an updated global model for the training cycle based at least on the aggregated model and historical information which is obtained from a preceding training cycle; wherein generating the updated global model for the training cycle further comprises: determining a first global model update based on the aggregated model and the initial global model for the training cycle; and the method is characterised in that it further comprises: filtering out a noisy component of the first global model update using the historical information from the preceding training cycle to determine a second global model update; and generating the updated global model for the training cycle based on an updated global model for the preceding training cycle and the second global model update. broadcasting, using the master node, an initial global model for a training cycle to the plurality of worker nodes; generating, at each of the plurality of worker nodes in parallel, an updated local model, based on a data split assigned to the worker node and the initial global model for the training cycle; receiving, at the master node an updated local model from each of the plurality of worker nodes; using the master node, aggregating the plurality of updated local models to obtain an aggregated model; and using the master node, generating an updated global model for the training cycle based at least on the aggregated model and historical information which is obtained from a preceding training cycle; wherein generating the updated global model for the training cycle further comprises: determining a first global model update based on the aggregated model and the initial global model for the training cycle; and the method is characterised in that it further comprises: filtering out a noisy component of the first global model update using the historical information from the preceding training cycle to determine a second global model update; and generating the updated global model for the training cycle based on an updated global model for the preceding training cycle and the second global model update. determining a first global model update based on the aggregated model and the initial global model for the training cycle; and the method is characterised in that it further comprises: filtering out a noisy component of the first global model update using the historical information from the preceding training cycle to determine a second global model update; and generating the updated global model for the training cycle based on an updated global model for the preceding training cycle and the second global model update. filtering out a noisy component of the first global model update using the historical information from the preceding training cycle to determine a second global model update; and generating the updated global model for the training cycle based on an updated global model for the preceding training cycle and the second global model update.