Machine Learning Via Particle Optimization