32 void set(
const Index = 0,
Loss* =
nullptr);
102 void compute_jacobian(
const Batch& batch,
106 void insert_dense_jacobian(
const Dense* layer,
109 Index parameter_offset,
111 float damping_parameter = 0.0f;
113 float minimum_damping_parameter = 0.0f;
115 float maximum_damping_parameter = 0.0f;
117 float damping_parameter_factor = 0.0f;
121 float minimum_loss_decrease = 0.0f;
Fully-connected layer with configurable activation, optional batch normalization and dropout.
Definition dense_layer.h:19
void set_maximum_damping_parameter(const float)
Sets the upper clamp on the damping parameter.
void update_parameters(const Batch &, ForwardPropagation &, BackPropagationLM &, OptimizerData &)
Solves the LM linear system for the parameter update and adapts the damping parameter.
void set_minimum_damping_parameter(const float)
Sets the lower clamp on the damping parameter.
void from_JSON(const JsonDocument &) override
Restores hyperparameters from a JSON document.
TrainingResults train() override
Runs the Levenberg-Marquardt training loop and returns the recorded error history.
void set_minimum_loss_decrease(const float)
Sets the minimum loss decrease that counts as progress between iterations.
void set_damping_parameter_factor(const float)
Sets the multiplicative factor used to grow/shrink the damping parameter between iterations.
DataSlot
Slot index into the optimizer scratch buffer (parameter update vector).
Definition levenberg_marquardt_algorithm.h:80
@ ParameterUpdate
Definition levenberg_marquardt_algorithm.h:80
void set_damping_parameter(const float)
Sets the initial damping parameter (mu) controlling step interpolation.
LevenbergMarquardtAlgorithm(Loss *=nullptr)
Constructs the LM optimizer optionally bound to a Loss instance.
void set_default()
Resets all hyperparameters and damping bounds to library defaults.
void to_JSON(JsonWriter &) const override
Serializes hyperparameters to JSON.
Unified loss container supporting MSE, cross-entropy, Minkowski, weighted, and regularized variants.
Definition loss.h:24
Container of layers forming a feed-forward neural network, with parameter storage and I/O.
Definition neural_network.h:20
Optimizer(Loss *=nullptr)
Constructs an optimizer optionally bound to a Loss instance.
Definition adaptive_moment_estimation.h:14
Matrix< float, Dynamic, 1 > VectorR
Definition pch.h:181
Matrix< float, Dynamic, Dynamic, Layout > MatrixR
Definition pch.h:177
Backprop scratch state specific to Levenberg-Marquardt (per-sample errors, Jacobian,...
Definition levenberg_marquardt_algorithm.h:26
VectorR output_deltas
Definition levenberg_marquardt_algorithm.h:36
void set(const Index=0, Loss *=nullptr)
Resizes the LM backprop state for the given sample count and loss.
virtual ~BackPropagationLM()=default
MatrixR squared_errors_jacobian
Definition levenberg_marquardt_algorithm.h:47
VectorR squared_errors
Definition levenberg_marquardt_algorithm.h:46
VectorR gradient
Definition levenberg_marquardt_algorithm.h:49
VectorR errors
Definition levenberg_marquardt_algorithm.h:45
MatrixR hessian
Definition levenberg_marquardt_algorithm.h:50
float error
Definition levenberg_marquardt_algorithm.h:41
BackPropagationLM(const Index=0, Loss *=nullptr)
Constructs LM backprop state sized for the given sample count and loss.
float loss_value
Definition levenberg_marquardt_algorithm.h:43
Index samples_number
Definition levenberg_marquardt_algorithm.h:34
float regularization
Definition levenberg_marquardt_algorithm.h:42
Shape output_delta_dimensions
Definition levenberg_marquardt_algorithm.h:37
Loss * loss
Definition levenberg_marquardt_algorithm.h:39
Minibatch container holding pinned host/device buffers and views into a Dataset.
Definition batch.h:19
Workspace holding the activations of every layer during a forward pass.
Definition forward_propagation.h:20
Per-optimizer scratch state (moments, directions, iteration counter) backing the update step.
Definition optimizer.h:182
Fixed-capacity small-vector describing tensor dimensions (rank up to MaxRank).
Definition tensor_utilities.h:42
History and final metrics produced by a training run.
Definition optimizer.h:204