Численный Стабильный способ реализации функции потерь norm2 - PullRequest
0 голосов
/ 04 января 2019

У меня есть функция потерь 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 иногда

...