Нужно ли включать мои масштабированные выходы в мое уравнение обратного распространения (SGD)? - PullRequest
0 голосов
/ 29 апреля 2019

Быстрый вопрос, когда я обратно распространяю функцию потерь на мои параметры и использую масштабированный вывод (например, tanh (x) * 2), нужно ли включать производную масштабированного вывода в исходный вывод?Спасибо!

1 Ответ

0 голосов
/ 30 апреля 2019

Прежде чем мы сможем вернуть ошибки обратно, мы должны вычислить градиент функции потерь по каждому из параметров. Это вычисление включает в себя сначала вычисление градиентов выходов, а затем повторное использование правила цепочки. Таким образом, когда вы делаете это, константа масштабирования остается как есть. Так что да, вы должны масштабировать ошибки соответственно.

Например, вы могли наблюдать следующую регуляризованную потерю L2 - a.k.a Хребетная регрессия :

Потеря = 1/2 * | T - Y | ^ 2 + \ lambda * || w || ^ 2

Здесь мы масштабируем вниз квадрат ошибки. Таким образом, когда мы вычисляем градиент 1/2 & 2, он будет отменен. Если бы мы не умножили это на 0,5 во-первых, то нам пришлось бы увеличить наш градиент на 2. В противном случае вектор градиента указывал бы в каком-то другом направлении, а не в направлении, которое минимизирует потери.

...