Maschinelles Lernen ohne Python, Anaconda und andere Reptilien

Nein, natürlich, das meine ich nicht ernst. Der Vereinfachung eines Themas muss eine Grenze gesetzt sein. Aber für die ersten Schritte, das Verständnis grundlegender Konzepte und den schnellen „Einstieg“ in das Thema, kann es akzeptabel sein. Wie man dieses Material richtig benennt (Optionen: „Maschinelles Lernen für Dummies“, „Datenanalyse aus Windeln“, „Algorithmen für die Kleinen“), besprechen wir am Ende.

Auf den Punkt. Ich habe mehrere Anwendungsprogramme in MS Excel zur Visualisierung und visuellen Darstellung von Prozessen geschrieben, die bei verschiedenen Methoden des maschinellen Lernens bei der Analyse von Daten ablaufen. Sehen ist schließlich Glauben, wie die Träger der Kultur sagen, die die meisten dieser Methoden entwickelt hat (übrigens nicht alle). Die leistungsstärkste „Support-Vektor-Maschine“ oder SVM, Support-Vektor-Maschine, ist die Erfindung von unser Landsmann Vladimir Vapnik, Moskauer Institut für Management. 1963 übrigens! Jetzt lehrt und arbeitet er jedoch in den USA).

Drei Dateien zur Durchsicht

1. K-bedeutet Clustering

Probleme dieser Art beziehen sich auf „unüberwachtes Lernen“, wenn wir die Ausgangsdaten in eine bestimmte Anzahl von im Voraus bekannten Kategorien einteilen müssen, wir aber keine Anzahl „richtiger Antworten“ haben; wir müssen sie aus den Daten selbst extrahieren . Das grundlegende klassische Problem der Suche nach Unterarten von Irisblüten (Ronald Fisher, 1936!), das als erstes Zeichen dieses Wissensgebiets gilt, ist genau dieser Natur.

Die Methode ist recht einfach. Wir haben eine Menge von Objekten, die als Vektoren dargestellt werden (Sätze von N Zahlen). Bei Schwertlilien handelt es sich um Sätze von 4 Zahlen, die die Blüte charakterisieren: die Länge und Breite des äußeren bzw. inneren Lappens der Blütenhülle (Fischer-Iris – Wikipedia). Als Abstand bzw. Maß für die Nähe zwischen Objekten wird die übliche kartesische Metrik gewählt.

Als nächstes werden Clusterzentren zufällig ausgewählt (oder nicht zufällig, siehe unten) und die Abstände von jedem Objekt zu den Clusterzentren berechnet. Jedes Objekt in einem bestimmten Iterationsschritt wird als zum nächstgelegenen Zentrum gehörend markiert. Anschließend wird der Mittelpunkt jedes Clusters auf das arithmetische Mittel der Koordinaten seiner Mitglieder übertragen (in Analogie zur Physik wird er auch „Massenschwerpunkt“ genannt) und der Vorgang wiederholt.

Der Prozess konvergiert ziemlich schnell. Auf Bildern in zwei Dimensionen sieht es so aus:

1. Anfängliche zufällige Verteilung der Punkte auf der Ebene und Anzahl der Cluster

Maschinelles Lernen ohne Python, Anaconda und andere Reptilien

2. Angeben von Clusterzentren und Zuweisen von Punkten zu ihren Clustern

Maschinelles Lernen ohne Python, Anaconda und andere Reptilien

3. Übertragen der Koordinaten der Clusterzentren, Neuberechnung der Zugehörigkeit der Punkte bis zur Stabilisierung der Zentren. Die Flugbahn des Clusterzentrums, das sich zu seiner endgültigen Position bewegt, ist sichtbar.

Maschinelles Lernen ohne Python, Anaconda und andere Reptilien

Sie können jederzeit neue Clusterzentren festlegen (ohne eine neue Punktverteilung zu generieren!) und feststellen, dass der Partitionierungsprozess nicht immer eindeutig ist. Mathematisch bedeutet dies, dass wir für die zu optimierende Funktion (die Summe der quadrierten Abstände von Punkten zu den Mittelpunkten ihrer Cluster) kein globales, sondern ein lokales Minimum finden. Dieses Problem kann entweder durch eine nicht zufällige Auswahl der anfänglichen Clusterzentren oder durch Aufzählung möglicher Zentren gelöst werden (manchmal ist es vorteilhaft, sie genau an einem der Punkte zu platzieren, dann gibt es zumindest eine Garantie, dass wir nicht leer ausgehen Cluster). In jedem Fall hat eine endliche Menge immer ein Infimum.

Sie können mit dieser Datei unter diesem Link spielen (Vergessen Sie nicht, die Makrounterstützung zu aktivieren. Die Dateien wurden auf Viren überprüft.)

Beschreibung der Methode auf Wikipedia - k-means-Methode

2. Approximation durch Polynome und Datenaufschlüsselung. Umschulung

Bemerkenswerter Wissenschaftler und Popularisierer der Datenwissenschaft K.V. Vorontsov beschreibt Methoden des maschinellen Lernens kurz als „die Wissenschaft des Zeichnens von Kurven durch Punkte“. In diesem Beispiel werden wir mithilfe der Methode der kleinsten Quadrate ein Muster in den Daten finden.

Es wird die Technik der Aufteilung der Quelldaten in „Training“ und „Kontrolle“ sowie ein Phänomen wie Umschulung oder „Neuanpassung“ an die Daten gezeigt. Bei korrekter Näherung haben wir einen gewissen Fehler bei den Trainingsdaten und einen etwas größeren Fehler bei den Kontrolldaten. Wenn es falsch ist, führt es zu einer präzisen Anpassung an die Trainingsdaten und zu einem großen Fehler bei den Testdaten.

(Es ist eine bekannte Tatsache, dass man durch N Punkte eine einzelne Kurve N-1. Grades zeichnen kann, und diese Methode liefert im allgemeinen Fall nicht das gewünschte Ergebnis. Lagrange-Interpolationspolynom auf Wikipedia)

1. Legen Sie die Anfangsverteilung fest

Maschinelles Lernen ohne Python, Anaconda und andere Reptilien

2. Wir teilen die Punkte in „Training“ und „Kontrolle“ im Verhältnis 70 zu 30 auf.

Maschinelles Lernen ohne Python, Anaconda und andere Reptilien

3. Wir zeichnen die Näherungskurve entlang der Trainingspunkte und sehen den Fehler, den sie in den Kontrolldaten verursacht

Maschinelles Lernen ohne Python, Anaconda und andere Reptilien

4. Wir zeichnen eine exakte Kurve durch die Trainingspunkte und sehen einen monströsen Fehler in den Kontrolldaten (und Null in den Trainingsdaten, aber wozu?).

Maschinelles Lernen ohne Python, Anaconda und andere Reptilien

Dargestellt ist natürlich die einfachste Variante mit einer einzigen Unterteilung in „Training“- und „Kontroll“-Teilmengen; im allgemeinen Fall wird dies viele Male durchgeführt, um die beste Anpassung der Koeffizienten zu erreichen.

Die Datei ist hier verfügbar und wurde von einem Antivirenprogramm gescannt. Aktivieren Sie Makros für den korrekten Betrieb

3. Gradientenabstieg und Dynamik der Fehleränderung

Es wird einen 4-dimensionalen Fall und eine lineare Regression geben. Lineare Regressionskoeffizienten werden Schritt für Schritt mit der Gradientenabstiegsmethode ermittelt, zunächst sind alle Koeffizienten Null. Eine separate Grafik zeigt die Dynamik der Fehlerreduzierung, wenn die Koeffizienten immer genauer angepasst werden. Es ist möglich, alle vier zweidimensionalen Projektionen anzuzeigen.

Wenn Sie den Gradientenabstiegsschritt zu groß einstellen, können Sie sehen, dass wir jedes Mal das Minimum überspringen und das Ergebnis in einer größeren Anzahl von Schritten erreichen, obwohl wir am Ende immer noch ankommen (es sei denn, wir verzögern auch den Abstiegsschritt). viel - dann wird der Algorithmus „ in Hülle und Fülle“). Und der Fehlergraph wird je nach Iterationsschritt nicht glatt, sondern „ruckartig“ sein.

1. Generieren Sie Daten und legen Sie den Gradientenabstiegsschritt fest

Maschinelles Lernen ohne Python, Anaconda und andere Reptilien

2. Mit der richtigen Auswahl des Gradientenabstiegsschritts erreichen wir reibungslos und schnell das Minimum

Maschinelles Lernen ohne Python, Anaconda und andere Reptilien

3. Wenn der Gradientenabstiegsschritt falsch ausgewählt ist, überschreiten wir das Maximum, der Fehlergraph ist „ruckartig“, die Konvergenz erfordert eine größere Anzahl von Schritten

Maschinelles Lernen ohne Python, Anaconda und andere Reptilien
и

Maschinelles Lernen ohne Python, Anaconda und andere Reptilien

4. Wenn wir den Gradientenabstiegsschritt völlig falsch wählen, entfernen wir uns vom Minimum

Maschinelles Lernen ohne Python, Anaconda und andere Reptilien

(Um den Prozess mit den in den Bildern gezeigten Gradientenabstiegsschrittwerten zu reproduzieren, aktivieren Sie das Kontrollkästchen „Referenzdaten“.)

Die Datei befindet sich unter diesem Link. Sie müssen Makros aktivieren, es gibt keine Viren.

Ist eine solche Vereinfachung und Art der Präsentation des Materials nach Ansicht der angesehenen Community akzeptabel? Lohnt es sich, den Artikel ins Englische zu übersetzen?

Source: habr.com

Kommentar hinzufügen