Oracles
This section contains information about the different oracles for $\texttt{OAVI}$.
Frank-Wolfe
ApproximateVanishingIdeals.conditional_gradients
— FunctionReturns coefficient_vector and loss found through CG-based algorithm fit to 'data'.
Arguments
- 'oracle_type::String': type of CG-based algorithm (choice from 'CG', 'BCG', 'BPCG')
- 'data::Matrix{Float64}': evaluations of O_terms
- 'labels::Vector{Float64}': current border term evaluated
- 'lambda::Union{Float64, Int64}': regularization parameter
- 'data_squared::Matrix{Float64}': data' * data
- 'data_labels::Vector{Float64}': data' * labels
- 'labels_squared::Float64': labels' * labels
- 'datasquaredinverse::Union{Matrix{Float64}, Nothing}': inverse of data_squared for IHB, optional (default is nothing)
- 'psi::Float64': vanishing parameter, optional (default is 0.1)
- 'epsilon::Float64': solver accuracy, optional (default is 0.001)
- 'tau::Float64': bound on coefficient_vector norm, optional (default is 1000.)
- 'inversehessianboost::String': whether or not to use IHB (choice from 'false', 'weak', 'full'), optional (default is 'false')
Returns
- 'coefficientvector::Vector{Float64}': coefficientvector minimizing L2Loss over L1Ball
- 'loss::Float64': loss w.r.t. 'coefficient_vector'
Objective function
Tied to the Frank-Wolfe
oracles is the construction of the objective function, the L2-loss function.
ApproximateVanishingIdeals.L2Loss
— FunctionCreates and returns objective function, gradient and solution (through inversion) w.r.t. L2 loss.
Arguments
- 'data::Matrix{Float64}': evaluations of O_terms
- 'labels::Vector{Float64}': current border term evaluated
- 'lambda::Union{Float64, Int64}': regularization parameter
- 'data_squared::Matrix{Float64}': data' * data
- 'data_labels::Vector{Float64}': data' * labels
- 'labels_squared::Float64': labels' * labels
- 'datasquaredinverse::Union{Matrix{Float64}, Nothing}': inverse of data_squared for IHB, optional (default is nothing)
Returns
- 'solution::Vector{Float64}': solution to (unconstrained) minimization problem
- 'evaluate_function<:Function': objective function
- 'evaluate_gradient!<:Function': gradient of objective function, adjusted to FrankWolfe requirements
Approximate Buchberger-Möller (ABM)
ApproximateVanishingIdeals.abm
— FunctionRuns ABM algorithm to find coefficient vector and computes loss.
Arguments
- 'oracle_type::String': string denoting which oracle to construct
- 'data::Matrix{Float64}': data (O_evaluations)
- 'labels::Vector{Float64}': labels (term_evaluated)
- 'lambda::Union{Float64, Int64}': regularization parameter (if applicable)
- 'data_squared::Matrix{Float64}': squared data
- 'data_labels::Vector{Float64}': data' * labels
- 'labels_squared::Float64': labels' * labels
- 'datasquaredinverse::Union{Matrix{Float64}, Nothing}': inverse of data_squared (default is nothing)
Returns
- 'coefficient_vector::Vector{Float64}': coefficient vector minimizing ABM optimization problem
- 'loss::Float64': loss w.r.t. 'coefficient_vector'