Von der Perceptron-Regel zum Gradientenabstieg: Wie unterscheiden sich Perceptrons mit einer Sigmoid-Aktivierungsfunktion von der logistischen Regression?


21

Im Wesentlichen ist meine Frage, dass in mehrschichtigen Perzeptronen Perzeptrone mit einer Sigma-Aktivierungsfunktion verwendet werden. So dass in der Aktualisierungsregel y wird wie folgt berechnety^

y^=11+exp(-wTxich)

Inwiefern unterscheidet sich dieses "Sigma" -Perceptron von einer logistischen Regression?

Ich würde sagen , dass eine einlagige Perceptron sigmoid auf eine logistische Regression in dem Sinne äquivalent , daß sowohl die Verwendung y = 1y^=11+exp(-wTxich) in der Aktualisierungsregel. Auch beiden Zeichen(y^=11+exp(-wTxich))in der Vorhersage. Bei mehrschichtigen Perzeptronen wird die Sigma-Aktivierungsfunktion jedoch verwendet, um im Gegensatz zur logistischen Regression und einem einschichtigen Perzeptron eine Wahrscheinlichkeit und kein Ein-Aus-Signal zurückzugeben.

Ich denke, die Verwendung des Begriffs "Perceptron" ist etwas mehrdeutig. Lassen Sie mich daher einige Hintergrundinformationen liefern, die auf meinem derzeitigen Verständnis von einschichtigen Perceptrons basieren:

Klassische Perzeptronregel

Erstens das klassische Perzeptron von F. Rosenblatt, bei dem wir eine Stufenfunktion haben:

Δwd=η(yich-yich^)xichdyich,yich^{-1,1}

um die Gewichte zu aktualisieren

wk: =wk+Δwk(k{1,...,d})

So dass y wird wie folgt berechnety^

y^=Zeichen(wTxich)=Zeichen(w0+w1xich1+...+wdxichd)


Gradientenabstieg

Mit dem Gradientenabstieg optimieren (minimieren) wir die Kostenfunktion

J(w)=ich12(yich-yich^)2yich,yich^R

wo wir "reelle" Zahlen haben, sehe ich dies im Grunde genommen analog zur linearen Regression mit dem Unterschied, dass unsere Klassifizierungsausgabe auf einen Schwellenwert begrenzt ist.

Hier machen wir einen Schritt in die negative Richtung des Verlaufs, wenn wir die Gewichte aktualisieren

Δwk=-ηJwk=-ηich(yich-yich^)(-xichk)=ηich(yich-yich^)xichk

Aber hier haben wir y anstelle von y = Vorzeichen ( w T x i )y^=wTxichy^=Zeichen(wTxich)

wk: =wk+Δwk(k{1,...,d})

Außerdem berechnen wir die Summe der quadratischen Fehler für einen vollständigen Durchlauf über den gesamten Trainingsdatensatz (im Batch-Lernmodus) im Gegensatz zur klassischen Perceptron-Regel, die die Gewichte aktualisiert, sobald neue Trainingsmuster eintreffen (analog zum stochastischen Gradientenabstieg - online) Lernen).


Sigmoid-Aktivierungsfunktion

Hier ist meine Frage:

In mehrschichtigen Perzeptronen werden Perzeptrone mit einer Sigma-Aktivierungsfunktion verwendet. So dass in der Aktualisierungsregel y wird wie folgt berechnety^

y^=11+exp(-wTxich)

Inwiefern unterscheidet sich dieses "Sigma" -Perceptron von einer logistischen Regression?


4
Erstaunlich, dass ich mit dieser Frage allein mein maschinelles Lernen und die Grundlagen des neuronalen Netzes verdichten konnte!
Varun

Antworten:


4

Mit dem Gradientenabstieg optimieren (minimieren) wir die Kostenfunktion

J(w)=ich12(yich-yich^)2yich,yich^R

Wenn Sie den mittleren quadratischen Fehler minimieren, unterscheidet er sich von der logistischen Regression. Die logistische Regression ist normalerweise mit dem Verlust der Kreuzentropie verbunden. Hier ist eine Einführungsseite aus der scikit-learn-Bibliothek .


(Ich gehe davon aus, dass mehrschichtige Perzeptrone dasselbe sind, das man neuronale Netze nennt.)

Wenn Sie den Cross-Entropy-Verlust (mit Regularisierung) für ein einschichtiges neuronales Netzwerk verwendet haben, ist dies dasselbe Modell (logarithmisches lineares Modell) wie die logistische Regression. Wenn Sie stattdessen ein mehrschichtiges Netzwerk verwenden, kann dies als logistische Regression mit parametrischen nichtlinearen Basisfunktionen betrachtet werden.


Bei mehrschichtigen Perzeptronen wird die Sigma-Aktivierungsfunktion jedoch verwendet, um im Gegensatz zur logistischen Regression und einem einschichtigen Perzeptron eine Wahrscheinlichkeit und kein Ein-Aus-Signal zurückzugeben.

Die Ausgabe sowohl der logistischen Regression als auch der neuronalen Netze mit Sigma-Aktivierungsfunktion kann als Wahrscheinlichkeiten interpretiert werden. Da der Kreuzentropieverlust tatsächlich die negative logarithmische Wahrscheinlichkeit ist, die durch die Bernoulli-Verteilung definiert wird.


2

Da die Gradientenabnahme jeden Parameter so aktualisiert, dass der Ausgabefehler verringert wird, der für alle Parameter weiterhin gelten muss. Eine schwellenbasierte Aktivierung ist nicht unterscheidbar, weshalb eine Sigmoid- oder Tanh-Aktivierung verwendet wird.

Hier ist ein einschichtiger NN

dJ(w,b)dωkj=dJ(w,b)dzkdzkdωkj

dJ(w,b)dzk=(eink-yk)(eink(1-eink))

dzkdωkj=xk

J(w,b)=12(yk-eink)2

eink=sichGm(zk)=sichGm(Wkjxk+bk)

Jzk

Hier ist ein Link, der es allgemein erklärt.

Edit: Vielleicht habe ich falsch verstanden, was du mit Perzeptron meinst. Wenn ich mich nicht irre, wird Perceptron als gewogene Summe der Eingaben interpretiert. Wenn Sie das Verständnis mit der Logistikfunktion ändern, wird dies zu einer logistischen Regression. Multi-Layer-NN mit Sigmoid- (logistischen) Aktivierungsfunktionen sind kaskadierte Layer, die aus logistischen Regressionen bestehen.


3
Dies beantwortet die Frage nicht.
Neil G

Danke, dass du diesen netten Kommentar geschrieben hast, aber das war nicht das, wonach ich gefragt habe. Meine Frage war nicht "Warum Gradientenabstieg", sondern "Was unterscheidet ein Perzeptron mit einer Sigmoid-Aktivierungsfunktion von einer logistischen Regression

y=WTX

1
y=wjTxjich

η(y-sichGn(wTxich))xη(y-wTxich)xich

2

Intuitiv stelle ich mir ein mehrschichtiges Perzeptron vor, das eine nichtlineare Transformation meiner Eingabe-Features berechnet und diese transformierten Variablen dann in eine logistische Regression einspeist.

βichXichβichXjβjX . Eine Klasse mit einer großen Punktzahl hat also einen größeren Anteil an der Gesamtpunktzahl und damit eine höhere Wahrscheinlichkeit. Wenn Sie gezwungen sind, eine einzelne Klasse vorherzusagen, wählen Sie die Klasse mit der größten Wahrscheinlichkeit (die auch die größte Punktzahl ist).

Ich kenne Sie nicht, aber in meinen Modellierungskursen und -recherchen habe ich alle Arten von sinnvollen und dummen Transformationen der Eingabe-Features versucht, um deren Bedeutung und allgemeine Modellvorhersage zu verbessern. Dinge zurechtmachen, Protokolle nehmen, zwei zu einer Rate zusammenfassen usw. Ich schämte mich nicht, aber ich hatte nur begrenzte Geduld.

Xβich

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.