What would it make sense to implement this in Mocha or should I rather create a separate package?
One value (NaN or some other value) is determined to be the NA value.
RmNaLayer sets a NA values to 0 in forward pass
and the gradients in backward pass.
NaSquareLossLayer sets back propagation error to 0 if the value is NA.
Added an example of a helix with missing data
The changes are not complete yet:
currently only to the CPUBackend
no documentation yet
no CUDA implementation yet, sorry that some changes to the CUDA files slipped in here
The corresponding publication would be this one:
Scholz, Matthias, et al. "Non-linear PCA: a missing data approach." Bioinformatics 21.20 (2005): 3887-3895.
What would it make sense to implement this in
Mocha
or should I rather create a separate package?NaN
or some other value) is determined to be theNA
value.RmNaLayer
sets aNA
values to0
in forward pass and the gradients in backward pass.NaSquareLossLayer
sets back propagation error to0
if the value isNA
.The changes are not complete yet:
CPUBackend
The corresponding publication would be this one: Scholz, Matthias, et al. "Non-linear PCA: a missing data approach." Bioinformatics 21.20 (2005): 3887-3895.