1.1 Einleitung
Dank des maschinellen Lernens muss der Programmierer keine Anweisungen schreiben, die alle möglichen Probleme berücksichtigen und alle Lösungen enthalten. Stattdessen wird ein Computer (oder ein separates Programm) mit einem Algorithmus zum unabhängigen Finden von Lösungen durch die integrierte Verwendung statistischer Daten ausgestattet, aus denen Muster abgeleitet werden und auf deren Grundlage Prognosen erstellt werden.
Die auf Datenanalyse basierende Technologie des maschinellen Lernens stammt aus dem Jahr 1950, als sie mit der Entwicklung der ersten Programme zum Spielen von Dame begannen. In den letzten Jahrzehnten hat sich das allgemeine Prinzip nicht geändert. Dank des explosionsartigen Anstiegs der Rechenleistung von Computern sind die von ihnen erstellten Gesetze und Prognosen jedoch komplizierter geworden, und das Spektrum der Probleme und Probleme, die durch maschinelles Lernen gelöst werden, hat sich erweitert.
Um den maschinellen Lernprozess zu starten, müssen Sie zuerst den Datensatz (eine bestimmte Menge von Eingabedaten) auf den Computer herunterladen, auf dem der Algorithmus das Verarbeiten von Anforderungen lernt. Beispielsweise kann es Fotos von Hunden und Katzen geben, die bereits Tags aufweisen, die angeben, wem sie gehören. Nach dem Trainingsprozess kann das Programm selbst Hunde und Katzen in neuen Bildern ohne Tag-Inhalt erkennen. Der Lernprozess wird auch nach der Erstellung der Prognosen fortgesetzt. Je mehr Daten wir vom Programm analysiert haben, desto genauer werden die gewünschten Bilder erkannt.
Dank des maschinellen Lernens lernen Computer, in Fotografien und Zeichnungen nicht nur Gesichter, sondern auch Landschaften, Objekte, Text und Zahlen zu erkennen. Was den Text betrifft, kann man hier nicht auf maschinelles Lernen verzichten: Die Funktion der Grammatikprüfung ist jetzt in jedem Texteditor und sogar in Telefonen vorhanden. Darüber hinaus wird nicht nur die Schreibweise von Wörtern berücksichtigt, sondern auch der Kontext, die Bedeutungsschattierungen und andere subtile sprachliche Aspekte. Darüber hinaus gibt es bereits Software, mit der Nachrichtenartikel (über Wirtschaft und beispielsweise Sport) ohne menschliches Eingreifen geschrieben werden können.
1.2 Arten von maschinellen Lernaufgaben
Alle mit ML gelösten Aufgaben fallen in eine der folgenden Kategorien.
1) Die Aufgabe der Regression ist eine Prognose, die auf einer Stichprobe von Objekten mit verschiedenen Attributen basiert. Die Ausgabe sollte eine reelle Zahl sein (2, 35, 76,454 usw.), zum Beispiel der Preis einer Wohnung, der Wert eines Wertpapiers nach sechs Monaten, das erwartete Einkommen des Geschäfts für den nächsten Monat, die Qualität des Weins während der Blindprüfung.
2) Die Aufgabe der Klassifizierung besteht darin, eine kategoriale Antwort auf der Grundlage einer Reihe von Merkmalen zu erhalten. Es gibt eine begrenzte Anzahl von Antworten (normalerweise im Format „Ja“ oder „Nein“): Befindet sich auf dem Foto eine Katze, ist das Bild ein menschliches Gesicht, ist der Patient an Krebs erkrankt?
3) Die Aufgabe des Clusters besteht in der Verteilung von Daten in Gruppen: Aufteilung aller Kunden eines Mobilfunkbetreibers nach Solvabilitätsstufe, Zuordnung von Weltraumobjekten zu der einen oder anderen Kategorie (Planet, Sterne, Schwarzes Loch usw.).
4) Die Aufgabe des Reduzierens der Dimension besteht darin, eine große Anzahl von Features auf ein kleineres (normalerweise 2-3) zu reduzieren, um die anschließende Visualisierung (z. B. Datenkomprimierung) zu vereinfachen.
5) Die Aufgabe der Erkennung von Anomalien besteht darin, die Anomalien von den Standardfällen zu trennen. Auf den ersten Blick fällt es mit der Klassifizierungsaufgabe zusammen, aber es gibt einen signifikanten Unterschied: Anomalien sind ein seltenes Phänomen, und die Trainingsbeispiele, an denen Sie ein maschinelles Lernmodell trainieren können, um solche Objekte zu identifizieren, sind entweder verschwindend klein oder einfach nicht, daher funktionieren Klassifizierungsmethoden hier nicht . In der Praxis besteht eine solche Aufgabe beispielsweise darin, betrügerische Aktivitäten mit Bankkarten zu identifizieren.
1.3 Grundlegende Arten des maschinellen Lernens
Der Großteil der mit maschinellen Lernmethoden gelösten Aufgaben bezieht sich auf zwei verschiedene Arten: Lernen mit einem Lehrer (überwachtes Lernen) oder ohne ihn (unbeaufsichtigtes Lernen). Dieser Lehrer ist jedoch nicht unbedingt der Programmierer selbst, der über dem Computer steht und jede Aktion im Programm steuert. "Lehrer" im Sinne des maschinellen Lernens ist das menschliche Eingreifen in den Prozess der Informationsverarbeitung. Bei beiden Trainingsarten liefert die Maschine erste Daten, die sie analysieren und Muster finden muss. Der einzige Unterschied besteht darin, dass beim Lernen mit einem Lehrer eine Reihe von Hypothesen widerlegt oder bestätigt werden müssen. Dieser Unterschied ist anhand von Beispielen leicht zu verstehen.
Maschinelles Lernen mit einem LehrerAngenommen, wir hätten Informationen über zehntausend Moskauer Wohnungen: Fläche, Etage, Bezirk, Vorhandensein oder Nichtvorhandensein von Parkplätzen am Haus, Entfernung zur U-Bahn, Wohnungspreis usw. Wir müssen ein Modell erstellen, das den Marktwert einer Wohnung anhand ihrer Parameter vorhersagt. Dies ist ein ideales Beispiel für maschinelles Lernen mit einem Lehrer: Wir haben die anfänglichen Daten (die Anzahl der Wohnungen und ihre Eigenschaften, die als Zeichen bezeichnet werden) und eine fertige Antwort für jede der Wohnungen sind ihre Kosten. Das Programm muss das Regressionsproblem lösen.
Ein weiteres Beispiel aus der Praxis: Bestätigung oder Ablehnung des Vorhandenseins von Krebs bei einem Patienten unter Kenntnis aller seiner medizinischen Indikatoren. Finden Sie heraus, ob eine eingehende Nachricht Spam ist, indem Sie ihren Text analysieren. Dies sind alles Klassifizierungsaufgaben.
Maschinelles Lernen ohne LehrerBei Schulungen ohne Lehrer ist alles noch interessanter, wenn dem System keine vorgefertigten „richtigen Antworten“ zur Verfügung gestellt werden. Zum Beispiel haben wir Informationen über das Gewicht und die Größe einer bestimmten Anzahl von Personen, und diese Daten müssen in drei Gruppen unterteilt werden, von denen jede Hemden geeigneter Größe nähen muss. Dies ist eine Clustering-Aufgabe. In diesem Fall ist es notwendig, alle Daten in 3 Cluster aufzuteilen (in der Regel gibt es jedoch keine so strenge und nur mögliche Aufteilung).
Wenn wir eine andere Situation annehmen und jedes der Objekte in der Stichprobe Hunderte verschiedener Merkmale aufweist, besteht die Hauptschwierigkeit in der grafischen Darstellung einer solchen Stichprobe. Daher wird die Anzahl der Zeichen auf zwei oder drei reduziert, und es wird möglich, sie in einer Ebene oder in 3D zu visualisieren. Dies ist die Aufgabe der Dimensionsreduzierung.
1.4 Grundlegende Algorithmen maschineller Lernmodelle
1. EntscheidungsbaumDies ist eine Methode zur Entscheidungsunterstützung, die auf der Verwendung eines Baumdiagramms basiert: Ein Entscheidungsmodell, das die möglichen Folgen (unter Berücksichtigung der Wahrscheinlichkeit des Eintretens eines Ereignisses), die Effizienz und den Ressourcenverbrauch berücksichtigt.
Für Geschäftsprozesse besteht dieser Baum aus einer Mindestanzahl von Fragen, die eine eindeutige Antwort erfordern - "Ja" oder "Nein". Wenn wir all diese Fragen konsequent beantworten, treffen wir die richtige Wahl. Die methodischen Vorteile des Entscheidungsbaums bestehen darin, dass er das Problem strukturiert und systematisiert und die endgültige Entscheidung auf der Grundlage logischer Schlussfolgerungen getroffen wird.
2. Naive Bayes'sche KlassifikationNaive Bayes-Klassifikatoren gehören zur Familie der einfachen probabilistischen Klassifikatoren und stammen aus dem Bayes-Theorem, das in diesem Fall Funktionen als unabhängig betrachtet (dies wird als strenge oder naive Annahme bezeichnet). In der Praxis wird es in folgenden Bereichen des maschinellen Lernens eingesetzt:
- Erkennung von Spam-E-Mails
- automatische Verknüpfung von Nachrichtenartikeln mit thematischen Abschnitten;
- Identifizierung der emotionalen Färbung des Textes;
- Erkennung von Gesichtern und anderen Mustern in Bildern.
3. Methode der kleinsten QuadrateJeder, der zumindest ein wenig Statistik studiert hat, ist mit dem Konzept der linearen Regression vertraut. Die kleinsten Quadrate beziehen sich auch auf die Implementierungsoptionen. In der Regel löst die lineare Regression das Problem der Anpassung einer geraden Linie, die durch viele Punkte verläuft. So geht's mit der Methode der kleinsten Quadrate: Zeichnen Sie eine gerade Linie, messen Sie den Abstand zu jedem der Punkte (verbinden Sie die Punkte und die Linie mit vertikalen Segmenten) und übertragen Sie den resultierenden Betrag nach oben. Infolgedessen ist die Kurve, in der die Summe der Abstände am kleinsten ist, die gewünschte (diese Linie verläuft durch Punkte mit einer normalverteilten Abweichung vom wahren Wert).
Eine lineare Funktion wird normalerweise bei der Auswahl von Daten für maschinelles Lernen verwendet, und die Methode der kleinsten Quadrate wird verwendet, um Fehler durch Erstellen einer Fehlermetrik zu minimieren.
4. Logistische RegressionDie logistische Regression ist eine Methode zur Bestimmung der Beziehung zwischen Variablen, von denen eine kategorisch abhängig und die anderen unabhängig sind. Hierzu wird die Logistikfunktion (akkumulative Logistikverteilung) verwendet. Die praktische Bedeutung der logistischen Regression besteht darin, dass sie eine leistungsstarke statistische Methode zur Vorhersage von Ereignissen ist, die eine oder mehrere unabhängige Variablen enthält. Dies ist in folgenden Situationen gefragt:
- Kreditbewertung;
- Messung des Erfolgs laufender Werbekampagnen;
- Gewinnprognose für ein bestimmtes Produkt;
- Einschätzung der Wahrscheinlichkeit eines Erdbebens an einem bestimmten Datum.
5. Support Vector Method (SVM)Dies ist eine ganze Reihe von Algorithmen, die zur Lösung von Klassifizierungs- und Regressionsanalyseproblemen erforderlich sind. Basierend auf der Tatsache, dass ein Objekt im N-dimensionalen Raum zu einer von zwei Klassen gehört, erstellt die Support-Vektor-Methode eine Hyperebene mit der Dimension (N - 1), sodass alle Objekte in einer von zwei Gruppen erscheinen. Auf dem Papier kann dies wie folgt dargestellt werden: Es gibt Punkte von zwei verschiedenen Typen, und sie können linear geteilt werden. Zusätzlich zum Trennen von Punkten generiert diese Methode eine Hyperebene so, dass sie so weit wie möglich vom nächsten Punkt jeder Gruppe entfernt ist.
SVM und seine Modifikationen helfen bei der Lösung komplexer maschineller Lernaufgaben wie dem DNA-Spleißen, der Bestimmung des Geschlechts einer Person anhand von Fotos und der Anzeige von Werbebannern auf Websites.
6. Die Methode der EnsemblesEs basiert auf Algorithmen für maschinelles Lernen, die viele Klassifizierer generieren und alle Objekte anhand ihrer Mittelungs- oder Abstimmungsergebnisse von neu empfangenen Daten trennen. Ursprünglich war die Ensemble-Methode ein Sonderfall der Bayes'schen Mittelung, wurde dann aber komplizierter und mit zusätzlichen Algorithmen überwachsen:
- Boosten - wandelt schwache Modelle in starke um, indem ein Ensemble von Klassifikatoren gebildet wird (aus mathematischer Sicht ist dies eine sich verbessernde Schnittmenge);
- Absacken (Absacken) - sammelt anspruchsvolle Klassifikatoren und trainiert gleichzeitig die Grundkenntnisse (Verbesserung der Assoziation);
- Fehlerkorrektur der Ausgabecodierung.
Die Ensemble-Methode ist im Vergleich zu eigenständigen Prognosemodellen ein leistungsfähigeres Werkzeug, da:
- Es minimiert den Einfluss von Unfällen, indem es die Fehler jedes Basisklassifikators mittelt.
- reduziert die Streuung, da mehrere unterschiedliche Modelle, die auf unterschiedlichen Hypothesen basieren, eher zum richtigen Ergebnis führen als eines, das separat betrachtet wird;
- schließt aus, über den Umfang der Menge hinauszugehen: Wenn die aggregierte Hypothese außerhalb der Menge der Grundhypothesen liegt, wird sie im Stadium der Bildung der kombinierten Hypothese mit der einen oder anderen Methode erweitert, und die Hypothese ist bereits darin enthalten.
7. Clustering-AlgorithmenClustering besteht in der Verteilung vieler Objekte in Kategorien, sodass in jeder Kategorie - dem Cluster - die ähnlichsten Elemente gefunden werden.
Sie können Objekte mit verschiedenen Algorithmen gruppieren. Die am häufigsten verwendeten sind:
- basierend auf dem Schwerpunkt des Dreiecks;
- basierend auf der Verbindung;
- Dimensionsreduktion;
- Dichte (basierend auf räumlicher Clusterbildung);
- probabilistisch;
- maschinelles Lernen, einschließlich neuronaler Netze.
Clustering-Algorithmen werden in der Biologie (Untersuchung der Interaktion von Genen in einem Genom mit bis zu mehreren tausend Elementen), der Soziologie (Verarbeitung der Ergebnisse soziologischer Studien nach der Ward-Methode, wobei Cluster mit minimaler Streuung und etwa gleicher Größe erhalten werden) und der Informationstechnologie verwendet.
8. Hauptkomponentenmethode (PCA)Die Methode der Hauptkomponenten oder PCA ist eine statistische Operation zur orthogonalen Transformation, die darauf abzielt, Beobachtungen von Variablen, die irgendwie miteinander verbunden werden können, in eine Reihe von Hauptkomponenten zu übersetzen - Werte, die nicht linear korreliert sind.
Die praktischen Aufgaben, bei denen die PCA angewendet wird, sind die Visualisierung und die meisten Verfahren zum Komprimieren, Vereinfachen und Minimieren von Daten, um den Lernprozess zu erleichtern. Die Hauptkomponentenmethode ist jedoch nicht für Situationen geeignet, in denen die Anfangsdaten schlecht geordnet sind (dh alle Komponenten der Methode sind durch eine hohe Dispersion gekennzeichnet). Die Anwendbarkeit hängt also davon ab, wie gut das Fachgebiet untersucht und beschrieben wird.
9. Singuläre ZersetzungIn der linearen Algebra wird eine singuläre Zerlegung oder SVD als Zerlegung einer rechteckigen Matrix definiert, die aus komplexen oder reellen Zahlen besteht. Eine Matrix M der Dimension [m * n] kann also so zerlegt werden, dass M = UΣV ist, wobei U und V einheitliche Matrizen sind und Σ diagonal ist.
Einer der Sonderfälle der singulären Zerlegung ist die Hauptkomponentenmethode. Die allerersten Computer-Vision-Technologien wurden auf der Basis von SVD und PCA entwickelt und funktionierten wie folgt: Zuerst wurden Gesichter (oder andere Muster, die gefunden werden sollten) als Summe der Grundkomponenten dargestellt, dann wurden ihre Abmessungen reduziert und anschließend mit Bildern aus der Probe verglichen. Moderne Algorithmen der singulären Zerlegung beim maschinellen Lernen sind natürlich viel komplexer und ausgefeilter als ihre Vorgänger, aber ihr Wesen hat sich im Allgemeinen geändert.
10. Unabhängige Komponentenanalyse (ICA)Dies ist eine der statistischen Methoden, die verborgene Faktoren aufdeckt, die Zufallsvariablen, Signale usw. beeinflussen. ICA generiert ein generatives Modell für Multi-Faktor-Datenbanken. Variablen im Modell enthalten einige versteckte Variablen, und es gibt keine Informationen zu den Regeln für das Mischen. Diese versteckten Variablen sind unabhängige Abtastkomponenten und werden als nicht-Gaußsche Signale betrachtet.
Im Gegensatz zur Analyse der Hauptkomponenten, die mit dieser Methode verbunden ist, ist die Analyse unabhängiger Komponenten effektiver, insbesondere in den Fällen, in denen die klassischen Ansätze machtlos sind. Es entdeckt die verborgenen Ursachen von Phänomenen und hat aufgrund dessen breite Anwendung in verschiedenen Bereichen gefunden, von Astronomie und Medizin über Spracherkennung bis hin zu automatischen Tests und Analysen der Dynamik von Finanzindikatoren.
1.5 Beispiele aus der Praxis
Beispiel 1. Diagnose von KrankheitenPatienten sind in diesem Fall Objekte, und Anzeichen sind alle Symptome, die sie haben, Anamnese, Testergebnisse, bereits ergriffene Behandlungsmaßnahmen (tatsächlich die gesamte Krankengeschichte, formalisiert und in separate Kriterien unterteilt). Einige Anzeichen - Geschlecht, Vorhandensein oder Nichtvorhandensein von Kopfschmerzen, Husten, Hautausschlag und andere - gelten als binär. Die Beurteilung der Schwere der Erkrankung (extrem schwer, mittelschwer usw.) ist ein Ordnungszeichen, und viele andere sind quantitativ: das Volumen des Arzneimittels, der Hämoglobinspiegel im Blut, Indikatoren für Blutdruck und Puls, Alter, Gewicht. Nachdem Sie Informationen über den Zustand des Patienten gesammelt haben, die viele dieser Anzeichen enthalten, können Sie diese auf einen Computer herunterladen und mit einem maschinell lernfähigen Programm die folgenden Probleme lösen:
- Differentialdiagnose durchführen (Bestimmung der Art der Krankheit);
- Wählen Sie die optimalste Behandlungsstrategie.
- die Entwicklung der Krankheit, ihre Dauer und ihren Ausgang vorherzusagen;
- das Risiko möglicher Komplikationen berechnen;
- Syndrome identifizieren - Sätze von Symptomen, die mit einer bestimmten Krankheit oder Störung verbunden sind.
Kein Arzt ist in der Lage, die gesamte Reihe von Informationen für jeden Patienten sofort zu verarbeiten, eine große Anzahl anderer ähnlicher medizinischer Aufzeichnungen zusammenzufassen und sofort ein klares Ergebnis zu erzielen. Daher wird maschinelles Lernen für Ärzte zu einem unverzichtbaren Werkzeug.
Beispiel 2. Die Suche nach MineralvorkommenIn der Rolle der Zeichen sind hier Informationen enthalten, die durch geologische Erkundung erhalten wurden: das Vorhandensein von Gesteinen auf dem Territorium (und dies wird ein Zeichen des binären Typs sein), ihre physikalischen und chemischen Eigenschaften (die in eine Reihe quantitativer und qualitativer Zeichen zerlegt werden).
Für die Trainingsstichprobe werden zwei Arten von Präzedenzfällen herangezogen: Gebiete, in denen Mineralvorkommen genau vorhanden sind, und Gebiete mit ähnlichen Merkmalen, in denen diese Mineralien nicht gefunden wurden. Die Gewinnung seltener Mineralien hat jedoch ihre eigenen Besonderheiten: In vielen Fällen übersteigt die Anzahl der Zeichen die Anzahl der Objekte erheblich, und die Methoden der traditionellen Statistik sind für solche Situationen schlecht geeignet. Daher liegt der Schwerpunkt beim maschinellen Lernen auf der Erkennung von Mustern in einem bereits gesammelten Datenarray. Hierzu werden kleine und informativste Merkmalssätze ermittelt, die für die Beantwortung der Forschungsfrage am aussagekräftigsten sind - gibt es ein bestimmtes Fossil in dem angegebenen Gebiet oder nicht? Man kann eine Analogie zur Medizin ziehen: Ablagerungen können auch ihre eigenen Syndrome aufdecken. Der Wert des Einsatzes von maschinellem Lernen in diesem Bereich liegt in der Tatsache, dass die erzielten Ergebnisse nicht nur praktisch sind, sondern auch für Geologen und Geophysiker von ernsthaftem wissenschaftlichem Interesse sind.
Beispiel 3. Bewertung der Zuverlässigkeit und Zahlungsfähigkeit von KreditkandidatenDiese Aufgabe wird täglich von allen an der Kreditvergabe beteiligten Banken bewältigt. Die Notwendigkeit einer Automatisierung dieses Prozesses ist in den 1960er und 1970er Jahren, als der Kreditkartenboom in den USA und anderen Ländern einsetzte, längst überfällig., , – , , . , , , . , . (, ), — (, ), ( , , , , , ) (, -, , ).
Für das maschinelle Lernen wird eine Stichprobe erstellt, die Kreditnehmer enthält, deren Bonität bekannt ist. Alle Kreditnehmer sind in Klassen eingeteilt, im einfachsten Fall gibt es zwei von ihnen - „gute“ und „schlechte“ Kreditnehmer, und eine positive Entscheidung zur Ausgabe eines Kredits wird nur zugunsten der „guten“ getroffen.Ein komplexerer Algorithmus für maschinelles Lernen, der als Kreditbewertung bezeichnet wird, sieht vor, dass jeder Kreditnehmer für jedes Attribut bedingte Punkte erhält. Die Entscheidung, einen Kredit zu gewähren, hängt von der Anzahl der erzielten Punkte ab. Während des maschinellen Lernens weisen Kreditbewertungssysteme jedem Merkmal zunächst eine bestimmte Anzahl von Punkten zu und bestimmen dann die Bedingungen für die Ausgabe eines Kredits (Laufzeit, Zinssatz und andere Parameter, die im Kreditvertrag enthalten sind). Es gibt aber auch einen anderen Systemlernalgorithmus - basierend auf Anwendungsfällen.PS In den folgenden Artikeln werden wir die Algorithmen zum Erstellen von Modellen für maschinelles Lernen, einschließlich des mathematischen Teils und der Implementierung in Python, genauer untersuchen.