Как написать updateGradInput и accGradParameters в факеле?

Я знаю, что эти две функции предназначены для обратного распространения факела, и интерфейс выглядит следующим образом: updateGradInput(input, gradOutput) accGradParameters(input, gradOutput, scale) Я не понимаю, что на самом деле означают gradInput и gradOutput в слое. Предположим, что стоимость сети равна C, а уровень — L. Означают ли gradInput и gradOutput слоя L d_C/d_input_L и d_C/d_output_L?

Если да, то как вычислить gradInput по gradOutput?

Кроме того, означает ли accGradParameters накапливать d_C/d_Weight_L и d_C/d_bias_L? Если да, то как вычислить эти значения?


person Gu Wang    schedule 06.04.2016    source источник


Ответы (1)


Означают ли gradInput и gradOutput слоя L d_C/d_input_L и d_C/d_output_L

Да:

  • gradInput = производная стоимости от входных данных слоя,
  • gradOutput = производная от стоимости по выходу слоя.

как вычислить gradInput по gradOutput

Адаптация схемы из строительных блоков глубокого обучения (внимание: в этой схеме стоимость обозначена L = Loss, а слой f) имеем:

введите здесь описание изображения

Конкретный пошаговый пример такого вычисления на уровне LogSoftMax вы можете найти в этом ответе.

означает ли accGradParameters накопление d_C/d_Weight_L и d_C/d_bias_L

Да. Имена gradWeight и gradBias в torch/nn.

как вычислить эти значения?

Так же, как указано выше. Все еще используя формулу из приведенного выше сообщения в блоге:

введите здесь описание изображения

За исключением того, что якобиан имеет другую размерность (более подробную информацию см. В сообщении в блоге). Например, для линейного слоя это означает:

введите здесь описание изображения

Это внешний продукт между входными данными слоя и gradOutput. В Torch мы имеем:

self.gradWeight:addr(scale, gradOutput, input)

И:

введите здесь описание изображения

Который gradOutput. В Torch у нас:

self.gradBias:add(scale, gradOutput)

В обоих случаях scale — это масштабный коэффициент, используемый на практике в качестве скорости обучения.

person deltheil    schedule 06.04.2016