[PYTHON] Algorithmus für maschinelles Lernen (Verallgemeinerung der linearen Regression)

Einführung

Schritt für Schritt zur Theorie, Implementierung in Python und Analyse mit scikit-learn über den Algorithmus, der zuvor in "Klassifikation des maschinellen Lernens" verwendet wurde. Ich werde mit lernen. Ich schreibe es zum persönlichen Lernen, daher möchte ich, dass Sie alle Fehler übersehen.

Bisher haben wir "einzelne Regression" und "multiple Regression" gesehen, aber beide haben auf demselben Gebiet der linearen Regression gesprochen. Dieses Mal möchte ich das "** lineare Basisregressionsmodell ", das die lineare Regression verallgemeinert, und die " Gradientenabstiegsmethode **" zur Optimierung der Verlustfunktion zusammenfassen. Die folgenden Seiten wurden auf diese Zeit verwiesen.

Basic

Um eine ungefähre Kurve für die Datenzeichenfolge zu zeichnen, lautet das einzelne Regressionsmodell $ y = Ax + B $ multiples Regressionsmodell

y=w_0x_0+w_1x_1+\cdots+w_nx_n

Es sollte angenähert werden durch. Darüber hinaus ist ersichtlich, dass für eine einfache Regression nur zwei Elemente in der multiplen Regressionsgleichung verwendet wurden.

Wenn nun das Gewicht jedes Terms $ (w_0, w_1, \ cdots, w_n) $ ist, kann die Funktion des Modells tatsächlich alles sein, und wenn dies $ y = \ phi (x) $ ist,

y(\boldsymbol{x}, \boldsymbol{w}) = \sum_{j=0}^{M-1}w_j\phi_{j}(\boldsymbol{x})

Es wird ausgedrückt als. $ \ boldsymbol {w} = (w_0, w_1, \ cdots, w_ {M-1}) ^ T $, $ \ boldsymbol {\ phi} = (\ phi_0, \ phi_1, \ cdots, \ phi_ {M-1 }) ^ T $. Wenn $ \ phi_0 = 1 $ (Abschnittsbegriff),

y(\boldsymbol{x}, \boldsymbol{w}) = \boldsymbol{w}^T\phi(x)

werden. Dieses $ \ phi (x) $ heißt ** Basisfunktion **.

Verschiedene Basisfunktionen

Der verallgemeinerte Ausdruck bedeutet, dass lineare Regression bedeutet, eine Folge von Koeffizienten $ \ boldsymbol {w} $ zu finden, die eine gegebene Datenzeichenfolge am besten darstellt, indem bestimmte Basisfunktionen kombiniert werden. ..

Mit scikit-learn können Sie verschiedene Basisfunktionen für die Regression verwenden.

Finden Sie den Regressionskoeffizienten

Für einfache und mehrfache Regressionen haben wir einen Koeffizienten gefunden, der die Summe der quadratischen Residuen minimiert. Obwohl es möglich war, w mit einfacher Regression mathematisch zu finden, ist es oft sehr schwierig, eine analytische Lösung zu finden, wenn die Basisfunktion kompliziert ist oder wenn die Daten viele Dimensionen haben. In solchen Fällen ist es notwendig, den Koeffizienten ungefähr zu finden. In diesem Fall wird "** Gradientenabstiegsmethode **" verwendet. Es ist buchstäblich eine Methode, um den optimalen Wert zu finden, während Sie den Hang hinuntergehen (Gradient).

Überlegen Sie, wie Sie die Koeffizienten finden und wie Sie sie mathematisch lösen können. Es wird nachstehend ausführlich beschrieben.

Mathematische Lösung

Es ist eine Methode, um eine Lösung durch Formeltransformation zu finden, wie in einfache Regression und multiple Regression beschrieben. Es ist eine Methode zum Lösen simultaner Gleichungen aus quadratischer Vervollständigung und partieller Differenzierung. Wenn die Formel einfach ist, gibt es kein Problem, aber wenn das Modell kompliziert ist, gibt es Fälle, in denen es nicht gelöst werden kann.

Gradientenabstiegsmethode

Die Gradientenmethode ist buchstäblich eine Möglichkeit, den Gradienten der Verlustfunktion zu verringern. Der Wert der Verlustfunktion muss klein sein, um den optimalen Parameter zu finden, aber es ist ein Bild davon, wie man eine Steigung hinunter zu einem kleineren Wert geht.

Die Methode des steilsten Abstiegs und die Methode des probabilistischen Gradientenabstiegs werden häufig an maschinellen Lernorten eingeführt, aber in der Welt des tiefen Lernens nimmt die verwendete Gradientenabstiegsmethode zu. Man kann sagen, dass dies ein Bereich ist, in dem tiefes Lernen floriert und sich weiterentwickelt.

Die steilste Abstiegsmethode

Wenn bei der Verlustfunktion $ f (x, y) $ der Gradientenvektor teilweise durch $ x $ bzw. $ y $ differenziert ist, ist $ \ nabla f (x, y) = \ biggl (\ frac) {\ partielles f} {\ partielles x}, \ frac {\ partielles f} {\ partielles y} \ biggr) $, also entscheide die Anfangsposition $ (x_0, y_0) $ entsprechend und $ f [(x_0 ,, x_0,) y_0) - \ eta \ nabla f (x_0, y_0)] Mit $ als nächstem Punkt wiederholen, bis das Ergebnis konvergiert. $ \ Eta $ heißt Lernrate.

Die Schwäche dieser Methode besteht jedoch darin, dass es nicht immer eine Verlustfunktion gibt. Die Position der Konvergenz ändert sich, wenn der Anfangswert genommen wird (konvergiert zur lokalen Lösung).

Stochastischer Gradientenabstieg (SGD)

Die Methode mit dem steilsten Abstieg bezieht sich auf einen Punkt, während sich die Methode mit dem probabilistischen Gradientenabstieg auf mehrere Proben bezieht. Berechnen Sie $ w: = w- \ eta \ sum_ {i = 1} ^ n \ nabla Q_i (w) $ mit einer beliebigen Anzahl von extrahierten und gemischten Proben.

In den meisten Fällen scheint SGD schneller zu konvergieren, aber die Methode mit dem steilsten Abstieg ist schneller zu berechnen. In den meisten Fällen denke ich, dass es in Ordnung ist, wenn Sie SGD verwenden (Wikipedia talk. % 9A% 84% E5% 8B% BE% E9% 85% 8D% E9% 99% 8D% E4% B8% 8B% E6% B3% 95)).

Zusammenfassung

Ich schrieb über allgemeine Regressionen und Lösungen, indem ich einfache und mehrfache Regressionen entwickelte. Wenn ich die bisherige Theorie verwende, denke ich, dass es notwendig ist, zu verschiedenen Proben zurückzukehren.

Ich wollte eigentlich die Python-Implementierung ausprobieren, war aber erschöpft. Nachdem ich einige Implementierungen in Python ausprobiert habe, möchte ich als nächstes die Überanpassung und Regularisierung zusammenfassen.

Recommended Posts

Algorithmus für maschinelles Lernen (Verallgemeinerung der linearen Regression)
Lineare Regression des maschinellen Lernens
Algorithmus für maschinelles Lernen (Zusammenfassung und Regularisierung der linearen Regression)
Maschinelles Lernen: Überwacht - Lineare Regression
Algorithmus für maschinelles Lernen (logistische Regression)
Anfänger des maschinellen Lernens versuchen eine lineare Regression
Algorithmus für maschinelles Lernen (multiple Regressionsanalyse)
Algorithmus für maschinelles Lernen (Einzelregressionsanalyse)
Algorithmus für maschinelles Lernen (Implementierung einer Klassifizierung mit mehreren Klassen)
<Kurs> Maschinelles Lernen Kapitel 1: Lineares Regressionsmodell
Logistische Regression beim maschinellen Lernen
EV3 x Python Maschinelles Lernen Teil 2 Lineare Regression
Grundlagen des maschinellen Lernens (Denkmal)
Python Scikit-learn Lineare Regressionsanalyse Nichtlineare einfache Regressionsanalyse Maschinelles Lernen
Verstehe maschinelles Lernen ~ Ridge Regression ~.
Coursera Machine Learning Challenge in Python: ex1 (lineare Regression)
Algorithmus für maschinelles Lernen (einfaches Perzeptron)
Bedeutung von Datensätzen für maschinelles Lernen
Überwachtes maschinelles Lernen (Klassifikation / Regression)
Algorithmus für maschinelles Lernen (Support Vector Machine)
Stapelvorlage für maschinelles Lernen (Rückgabe)
Versuchen Sie, die Leistung des Modells für maschinelles Lernen / Regression zu bewerten
<Kurs> Maschinelles Lernen Kapitel 6: Algorithmus 2 (k-Mittel)
Bedeutung des maschinellen Lernens und des Mini-Batch-Lernens
Python: Anwendung des überwachten Lernens (Rückkehr)
Algorithmus für maschinelles Lernen (Unterstützung von Vektor-Maschinenanwendungen)
Maschinelles Lernen ③ Zusammenfassung des Entscheidungsbaums
Klassifikation und Regression beim maschinellen Lernen
Algorithmus für maschinelles Lernen (Gradientenabstiegsmethode)
Maschinelles Lernen: Überwacht - Lineare Diskriminanzanalyse
[Maschinelles Lernen] Verstehen der linearen einfachen Regression sowohl aus Scikit-Lernen als auch aus Mathematik
Maschinelles Lernen
Lineare Regression
[Maschinelles Lernen] Verstehen der linearen multiplen Regression sowohl aus Scikit-Lernen als auch aus Mathematik
<Subjekt> Maschinelles Lernen Kapitel 3: Logistisches Regressionsmodell
Maschinelles Lernen mit Python (2) Einfache Regressionsanalyse
2020 Empfohlen 20 Auswahlmöglichkeiten für einführende Bücher zum maschinellen Lernen
Plattenreproduktion der Bayes'schen linearen Regression (PRML §3.3)
Zusammenfassung der Klassifizierung und Implementierung von Algorithmen für maschinelles Lernen
Über die Normalgleichung der linearen Regression
<Kurs> Maschinelles Lernen Kapitel 2: Nichtlineares Regressionsmodell
Aktienkursprognose mit maschinellem Lernen (Return Edition)
[Maschinelles Lernen] Liste der häufig verwendeten Pakete
[Maschinelles Lernen] Regressionsanalyse mit Scicit Learn
(Maschinelles Lernen) Ich habe versucht, die Bayes'sche lineare Regression bei der Implementierung sorgfältig zu verstehen
Bewertungsmethode des Regressionsproblems des maschinellen Lernens (mittlerer quadratischer Fehler und Entscheidungskoeffizient)
Klassifizierung von Gitarrenbildern durch maschinelles Lernen Teil 1
Gaußscher EM-Algorithmus mit gemischtem Modell [statistisches maschinelles Lernen]
Beginn des maschinellen Lernens (empfohlene Unterrichtsmaterialien / Informationen)
Maschinelles Lernen des Sports - Analyse der J-League als Beispiel - ②
Grundlagen des Lernens mit einem Lehrer Teil 1 - Einfache Regression - (Hinweis)
Python & Machine Learning Study Memo ⑤: Klassifikation von Ayame
Numerai Turnier-Fusion von traditionellen Quants und maschinellem Lernen-
Python & Machine Learning Study Memo Introduction: Einführung in die Bibliothek
Vollständige Offenlegung der beim maschinellen Lernen verwendeten Methoden
Wörterbuch-Lernalgorithmus
Liste der Links, die Anfänger des maschinellen Lernens lernen
Überblick über maschinelle Lerntechniken, die aus Scikit-Learn gelernt wurden
Über die Entwicklungsinhalte des maschinellen Lernens (Beispiel)