class_docstr: Particle Swarm Optimization of Neural Network.
  
  Parameters:
  -----------
  n_individuals: int
      The number of neural networks that are allowed in the population at a time.
  model_builder: method
      A method which returns a user specified NeuralNetwork instance.
  inertia_weight:     float [0,1)
  cognitive_weight:   float [0,1)
  social_weight:      float [0,1)
  max_velocity: float
      The maximum allowed value for the velocity.
  
  Reference:
      Neural Network Training Using Particle Swarm Optimization
      https://visualstudiomagazine.com/articles/2013/12/01/neural-network-training-using-particle-swarm-optimization.aspx 
docstr: Initialization of the neural networks forming the population
docstr_tok: ["Initialization","of","the","neural","networks","forming","the","population"]
code: def _initialize_population(self):
      """Initialization of the neural networks forming the population"""
      self.population = []
      for i in range(self.population_size):
          model = self._build_model(id=i)
          self.population.append(model)
  
file_path: ML-From-Scratch/mlfromscratch/supervised_learning/particle_swarm_optimization.py
imports: from __future__ import print_function, division
  import numpy
  import copy
label_desc: Use image node_id 3 for calling the ParticleSwarmOptimizedNN obj's underlying member method code with example usage: obj._initialize_population() without return types