MAP Estimation
BFlux.BNNModeFinder
— TypeFind the mode of a BNN.
Find the mode of a BNN using optimiser
. Each optimiser
must have implemented a function step!(optimiser, θ, ∇θ)
which makes one optimisation step given gradient function ∇θ(θ) and current parameter vector θ. The function must return θ as the first return value and a flag has_converged
indicating whether the optimisation procedure should be stopped.
BFlux.find_mode
— Functionfind_mode(bnn::BNN, batchsize::Int, epochs::Int, optimiser::BNNModeFinder)
Find the mode of a BNN.
Arguments
bnn::BNN
: A Bayesian Neural Network formed usingBNN
.batchsize::Int
: Batchsize used for stochastic gradients.epochs::Int
: Number of epochs to run for.optimiser::BNNModeFinder
: An optimiser.
Keyword Arguments
shuffle::Bool=true
: Should data be shuffled after each epoch?partial::Bool=true
: Is it allowed to use a batch that is smaller thanbatchsize
?showprogress::Bool=true
: Show a progress bar?
BFlux.FluxModeFinder
— TypeFluxModeFinder(bnn::BNN, opt::O; windowlength = 100, ϵ = 1e-6) where {O<:Flux.Optimise.AbstractOptimiser}
Use one of Flux optimisers to find the mode. Keep track of changes in θ over a window of windowlegnth
and report convergence if the maximum change over the current window is smaller than ϵ.