2

Ich weiß, dass die beiden Funktionen sind für Rückwärtsausbreitung der Fackel und die Schnittstelle ist als updateGradInput(input, gradOutput) accGradParameters(input, gradOutput, scale) folgt über Ich bin verwirrt, was die gradInput und gradOutput wirklich in einer Schicht bedeuten. Angenommen, die Kosten des Netzwerks sind C und eine Schicht L. Do gradInput und gradOutput der Schicht L bedeuten d_C/d_input_L und d_C/d_output_L?Wie schreibe ich die updateGradInput und accGradParameters in Fackel?

Wenn ja, wie berechnet man gradInput entsprechend gradOutput?

Darüber hinaus bedeutet accGradParameters zu akkumulieren d_C/d_Weight_L und d_C/d_bias_L? Wenn ja, wie werden diese Werte berechnet?

Antwort

8

Sie gradInput und gradOutput der Schicht L bedeuten d_C/d_input_L und d_C/d_output_L

Ja:

  • gradInput = Ableitung der Kostenerfassung des WRT Schicht,
  • gradOutput = Ableitung der Kosten wrt Schicht Ausgabe.

wie gradInput berechnen nach gradOutput

Anpassung des Schemas von The building blocks of Deep Learning (Warnung: In diesem Schema sind die Kosten bezeichnet L = Loss, und die Schicht f) haben wir:

enter image description here

Für ein konkretes, schrittweises Beispiel einer solchen Berechnung auf einer LogSoftMax-Ebene können Sie sich auf this answer beziehen.

ist accGradParameters bedeuten d_C/d_Weight_L und d_C/d_bias_L

Ja zu akkumulieren. Benannt gradWeight und gradBias in Fackel/nn.

Wie berechnet man diese Werte?

Ähnlich wie oben. Immer noch mit einer Formel aus der obigen Blog-Post:

enter image description here

Außer der jacobian (siehe Blog-Post für weitere Details) nicht die gleiche Dimensionalität hat.Als Beispiel für eine lineare Schicht bedeutet dies:

enter image description here

Dies das äußere Produkt zwischen der Eingangsschicht und der gradOutput. In Torch we have:

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

Und:

enter image description here

Welche ist gradOutput. In Torch we have:

self.gradBias:add(scale, gradOutput) 

In beiden Fällen scale ist ein Skalierungsfaktor in der Praxis als Lernrate verwendet.

+0

Vielen Dank. Deine Antwort ist perfekt für meine Verwirrung. –

Verwandte Themen