Natürlich nehme ich das nicht ernst. Es muss schließlich einen Punkt geben, bis zu dem man ein Thema vereinfachen kann. Aber für die ersten Schritte, um die grundlegenden Konzepte zu verstehen und schnell in das Thema einzutauchen, kann es vielleicht in Ordnung sein. Wie wir dieses Material dann richtig benennen (Vorschläge: "Maschinelles Lernen für Einsteiger", "Datenanalyse für Anfänger", "Algorithmen für die Kleinsten"), besprechen wir am Ende.
Kommen wir zum Punkt. Ich habe einige praktische Programme in MS Excel erstellt, um die Prozesse zu visualisieren und anschaulich darzustellen, die in verschiedenen Methoden des maschinellen Lernens bei der Datenanalyse ablaufen. Sehen heißt glauben, wie die Träger der Kultur sagen, die die meisten dieser Methoden entwickelt hat (übrigens längst nicht alle. Die mächtige "Support-Vektor-Maschine", oder SVM, ist die Erfindung unseres Mitbürgers Wladimir Wapnik, Moskau Institut für Management. 1963, übrigens! Heute lehrt er aber in den USA und arbeitet dort).
Drei Dateien zur Einsichtnahme
1. K-Means-Klasterbildung
Aufgaben dieser Art gehören zum Bereich des „unüberwachten Lernens“, bei dem wir die Ausgangsdaten in eine vorher bestimmte Anzahl von Kategorien unterteilen müssen, jedoch keine „richtigen Antworten“ zur Verfügung stehen, sondern wir diese aus den Daten selbst ableiten müssen. Ein klassisches Beispiel für diese Problematik ist die Bestimmung der Unterarten von Irisblumen (Ronald Fisher, 1936!), die als erste frühe Arbeit in diesem Wissensgebiet gilt.
Die Methode ist recht einfach. Wir haben eine Menge von Objekten, die als Vektoren (Sätze von N Zahlen) dargestellt werden. Bei den Irisblumen handelt es sich um 4 Zahlen, die die Blume charakterisieren: die Länge und Breite der äußeren und inneren Perigonblätter, entsprechend (). Als Abstand oder Maß für die Ähnlichkeit zwischen den Objekten wird die übliche euklidische Metrik gewählt.
Als nächstes werden die Clusterzentren zufällig (oder nicht zufällig, siehe weiter unten) ausgewählt, und die Abstände von jedem Objekt zu den Clusterzentren werden berechnet. Jedes Objekt wird in diesem Iterationsschritt als dem nächstgelegenen Zentrum zugehörig markiert. Danach wird das Zentrum jedes Clusters auf den arithmetischen Mittelwert der Koordinaten seiner Mitglieder verschoben (in der Physik auch ‚Schwerpunkt‘ genannt), und das Verfahren wird wiederholt.
Der Prozess konvergiert relativ schnell. In 2D-Bildern sieht das wie folgt aus:
1. Ursprüngliche zufällige Verteilung der Punkte auf der Fläche und Anzahl der Cluster

2. Festlegung der Clusterzentren und Zuordnung der Punkte zu ihren Clustern

3. Übertragung der Koordinaten der Clusterzentren, erneute Berechnung der Zugehörigkeit der Punkte, bis die Zentren stabilisiert sind. Die Bewegung des Clusterzentrums zu seiner Endposition ist sichtbar.

Jederzeit können neue Clusterzentren festgelegt werden (ohne eine neue Verteilung der Punkte zu generieren!) und es kann gesehen werden, dass der Partitionierungsprozess nicht immer eindeutig ist. Mathematisch bedeutet das, dass wir bei der zu optimierenden Funktion (der Summe der quadrierten Abstände der Punkte zu den Zentren ihrer Cluster) kein globales, sondern ein lokales Minimum finden. Dieses Problem kann überwunden werden, indem entweder die Anfangszentren der Cluster nicht zufällig ausgewählt werden oder indem mögliche Zentren durchprobiert werden (manchmal ist es vorteilhaft, sie genau an einer der Punkte zu platzieren, dann haben wir zumindest die Garantie, keine leeren Cluster zu erhalten). In jedem Fall gibt es für eine endliche Menge immer eine exakte Untergrenze.
(vergessen Sie nicht, die Makros zu aktivieren. Die Dateien wurden auf Viren geprüft)
Die Beschreibung der Methode auf Wikipedia —
2. Annäherung an Polynomien und Datenpartitionierung. Überanpassung
Der bemerkenswerte Wissenschaftler und Datenwissenschaftler K.V. Woronzow beschreibt Methoden des maschinellen Lernens als „Wissenschaft des Durchzugs von Kurven durch Punkte“. In diesem Beispiel werden wir Muster in den Daten mit der Methode der kleinsten Quadrate finden.
Es wird die Technik vorgestellt, wie man die ursprünglichen Daten in „Trainings-„ und „Testdaten“ aufteilt, sowie ein Phänomen, das als Überanpassung oder „Overfitting“ bekannt ist. Bei einer richtigen Approximation erhalten wir einen gewissen Fehler bei den Trainingsdaten und einen deutlich größeren Fehler bei den Testdaten. Bei einer falschen Approximation haben wir eine exakte Anpassung an die Trainingsdaten und einen enormen Fehler bei den Testdaten.
(Es ist bekannt, dass durch N Punkte eine eindeutige Kurve n-1. Grades gezogen werden kann und dass diese Methode im Allgemeinen nicht das gewünschte Ergebnis liefert. )
1. Wir legen die anfängliche Verteilung fest.

2. Wir teilen die Punkte im Verhältnis 70 zu 30 in „Trainings-“ und „Testdaten“ auf.

3. Wir ziehen die approximierende Kurve durch die Trainingspunkte und sehen den Fehler, den sie bei den Testdaten verursacht.

Wir zeichnen eine präzise Kurve durch die Trainingspunkte und sehen einen enormen Fehler bei den Testdaten (und null bei den Trainingsdaten, aber was nützt das?).

Gezeigt wird natürlich die einfachste Variante mit einer einzigen Aufteilung in 'Trainings-' und 'Test'-Subset, im Allgemeinen wird dies mehrfach durchgeführt, um die Koeffizienten optimal anzupassen.
Aktivieren Sie die Makros für eine korrekte Funktion.
3. Gradientensenkung und Dynamik der Fehlerveränderung.
Hier wird ein 4-dimensionaler Fall und lineare Regression behandelt. Die Koeffizienten der linearen Regression werden schrittweise mit dem Gradientensenkungsverfahren bestimmt, zu Beginn sind alle Koeffizienten null. In einem separaten Diagramm ist die Dynamik der Fehlerreduktion zu sehen, während die Koeffizienten immer präziser angepasst werden. Es besteht die Möglichkeit, alle vier 2-dimensionalen Projektionen anzusehen.
Wenn der Schritt des Gradientenabstiegs zu groß eingestellt ist, stellen wir fest, dass wir jedes Mal das Minimum überschreiten und wir mehr Schritte benötigen, um zum Ergebnis zu gelangen, obwohl wir letztendlich trotzdem ankommen (es sei denn, wir setzen den Schritt des Absturzes zu hoch an - dann gerät der Algorithmus außer Kontrolle). Der Graph der Abhängigkeitsfehler vom Iterationsschritt wird nicht glatt, sondern „ruckartig“ sein.
1. Daten generieren, Schritt des Gradientenabstiegs festlegen

2. Bei richtiger Wahl des Schrittes des Gradientenabstiegs erreichen wir sanft und schnell das Minimum

3. Bei falscher Wahl des Schrittes des Gradientenabstiegs überschreiten wir das Maximum, der Fehlergraph ist „ruckartig“, die Konvergenz dauert länger

und

4. Bei ganz falscher Wahl des Schrittes des Gradientenabstiegs entfernen wir uns vom Minimum

(Um den Prozess bei den auf den Bildern angegebenen Werten des Gradientenabstiegsschrittes zu reproduzieren, aktivieren Sie die Option "Referenzdaten").
Wie das angesehene Publikum findet, ist eine solche Vereinfachung und Methode der Materialpräsentation akzeptabel? Sollte der Artikel ins Englische übersetzt werden?
Quelle: habr.com
