chainer.functions.cross_covariance(y, z, reduce='half_squared_sum')[source]

 yzの相互共分散の二乗和を計算する。

 

出力は reduceの値に依存している値の変数。  'no'が設定されている場合、出力は y の次元である多くの行とzの次元である列を持つ共分散行列を保持する。  'half_squared_sum'が設定されている場合、 it holds the half of the共分散行列のフロベニウスノルム(行列を平らなベクトルとしたときのL2ノルム)の半分を保持する。

 

Parameters:
  • y (Variable) – バッチに相当する最初の次元の行列を保持する変数。
  • z (Variable) –バッチに相当する最初の次元の行列を保持する変数。
  • reduce (str) – 削減オプション。この値は 'half_squared_sum''no' のいずれかでなければならない。それ以外ではValueError が発生する。
Returns:

相互共分散損失を保持する変数。 reduce'no'と設定されている場合、出力変数は shapeが (M, N) であるような2次元配列を保持する。 My の列数を、 Nzの列数となる。 'half_squared_sum'が設定されている場合、出力変数はスカラ値を保持する。

Return type:

Variable

Note

このコストはDisentangle (もつれを解く)変数に利用可能です。詳細は https://arxiv.org/abs/1412.6583v3 をお読みください。