chainer.functions.cross_covariance¶
-
chainer.functions.
cross_covariance
(y, z, reduce='half_squared_sum')[source]¶ Computes the sum-squared cross-covariance penalty between
y
andz
The output is a variable whose value depends on the value of the option
reduce
. If it is'no'
, it holds the covariant matrix that has as many rows (resp. columns) as the dimension ofy
(resp.z). If it is'half_squared_sum'
, it holds the half of the Frobenius norm (i.e. L2 norm of a matrix flattened to a vector) of the covarianct matrix.- Parameters
y (
Variable
or N-dimensional array) – Variable holding a matrix where the first dimension corresponds to the batches.z (
Variable
or N-dimensional array) – Variable holding a matrix where the first dimension corresponds to the batches.reduce (str) – Reduction option. Its value must be either
'half_squared_sum'
or'no'
. Otherwise,ValueError
is raised.
- Returns
A variable holding the cross covariance loss. If
reduce
is'no'
, the output variable holds 2-dimensional array matrix of shape(M, N)
whereM
(resp.N
) is the number of columns ofy
(resp.z
). If it is'half_squared_sum'
, the output variable holds a scalar value.- Return type
Note
This cost can be used to disentangle variables. See https://arxiv.org/abs/1412.6583v3 for details.