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
, ist die Sigmoidfunktion
,
,ist softmax Funktion
, reale Etikett one-hotVektor ist
Dann durch die Kettenregel,
Einzelne Farbverläufe sind:
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.
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.
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 .
Vielen Dank!
quelle
Antworten:
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.s L x∈Rn×1 s(x)∈Rn×1
Wir wollen
Wobei der Jacobi von . Wenn wir diesen Jacobian erweitern, erhalten wir∂s(x)∂x s
Wir sehen, dass es bis auf die Diagonale überall Null ist. Wir können einen Vektor aller seiner diagonalen Elemente
Verwenden Sie dann den elementweisen Operator.
quelle
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)WT2 a′=h∘(1−h) δ2∘a′
Siehe die cs224d- Vorlesungsfolien auf Seite 30, es könnte auch hilfreich sein.
quelle