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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcomputeUpdate(DMatrixRMaj step, double regionRadius) Compute the value of p given a new parameter state x and the region radius.doubleReturns the predicted reduction from the quadratic model.
reduction = m(0) - m(p) = -g(0)*p - 0.5*pT*H(0)*pdoubleThis function returns ||p||.voidinitialize(TrustRegionBase_F64<S, ?> owner, int numberOfParameters, double minimumFunctionValue) Must call this function first.voidInitialize the parameter update.voidsetVerbose(@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.ParameterUpdateMust call this function first. Specifies the number of parameters that are being optimized.- Specified by:
initializein 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.ParameterUpdateInitialize the parameter update. This is typically where all the expensive computations take place Useful internal class variables:GaussNewtonBase_F64.xcurrent stateGaussNewtonBase_F64.gradientGradient a xGaussNewtonBase_F64.hessianHessian at x
- Specified by:
initializeUpdatein interfaceTrustRegionBase_F64.ParameterUpdate<S extends DMatrix>
-
computeUpdate
Description copied from interface:TrustRegionBase_F64.ParameterUpdateCompute the value of p given a new parameter state x and the region radius.- Specified by:
computeUpdatein 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.ParameterUpdateReturns 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:
getPredictedReductionin interfaceTrustRegionBase_F64.ParameterUpdate<S extends DMatrix>
-
getStepLength
public double getStepLength()Description copied from interface:TrustRegionBase_F64.ParameterUpdateThis function returns ||p||.This computation is done inside the update because it can often be done more efficiently without repeating previous computations
- Specified by:
getStepLengthin interfaceTrustRegionBase_F64.ParameterUpdate<S extends DMatrix>- Returns:
- step length
-
setVerbose
- Specified by:
setVerbosein interfaceTrustRegionBase_F64.ParameterUpdate<S extends DMatrix>
-