To solve this problem, we propose Distributed Neural Network Optimization (DiNNO), an algorithm built on the alternating direction method of multipliers (ADMM) [1]}, and that integrates easily with standard deep learning tool sets like PyTorch. Using DiNNO, robots alternate between local optimization of an objective function, and communication of intermediate network weights over the wireless network. The robots eventually reach a consensus on their network weights, with each robot learning a neural network that is as good as if it had been trained centrally with the data from all robots, as illustrated graphically in Figure REF . DiNNO inherits the strong convergence properties of ADMM—for convex objective functions we prove that all robots obtain globally optimal parameters. However, neural network training is rarely convex. Using standard deep learning tools within DiNNO we are able to retrieve state-of-the-art deep learning performance, but in a distributed, multi-robot implementation. DiNNO can accommodate time-varying communication graphs (e.g., due to robot motion), and also suits streaming data or online learning, if robots train their network while they move and collect data. Finally, DiNNO operates by sharing network weights over the communication network, not raw data. Therefore, robots using DiNNO preserve the privacy and integrity of their own local data set. This is crucial in scenarios where user data or observations of humans are involved, or when different robot manufacturers need to preserve the privacy of their own data sets.
