Class TrustRegionUpdateCauchy_F64<S extends DMatrix>
- All Implemented Interfaces:
TrustRegionBase_F64.ParameterUpdate<S>
The Cauchy point is an approximate solution to the Trust Region subproblem. It's direction is found by solving a linear version of the subproblem and he point's location along the direction is found by minimizing the sub problem along the direction.
The Hessian does not need to be invertible making it more robust. All though the convergence is slower than other approaches.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
computeUpdate
(DMatrixRMaj step, double regionRadius) Compute the value of p given a new parameter state x and the region radius.double
Returns the predicted reduction from the quadratic model.
reduction = m(0) - m(p) = -g(0)*p - 0.5*pT*H(0)*pdouble
This function returns ||p||.void
initialize
(TrustRegionBase_F64<S, ?> owner, int numberOfParameters, double minimumFunctionValue) Must call this function first.void
Initialize the parameter update.void
setVerbose
(@Nullable PrintStream out, int level)
-
Constructor Details
-
TrustRegionUpdateCauchy_F64
public TrustRegionUpdateCauchy_F64()
-
-
Method Details
-
initialize
public void initialize(TrustRegionBase_F64<S, ?> owner, int numberOfParameters, double minimumFunctionValue) Description copied from interface:TrustRegionBase_F64.ParameterUpdate
Must call this function first. Specifies the number of parameters that are being optimized.- Specified by:
initialize
in interfaceTrustRegionBase_F64.ParameterUpdate<S extends DMatrix>
minimumFunctionValue
- The minimum possible value that the function can output
-
initializeUpdate
public void initializeUpdate()Description copied from interface:TrustRegionBase_F64.ParameterUpdate
Initialize the parameter update. This is typically where all the expensive computations take place Useful internal class variables:GaussNewtonBase_F64.x
current stateGaussNewtonBase_F64.gradient
Gradient a xGaussNewtonBase_F64.hessian
Hessian at x
- Specified by:
initializeUpdate
in interfaceTrustRegionBase_F64.ParameterUpdate<S extends DMatrix>
-
computeUpdate
Description copied from interface:TrustRegionBase_F64.ParameterUpdate
Compute the value of p given a new parameter state x and the region radius.- Specified by:
computeUpdate
in interfaceTrustRegionBase_F64.ParameterUpdate<S extends DMatrix>
- Parameters:
step
- (Output) change in stateregionRadius
- (Input) Radius of the region
-
getPredictedReduction
public double getPredictedReduction()Description copied from interface:TrustRegionBase_F64.ParameterUpdate
Returns the predicted reduction from the quadratic model.
reduction = m(0) - m(p) = -g(0)*p - 0.5*pT*H(0)*pThis computation is done inside the update because it can often be done more efficiently without repeating previous computations
- Specified by:
getPredictedReduction
in interfaceTrustRegionBase_F64.ParameterUpdate<S extends DMatrix>
-
getStepLength
public double getStepLength()Description copied from interface:TrustRegionBase_F64.ParameterUpdate
This function returns ||p||.This computation is done inside the update because it can often be done more efficiently without repeating previous computations
- Specified by:
getStepLength
in interfaceTrustRegionBase_F64.ParameterUpdate<S extends DMatrix>
- Returns:
- step length
-
setVerbose
- Specified by:
setVerbose
in interfaceTrustRegionBase_F64.ParameterUpdate<S extends DMatrix>
-