Skip to contents

Function value and gradient calculation for ACMTF

Usage

acmtf_fg(x, Z, alpha = 1, beta = rep(0.001, length(Z$object)), epsilon = 1e-08)

Arguments

x

Vectorized parameters of the CMTF model.

Z

Z object as generated by setupCMTFdata().

alpha

Alpha value of the loss function as specified by Acar et al., 2014

beta

Beta value of the loss function as specified by Acar et al., 2014

epsilon

Epsilon value of the loss function as specified by Acar et al., 2014

Value

A list containing the function ("fn") and the gradient ("gr").

Examples

A = array(rnorm(108*2), c(108, 2))
B = array(rnorm(100*2), c(100, 2))
C = array(rnorm(10*2), c(10, 2))
D = array(rnorm(100*2), c(100,2))
E = array(rnorm(10*2), c(10,2))

df1 = reinflateTensor(A, B, C)
df2 = reinflateTensor(A, D, E)
datasets = list(df1, df2)
modes = list(c(1,2,3), c(1,4,5))
Z = setupCMTFdata(datasets, modes, normalize=FALSE)

init = initializeACMTF(Z, 2, output="vect")
outcome = acmtf_fg(init, Z)
f = outcome$fn
g = outcome$gr