0

In Andrew Ng Vorlesungsnotizen, verwenden sie LBFGS und erhalten einige versteckte Funktionen. Kann ich stattdessen Gradientenabstieg verwenden und die gleichen versteckten Funktionen erzeugen? Alle anderen Parameter sind gleich, nur den Optimierungsalgorithmus ändern.Stattdessen LBFGS, mit Gradientenabstieg in Sparse Autoencoder

Weil, wenn ich LBFGS benutze, mein Autoencoder die gleichen versteckten Funktionen wie in den Vorlesungsnotizen erzeugen kann, aber wenn ich Gradientenabstieg benutze, sind die Funktionen in der versteckten Ebene verschwunden, scheint total zufällig zu sein.

Um genauer zu sein, um die Kostenfunktion zu optimieren, implementiere ich 1) die Kostenfunktion, 2) Gradient jedes Gewichts und Bias. Und werfen Sie sie in scipy optimieren Werkzeugkasten, um die Kostenfunktion zu optimieren. Und diese Einstellung kann mir die angemessenen versteckten Funktionen geben.

Aber wenn ich zum Gradientenabstieg wechseln. Ich habe versucht, das "Gewicht - Gradient des Gewichts" und "Bias - Gradient des Bias" zu lassen. Aber die resultierenden versteckten Features sehen total zufällig aus.

Kann jemand mir helfen, den Grund zu wissen? Vielen Dank.

+3

'sie verwenden LBFGS und erhalten einige versteckte Funktionen. Kann ich stattdessen Gradientenabstieg verwenden und die gleichen versteckten Merkmale erzeugen? "- im Prinzip ja. Zumindest wenn beide zusammenlaufen. Gradientenabstieg kann jedoch für einige Funktionen schmerzhaft langsam sein, so dass Sie nicht in angemessener Zeit in einem lokalen Optimum landen. Auch die Wahl der Schrittgröße ist entscheidend, wenn Sie die Optimierung selbst implementieren möchten. – cel

Antwort

1

Ja, Sie können stattdessen SGD verwenden, tatsächlich ist es die beliebteste Wahl in der Praxis. L-BFGS-B ist keine typische Methode zum Trainieren neuronaler Netze. Allerdings:

  • Sie müssen Hyper des Trainingsmethode optimieren, können Sie nicht nur die gleichen, die verwenden, die für LBFGS verwendet wurden, da dies völlig andere Methode ist (ok, nicht ganz, aber es nutzt erster Ordnung Optimierung statt von zweiter Ordnung)
  • sollten Sie Impuls in Ihrem SGD einschließen, es ist ein extrem einfacher Weg, eine Art der Näherung zweiter Ordnung zu bekommen, und bekannt ist (wenn sorgfältig abgestimmt) so gut wie tatsächliche Methoden zweiter Ordnung durchzuführen in der Praxis
+0

Wenn ich nicht dieselben Parameter verwende, kann ich die gleiche Struktur des neuronalen Netzes verwenden, z. die Anzahl der Knoten in der ausgeblendeten Ebene. Danke für deine Antwort. Es ist sehr hilfreich. – iTS

+0

Ja, die Struktur des Netzwerks ist irgendwie unabhängig vom Lernschema, natürlich gibt es Strukturen, für die wir spezielle Optimierer haben, L-BFGS-B gehört nicht dazu, daher kann man es immer auf SGD + Momentum ändern – lejlot