This function takes a list of matrices (with the same number of columns) and iteratively updates them to make the columns within each matrix more orthogonal. It stops when the change in the total orthogonality error is below a given tolerance or when the maximum number of iterations is reached.

orthogonalize_feature_space(
  matrix_list,
  max_iterations = 100,
  learning_rate = 0.05,
  tolerance = 1e-04,
  verbose = TRUE
)

Arguments

matrix_list

A list of numeric matrices. All matrices must have the same number of columns (e.g., k components).

max_iterations

The maximum number of gradient descent iterations to perform.

learning_rate

The step size for each update.

tolerance

The convergence threshold. The algorithm stops if the absolute change in the total orthogonality defect between iterations is less than this value.

verbose

If TRUE, prints the orthogonality error at each iteration.

Value

A list of orthogonalized matrices with the same dimensions as the input.