chainer.functions.cross_covariance¶
-
chainer.functions.cross_covariance(y, z, reduce='half_squared_sum')[source]¶ Computes the sum-squared cross-covariance penalty between
yandzThe 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 (
Variableor N-dimensional array) – Variable holding a matrix where the first dimension corresponds to the batches.z (
Variableor 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,ValueErroris raised.
- Returns
A variable holding the cross covariance loss. If
reduceis'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.