2016-06-16 3 views
3

Stellen Sie sich vor, Sie haben ein neuronales Netzwerk mit Sigmoids. Es hat einen Eingang x und so würde ein Knoten tanh⁡x an eine Verbindung ausgeben. Die Verbindung würde dann w * tanhx ausgeben, wobei w das Gewicht der Verbindung ist.Neuronales Netzwerk mit Eingabe von 0

Das Problem ist, was ist, wenn eine Eingabe 0 ist und die Wunschausgabe sollte etwa 1 sein? Wenn die Eingabe 0 ist, wäre die Ausgabe der Verbindung w * tanh0 = 0. Wenn also die Eingabe 0 ist, dann wird die Ausgabe immer 0 sein, egal wie viele Knoten oder Verbindungen Sie hinzufügen oder wie hoch die Gewichte der Verbindungen sind.

Wie würden Sie ein einfaches Netzwerk erstellen, in dem eine Eingabe von 0 Ihnen etwas anderes als 0 gibt?

+3

Sie vergessen Voreingenommenheiten, so dass die Ausgabe möglicherweise nicht Null ist. NNs sind nichtlineare Funktionen. Auch Ihre Ausgangsgleichungen sind falsch. –

Antwort

1

Neben

Eine Sache zu bemerken ist, dass die Funktion für jede Schicht der Form sein sollte:

, wo man durch den Gewichtsvektor multipliziert werden, bevor sie in die Übertragung vorbei Funktion (tanh). Dies beantwortet jedoch nicht Ihre Frage oder beheben Sie Ihr Problem.

Erster Weg

Um Ihre Frage zu beantworten, sollten Sie eine Vorspannungseinheit zu Ihrer Eingabe hinzufügen. Eine solche Möglichkeit besteht darin, eine konstante Eingabe von 1 als Eingabe zu verwenden.

Also, wenn Sie Pseudocode haben: number_of_inputs = 10 dann würden Sie stattdessen Pseudocode verwenden: number_of_inputs = 11; input[10] = 1.

Dadurch kann Ihre Ausgabefunktion die gleiche Form wie oben haben.

Second Way

Sie können auch eine Vorspanneinheit außerhalb der Übertragungsfunktion hinzuzufügen. Das heißt, könnte die Ausgabe von der Form:

z = transpose(W) * X output = tanh(z) + b

Die Aktualisierungsregel für b dann basierend auf der Ableitung von Ihrem Verlust sein würde, aber nicht die Ableitung Ihrer Übertragung.

2

Sie sollten einen Pseudoeingang hinzufügen, dessen Wert konstant 1 ist. Dieser Eingang kann dann als gewichteter Bias für Neuronen in der ersten Schicht verwendet werden.

0

Die Sigmoid-Funktion ist nicht beschränkt auf tanh (x); die allgemeinere Form ist w * tanh (ax + c) + b. Mit freundlichen könnte etwa so aussehen, wo ein niedriger Wert x ein Ergebnis in der Nähe von 1,0 ergibt:

-1 * tanh (x) + 1

Gewichte und Vorurteile sind die Werkzeuge, die Kompressionen verallgemeinern und Übersetzungen der Bewegung der Sigmoidkurve an den Ort, an dem sie benötigt wird.