Wie wähle ich eine Aktivierungsfunktion?


13

Ich wähle die Aktivierungsfunktion für die Ausgabeebene abhängig von der Ausgabe, die ich benötige, und den Eigenschaften der Aktivierungsfunktion, die ich kenne. Zum Beispiel wähle ich die Sigmoid-Funktion, wenn ich mich mit Wahrscheinlichkeiten befasse, eine ReLU, wenn ich mich mit positiven Werten befasse, und eine lineare Funktion, wenn ich mich mit allgemeinen Werten befasse.

In versteckten Schichten verwende ich eine undichte ReLU, um tote Neuronen anstelle der ReLU und der Tanh anstelle des Sigmoid zu vermeiden. Natürlich verwende ich keine lineare Funktion in versteckten Einheiten.

Die Wahl für sie in der verborgenen Ebene ist jedoch hauptsächlich auf Versuch und Irrtum zurückzuführen.

Gibt es eine Faustregel, welche Aktivierungsfunktion in bestimmten Situationen wahrscheinlich gut funktioniert? Nehmen Sie den Begriff Situationen so allgemein wie möglich: Er könnte sich auf die Tiefe der Schicht, auf die Tiefe des NN, auf die Anzahl der Neuronen für diese Schicht, auf den von uns gewählten Optimierer und auf die Anzahl der Eingabemerkmale von beziehen diese Schicht, zur Anwendung dieses NN usw.

In seiner / ihrer Antwort verweist cantordust auf andere Aktivierungsfunktionen , dass ich nicht erwähnen, wie ELU und SELU. Diese Infos sind mehr als willkommen. Je mehr Aktivierungsfunktionen ich jedoch entdecke, desto verwirrter ist die Auswahl der Funktion, die in verborgenen Ebenen verwendet werden soll. Und ich denke nicht, dass das Werfen einer Münze eine gute Möglichkeit ist, eine Aktivierungsfunktion zu wählen.

Antworten:


10

Es scheint mir, dass Sie die Mängel von ReLUs und Sigmoiden bereits verstehen (wie tote Neuronen im Fall von einfachem ReLU). Ich würde vorschlagen, ELU (exponentielle lineare Einheiten) und SELU (selbstnormalisierende Version von ELU) zu betrachten. Unter einigen milden Annahmen haben letztere die schöne Eigenschaft der Selbstnormalisierung, die das Problem des Verschwindens und Explodierens von Gradienten mildert. Außerdem verbreiten sie die Normalisierung - dh sie garantieren, dass die Eingabe in die nächste Schicht einen Mittelwert von Null und eine Einheitsvarianz aufweist.

Bearbeiten:


Es wäre unglaublich schwierig, eine Aktivierungsfunktion zu empfehlen, die für alle Anwendungsfälle funktioniert (obwohl ich glaube, dass SELU so konzipiert wurde, dass es mit so ziemlich jeder Eingabe das Richtige tut). Es gibt viele Überlegungen - wie schwierig es ist, die Ableitung zu berechnen (wenn sie überhaupt differenzierbar ist!), Wie schnell ein Netzwerk mit dem von Ihnen gewählten AF konvergiert, wie glatt es ist, ob es die Bedingungen des universellen Approximationssatzes erfüllt , ob es bewahrt die Normalisierung und so weiter. Möglicherweise interessieren Sie sich für einige oder einige davon.

Unter dem Strich gibt es keine universelle Regel für die Auswahl einer Aktivierungsfunktion für verborgene Ebenen. Persönlich verwende ich Sigmoide (besonders tanh) gerne, weil sie gut begrenzt und sehr schnell zu berechnen sind, aber am wichtigsten, weil sie für meine Anwendungsfälle funktionieren . Andere empfehlen eine undichte ReLU für die Eingabe- und verborgenen Ebenen als Anlaufstelle, wenn Ihr Netzwerk nicht lernt. Sie können sogar Aktivierungsfunktionen mischen und anpassen, um neuronale Netze für ausgefallene Anwendungen zu entwickeln .

Am Ende des Tages werden Sie wahrscheinlich so viele Meinungen wie es Leute über die richtige Wahl der Aktivierungsfunktion gibt, daher sollte die kurze Antwort wahrscheinlich lauten: Beginnen Sie mit dem AF des Tages (undichtes ReLU / SELU?) und arbeiten Sie sich durch andere AFs, um die Popularität zu verringern, wenn Ihr Netzwerk Schwierigkeiten hat, etwas zu lernen.


1
Richtig, ich habe die Ausbreitung der Normalisierung vergessen. Danke, dass du mich erinnert hast. Die Frage ist jedoch noch unbeantwortet. Es gibt eine Regel oder etwas zu wählen, welche Aktivierungsfunktionen ich in die versteckten Ebenen einfügen soll? Der Einfachheit halber spreche ich nur von einfach vollständig verbundenen Schichten. Ich möchte das Thema nicht mit Windungen, Pooling usw. komplizieren
gvgramazio

@gvgramazio Ich habe die Antwort bearbeitet, hoffentlich ist sie jetzt etwas nützlicher.
Cantordust

Ich denke, dass Sie mit der Bearbeitung auf meine Frage geantwortet und interessierte Links bereitgestellt haben (insbesondere den über Mix and Match ). Leider ist nicht die Antwort, die ich hören wollte. Ich werde meine Frage noch ein paar Tage offen halten. Wenn niemand eine bessere Antwort findet, werde ich Ihre als akzeptiert markieren.
Gvgramazio

-1

Ich weiß nicht, an welchen neuronalen Netzen Sie arbeiten. Man sollte aber auch Tanh-Aktivierungsfunktionen berücksichtigen, wenn man sich mit wiederkehrenden neuronalen Netzen befasst. Der Grund dafür ist, explodierende Gradientenprobleme zu vermeiden, da die tanh-Funktion beispielsweise an die Differenz der RELU-Funktion gebunden ist.


In der Frage habe ich angegeben, dass ich Tanh und Sigmoid verwende, nicht nur ReLU. Um es einfach zu halten, beziehe ich mich im Allgemeinen auf klassische versteckte, vollständig verbundene Schichten. Wenn Sie der Meinung sind, dass die Tatsache, dass es sich um ein wiederkehrendes neuronales Netzwerk handelt, für die Wahl der Aktivierungsfunktion von Bedeutung ist, geben Sie bitte den Grund dafür an. Das explodierende / verschwindende Phänomen kann auch in nicht wiederkehrenden neuronalen Netzen auftreten.
Gvgramazio
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.