Maschinelles Lernen ohne Python, Anaconda und andere Kriechtierchen

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 (Iris von Fisher — Wikipedia). 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

Maschinelles Lernen ohne Python, Anaconda und andere Kriechtierchen

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

Maschinelles Lernen ohne Python, Anaconda und andere Kriechtierchen

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.

Maschinelles Lernen ohne Python, Anaconda und andere Kriechtierchen

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.

Sie können mit dieser Datei über diesen Link spielen (vergessen Sie nicht, die Makros zu aktivieren. Die Dateien wurden auf Viren geprüft)

Die Beschreibung der Methode auf Wikipedia — k-means Methode

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. Interpolationspolynom von Lagrange auf Wikipedia)

1. Wir legen die anfängliche Verteilung fest.

Maschinelles Lernen ohne Python, Anaconda und andere Kriechtierchen

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

Maschinelles Lernen ohne Python, Anaconda und andere Kriechtierchen

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

Maschinelles Lernen ohne Python, Anaconda und andere Kriechtierchen

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?).

Maschinelles Lernen ohne Python, Anaconda und andere Kriechtierchen

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.

Die Datei ist hier verfügbar und wurde mit einem Antivirenprogramm überprüft. 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

Maschinelles Lernen ohne Python, Anaconda und andere Kriechtierchen

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

Maschinelles Lernen ohne Python, Anaconda und andere Kriechtierchen

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

Maschinelles Lernen ohne Python, Anaconda und andere Kriechtierchen
und

Maschinelles Lernen ohne Python, Anaconda und andere Kriechtierchen

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

Maschinelles Lernen ohne Python, Anaconda und andere Kriechtierchen

(Um den Prozess bei den auf den Bildern angegebenen Werten des Gradientenabstiegsschrittes zu reproduzieren, aktivieren Sie die Option "Referenzdaten").

Die Datei – über diesen Link, bitte aktivieren Sie die Makros, es sind keine Viren vorhanden.

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

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster