Dies ist jp_Pythonia, ein Schüler der ersten Klasse. Freut mich, dich kennenzulernen. Da dieser Artikel überfüllt war und die Informationsmenge groß ist, habe ich ihn zu einer geteilten Version gemacht.
Was ist maschinelles Lernen? Tom Mitchell definiert:
Das Computerprogramm basiert auf einem Leistungsstandard P für eine Aufgabe T.
Wenn die Leistung für T anhand der Referenz P gemessen wird und sich mit der Erfahrung E verbessert
Man kann sagen, dass wir aus Erfahrung E gelernt haben.
Es gibt zwei Hauptarten des maschinellen Lernens. In den nächsten beiden Abschnitten werden wir zwei davon diskutieren, ** "Teached Learning" ** und ** "Unbeaufsichtigtes Lernen" **.
Betreutes Lernen ist das ** häufigste ** Problem des maschinellen Lernens.
Als Hauptmerkmal
Es gibt zwei Punkte.
→ Beim überwachten Lernen gibt es in jedem Datensatz eine "richtige Antwort".
e.g.)
Wir haben einen Algorithmus entwickelt, der das Wetter vorhersagt, bestimmt, ob es morgen regnerisch oder sonnig sein wird, und es ausgibt.
Alle Wetterdaten, die wir erfuhren, gaben an, ob es an diesem Tag regnete oder sonnig war.
Im obigen Beispiel wird es ** "überwachtes Lernen" genannt. ** ** **
Dies liegt daran, dass die "richtige Antwort" für den Algorithmus, das Regen- oder Sonnenetikett, von Anfang an an die Daten angehängt wurde.
Es gibt zwei Hauptgenres des überwachten Lernens.
Sie sind das "Klassifizierungsproblem" und das "Rückgabeproblem".
Der zuvor gezeigte Algorithmus zur Vorhersage des Wetters. Dies gilt für Klassifizierungsprobleme. Dies liegt daran, dass ** Regen oder Sonne ** ** "klassifiziert" ** ist.
Die Daten von Regen oder sonnigem Wetter werden übrigens als "diskreter Wert" bezeichnet.
Im Gegenteil, das Regressionsproblem ist eine Art Problem, das sich mit "kontinuierlichem Wert" befasst.
e.g.)
Wir haben einen Algorithmus entwickelt, um die Temperatur von morgen vorherzusagen.
Die gelernten Daten sind eine Kombination aus Wetter und Temperatur.
Im obigen Beispiel ist die Temperatur der Ausgabedaten ein "kontinuierlicher Wert", daher wird sie als Regressionsproblem bezeichnet.
Unbeaufsichtigtes Lernen Mit unbeaufsichtigtem Lernen können Sie Probleme lösen, ohne oder mit nur geringem Verständnis dafür, wie die Ergebnisse aussehen werden. Sie können die Struktur aus Daten ableiten, bei denen die Auswirkung der Variablen nicht immer bekannt ist. Diese Struktur kann durch Clustering der Daten basierend auf den Beziehungen zwischen den Variablen in den Daten abgeleitet werden. Beim unbeaufsichtigten Lernen gibt es kein prädiktives Feedback.
Zitiert von https://www.coursera.org/learn/machine-learning/supplement/1O0Bk/unsupervised-learning
Wie oben erwähnt, weist unbeaufsichtigtes Lernen zwei Hauptmerkmale auf.
Was ist ein Clustering-Algorithmus?
Ein Algorithmus, der beim Arbeiten mit Daten hilfreich ist. Der Clustering-Algorithmus findet Regeln, Genres usw. in den angegebenen Daten, erstellt einen Cluster für sich und klassifiziert ihn dort.
Ich habe einen Datensatz vorbereitet. es ist hier.
Fall | Landfläche(x) | Grundstückspreis(y) |
---|---|---|
1 | 2104 | 460 |
2 | 1416 | 232 |
3 | 1534 | 315 |
4 | 852 | 178 |
・ ・ ・ | ・ ・ ・ | ・ ・ ・ |
8 | 680 | 143 |
Wir werden die ** Zeichen ** definieren, die wir von nun an verwenden werden.
Erstellen Sie einen Ausdruck, der die Hypothese h ausdrückt. Hier ist es.
hθ(x) = θ0 + θ1x
Übrigens scheint dies auf den ersten Blick schwierig zu sein, aber können Sie sehen, dass es der linearen Funktionsformel Y = B + AX, die Schüler der Mittelstufe machen, sehr ähnlich ist? Weil die lineare Funktion ein Diagramm wie das folgende ist
Sie können sehen, dass es gerecht ist.
** Und h & thgr; (x) zeigt eine gerade Linie. ** ** **
** Es ist der einfachste Ort, um stecken zu bleiben, also möchte ich, dass Sie sich nur hier merken. ** ** **
In Anlehnung an die obige Modelldarstellung werden wir die Zielfunktionen definieren. In erster Linie sollen diese Ziele jedoch optimierte Linien für einen bestimmten (gezeichneten) Datensatz zeichnen. Zum Beispiel gibt es eine solche Zahl. (Daten wurden aufgezeichnet)
Zu diesem Zeitpunkt besteht der Zweck darin, die rote Linie zu finden und das Quadrat der Entfernung zum blauen Punkt zu minimieren.
Um den in 5-1 eingeführten Zweck zu erreichen, muss die Formel verwendet werden, die zur Minimierung dient. Ich verstehe es jedoch nicht nur anhand der Formel, daher werde ich eine Erklärung geben, die zu einem intuitiven Verständnis führt.
In erster Linie sind Parameter Namen wie & thgr; 0 und 1 & thgr; 1. Die Richtung der roten Linie in der obigen Grafik ändert sich je nachdem, welche Art von Zahl darauf angewendet wird. Es ist in Ordnung, wenn Sie in der Junior High School eine lineare Funktion ausgeführt haben.
e.g.)
Wenn & thgr; 0 = 1,5 und & thgr; 1 = 0 ist:
Es wird sein.
Wenn & thgr; 0 </ sub> = 1 und & thgr; 1 </ sub> = 0,5 ist:
Es wird sein.
Schließlich möchten Sie den Wert von θ </ sub> (y-Achse) auf den Wert von θ </ sub> x (x-Achse) stützen. Sie müssen es nur löschen.
Machen wir eine Formel.
5-3-1 Step 1
(hθ(x) - y)2
Ich werde die obige Formel erklären.
Die Formel in Schritt 1 wird durch Subtrahieren des Wertes von y von der roten Geraden h & thgr; </ sub> (x) in der obigen Grafik quadriert.
5-3-2 Step 2
Erinnern Sie sich an 4-1? Sie konnten den i-ten x-Wert mit X i </ sub> angeben.
In der Formel von Schritt 1 ist kein Beispiel angegeben und es ist sehr abstrakt, daher werde ich hinzufügen, um alle Beispiele zu erhalten. Hier ist es
mΣi=1 (hθ(x( i )) - y( i ))2
mΣi = 1 bedeutet den Gesamtfluss vom Zeitpunkt von i = 1 (Fallnummer 1) bis m (Anzahl aller Fälle).
Auch (h & thgr; </ sub> (x) - y) 2 → (h & thgr; (x) (i) (i) --y (i) </ sup>) 2 </ sup> wurde ersetzt, was bedeutet, dass das i-te y vom i-ten x subtrahiert wird.
5-3-3 Step 3
Zum Schluss multiplizieren Sie mit 1 / 2m, um die Berechnung zu vereinfachen.
1/2m mΣi=1 (hθ(x( i )) - y( i ))2
1/2 und 1 / m werden jedoch nur ** vereinfacht, da sich das Ergebnis nicht ändert **, sodass es keine besondere Bedeutung gibt.
Wie ich in 5-1 geschrieben habe, habe ich die Anzahl von θ </ sub> 0 </ sub> und θ 1 </ sub> festgelegt, und eine der minimierten Funktionen, die genau zu den aufgezeichneten Daten passen, ist die Kostenfunktion. Also habe ich die Formel zur Auswahl von Parametern eingeführt.
Nun, schließlich ist die Kostenfunktion ** J (θ 0 </ sub>, θ 1 </ sub>) **. Wenn wir also die Kostenfunktion zeigen,
** J (& thgr; 0, Sub 1) = 1/2 m m & sgr; i = 1 (h & thgr; (x (i) <) / sup>) --y (i) </ sup>) Kann als 2 </ sup> ausgedrückt werden. ** ** **
Daher wird die Kostenfunktion von nun an durch J dargestellt.
Bisher haben wir h & thgr; </ sub> (x) = & thgr; 0 + & thgr; 1 x verwendet.
hθ( x ) = θ1x
Es wird ausgedrückt als.
Es ist, als würde man θ 0 </ sub> = 0 sagen.
Da es nur einen Parameter gibt, lautet die Formel für die Kostenfunktion J.
J( θ1 ) = 1/2m mΣ i=1 (hθ(x( i )) - y( i ))2
Kann ausgedrückt werden als.
Vereinfacht als 6-1, weil B = & thgr; 0 </ sub> = 0 im linearen Funktionsgraphen Y = AX + B ist, durchläuft die Zielfunktion (Kostenfunktion) J den Ursprung. ..
Übrigens ist die Hypothese h & thgr; (x) die Funktion, die x entspricht. Dies liegt daran, dass, wenn & thgr; 1 </ sub> bereits bestimmt wurde, es ein Ausdruck ist, der x entspricht.
Andererseits ist die Kostenfunktion J eine Funktion, die & thgr; 1 entspricht. Sie können das sehen, indem Sie 6-1 betrachten.
Angenommen, die Daten befinden sich an den Positionen (1,1), (2,2) bzw. (3,3).
Die gerade Linie der Hypothese ändert sich, weil & thgr; 0 </ sub> = 0 in Abhängigkeit von dem Wert von & thgr; 1 </ sub> der Hypothese h & thgr; </ sub> (x) gesetzt wird. Ich werde.
Basierend auf der obigen Hypothese berechnen wir nun den numerischen Wert, der auf die Zielfunktion J aufgetragen werden soll.
Zuerst die lila Linie. Da der grüne Kreis der Ort der Daten ist, beträgt die Differenz 0,5, 1,0, 1,5 in aufsteigender Reihenfolge.
Wenden wir diese drei nun auf die Formel der Kostenfunktion J an.
J( θ1 ) = 1/2m mΣ i=1 (hθ(x( i )) - y( i ))2
Wenn Sie dies berechnen,
J (& thgr; 1) = 1/6 (3,5) = 0,58 ...
Ebenso auf der magentafarbenen (rosa) Linie
J(θ1) = 0
In der roten Linie
J (& thgr; 1) = 2,33 ...
Zeichnen Sie dann die drei Werte, die Sie gerade erhalten haben.
Das Ergebnis ist hier.
Die Linienfarbe und die Kreisfarbe stimmen überein. Die obige Grafik zeigt die Zielfunktion J.
Zielfunktion J definiert in 5-4. Abschnitt 7 beschreibt einen Algorithmus namens ** Methode mit dem steilsten Abstieg **, der J minimiert.
Die Methode mit dem steilsten Abstieg ist so. ![Screenshot 2020-01-25 15.24.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448030/8d4f647e-aa35-056a-ab16- 965eaeb03156.png)
Zitiert von https://linky-juku.com/simple-regression-analysis3/
Zitiert von https://linky-juku.com/simple-regression-analysis3/
Als Schwäche, wie in der obigen Grafik gezeigt, kann jedoch eine sogenannte ** lokale Lösung ** (keine optimale Lösung, keine wünschenswerte Antwort) die Antwort sein.
Dies ist die zu verwendende Formel.
Step 1
Das Teil :: = bedeutet, dass die rechte Seite der linken Seite zugewiesen und aktualisiert wird.
Step 2
α bezieht sich auf die Lernrate. Die Methode mit dem steilsten Abstieg erreicht den Mindestwert in mehreren Schritten, wie in der folgenden Abbildung gezeigt. Je größer α ist, desto größer ist der Schritt.
Step 3
Erinnerst du dich. Kostenfunktion. Tatsächlich ist J (θ 0 </ sub>, θ 1 </ sub>) eine Kostenfunktion. Wie du weißt.
Sie können es also folgendermaßen konvertieren:
J(θ0,θ1)=1/2mmΣi=1(hθ(x(i))-y(i))2=1/2mmΣi=1(θ0+θ1x(i)-y(i)) 2
Betrachten Sie dann die Muster von θ 0 </ sub> und θ 1 </ sub>.
θ0 ( j = 0) : ∂/∂θ0 J(θ0, θ1 ) = 1/m mΣi=1 (hθ(x( i )) - y( i ))2
θ1 ( j = 0) : ∂/∂θ1 J(θ0, θ1 ) = 1/m mΣi=1 (hθ(x( i )) - y( i ))2
ok。
Wie Sie die Formel für die Methode des steilsten Abstiegs gesehen haben, gibt es tatsächlich einen sehr wichtigen Faktor.
Es wird ** gleichzeitig θ </ sub> 0 </ sub> und θ 1 </ sub> aktualisiert **.
Temp0: = θ 0 </ sub> -![Screenshot 2020-01-25 15.44.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com /0/448030/eaab3438-8dd9-131e-77eb-7b1293c2fc37.png)
Temp 1: = θ 1 </ sub> -![Screenshot 2020-01-25 15.44.43.png](https: //qiita-image-store.s3.ap-northeast-1.amazonaws. com / 0/448030 / eaab3438-8dd9-131e-77eb-7b1293c2fc37.png)
θ0 := Temp0
θ1 := Temp1
In der obigen Formel einmal![Screenshot 2020-01-25 15.44.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448030/eaab3438- 8dd9-131e-77eb-7b1293c2fc37.png) wird den Variablen Temp0,1 und dann θ0 </ sub> und θ1 </ sub> zugewiesen.
Dann mach das nicht
Was ist, wenn dir das gefällt?
Eigentlich gibt es ein großes Problem. Das heißt, zum Zeitpunkt des Ausdrucks in der zweiten Zeile wurde θ0 </ sub> durch die Variable Temp0 ersetzt, so dass auf der rechten Seite des Ausdrucks in der dritten Zeile der neue Wert θ0 </ Der Punkt ist, dass sub> im Ausdruck verwendet werden soll.
Bitte beachten Sie, dass ** gleichzeitige Updates obligatorisch sind **, unabhängig davon, ob das Problem tatsächlich auftritt oder nicht.
Voraussetzung ist, dass die Methode des steilsten Abstiegs Teil der Kostenfunktion ist.
Zitiert aus (https://www.coursera.org/learn/machine-learning/lecture/kCvQc/gradient-descent-for-linear-regression)
Könnten Sie übrigens die beiden obigen Bilder sehen?
Die Abbildung rechts lautet übrigens![Screenshot 2020-01-25 14.51.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448030/1da1ec0c -0a05-eefa-b571-2f1e04c9a53b.png) Dieses Kostenfunktionsdiagramm ist mit Konturlinien gezeichnet, so dass es in zwei Dimensionen sichtbar ist.
In der vorherigen Abbildung zeigt das Verschieben der blauen Linie das Ergebnis der Erhöhung der roten Kreuzmarkierung. Wie Sie wissen, ist links die lineare Regression und rechts die Kostenfunktion. Durch Ändern der Richtung der Linie der linearen Regressionshypothese ändert sich auch das Ergebnis der Kostenfunktion. Das wollte ich in 7-4 vermitteln.
Beispielsweise kann die Methode des steilsten Abstiegs verwendet werden, um zu verhindern, dass sie zu einer lokal optimalen Lösung führt.
\begin{bmatrix}
a & b \\
c & d \\
e & f
\end{bmatrix}
Zum Beispiel ist die obige eine Matrix. 3 x 2
Ein Vektor hat horizontal nur eine Zeile
y =
\begin{bmatrix}
a \\
c \\
e
\end{bmatrix}
Stellt eine n x 1 Zeile wie oben gezeigt dar.
Es gibt einige Regeln.
Zum Beispiel
y i </ sub> = i th </ sup> -Element (a im obigen Beispiel)
** Sie müssen jedoch vorsichtig sein, ob die dem Index zugewiesene Nummer bei 0 oder 1 beginnt. ** ** **
Verwenden Sie grundsätzlich den Indexvektor ab 1.
Grundsätzlich verwenden die meisten Leute Großbuchstaben, wenn sie auf einen Index verweisen. Es sind oft die gespeicherten Rohdaten, die Kleinbuchstaben verwenden
Die Regeln zum Addieren und Subtrahieren von Matrizen sind:
** Nur Matrizen gleicher Dimension **
Es ist nicht möglich zu addieren oder zu subtrahieren.
\begin{bmatrix}
1 & 0 \\
2 & 5 \\
3 & 4
\end{bmatrix}
+
\begin{bmatrix}
4 & 7 \\
2 & 9 \\
0 & 8
\end{bmatrix}
=
\begin{bmatrix}
5 & 7 \\
4 & 14 \\
3 & 12
\end{bmatrix}
Wie Sie oben sehen können, sind die beiden hinzuzufügenden Elemente und das Element der Antwort 3 x 2. Und die Zahlen mit der gleichen vertikalen und horizontalen Position werden addiert.
Skalar ist übertrieben, aber es bedeutet eine reelle Zahl. Damit
3 ×
\begin{bmatrix}
2 & 5 \\
3 & 4
\end{bmatrix}
=
\begin{bmatrix}
6 & 15 \\
9 & 12
\end{bmatrix}
Es ist in Ordnung mit einem Gefühl.
Ich fühle mich so.
\begin{bmatrix}
2 & 5 \\
3 & 4
\end{bmatrix}
\begin{bmatrix}
6 \\
9
\end{bmatrix}
=
\begin{bmatrix}
57 \\
54
\end{bmatrix}
Nennen Sie die Matrix A, B, C in der Reihenfolge von links.
Schritt 1: Setzen Sie links von der oberen Reihe von A in die obere Reihe von B und rechts von der oberen Reihe von A in die untere Reihe von B. (2 x 6 und 5 x 9 dazu.)
Schritt 2: Wiederholen Sie 3 x 6 und 4 x 9 wie oben.
Übrigens war A diesmal 2 x 2. B ist 2 x 1 und C ist 2 x 1. Eigentlich passiert das nicht. ** Es gibt feste Regeln **
A → m × n (2 × 2)
B →n × 1(2 × 1)
C → m × 1(2 × 1)
Bitte beachten Sie, dass diese Regel von nun an verwendet wird.
** Tatsächlich gibt es eine Möglichkeit, die Verwendung iterativer Algorithmen in linearen Regressionsalgorithmen zu vermeiden, und dieser Abschnitt führt auch dazu. ** ** ** Was ich diesmal machen werde
\begin{bmatrix}
2 & 5 & 2 \\
3 & 4 & 7
\end{bmatrix}
×
\begin{bmatrix}
6 & 8\\
9 & 3\\
2 & 3
\end{bmatrix}
=
Es ist der Weg von. Teilen Sie zuerst B in zwei Vektoren. Wie nachstehend
\begin{bmatrix}
2 & 5 & 2 \\
3 & 4 & 7
\end{bmatrix}
×
\begin{bmatrix}
6\\
9 \\
2
\end{bmatrix}
=
\begin{bmatrix}
2 & 5 & 2 \\
3 & 4 & 7
\end{bmatrix}
×
\begin{bmatrix}
8\\
3 \\
3
\end{bmatrix}
=
Ich habe jeden berechnet.
\begin{bmatrix}
2 & 5 & 2\\
3 & 4 & 7
\end{bmatrix}
×
\begin{bmatrix}
6\\
9 \\
2
\end{bmatrix}
=
\begin{bmatrix}
61\\
68
\end{bmatrix}
\begin{bmatrix}
2 & 5 & 2\\
3 & 4 & 7
\end{bmatrix}
×
\begin{bmatrix}
8\\
3 \\
3
\end{bmatrix}
=
\begin{bmatrix}
37\\
57
\end{bmatrix}
Und füge das C in zwei Teile zusammen
\begin{bmatrix}
61& 37 \\
68 & 57
\end{bmatrix}
das ist alles.
Natürlich sollten Sie A x B nicht in B x A ändern, siehe 8-6 aus irgendeinem Grund.
Ich möchte nicht nur Dinge schreiben, die zu offensichtlich sind, also schreibe ich nur, dass Sie selbst überlegen sollten, ob die Reihenfolge der Multiplikation falsch ist.
Die Zahl 1 repräsentiert die Einheit, Identität im realen Raum. Weil das Multiplizieren mit 1 gleich der Zahl selbst ist. Jede reelle Zahl hat eine umgekehrte Zahl. Zum Beispiel ist die Umkehrung von 3 1/3.
Sie können also sehen, dass im realen Raum alle Zahlen keine Umkehrung haben. Zum Beispiel 0.
Dann wird es auch als Inverse der Matrix, Inverse oder Inverse Matrix bezeichnet, aber was ist das? Lassen Sie uns diesen Artikel damit abschließen.
Sei A eine m × m-Matrix. Angenommen, es gibt eine inverse Matrix. Und stellen wir die inverse Matrix als A -1 -1 </ sup> dar.
Von den Matrizen hat nur die m × m-Matrix eine inverse Matrix und wird auch als quadratische Matrix bezeichnet.
Angenommen, Sie haben eine quadratische Matrix.
```math
\begin{bmatrix}
3& 4 \\
2 & 16
\end{bmatrix}
```
Außerdem kannte ich zufällig die inverse Matrix.
```math
\begin{bmatrix}
0.4& -0.1 \\
-0.05 & 0.075
\end{bmatrix}
```
Und wenn Sie diese Matrix multiplizieren,
```math
=
\begin{bmatrix}
1& 0 \\
0 & 1
\end{bmatrix}
```
= I 2 × 2 </ sub>. (I ist ein Symbol für eine Einheitsmatrix)
Natürlich ist es möglich, die inverse Matrix von Hand zu machen, aber das macht derzeit niemand. Wie berechnet man das?
** Ich benutze eine Software namens Octave **
Seien Sie versichert, dass in Teil 2 die Verwendung von Octave erläutert wird.
Lassen Sie uns nun die Begriffe zusammenfassen.
Eine Matrix ohne inverse Matrix wird als singuläre Matrix oder reduzierte Matrix bezeichnet.
** Wirklich, endlich, ich werde dir sagen, wie man die Translokation berechnet **.
```math
\begin{bmatrix}
1 & 2 & 0 \\
3 & 4 & 9
\end{bmatrix}
```
→
```math
\begin{bmatrix}
1 & 3 \\
2 & 5 \\
0 & 9
\end{bmatrix}
```
Diejenigen, die dachten, das sei der einzige. Korrekt. nur das. Bringen Sie einfach die obere Reihe nach links und die untere Reihe nach rechts. das ist alles. Danke für deine harte Arbeit.
Vielen Dank, dass Sie so weit gelesen haben.
~~ Ich werde einen Link posten, wenn die Fortsetzung fertig ist, also lies ihn bitte. ~~ Teil 2 Ich habe es geschrieben.
Herzlich willkommen. Gehen Sie zu "Maschinelles Lernen Teil 2, das auch Schüler der Mittelstufe vollständig verstehen können". Wenn Sie Teil 1 noch nicht gelesen haben, müssen Sie Teil 1 nicht zuerst lesen. (Bis zu Abschnitt 1)
1-1 Windows
Es tut mir leid, meine Umgebung ist kein Mac, daher werde ich eine kurze Erklärung und einen Link geben.
Verwenden Sie zunächst den Link hier zur Installation.
Als Referenzseite werden wir auch [hier] vorstellen (https://www.power.mech.eng.osaka-cu.ac.jp/~takiyama/start-oct-cntrl.html).
1-2 Mac OS
** Wir haben den Betrieb unter Mac OS High Sierra bestätigt. ** ** **
Sie können auf [hier] verweisen (https://wiki.octave.org/Octave_for_macOS).
Step 1
Installieren Sie Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Bitte legen Sie es in das Terminal. (Es ist eine Zeile)
Step 2
Dazu gehört auch Homebrew Cask.
brew tap caskroom/cask
Übrigens, wenn Sie eine Fehlermeldung erhalten, geben Sie `Braufass
`ein. Wenn Sie "Siehe auch" Man Brew-Cask "sehen, ist es bereits in.
Step 3
Installieren Sie XQuartz
Installieren Sie mit Homebrew Cask.
brew cask install xquartz
brew install octave
Warten wir geduldig
Step 5
Starten Sie Octave
Octave
Dies sollte beginnen.
Octave:1>
Es ist in Ordnung, wenn es herauskommt
exit
Geben Sie zum Beenden ein und es funktioniert wie eine normale Konsole.
** Ich habe die Methode von Schritt 1-5 bisher von hier zitiert: **
https://blog.amedama.jp/entry/2017/04/28/232547
1-3 Linux
Es tut uns leid. Es ist möglich, dass es keine Betriebsumgebung gibt, aber (Zorin OS) Ich mache es nicht, weil es nervt. Bitte probieren Sie es aus.
Wow ... viele Kanji ...
In Abschnitt 2 wird eine leistungsfähigere lineare Regression erläutert, die für mehrere Variablen funktioniert.
Zunächst wurde in der vergangenen linearen Regression y basierend auf der Information x vorhergesagt, die als einzelnes Merkmal (einzelne Variable) mit nur einem x bezeichnet wurde. Wenn Sie beispielsweise den Preis eines Hauses oder den Aktienkurs von morgen vorhersagen, ist es schwierig, diese anhand nur einer Information vorherzusagen.
Daher werden wir mehrere Informationen unter Verwendung einer multivariaten linearen Regression verwenden.
Dann werde ich die Datenbank als Beispiel präsentieren. es ist hier.
Früher war es ein x, aber wir weisen die Nummern 1-4 zu.
Fall Nr..( i ) | Größe(x1) | Anzahl der Schlafzimmer(x2) | Anzahl der Etagen(x3) | Wie alt(x4) | Preis(y)Zehntausend Yen |
---|---|---|---|---|---|
1 | 2104 | 5 | 1 | 45 | 4600 |
2 | 1416 | 3 | 2 | 40 | 2320 |
3 | 1534 | 3 | 2 | 30 | 3150 |
4 | 852 | 2 | 1 | 36 | 1780 |
・ ・ ・ | ・ ・ ・ | ・ ・ ・ | ・ ・ ・ | ・ ・ ・ | ・ ・ ・ |
Dann definieren wir die vorausgesetzten Zahlen.
n ・ ・ ・ 4. Gibt die Anzahl der Variablen x an.
x (i) </ sup> i ・ ・ Die i-te Variable x wird durch einen Vektor dargestellt. Wenn x (2) </ sup>,
\begin{bmatrix}
1416 \\
3 \\
2 \\
40
\end{bmatrix}
Es wird sein. Es bedeutet nicht das Quadrat von x. Und der obere Vektor ist n Dimensionen (hier 4 Dimensionen, 4 x 1).
x j </ sub> (i) </ sup> ・ ・ ・ Tatsächlich sind j und (i) vertikal ausgerichtet. Zum Beispiel ist im Fall von x 3 </ sub> (2) </ sup> die Antwort 2, was der dritten Variablen im vorherigen Vektor entspricht.
Bis jetzt war es so.
hθ(x) = θ0 + θ1x
Da x jedoch nicht mehr eins ist, ändert sich auch die Form des Ausdrucks. Hier ist es.
hθ(x) = θ0 + θ1x1 + θ2x2 + θ3x3 + θ4x4
Die obige Formel hat jedoch ein großes Problem, da sie mit zunehmendem n wächst.
Das heißt, das Schreiben von Formeln mit Abschriften ist überraschend anstrengend. Vereinfachen wir also die Formel.
Was zu tun ist, ist den Index von x als 0 = 1 zu definieren.
Dies bedeutet, dass es für jeden Fall i einen Funktionsvektor x (i) </ sup> gibt. Und über x j </ sub> (i) </ sup>, eingeführt in 2-1 x 0 </ sub> (i) </ sup> Definieren = 1. Zu diesem Zeitpunkt bedeutet dies, dass x 0 </ sub> = 1 des i-ten Falls definiert ist, aber ursprünglich x 0 </ sub> nicht existiert. Mit anderen Worten, im x (i) </ sup> -Vektor haben wir das 0. Merkmal willkürlich als 1 definiert. Dies macht also x (i) </ sup> zu einem n + 1-dimensionalen Vektor. OKAY?
** Der obige Inhalt ist schwierig. Bitte schreiben Sie es auf ein Blatt Papier und lesen Sie es wiederholt. Wenn Sie es ungefähr dreimal lesen, sollten Sie es so verstehen können wie ich. ** ** **
Und wir betrachten Parameter als Vektoren.
θ =
\begin{bmatrix}
θ<sub>0</sub> \\
θ<sub>1</sub> \\
θ<sub>2</sub> \\
・\\
・\\
・\\
θ<sub>n</sub> \\
\end{bmatrix}
Und jetzt können Sie die Form der Formel ändern.
hθ(x) = θ0 + θ1x1 + θ2x2 + θ3x3 + θ4x4
= hθ(x) = θ0x1 + θ1x1 + θ2x2 + θ3x3 + θ4x4
Transponieren Sie übrigens θ. Kurz gesagt, es ändert seine Form als Vektor.
θ =
\begin{bmatrix}
θ0 \\
θ1 \\
θ2 \\
・\\
・\\
・\\
θn \\
\end{bmatrix}
=
\begin{bmatrix}
θ0 & θ1 & θ2 &・
&・
&・
& θn
\end{bmatrix}
Was 1 x n + 1 Dimension war, ist jetzt n + 1 x 1 Dimension. Dies ist eine Translokation. Es wird durch den Buchstaben T dargestellt. Und multipliziere dies mit dem Vektor von x
\begin{bmatrix}
θ0 & θ1 & θ2 &・
&・
&・
& θn
\end{bmatrix}
×
\begin{bmatrix}
xo \\
x1 \\
x2 \\
・\\
・\\
xn
\end{bmatrix}
=
= h & thgr; </ sub> (x) = & thgr; 0 </ sub> x 1 </ sub> + & thgr; 1 </ sub> x 1 </ sub> > + & thgr; 2 </ sub> x 2 </ sub> + & thgr; 3 </ sub> x 3 </ sub> + & thgr; 4 x 4 </ sub> (die obige Formel)
= θ Tx
Dies ist die lineare Regression der Typvariablen. Es war der schwierigste Inhalt, mit dem ich mich seit Teil 1 befasst habe ...
Im vorherigen Abschnitt hatten wir die Idee der linearen Regression, wenn mehrere Elemente vorhanden sind. In diesem Abschnitt werden wir uns überlegen, wie die Parameter an die Hypothese angepasst werden können.
Basierend auf Abschnitt 2 werden wir die Formel transformieren.
J(θ0, θ1, ... ,θn)= 1/2m mΣi=1 (hθ(x(i))-y(i))2
→ J(θ)= 1/2m mΣi=1 (hθ(x(i))-y(i))2
Der Grund für die obige Formel ist
θ =
\begin{bmatrix}
θ0 \\
θ1 \\
θ2 \\
・\\
・\\
・\\
θn \\
\end{bmatrix}
Deshalb.
Nächster,
θj := θj - α ∂/∂θj J(θ0, θ1, ... ,θn)
→ θj := θj - α ∂/∂θj J(θ)
OK?
Und ich werde die steilste Abstiegsmethode schreiben.
Wenn Gruppe A n = 1:
** Muster 1 **
θ0 := θ0 - α 1/m mΣi=1(hθ(x(i)) - y(i))
** Muster 2 **
θ1 := θ1 - α 1/m mΣi=1(hθ(x(i)) - y(i))x(i)
Wenn Gruppe B größer als n = 1 ist, dann:
** Muster 1 **
θ0 := θ0 - α 1/m mΣi=1(hθ(x(i)) - y(i))x0(i)
** Muster 2 **
θ1 := θ1 - α 1/m mΣi=1(hθ(x(i)) - y(i))x1(i)
Wenn Sie A-1 und B-1 vergleichen, werden Sie zunächst feststellen, dass sie gleich sind. Dies liegt daran, dass die Regel x 0 </ sub> (i) </ sup> = 1 keinen Unterschied macht.
Gleiches gilt für A-2 und B-2.
x (i) </ sup> = x 1 </ sub> (i) </ sup>.
Nun, Sie müssen die Formel noch nicht kennen, also überprüfen Sie sie bitte sorgfältig.
In diesem Abschnitt 4 werden praktische Ideen für die Verwendung der Methode mit dem steilsten Abstieg vorgestellt.
Einführung in die zukünftige Skalierung.
Zum Beispiel sei x 1 </ sub> die Größe Ihres Hauses, 0-2000 m 2 </ sup>.
x 2 </ sub> ist die Anzahl der Schlafzimmer zwischen 1 und 5.
Zu diesem Zeitpunkt gibt es zwei Muster im Diagramm der Methode mit dem steilsten Abstieg.
Wann,
ist. (Beide zitiert aus https://www.coursera.org/learn/machine-learning/lecture/xx3Da/gradient-descent-in-practice-i-feature-scaling)
Was bedeutet dieser Ring überhaupt? Der Schüsseltyp der in 7-4 von Teil 1 gezeigten Kostenfunktion ist konturiert. Es ist eine zweidimensionale Version verwendet. Das Zentrum ist also die Antwort. Es ist eine der steilsten Abstiegsmethoden.
Die rote Linie repräsentiert nun die Schritte, um zur Antwort zu gelangen. Auf jeden Fall ist es das letztere des Graphen, das näher an einem Kreis liegt, der die Antwort zuerst effizient erreichen kann.
Wie zeichnet man ein Diagramm, das sich in der Nähe eines Kreises befindet? Die Antwort ist einfach. Kurz gesagt sollten die Werte von & thgr; 0 </ sub> und & thgr; 1 </ sub> (dh Variablen x1, x2) näher beieinander liegen.
In diesem Beispiel ist beispielsweise x1 1/5 und x2 1/2000. In der Tat ist das Ergebnis das letztere. Ersteres verwendet die Daten so wie sie sind.
Und die oben genannten Aktionen werden als ** Vermögensskalierung ** bezeichnet.
Was sind die Regeln, um die Werte näher zusammenzubringen? Wenn der Datenbereich selbst groß ist, muss zunächst nicht skaliert werden. ** Wie entscheiden Sie, ob Sie skalieren möchten oder nicht **
Ein gültiges Beispiel stammt von Professor Andrew Ng von der Stanford University.
-3 bis 3 ・ ・ ・ OK
-1/3 bis 1/3 ・ ・ ・ OK
-0,001 bis 0,001 ・ ・ ・ NG (Knebel meines Vaters)
-100 bis 100 ・ ・ ・ NG
Kurz gesagt, es ist ** rau **.
Zuvor habe ich die Daten durch den Maximalwert geteilt. Wie jedoch oft auf andere Weise verwendet,
Es gibt so etwas wie ** durchschnittliche Normalisierung **.
Dies dient dazu, x i </ sub> abzurufen und zu versuchen, den Durchschnitt einschließlich der anderen Variablen x näher an 0 zu bringen.
Wie Sie jedoch wissen, ist x 0 </ sub> immer 1. Beachten Sie daher, dass es nicht für x 0 </ sub> verwendet werden kann.
** Was zu tun ist, ist dies **
x1 = Größenmittel / Maximum von x1 (hier x1 = Größe 1000/2000)
x2 = Anzahl der Schlafzimmer - durchschnittlich / maximal (hier x2 = Anzahl der Schlafzimmer - 2/5)
Dies bringt es näher an Null. Das ist seltsam.
** Feature-Skalierung ist nicht streng ** Grundsätzlich ist es in Ordnung
e.g.)
Angenommen, Sie haben zwei Funktionen für ein Haus.
x1 ist die Länge der Fassade (Breite zur Straße)
x2 ist die Länge der Tiefe
Natürlich ist es natürlich, x1 und x2 so zu verwenden, wie sie sind, aber unter der Annahme, dass die Größe des Grundstücks als drittes Merkmal den Preis des Hauses bestimmt,
x ist x1 x x2
Das könntest du sagen.
Weil x1 und x2 zufällig zuerst existierten. Übrigens habe ich das Gefühl, dass ich es oft in maschinellen Lernwettbewerben wie Kaggle benutze. (Geheimnis)
Bei der Definition der Merkmale möchte ich Ihnen die sogenannte ** Polypoly-Regression ** vorstellen.
Es gibt viele Variationen in der linearen Regressionsgleichung. Zum Beispiel hier.
hθ + θ1x1 + θ2x2 + θ3x3
Und das ist
= & thgr; 0 </ sub> + & thgr; 1 (Größe) + & thgr; 2 (Größe) 2 </ sup> + & thgr; 3 Es kann auch als </ sub> (Größe) 3 </ sup> ausgedrückt werden.
x1 + (size)
x2 + (size)2
Wenn x 3 </ sub> + (Größe) 3 </ sup>.
Dies ist eine kubische Funktion. Nun, dies ist nur ein Beispiel, aber zum Beispiel ein Diagramm, in dem Daten dargestellt sind, die die Beziehung zwischen Wohnfläche und Preis zeigen.
In Zeiten wie diesen ist eine kubische Funktion gut. Warum denken Sie
Wenn es sich um eine lineare Funktion handelt, handelt es sich um eine gerade Linie, und wenn es sich um eine quadratische Funktion handelt, wird sie in einem Bogen wieder abgesenkt. Es ist schwer vorstellbar, dass der Preis eines Hauses sinken wird, wenn es zu viele Standorte gibt.
Und ** denken Sie daran, Feature-Skalierung **. Ich werde es von nun an verwenden.
Wenn Sie ** Größe einstellen: 1-1000 **,
x1 = 1-1000
x2 = 1-1,000,000
X3 = 1-1.000.000.000.
Wie erwartet ist dies ... Feature-Skalierung kommt ins Spiel.
Bitte führen Sie die Berechnung jedoch selbst durch. Ich habe meine Hausaufgaben heute noch nicht erledigt (lacht)
Nun, ich habe vorhin geschrieben, dass die quadratische Funktion nicht verwendet werden kann, da sie schließlich zu ihrem ursprünglichen Wert zurückkehrt und niedrig wird, aber auf diese Weise kann sie verwendet werden.
Wenn Sie die obige Formel verwenden, können Sie vermeiden, dass das Diagramm nach unten geht. Der Grund sind die Hausaufgaben des Lehrers (lacht).
** Wie wählst du denn eine Zukunft? **
Bitte lesen Sie von nun an Teil 3, 4, ... und alle Serien. Dann wirst du sicher verstehen.
(Ich kann noch nichts sagen, während ich Teil 3 schreibe ...)
Übrigens, seien Sie versichert, dass ** der Algorithmus es am Ende automatisch auswählt **. (Ich trage es)
Normale Gleichungen bieten eine bessere Möglichkeit, den Parameter θ bei einigen linearen Regressionsproblemen zu finden.
Insbesondere war der bisher für die lineare Regression verwendete Algorithmus die Methode mit dem steilsten Abstieg.
Die Methode mit dem steilsten Abstieg war ein Algorithmus, der konvergiert, indem er durch Wiederholen vieler Schritte und mehrfacher Ergebnisse zur optimalen Lösung gelangt.
Im Gegensatz dazu sind ** normale Gleichungen die ** stärksten ** Algorithmen, die sofort die optimale Lösung erreichen können, ohne dass iterative Algorithmen ** ausgeführt werden müssen, um eine Möglichkeit zur analytischen Lösung von θ bereitzustellen. (Später bemerke ich einen großen Nachteil)
Lassen Sie uns zunächst ein intuitives Verständnis erlangen.
Als Voraussetzung nehmen wir an, dass θ eine reelle Zahl ist. Ich glaube übrigens nicht, dass es ein Vektor ist. Bitte seien Sie vorsichtig.
Ausdruck wie dieser
J(θ) = αθ2 + bθ + c
Mit anderen Worten, betrachten wir die Kostenfunktion J.
Aber erinnern Sie sich vorher daran, dass das θ, mit dem wir es zu tun haben, ein n + 1-dimensionaler Vektor ist?
Die Formel sieht so aus.
J(θ0,θ1,...,θm)= 1/2m mΣi=1 (hθ(x( i ))-y ( i ))2
Das Problem besteht darin, wie die Kostenfunktion J minimiert werden kann, aber die Antwort der Kostenfunktion J besteht darin, die teilweise Differenzierung von J zu nehmen und verschiedene Probleme für jeden Parameter & thgr; j zu lösen. Es scheint, dass dies abgeleitet werden kann, aber in diesem Abschnitt werden wir uns einem konzeptionelleren Punkt nähern.
Angenommen, Sie haben einen solchen Datensatz.
Erstellen Sie dann eine Spalte mit x 0 </ sub>, um eine Matrix mit x zu erstellen.
y ist das gleiche.
Das obige x ist m x n + 1. y ist ein m-dimensionaler Vektor. Übrigens ist m die Anzahl der Fälle im Datensatz und n die Anzahl der Merkmale (Variable x).
** Also, was ist eine normale Gleichung **
θ = (XTX)-1XTy
Ich möchte, dass Sie sich daran erinnern, dass der Buchstabe T mit einem Wow ist
In diesem zweiten Artikel fiel mir auf, dass ich versehentlich zweimal Daten gelöscht habe, was mich ernsthaft dazu brachte, über die Arbeit auf Cloud-Basis nachzudenken. Nun, welches bist du?
Typ A scheint schwierig zu sein, deshalb habe ich nur zu diesem Punkt gescrollt
Ich habe alles gelesen und mich gefragt, was Typ B ist
Ich denke über 90% und 5 Minuten ist Typ A ...
Freut mich, dich kennenzulernen!
** Teil 3 wird am Freitag um Mitternacht veröffentlicht. ** ** **
Week 3 Veröffentlicht am 16. um 21:00 Uhr
Week 4 Veröffentlicht am 16. um 21:00 Uhr
Week 5 Veröffentlicht am 17. um 21:00 Uhr
Week 6 Veröffentlicht am 19. um 21:00 Uhr
Week 7 Veröffentlicht am 20. um 21:00 Uhr
Week 8 Veröffentlicht am 22. um 21:00 Uhr
Week 9 Veröffentlicht am 23. um 21:00 Uhr
Week 10 Veröffentlicht am 24. um 21:00 Uhr
Week 11 Veröffentlicht am 26. um 21:00 Uhr
Wie war es. Der größte Teil der Tabelle ist jetzt, aber wir werden den Inhalt erhöhen. Der Grund, warum ich mein Bestes gebe, ist, dass das Tutorial für Anfänger in der Computerabteilung, zu der ich gehöre, Spiele mit C # erstellt. Absolut Python x maschinelles Lernen ist von nun an gut. Wenn Sie möchten, mögen Sie es bitte.