Kann sich ein tiefes neuronales Netzwerk der Multiplikationsfunktion ohne Normalisierung annähern?

27

Nehmen wir an, wir möchten eine Regression für einfache f = x * yVerwendung eines standardmäßigen tiefen neuronalen Netzwerks durchführen.

Ich erinnere mich, dass es Forschungsergebnisse gibt, die besagen, dass NN mit einer Hiden-Schicht jede Funktion approximieren kann, aber ich habe es versucht und ohne Normalisierung konnte NN nicht einmal diese einfache Multiplikation approximieren. Nur Log-Normalisierung der Daten hat geholfen. m = x*y => ln(m) = ln(x) + ln(y). Aber das sieht aus wie ein Betrüger. Kann NN dies ohne Protokollnormalisierung tun? Der Unbekannte ist natürlich (was mich betrifft) - ja, also ist die Frage eher was soll Typ / Konfiguration / Layout eines solchen NN sein?

Brans Ds
quelle

Antworten:

13

Ein großer Multiplikationsfunktionsgradient zwingt das Netz wahrscheinlich fast sofort in einen schrecklichen Zustand, in dem alle versteckten Knoten einen Gradienten von Null aufweisen (aufgrund von Details und Einschränkungen der Implementierung des neuronalen Netzwerks). Wir können zwei Ansätze verwenden:

  1. Teilen Sie durch eine Konstante. Wir teilen einfach alles vor dem Lernen und multiplizieren danach.
  2. Verwenden Sie die Protokollnormalisierung. Multiplikation wird addiert:

    m=xyln(m)=ln(x)+ln(y)

Brans Ds
quelle
5

Eine ähnliche Frage ist mir heute früher aufgefallen, und ich war überrascht, dass ich keine schnelle Antwort finden konnte. Meine Frage war, dass gegebene NNs nur Summationsfunktionen haben, wie sie multiplikative Funktionen modellieren könnten.

Diese Art von antwortete, obwohl es eine lange Erklärung war. Meine Zusammenfassung wäre, dass NNs Modell eher die Funktionsoberfläche als die Funktion selbst ist. Was im Nachhinein offensichtlich ist…

Fräulein Palmer
quelle
5

NN mit Relu-Aktivierungsfunktion kann die Multiplikation approximieren, wenn der Eingangsbereich begrenzt ist. Erinnern Sie sich daran relu(x) = max(x, 0).

Es ist ausreichend, wenn NN eine Quadratfunktion approximiert g(z) = z^2, weil x*y = ((x-y)^2 - x^2 - y^2)/(-2). Die rechte Seite enthält nur lineare Kombinationen und Quadrate.

NN kann z^2mit einer stückweisen linearen Funktion approximieren. Zum Beispiel auf Reichweite [0, 2]eine Kombination von xund relu(2(x-1))ist nicht so schlimm. Die folgende Abbildung veranschaulicht dies. Keine Ahnung, ob dies jenseits der Theorie nützlich ist :-) Bildbeschreibung hier eingeben

Jussi Kujala
quelle
0

"Eine verborgene Schicht" beschränkt nicht die Anzahl der verwendeten Neuronen und Arten der Aktivierungsfunktion, sondern hat immer noch einen großen Darstellungsraum. Eine einfache Methode, um das Vorhandensein dieses Problems zu validieren: Trainieren Sie dieses Regressionsproblem mit einem realen Neuronennetzwerk, zeichnen Sie alle Gewichte und Bias auf, verwenden Sie diese Parameter, zeichnen Sie die Vorhersagekurve auf und kontrastieren Sie sie mit der Zielfunktionskurve. Dieser Aufsatz kann helfen.

Chongkai Lu
quelle
0

Ich kann keine Kommentare abgeben, da ich ein neuer aktiver Benutzer von StackExchange bin. Aber ich denke, das ist eine wichtige Frage, weil es so verdammt einfach zu verstehen und doch schwer zu erklären ist. Mit Rücksicht halte ich die akzeptierte Antwort nicht für ausreichend. Wenn Sie über die Kernoperationen eines Standard-Feed-Forward-NN nachdenken, mit Aktivierungen des Formulars s(W*x+b)für einige nichtlineare Aktivierungsfunktionen s, ist es eigentlich nicht klar, wie Sie eine Multiplikation daraus erzielen können, selbst in einem zusammengesetzten (mehrschichtigen) Netzwerk. Skalierung (der erste Punkt in der akzeptierten Antwort) scheint die Frage überhaupt nicht anzusprechen ... Skalierung nach was? Die Eingänge xund ysind vermutlich für jedes Sample unterschiedlich. Und das Protokoll zu nehmen ist in Ordnung, solange Sie wissenDas ist es, was Sie tun müssen, und kümmern Sie sich um das Vorzeichenproblem in der Vorverarbeitung (da das Protokoll offensichtlich nicht für negative Eingaben definiert ist). Aber dies steht im Grunde nicht in Einklang mit der Vorstellung, dass neuronale Netze einfach "lernen" können (es fühlt sich wie ein Betrüger an, wie das OP sagte). Ich denke nicht, dass die Frage als beantwortet betrachtet werden sollte, bis sie wirklich von jemandem beantwortet wurde, der schlauer ist als ich!

Dave B.
quelle