Greedy Descent

NonArchimedeanMachineLearning.greedy_descentMethod
greedy_descent(loss::Loss, param::ValuationPolydisc{S,T,N}, next_branch::Int, settings::Tuple{Bool,Int}) where {S,T,N}

Perform one step of greedy descent optimization.

Computes children of the current parameter and selects the child that minimizes the loss. Can operate in strict mode (one coordinate at a time) or full mode (all coordinates).

Arguments

  • loss::Loss: The loss function structure
  • param::ValuationPolydisc{S,T,N}: Current parameter values
  • next_branch::Int: Index of next branch to descend (in strict mode)
  • settings::Tuple{Bool,Int}: (strict, degree) where strict enables single-coordinate descent

Returns

Tuple{ValuationPolydisc{S,T,N}, Int, Bool}: New parameters, next branch index, and convergence status

source
NonArchimedeanMachineLearning.greedy_descent_initMethod
greedy_descent_init(param::ValuationPolydisc{S,T,N}, loss::Loss, next_branch::Int, settings::Tuple{Bool,Int}) where {S,T,N}

Initialize an optimization setup for greedy descent.

Arguments

  • param::ValuationPolydisc{S,T,N}: Initial parameter values
  • loss::Loss: The loss function structure
  • next_branch::Int: Starting branch index for strict mode (typically 1)
  • settings::Tuple{Bool,Int}: (strict, degree) controlling descent behavior

Returns

OptimSetup: Configured optimization setup for greedy descent

source