Was ist der Operator in der Kettenregel, wenn der Gradient eines einschichtigen neuronalen Netzwerks anhand seiner Eingaben abgeleitet wird?

9

Das Problem ist:

Leiten Sie den Gradienten in Bezug auf die Eingabeschicht für ein einzelnes neuronales Netzwerk mit versteckter Schicht ab, indem Sie Sigmoid für Eingabe -> versteckt, Softmax für versteckt -> Ausgabe mit einem Kreuzentropieverlust verwenden.

Ich kann den größten Teil der Ableitung mit der Kettenregel durchstehen, bin mir aber nicht sicher, wie ich sie tatsächlich "verketten" soll.

Definieren Sie einige Notationen

r=xW1+b1

h=σ(r) ,σ ist die Sigmoidfunktion

θ=hW2+b2 ,

y^=S(θ),Sist softmax Funktion

J(y^)=iylogy^i ,y reale Etikett one-hotVektor ist

Dann durch die Kettenregel,

Jx=Jθθhhrrx

Einzelne Farbverläufe sind:

Jθ=(y^y)
θh=h[hW2+b2]=W2T
hr=h(1h)
rx=x[xW1+b1]=W1T

Jetzt müssen wir die Definitionen miteinander verketten. Bei Einzelvariablen ist dies einfach, wir multiplizieren einfach alles miteinander. Bei Vektoren bin ich mir nicht sicher, ob ich eine elementweise Multiplikation oder eine Matrixmultiplikation verwenden soll.

Jx=(y^y)W2T[h(1h)]W1T

Wobei eine elementweise Multiplikation von Vektoren ist und eine Matrixmultiplikation ist. Diese Kombination von Operationen ist die einzige Möglichkeit, diese miteinander zu verbinden, um einen Dimensionsvektor zu erhalten, von dem ich weiß, dass muss.1DxJx

Meine Frage ist: Wie kann ich grundsätzlich herausfinden, welchen Operator ich verwenden soll? Ich bin besonders verwirrt über die Notwendigkeit des elementweisen zwischen und .W2Th

Vielen Dank!

Amatsukawa
quelle
Mir ist klar, dass es nicht oft vorkommt, den Gradienten für die Eingänge zu finden. Ich glaube, dies ist ein Anhaltspunkt für die Berechnung von Worteinbettungen, bei denen Sie die Option haben, die "Eingabe" -Wortvektoren zu optimieren.
Amatsukawa
Wie hast du derjie dJ / dTheta
raaj

Antworten:

4

Ich glaube, dass der Schlüssel zur Beantwortung dieser Frage darin besteht, darauf hinzuweisen, dass die elementweise Multiplikation tatsächlich eine Abkürzung ist. Wenn Sie also die Gleichungen ableiten, verwenden Sie sie nie wirklich.

Der eigentliche Betrieb ist kein Element weise Multiplikation , sondern eine Standard - Matrix - Multiplikation eines Gradienten mit einem Jacobi , immer .

Im Fall der Nichtlinearität ist der Jacobi der Vektorausgabe der Nichtlinearität in Bezug auf die Vektoreingabe der Nichtlinearität zufällig eine Diagonalmatrix. Es ist daher wahr, dass der mit dieser Matrix multiplizierte Gradient dem Gradienten der Ausgabe der Nichtlinearität in Bezug auf den Verlust entspricht, multipliziert mit einem Vektor, der alle partiellen Ableitungen der Nichtlinearität in Bezug auf die Eingabe der Nichtlinearität enthält. dies folgt jedoch aus der Diagonale des Jakobianers. Sie müssen den jakobianischen Schritt durchlaufen, um zur elementweisen Multiplikation zu gelangen, die Ihre Verwirrung erklären könnte.

In der Mathematik haben wir einige Nichtlinearitäten , einen Verlust und eine Eingabe für die Nichtlinearität (dies kann ein beliebiger Tensor sein). Die Ausgabe der Nichtlinearität hat die gleiche Dimension --- wie @Logan sagt, werden die Aktivierungsfunktionen als elementweise definiert.sLxRn×1s(x)Rn×1

Wir wollen

xL=(s(x)x)Ts(x)L

Wobei der Jacobi von . Wenn wir diesen Jacobian erweitern, erhalten wir s(x)xs

[s(x1)x1s(x1)xns(xn)x1s(xn)xn]

Wir sehen, dass es bis auf die Diagonale überall Null ist. Wir können einen Vektor aller seiner diagonalen Elemente

Diag(s(x)x)

Verwenden Sie dann den elementweisen Operator.

xL=(s(x)x)Ts(x)L=Diag(s(x)x)s(x)L
user0
quelle
0

Immer wenn sie zu einer Aktivierungsfunktion zurückproportional sind, werden die Operationen elementweise. In Ihrem Beispiel ist ein und ist ein Aktivierungsderivat, und ihr Produkt ist elementweises Produkt . Dies liegt daran, dass Aktivierungsfunktionen als elementweise Operationen im neuronalen Netzwerk definiert sind.δ2=(y^y)W2Ta=h(1h)δ2a

Siehe die cs224d- Vorlesungsfolien auf Seite 30, es könnte auch hilfreich sein.

Logan
quelle