clusterCounts.put(closest_center, current_count+1.0);
// Get per center learning rate
Double learning_rate = 1.0/clusterCounts.get(closest_center);
// take gradient step
StringKeyedVector center = param.get(closest_center);
center.mul(1-learning_rate);
instance.mul(learning_rate);
center.add(instance);
l1Projection(center);
param.put(closest_center, center);
}