私は外れ値で時々騒がしい非常に騒々しいデータを扱っていますので、私は自分のNNの正確さの尺度として相関を中心にしています。Rank CorrelationをTensorFlowのコスト関数として使用できますか?
順位相関(スピアマン相関係数)を自分のコスト関数として明示的に使用することはできますか?これまでは、MSEのほとんどを相関のプロキシとして使用してきました。
私は今3つの大きな障害ブロックを有する:
1)のランキングの概念はミニバッチでかなりあいまいになります。
2)どのようにランキングを動的に実行しますか? TensorFlowに勾配エラーがないか、重量/バイアスの変化がコストにどのような影響を与えるかを追跡できませんか?
3)実行時に見ているテンソルの大きさをどのように決定しますか?
例えば、以下のコードは、単に相関を使用する場合におおまかにしたいものです。実際には、実行時に決定するのではなく、長さを渡す必要があります。ここで
length = tf.shape(x)[1] ## Example code. This line not meant to work.
original_loss = -1 * length * tf.reduce_sum(tf.mul(x, y)) - (tf.reduce_sum(x) * tf.reduce_sum(y))
divisor = tf.sqrt(
(length * tf.reduce_sum(tf.square(x)) - tf.square(tf.reduce_sum(x))) *
(length * tf.reduce_sum(tf.square(y)) - tf.square(tf.reduce_sum(y)))
)
original_loss = tf.truediv(original_loss, divisor)
私はSpearman Correlationsを評価基準として使用する画像評価ネットワークを再現しようとしています。 Spearman Correlationをミニバッチに対して実行することは意味がありますか?もしそうなら、結果を集約して最終的な数値を得るにはどうすればよいですか? – michael
@michael私はミニバッチから完全なデータセットに非常に異なる結果を得ます。それは、最終的な価値についてではなく、傾向についてのいくつかの洞察を与えるかもしれません。ミニバッチの結果を集計して最終的なものを計算することはできません。データセット全体で行う必要があります(これは通常のPythonコードを使用しています)。 – jorgemf
これは私の推測でしたが、私はこのトピックの専門家ではありません。ありがとう。 – michael