Altopt: Alternating optimization of the weighted classification loss

View source: R/signT.R

AltoptR Documentation

Alternating optimization of the weighted classification loss

Description

Optimize the weighted classification loss given a weight tensor, an observed data tensor, and a large margin loss. This function is used as a subroutine in the main function fit_nonparaT.

Usage

Altopt(Ybar,W,r,type = c("logistic","hinge"),start = "linear")

Arguments

Ybar

A given (possibly noisy and incomplete) data tensor.

W

A weight tensor used in the weighted classification loss.

r

A rank to be fitted (CP rank).

type

A large margin loss to be used. Logistic or hinge loss is available.

start

Choice of initialization method. Use random initialization if start = "random"; Use the initialization based on low rank approximation if start = "linear". Linear initialization is default.

Value

The returned object is a list of components.

binary_obj - Trajectory of binary loss values over iterations.

obj - Trajectory of weighted classification loss values over iterations.

iter - The number of iterations.

error - Trajectory of errors over iterations.

fitted - A tensor that optimizes the weighted classification loss.

References

C. Lee and M. Wang. Beyond the Signs: Nonparametric Tensor Completion via Sign Series. Neural Information Processing Systems 34 (NeurIPS), 2021.

Examples

library(tensorregress)
indices = c(2,2,2)
noise = rand_tensor(indices)@data
Theta = array(runif(prod(indices),min=-3,max = 3),indices)

# The signal plus noise model
Y = Theta + noise

# Optimize the weighted classification for given a sign tensor sign(Y) and a weight tensor abs(Y)
result = Altopt(sign(Y),abs(Y),r = 3,type = "hinge",start = "linear")
signTheta = sign(result$fitted)


TensorComplete documentation built on April 14, 2023, 9:10 a.m.