2016-12-02 5 views
0

Ich arbeite mit Stacked Sparse Autoencoders mit MATLAB. Kann jemand bitte vorschlagen, welche Werte für ergriffen werden sollten Stacked Sparse Autoencoder Parameter:
L2 Gewicht Regularisierung (Lambda) Sparsity Regularisierung (Beta) Sparsity Anteil (Rho).Stacked Sparse Autoencoder Parameter

Antwort

0

Es ist wichtig zu erkennen, dass es KEINE OFFIZIELLEN WERTE für die Hyperparameter gibt. Der optimale Wert hängt von den Daten ab, die Sie modellieren: Sie müssen sie an Ihren Daten ausprobieren.

Von sparseAutoencoder Lambda (λ) ist der Koeffizient des Gewichtsverfalls, der Gewichte davon abhält, große Werte zu erreichen, da sie überfressen können. Der Gewichtsabfall-Term (oder Gewichtsregularisierungs-Ausdruck) ist ein Teil der Kostenfunktion, wie der Sparsity-Ausdruck, der unten erläutert wird.

Rho (ρ) ist eine Sparsity-Einschränkung, die die durchschnittliche Anzahl der Aktivierung auf der versteckten Ebene steuert. Es ist enthalten, um den Autoencoder auch mit einer relativ großen Anzahl von versteckten Einheiten in Bezug auf Eingabeeinheiten arbeiten zu lassen. Wenn beispielsweise die Eingabegröße 100 und die verborgene Größe 100 oder größer ist (sogar kleiner, aber nahe bei 100), kann die Ausgabe ohne Verlust erstellt werden, da versteckte Einheiten die Identitätsfunktion lernen können. Beta (& bgr;) ist ein Koeffizient des Sparsitätsausdrucks, der ein Teil der Kostenfunktion ist. Es steuert die relative Bedeutung des Leerheitszeitraums. Lambda und Beta geben die relative Bedeutung ihrer Terme in der Kostenfunktion an.

Beispiel: Sie können eine Beute an diesem example nehmen, wo Parameterwerte wie folgt ausgewählt werden.

sparsityParam = 0.1; % desired average activation of the hidden units. 
         % (This was denoted by the Greek alphabet rho, which looks like a lower-case "p", 
         % in the lecture notes). 
lambda = 3e-3;   % weight decay parameter  
beta = 3;    % weight of sparsity penalty term 

Aber noch einmal, ich möchte Sie machen erinnern, dass es kein offensichtliches VALUES für die Hyper.

+0

Vielen Dank für Ihre Antwort @Wasi Ahmad. Ich versuche, 3-Schicht-Stacked Sparse Autoencoder-Modell zu bauen. Ich habe eine Eingabeschicht, die eine Größe von 589 hat, gefolgt von 3 Schichten von Autoencoder, gefolgt von einer Ausgabeschicht, die aus einem Klassifikator besteht. Wie Sie gesagt haben, wenn meine Input-Ebene 589 ist, nehme ich an, dass ich meine versteckte Größe für 589 in der ersten Autoencoder-Ebene festlege, was die versteckte Größe für die zweite und dritte Autoencoder-Ebene sein sollte. Müssen wir den Wert von sparsity param, lambda und beta für alle Autoencoder-Schichten gleich behalten? Bitte helfen Sir –

+0

erstens, Hyperparameter Werte sollten für alle Schichten gleich sein. Denken Sie daran, Modell hat Hyper-Parameter, keine Schichten! Also, warum würden Sie verschiedene Hyper-Parameter für verschiedene Schichten auswählen? Zweitens, was sollte die Größe der versteckten Schicht sein, ist eine entscheidende Sache zu entscheiden, weil großer Wert Ihre Trainingsdaten überfüllen kann und niedriger Wert kann unterlegen. Sie können verschiedene Größen für verschiedene versteckte Ebenen festlegen. aber die Leute in vielen (oder den meisten) Fällen verwenden dieselbe Größe für alle versteckten Ebenen. Sie können tunen und sehen, was die beste Größe für Ihre Aufgabe ist! –