Documentation
¶
Overview ¶
Package infer contains inference algorithms: maximum likelihood estimation by gradient descent and approximation of the posterior by Markov Chain Monte Carlo methods (notably Hamiltonian Monte Carlo family of algorithms).
Index ¶
- func FuncGrad(m model.Model) (Func func(x []float64) float64, Grad func(grad, x []float64))
- func Optimize(opt Grad, m model.Model, x []float64, niter, nplateau int, eps float64) (iter int, ll0, ll float64)
- type Adam
- type DepthAdapter
- type DualAveraging
- type Grad
- type HMC
- type MCMC
- type Momentum
- type NUTS
- type Sampler
- type SgHMC
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Adam ¶
type Adam struct { Rate float64 // learning rate Beta1 float64 // first momentum factor Beta2 float64 // second momentum factor Eps float64 // stabilizer // contains filtered or unexported fields }
Adam (https://arxiv.org/abs/1412.6980).
type DepthAdapter ¶
type DepthAdapter struct { DualAveraging Depth float64 NAdpt int MinGrad float64 }
Parameters of adaptation to the target depth
type DualAveraging ¶
type DualAveraging struct {
Rate float64
}
Parameters of dual averaging.
func (*DualAveraging) Step ¶
func (da *DualAveraging) Step(t, x, gradSum float64) float64
Step implements Nesterov's primal-dual averaging, oversimplified.
chi = -gradSum/math.Sqrt(t) eta = Rate/t x = eta*chi + (1-eta)*x
type Grad ¶
Grad is the interface of gradient-based optimizers. Step makes a single step over parameters in the gradient direction.
type HMC ¶
type HMC struct { Sampler // Parameters L int // number of leapfrog steps Eps float64 // leapfrog step size }
Vanilla Hamiltonian Monte Carlo Sampler.
type Momentum ¶
type Momentum struct { Rate float64 //learning rate Decay float64 // rate decay Gamma float64 // gradient momentum factor // contains filtered or unexported fields }
Gradient ascent with momentum (https://www.nature.com/articles/323533a0). If the momentum factor is not set, and thus 0, reduces to vanilla gradient ascent.
type NUTS ¶
type NUTS struct { Sampler // Parameters Eps float64 // step size Delta float64 // lower bound on energy for doubling MaxDepth int // maximum depth // Statistics // Depth belief is encoded as a vector of beta-bernoulli // distributions. If the depth is greater than the element's // index i, Depth[i][0] is incremented; for index depth, // Depth[depth][1] is incremented. Depth [][2]float64 // depth belief // contains filtered or unexported fields }
No U-Turn Sampler (https://arxiv.org/abs/1111.4246).
type Sampler ¶ added in v0.9.0
type Sampler struct { Stopped bool Samples chan []float64 // Statistics NAcc, NRej int // the number of accepted and rejected samples }
Sampler is the structure for embedding into concrete samplers.
type SgHMC ¶ added in v0.8.0
type SgHMC struct { Sampler // Parameters L int // number of steps // The parameterization follows Equation (15) in // https://arxiv.org/abs/1402.4102 Eta float64 // learning rate Alpha float64 // friction (1 - momentum) V float64 // diffusion }
Stochastic gradient Hamiltonian Monte Carlo