Künstliche neuronale Netze, die der linearen Regression mit Polynommerkmalen entsprechen?


11

Ich möchte mein Verständnis der neuronalen Netze und ihrer Vorteile im Vergleich zu anderen Algorithmen für maschinelles Lernen verbessern. Mein Verständnis ist wie folgt und meine Frage ist:

Können Sie bitte mein Verständnis korrigieren und ergänzen? :) :)

Mein Verständnis:

(1) Künstliche neuronale Netze = Eine Funktion, die Ausgabewerte aus Eingabewerten vorhersagt. Gemäß einem universellen Approximationssatz ( https://en.wikipedia.org/wiki/Universal_approximation_theorem ) können Sie normalerweise jede mögliche (obwohl sie sich gut verhalten sollte) Vorhersagefunktion haben, wenn genügend Neuronen vorhanden sind.

(2) Gleiches gilt für die lineare Regression, indem Polynome der Eingabewerte als zusätzliche Eingabewerte verwendet werden, da Sie jede Funktion durch Polynome gut approximieren (vergleichen können).

(3) Dies bedeutet, dass (in gewissem Sinne in Bezug auf die bestmöglichen Ergebnisse) diese beiden Methoden gleichwertig sind.

(4) Ihr Hauptunterschied besteht daher darin, welche Methode sich für eine bessere rechnerische Implementierung eignet. Mit anderen Worten, mit welcher Methode können Sie anhand von Trainingsbeispielen schnellere gute Werte für die Parameter finden, die schließlich die Vorhersagefunktion definieren.

Ich freue mich über Gedanken, Kommentare und Empfehlungen zu anderen Links oder Büchern, um mein Denken zu verbessern.


2
Sollte auf math.stackexchange.com verschoben werden. Neuronale Netze mit Aktivierung nähern sich beliebig gut jeder glatten Funktion an, aber sie haben ein weiteres Merkmal: Die Glätte (die Skalierung der Gewichte) hängt vom Punkt ab, dies ist der Schlüssel zu einem guten globalen Annäherung. Sie können dies nicht mit einer Polynomnäherung erreichen (bei einer stetigen Funktion nehmen Sie ihre Faltung mit n d e - π | n x | 2 und verwenden Sie die ersten Terme der Taylor-Expansion um einen bestimmten Punkt, was nur eine gute lokale Näherung ergibt )tanhnde- -π|nx|2
user1952009

@ user1952009 - impliziert Stone-Weierstrass aufgrund der Einheitlichkeit der Approximation im Theorem nicht eine willkürlich gute globale Approximation?
Jbowman

@jbowman Es macht eine gute lokale Annäherung: Für jedes stetige, r und ϵ gibt es eine glatte, analytische oder polynomiale Funktion (wie Sie es wünschen) so dass . So auch ein neuronales Netzwerk, aber das Merkmal ist, dass es viele verschiedene lokale Approximationen (um verschiedene ) verwenden und diese mischen kann, um eine Art globale Approximation zu erhalten. frϵfr,ϵsup|x|r|f(x)- -fr,ϵ(x)|ϵx0
user1952009

1
Dies ist möglicherweise ein Duplikat von stats.stackexchange.com/questions/41289/… Ich würde diese Frage kennzeichnen , aber mit dem Kopfgeld werde ich hier wohl nur einen Kommentar abgeben :)
Hugh Perkins

1
+1 @HughPerkins für den Link zu einem aufschlussreichen verwandten Q. Aber obwohl die Antworten in der verwandten Frage hier einen Einblick in die Frage bieten (z. B. wie Stephan Kolassa erklärt, berücksichtigt aNN die Nichtlinearität als Standard, während die Regression dies nur tut Wenn ich speziell durch zusätzliche Techniken modelliert werde, würde ich nicht für Duplikate kennzeichnen . Sie haben gefragt, welcher Modelltyp bessere Ergebnisse liefern kann, während in dieser Frage speziell erläutert wird, ob zwei Methoden in ihren Ergebnissen und ihrer Generalisierbarkeit ähnlich sind oder nicht.
IWS

Antworten:


7

Das ist der Deal:

Technisch gesehen haben Sie echte Sätze geschrieben (beide Modelle können sich bei genügend Parametern jeder 'nicht zu verrückten' Funktion annähern), aber diese Sätze bringen Sie überhaupt nicht weiter!

Warum das? Schauen Sie sich die universelle Approximationstheorie oder einen anderen formalen Beweis genauer an, dass ein neuronales Netzwerk jedes f (x) berechnen kann, wenn es GENUG Neuronen gibt.

Alle diese Beweise, die ich gesehen habe, verwenden nur eine verborgene Schicht.

Werfen Sie einen kurzen Blick hier http://neuralnetworksanddeeplearning.com/chap5.html für einige Intuition. Es gibt Arbeiten, die zeigen, dass die Anzahl der benötigten Neuronen in gewissem Sinne exponentiell wächst, wenn Sie nur eine Schicht verwenden.

Während Sie theoretisch Recht haben, haben Sie in der Praxis nicht unendlich viel Gedächtnis, also möchten Sie nicht wirklich ein Netz von 2 ^ 1000 Neuronen trainieren, oder? Selbst wenn Sie unendlich viel Speicher hätten, würde dieses Netz mit Sicherheit überpassen.

Meiner Meinung nach ist der wichtigste Punkt von ML der praktische Punkt! Lassen Sie uns das etwas näher erläutern. Das wirklich große Problem hierbei ist nicht nur, wie Polynome außerhalb des Trainingssatzes sehr schnell zunehmen / abnehmen. Überhaupt nicht. Als kurzes Beispiel: Das Pixel eines Bildes liegt in einem ganz bestimmten Bereich ([0,255] für jede RGB-Farbe), sodass Sie sicher sein können, dass jedes neue Sample innerhalb Ihres festgelegten Wertebereichs liegt. Nein. Die große Sache ist: Dieser Vergleich ist zunächst nicht sinnvoll (!).

Ich schlage vor, dass Sie ein wenig mit MNIST experimentieren und versuchen, die tatsächlichen Ergebnisse zu sehen, die Sie mit nur einer einzigen Schicht erzielen können.

Praktische Netze verwenden weit mehr als eine versteckte Schicht, manchmal Dutzende (naja, Resnet noch mehr ...) Schichten. Aus einem Grund. Dieser Grund ist nicht bewiesen, und im Allgemeinen ist die Wahl einer Architektur für ein neuronales Netz ein heißes Forschungsgebiet. Mit anderen Worten, obwohl wir noch mehr wissen müssen, sind beide Modelle, die Sie verglichen haben (lineare Regression und NN mit nur einer verborgenen Ebene), für viele Datensätze überhaupt nicht nützlich!

Übrigens, für den Fall, dass Sie in ML einsteigen, gibt es einen anderen nutzlosen Satz, der tatsächlich ein aktuelles "Forschungsgebiet" ist - PAC (wahrscheinlich ungefähr korrekt) / VC-Dimension. Ich werde das als Bonus erweitern:

Wenn die universelle Näherung grundsätzlich besagt, dass wir bei einer unendlichen Anzahl von Neuronen jede Funktion approximieren können (vielen Dank?), Sagt PAC in der Praxis, dass wir bei (praktisch!) Unendlich vielen markierten Beispielen so nah wie möglich kommen können wollen die beste Hypothese innerhalb unseres Modells. Es war absolut witzig, als ich die tatsächliche Anzahl von Beispielen berechnete, die für ein praktisches Netz erforderlich waren, um mit einer gewissen Wahrscheinlichkeit innerhalb einer praktisch gewünschten Fehlerrate zu liegen :) Es war mehr als die Anzahl der Elektronen im Universum. PS, um es zu steigern, setzt auch voraus, dass die Samples IID sind (das ist niemals wahr!).


Entsprechen künstliche neuronale Netze einer linearen Regression mit Polynommerkmalen oder nicht? Ihre Antwort scheint sich auf die Anzahl der Schichten und die erforderlichen Neuronen zu konzentrieren, erklärt jedoch nicht, warum diese beiden Analysen gleichwertig sein sollten / könnten. Kann ein neuronales Netzwerk durch Hinzufügen von mehr (versteckten) Schichten (sogar) mehr Funktionen verarbeiten als eine Regression mit Polynomen? Und wie OP sich in einer Antwort gefragt hat, wie steht es mit der externen Gültigkeit / Out-of-Sample-Leistung dieser Modelle (und den Kompromissen zwischen der Verwendung komplexerer Modelloptionen und der Leistung)?
IWS

Ich verweise Sie auf meinen allerersten Satz: "Technisch gesehen haben Sie wahre Sätze geschrieben".
Yoni Keren

Nun, ich habe gefragt, weil mir die Begründung für Ihre Aussage, dass das OP wahre Sätze geschrieben hat, aufgrund Ihrer Antwort nicht klar war. Würden Sie so freundlich darauf eingehen?
IWS

Sicher. Ist das besser oder finden Sie noch etwas unklar?
Yoni Keren

7

Es ist wahr, dass jede Funktion beliebig nahe beieinander angenähert werden kann, sowohl durch etwas, das als neuronales Netzwerk zählt, als auch durch etwas, das als Polynom zählt.

Denken Sie zunächst daran, dass dies für viele Konstrukte gilt. Sie können jede Funktion approximieren, indem Sie Sinus und Cosinus kombinieren (Fourier-Transformationen) oder einfach viele "Rechtecke" hinzufügen (keine wirklich genaue Definition, aber ich hoffe, Sie verstehen den Punkt).

Zweitens ist, ähnlich wie bei Yonis Antwort, die Anzahl der Neuronen oder die Anzahl der Kräfte festgelegt, wenn Sie ein Netzwerk trainieren oder eine Regression mit vielen Kräften ausstatten. Dann wenden Sie einen Algorithmus an, vielleicht einen Gradientenabstieg oder so, und finden damit die besten Parameter. Die Parameter sind die Gewichte in einem Netzwerk und die Koeffizienten für ein großes Polynom. Die maximale Leistung, die Sie in einem Polynom aufnehmen, oder die Anzahl der verwendeten Neuronen werden als Hyperparameter bezeichnet. In der Praxis werden Sie einige davon ausprobieren. Sie können sicher sagen, dass ein Parameter ein Parameter ist, aber so wird dies in der Praxis nicht gemacht.

Der Punkt beim maschinellen Lernen ist jedoch, dass Sie nicht wirklich eine Funktion wünschen, die perfekt zu Ihren Daten passt. Das wäre eigentlich nicht allzu schwer zu erreichen. Sie möchten etwas, das gut passt, aber wahrscheinlich auch für Punkte funktioniert, die Sie noch nicht gesehen haben. Siehe dieses Bild zum Beispiel aus der Dokumentation für scikit-learn.

Eine Linie ist zu einfach, aber die beste Annäherung ist nicht rechts, sondern in der Mitte, obwohl die Funktion rechts am besten passt. Die Funktion auf der rechten Seite würde einige ziemlich seltsame (und wahrscheinlich suboptimale) Vorhersagen für neue Datenpunkte treffen, insbesondere wenn sie in die Nähe der wackeligen Bits auf der linken Seite fallen.

Der ultimative Grund für neuronale Netze, bei denen einige Parameter so gut funktionieren, ist, dass sie zu etwas passen, es aber nicht wirklich überpassen. Dies hat auch viel mit der Art und Weise zu tun, wie sie trainiert werden, mit irgendeiner Form von stochastischem Gradientenabstieg.


2

Da noch keine Antworten vorliegen (obwohl ich den Kommentar von user1952009 akzeptieren würde, wenn er als Antwort veröffentlicht würde), möchte ich mitteilen, was ich in der Zwischenzeit gelernt habe:

(1) Es scheint mir, dass mein Verständnis im Allgemeinen richtig ist, aber der Teufel steckt im Detail.

(2) Eine Sache, die in "meinem Verständnis" fehlte: Wie gut wird sich die parametrisierte Hypothese auf Daten außerhalb des Trainingssatzes verallgemeinern lassen? Die nichtpolynomielle Natur der Vorhersagen des neuronalen Netzwerks ist dort möglicherweise besser als die einfache lineare / polynomielle Regression (denken Sie daran, wie Polynome außerhalb des Trainingssatzes sehr schnell zunehmen / abnehmen).

(3) Ein Link, der weiter erklärt, wie wichtig es ist, Parameter schnell berechnen zu können: http://www.heatonresearch.com/2017/06/01/hidden-layers.html


2

Vielleicht kann Ihnen dieses Papier helfen:

Polynomregression als Alternative zu neuronalen Netzen

Die Zusammenfassung sagt:

Trotz des Erfolgs neuronaler Netze (NNs) gibt es bei vielen immer noch Bedenken hinsichtlich ihrer "Black Box" -Natur. Warum arbeiten sie? Hier präsentieren wir ein einfaches analytisches Argument, dass NNs tatsächlich im Wesentlichen polynomielle Regressionsmodelle sind. Diese Ansicht hat verschiedene Auswirkungen auf NNs, z. B. eine Erklärung dafür, warum Konvergenzprobleme bei NNs auftreten, und gibt grobe Hinweise zur Vermeidung von Überanpassungen. Darüber hinaus verwenden wir dieses Phänomen, um eine Multikollinearitätseigenschaft von NNs vorherzusagen und zu bestätigen, über die bisher in der Literatur nicht berichtet wurde. Angesichts dieser losen Entsprechung kann man sich vor allem dafür entscheiden, routinemäßig Polynommodelle anstelle von NNs zu verwenden, wodurch einige Hauptprobleme der letzteren vermieden werden, wie beispielsweise das Einstellen vieler Abstimmungsparameter und das Behandeln von Konvergenzproblemen. Wir präsentieren eine Reihe von empirischen Ergebnissen; In jedem Fall entspricht die Genauigkeit des Polynomansatzes der von NN-Ansätzen oder übertrifft diese. Ein Open-Source-Softwarepaket mit vielen Funktionen, Polyreg, ist verfügbar.

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.