Oracles

This section contains information about the different oracles for $\texttt{OAVI}$.

Frank-Wolfe

ApproximateVanishingIdeals.conditional_gradientsFunction

Returns 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'
source

Objective function

Tied to the Frank-Wolfe oracles is the construction of the objective function, the L2-loss function.

ApproximateVanishingIdeals.L2LossFunction

Creates 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
source

Approximate Buchberger-Möller (ABM)

ApproximateVanishingIdeals.abmFunction

Runs 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'
source

Index