polarcbo.dynamic.EMCBO
- class polarcbo.dynamic.EMCBO(x, V, noise, beta=1.0, tau=0.01, lamda=1.0, sigma=0.1, num_components=1.0, lower_thresh=0.0)[source]
Bases:
ParticleDynamic
EMCBO class
This class implements the EM CBO algorithm. The algorithm is described in detail in [1]. The algorithm is a variant of the CBO algorithm that uses a Gaussian mixture model to approximate the distribution of the particles. The algorithm is initialized with a set of particles and a set of weights. The weights are used to initialize the Gaussian mixture model. The algorithm then proceeds to update the particles according to the following rule:
\[x_{k+1} = x_k - \lambda \tau \nabla \log p(x_k) + \sigma \mathcal{N}(0,I)\]where \(\lambda\) is the learning rate, \(\tau\) is the time step, \(\sigma\) is the noise parameter and \(\mathcal{N}(0,I)\) is a zero-mean isotropic Gaussian distribution.
- Parameters:
x (array_like) – The initial positions of the particles. For a system of \(J\) particles, the i-th row of this array
x[i,:]
represents the position \(x_i\) of the i-th particle.V (obejective) – The objective function \(V(x)\) of the system.
beta (float, optional) – The heat parameter \(\beta\) of the system. The default is 1.0.
tau (float, optional) – The time constant \(\tau\) of the noise model. The default is 0.01.
lamda (float, optional) – The learning rate \(\lambda\) of the algorithm. The default is 1.0.
sigma (float, optional) – The noise parameter \(\sigma\) of the algorithm. The default is 0.1.
num_components (int, optional) – The number of components of the Gaussian mixture model. The default is 1.
lower_thresh (float, optional) – The lower threshold of the covariance matrix of the Gaussian mixture model. The default is 0.0.
References