Distributed Gradient Descent Optimization Algorithms