У меня есть функция потерь mean{|| x^i - y^i ||^2}
, где x^i
- это i-тая точка данных. || x^i - y^i ||^2 = sum_j (x^i_j - y^i_j)^2
. (где x^i_j
- это j-я переменная i-й точки данных)
У меня может быть один из (x ^ i_j - y ^ i_j) ^ 2 взрывов до inf
Моя альтернатива - logsumexp(2 * log(abs(x^i_j - y^i_j)))
, чтобы иметь дело с norm2, но я также мог бы иметь x^i_j - y^i_j
, чтобы быть нулем. Есть ли численный стабильный способ сделать это?
Я пытался logsumexp(2 * log(abs(x^i_j - y^i_j) + 1e-20))
, но не очень хорошо, так как мне нужно дифференцировать эту функцию потерь в обратном направлении, чтобы градиент по-прежнему давал Nan
иногда