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) – Variable holding a matrix where the first dimension corresponds to the batches.
- z (Variable) – 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.