Monate des maschinellen Lernens und darüber hinaus: Maschinelles Lernen von A bis Z

王林
Freigeben: 2024-07-26 17:42:34
Original
664 Leute haben es durchsucht

onths of Machine Learning and beyond: Machine Learning A-Z

Einführung

Bevor ich letzten Sommer überhaupt angefangen habe, mich richtig mit maschinellem Lernen zu beschäftigen, habe ich bereits mehrere Kurse für maschinelles Lernen auf Udemy gekauft. Der grundlegendste dieser Kurse war Maschinelles Lernen von A bis Z: KI, Python und R, also wurde er zu meinem Ausgangspunkt. Dieser Kurs diente als perfekter Einstieg in das Fachgebiet und deckte ein breites Spektrum klassischer Techniken des maschinellen Lernens sowie etwas Deep Learning ab.

Kurseindruck

Typischerweise arbeiten wir als Programmierer mit strukturierten Daten. Allerdings ist die Welt von Natur aus chaotisch. Maschinelles Lernen erweist sich als unschätzbares Werkzeug für den Umgang mit unstrukturierten Informationen. Ich war von dem Kurs sehr beeindruckt, weil er eine völlig neue Welt von Ansätzen eröffnete, die sich anfühlten, als würde man eine Supermacht erlangen.

Kursinhalt

Der Kurs erklärt den maschinellen Lernprozess Schritt für Schritt. Die erste, entscheidende Phase des Prozesses ist die Datenvorverarbeitung, die noch vor der Anwendung irgendwelcher Algorithmen stattfindet.

Vorverarbeitung von Daten

Ganz am Anfang der Vorverarbeitung steht die Datenaufteilung. Es ist üblich, den Datensatz in drei Teile zu unterteilen: Trainings-, Validierungs- und Test--Sets. Ein Trainingssatz wird zum Training eines Modells verwendet, ein Validierungssatz hilft bei der Beurteilung der Überanpassung während des Trainings und ein Testsatz wird verwendet, um die Leistung des Modells danach zu bewerten Ausbildung.

Der Umgang mit fehlenden Daten ist ein weiterer wichtiger Aspekt. Abhängig von der Situation und der Menge der fehlenden Daten gibt es zwei Hauptoptionen:

  • Imputieren fehlender Werte basierend auf anderen Datenpunkten
  • Zeilen mit fehlenden Daten vollständig entfernen

Darüber hinaus ist es oft wichtig, eine Funktionsskalierung durchzuführen, da einige Algorithmen für maschinelles Lernen empfindlich auf die Skalierung der Eingabedaten reagieren. Beispielsweise werden Algorithmen, die Abstände zwischen Datenpunkten berechnen, wie K-Nearest Neighbors (K-NN), auf Variablen mit einem größeren Maßstab ausgerichtet sein, wenn die Daten nicht angepasst werden, um dies zu kompensieren. Durch die Merkmalsskalierung wird sichergestellt, dass der Bereich unabhängiger Variablen gleichermaßen zur Analyse beiträgt. Dies kann durch Methoden wie Normalisierung oder Standardisierung erfolgen. Durch die Normalisierung werden Features auf einen festen Bereich neu skaliert, normalerweise von 0 bis 1. Durch die Standardisierung werden alle Features so angepasst, dass sie einen Mittelwert von 0 und eine Standardabweichung von 1 haben.

Diese Vorverarbeitungsschritte sind notwendig, um robuste Modelle für maschinelles Lernen zu erstellen, die in realen Szenarien eine gute Leistung erbringen.

Klassische Modelle des maschinellen Lernens

Rückschritt

Regressionsmodelle sind eine Art statistisches Tool, das zur Vorhersage eines kontinuierlichen Ergebnisses auf der Grundlage einer oder mehrerer Eingabevariablen verwendet wird. Sie sind von grundlegender Bedeutung für die Vorhersage und Bestimmung der Stärke von Beziehungen zwischen Variablen. Diese Modelle funktionieren, indem sie eine Gleichung erstellen, die am besten zu den beobachteten Daten passt. Ich hatte bereits einige Erfahrungen mit Regressionsmodellen, insbesondere mit der Linearen Regression aus den Statistikkursen, die ich vor Jahren besucht habe.

Polynomiale Regression erweitert die lineare Regression durch Hinzufügen von Termen mit Potenzen größer als eins. Dadurch kann das Modell an ein breiteres Spektrum an Datenformen angepasst werden und komplexere Beziehungen zwischen Variablen erfassen. Polynome höheren Grades können jedoch zu einer Überanpassung führen, bei der das Modell die Trainingsdaten zu genau anpasst und bei unsichtbaren Daten schlecht abschneidet. Dies geschieht, weil das Modell Rauschen aus den Trainingsdaten lernt und es mit tatsächlichen Beziehungen verwechselt.

Als nächstes stellt der Kurs Support Vector Regression (SVR) vor, ein leistungsstarkes Modell, das nichtlineare Beziehungen mit einem geringeren Risiko einer Überanpassung kapseln und exponentielle Beziehungen modellieren kann. Das Hauptziel von SVR besteht darin, eine Vorhersagelinie zu erstellen, die so gut wie möglich zu den meisten Datenpunkten passt, und gleichzeitig zu versuchen, die Linie so glatt und flach wie möglich zu halten. Mit anderen Worten: SVR versucht, ein Gleichgewicht zwischen der genauen Verfolgung der Trainingsdaten und der Vermeidung übermäßig komplexer Modelle zu finden, die bei neuen, unsichtbaren Daten möglicherweise nicht gut funktionieren. Dies geschieht durch die Berücksichtigung einer kleinen Fehlertoleranz, innerhalb derer Abweichungen akzeptabel sind. Dies macht SVR zu einer robusten Wahl für die Vorhersage kontinuierlicher Werte, insbesondere wenn die Daten komplex sind oder große Schwankungen aufweisen.

Danach werden Entscheidungsbäume und Zufallswälder eingeführt. Diese Techniken sind normalerweise für die Klassifizierung bekannt, lassen sich aber auch in Regressionsumgebungen anwenden. Der Kurs erklärt, wie diese Modelle eine Ausgabe basierend auf Entscheidungsregeln vorhersagen können, die aus den Datenmerkmalen abgeleitet werden. Entscheidungsbäume und Zufällige Wälder erstellen Modelle basierend auf einer Reihe binärer Entscheidungen aus den Features innerhalb des Datensatzes. Dieser Ansatz kann zu Modellen führen, die gut zu Trainingsdaten passen, sich aber nicht auf neue Daten verallgemeinern lassen, da der Entscheidungsprozess willkürlich ist und nicht unbedingt die zugrunde liegenden mathematischen Beziehungen zwischen Variablen erfasst.

Andererseits zielen Methoden wie SVR und Polynomiale Regression darauf ab, die den Daten innewohnenden mathematischen Beziehungen zu identifizieren. Beispielsweise versucht SVR, die bestmögliche Kurve innerhalb einer bestimmten Fehlerspanne anzupassen, und die Polynomregression kann Beziehungen modellieren, die einer Polynomgleichung folgen. Wenn die wahre Beziehung zwischen den Variablen mathematisch ist, sind diese Methoden wahrscheinlich leistungsfähiger und weisen ein geringeres Risiko einer Überanpassung auf. Diese Fähigkeit, mathematische Beziehungen aufzudecken und zu nutzen, macht SVR, Linear und Polynomiale Regression robuster für die Vorhersage von Ergebnissen, bei denen die zugrunde liegenden Datenbeziehungen stark und klar sind.

Modellauswahl in der Regression

Der Abschnitt über Regression schließt mit Strategien zur Auswahl des besten Modells ab. Das Experimentieren mit verschiedenen Ansätzen und die Bewertung ihrer Leistung anhand von Testdaten wird weiterhin empfohlen, da ein Experiment immer noch die einzige Möglichkeit ist, ein wirklich optimales Modell auszuwählen.

Einstufung

Die Klassifizierung beinhaltet die Vorhersage einer kategorialen Antwort basierend auf Eingabevariablen.

Logistische Regression ist trotz ihres Namens eine grundlegende Klassifizierungstechnik, ideal für binäre Klassifizierungsprobleme. Es wird zur Vorhersage von Ergebnissen verwendet, die zwei mögliche Zustände haben, z. B. ja/nein, wahr/falsch. Dabei wird die Wahrscheinlichkeit der Standardklasse, die normalerweise mit 1 bezeichnet wird, als Funktion der Eingabemerkmale modelliert. Logistische Regression wendet die logistische Funktion auf die Ausgabe einer linearen Gleichung an und erzeugt einen Wahrscheinlichkeitswert zwischen 0 und 1. Dieses Modell ist robust, unkompliziert und effizient für binäre Klassifizierungsprobleme.

Das nächste Modell im Kurs ist K-Nearest Neighbors (K-NN). Es klassifiziert einen Datenpunkt basierend auf der Klassifizierung seiner Nachbarn und ist in der Lage, Mehrklassenprobleme und komplexere Entscheidungsgrenzen zu bewältigen.

Der Kurs behandelt auch Support Vector Machines (SVM) für die Klassifizierung und erläutert die Verwendung verschiedener Kernel für die lineare und nichtlineare Klassifizierung. Support Vector Machine konstruiert eine Hyperebene in einem mehrdimensionalen Raum, um verschiedene Klassen zu trennen. SVM funktioniert gut in hochdimensionalen Räumen. Es ist vielseitig einsetzbar, da es verschiedene Kernelfunktionen verwenden kann, um die Hyperebene besser an die Daten anzupassen. Lineare Kernel eignen sich beispielsweise hervorragend für linear trennbare Daten, während RBF-Kernel (Radiale Basisfunktion) nichtlineare Beziehungen abbilden können.

Clustering

Klassifizierung und Clustering sind beide Methoden zum Organisieren von Daten, dienen jedoch unterschiedlichen Zwecken. Bei der Klassifizierung handelt es sich um einen Ansatz des überwachten Lernens, bei dem das Modell anhand gekennzeichneter Daten trainiert wird. Das bedeutet, dass das Modell aus Beispielen lernt, denen bereits eine Kategorie oder Klasse zugewiesen ist. Seine Aufgabe besteht darin, die Kategorie für neue Daten basierend auf dem, was es gelernt hat, vorherzusagen. Beispielsweise könnte ein Klassifizierungsmodell basierend auf dem Training mit einem Datensatz von E-Mails, die entsprechend gekennzeichnet sind, bestimmen, ob es sich bei E-Mails um Spam handelt oder nicht.

Clustering hingegen ist eine Technik des unüberwachten Lernens, bei der eine Reihe von Objekten so gruppiert werden, dass Objekte in derselben Gruppe einander ähnlicher sind als denen in anderen Gruppen . Es wird verwendet, wenn wir keine vordefinierten Beschriftungen für Daten haben. Das Modell selbst erkennt die inhärenten Gruppierungen in den Daten. Ein Beispiel für Clustering könnte die Segmentierung von Kunden in Gruppen basierend auf dem Kaufverhalten sein, ohne dass die verschiedenen Kundentypen vorher bekannt sind.

Beide Methoden sind grundlegend für die Datenanalyse:

  • Die Klassifizierung verwendet gekennzeichnete Daten für die Vorhersagemodellierung.
  • Clustering hilft, versteckte Muster in Daten zu entdecken.

Clustering-Techniken

K-Means ist eine beliebte Clustering-Technik, die Daten basierend auf ihren Merkmalen in K verschiedene, nicht überlappende Cluster unterteilt. Der Prozess umfasst die zufällige Initialisierung von K Punkten als Clusterzentren und die Zuordnung jedes Datenpunkts zum nächstgelegenen Cluster basierend auf der euklidischen Distanz. Die Clusterzentren werden dann als Mittelwert der zugewiesenen Punkte neu berechnet und dieser Vorgang wiederholt sich, bis sich die Schwerpunkte stabilisieren und sich nicht mehr wesentlich bewegen. Diese Methode ist besonders effektiv für große Datensätze und wird aufgrund ihrer Einfachheit und Effizienz häufig verwendet. K-Means funktioniert am besten mit Daten, bei denen die Cluster kugelförmig und gleichmäßig groß sind, was es bei komplexen Clusterformen weniger effektiv macht.

Hierarchisches Clustering erfordert im Gegensatz zu K-Means nicht, dass die Anzahl der Cluster im Voraus angegeben wird. Es baut eine Hierarchie von Clustern entweder durch eine Teilungsmethode oder eine Agglomerationsmethode auf.

Beim agglomerativen Ansatz beginnt jeder Datenpunkt als eigener Cluster, und Clusterpaare werden zusammengeführt, wenn man in der Hierarchie nach oben geht. Der Prozess wird fortgesetzt, bis alle Punkte zu einem einzigen Cluster an der Spitze der Hierarchie zusammengeführt sind. Diese Methode eignet sich zur Ermittlung des Ähnlichkeitsgrads zwischen Datenpunkten und wird mithilfe eines Dendrogramms visuell dargestellt. Dies kann dabei helfen, die Anzahl der Cluster zu bestimmen, indem das Dendrogramm auf einem geeigneten Niveau geschnitten wird.

Die Teilungsmethode des hierarchischen Clusterings, auch Top-Down-Clustering genannt, beginnt mit allen Beobachtungen in einem einzelnen Cluster und teilt den Cluster schrittweise in kleinere auf. Dieser Ansatz beginnt an der Spitze der Hierarchie und arbeitet sich nach unten vor, was ihn konzeptionell unkompliziert macht: Jede Aufteilung ist darauf ausgelegt, auf jeder Unterteilungsebene möglichst deutliche und kohärente Cluster zu schaffen.

In der Praxis beinhaltet die Teilungsmethode die Untersuchung des Clusters bei jedem Schritt und die Auswahl des besten Punktes für die Teilung. Dabei wird der Abstand zwischen Beobachtungen innerhalb des Clusters gemessen und der größte Abstand als Teilungspunkt ermittelt. Der Prozess wird rekursiv fortgesetzt und teilt jeden nachfolgenden Cluster auf, bis jede Beobachtung ein eigener Cluster ist oder bis eine bestimmte Anzahl von Clustern erreicht ist. Er ist im Allgemeinen rechenintensiver als der agglomerative Ansatz, da er eine globale Sicht auf die Daten bei jeder Aufteilung erfordert, weshalb er in sehr großen Datensätzen seltener verwendet wird.

Hierarchisches Clustering ist besonders nützlich für kleinere Datensätze oder wenn die Beziehungen zwischen Datenpunkten genau untersucht werden müssen, beispielsweise in den Biowissenschaften oder beim Clustering historischer Daten.

Deep-Learning-Modelle

Deep Learning ist eine Teilmenge des maschinellen Lernens, das neuronale Netze mit vielen Schichten verwendet. Es unterscheidet sich deutlich von klassischen Techniken des maschinellen Lernens. Während sich das klassische maschinelle Lernen auf Funktionen konzentriert, die häufig manuell ausgewählt und konstruiert werden, zielt Deep Learning darauf ab, neuronale Netze zum Erlernen von Funktionen zu trainieren. Die Modelle automatisieren die Merkmalsextraktion, indem sie komplexe Muster aus einfacheren erstellen. Dies macht Deep Learning besonders leistungsstark für Aufgaben wie Bild- und Spracherkennung, bei denen die Eingabedaten hochdimensional und die Beziehungen innerhalb der Daten komplex sind. Allerdings sind große Informationsmengen erforderlich, um Deep-Learning-Modelle zu trainieren.

Künstliches neuronales Netzwerk

Ein grundlegendes Element des Deep Learning ist das vorwärts dicht verbundene neuronale Netzwerk oder Künstliches neuronales Netzwerk (ANN). In diesen Netzwerken sind Neuronen in Schichten angeordnet, wobei die erste Schicht die Eingabedaten aufnimmt und die letzte Schicht die Ausgabe erzeugt. Jedes Neuron in einer Schicht verbindet sich mit jedem Neuron in der nächsten Schicht, wodurch das Netzwerk „dicht verbunden“ wird. Diese Neuronen verfügen über Gewichte und Bias, die sich anpassen, wenn das Netzwerk während des Trainingsprozesses aus Daten lernt. Die Ausgabe jedes Neurons wird durch eine nichtlineare Aktivierungsfunktion berechnet, die die Möglichkeit bietet, nichtlineare Beziehungen in den Daten zu erfassen.

Neuronenschichten in ANNs können durch Vektoren dargestellt werden, die aus den Gewichten und Bias bestehen. Die Daten werden mithilfe der Matrixmultiplikation vorwärts durch diese Schichten weitergeleitet. Eine Ausgabe jeder Schicht wird berechnet, indem die Eingabedaten mit der Gewichtsmatrix multipliziert und dann ein Bias-Term hinzugefügt wird. Diese Ausgabe durchläuft dann eine Aktivierungsfunktion, bevor sie an die nächste Ebene gesendet wird.

Die Aktivierungsfunktion ist von entscheidender Bedeutung, da sie Nichtlinearität in das Modell einführt und es dem Netzwerk ermöglicht, komplexe, nichtlineare Beziehungen in den Daten zu lernen und zu modellieren. Ohne nichtlineare Aktivierungsfunktionen würde sich das Netzwerk, unabhängig von seiner Tiefe, immer noch wie ein einschichtiges Perzeptron verhalten, das nur lineare Grenzen lernen kann.

Faltungs-Neuronales Netzwerk

Eine Alternative zu einfachen ANNs ist das Convolutional Neural Network (CNN). Im Gegensatz zu dicht verbundenen Netzwerken, bei denen jede Eingabe mit jedem Neuron verbunden ist, arbeiten CNNs über Pixelmengen und verwenden Filter, um Feature-Maps zu erstellen, die das Vorhandensein erkannter Features in der Eingabe zusammenfassen, wie z. B. Kanten in Bildern. Dies macht CNNs äußerst effizient für Aufgaben, die räumliche Hierarchien beinhalten, da sie die Anzahl der benötigten Parameter reduzieren und damit den Rechenaufwand verringern.

Faltungs-Neuronale Netze sind spezielle Arten neuronaler Netze zur Verarbeitung von Daten mit einer gitterartigen Topologie, wie z. B. Bildern. CNNs verwenden Filter, die Faltungsoperationen durchführen, während der Filter über die Eingabe gleitet, um eine Feature-Map zu erstellen, die das Vorhandensein erkannter Features in der Eingabe zusammenfasst. Dadurch sind sie für bildbezogene Aufgaben äußerst effizient.

CNNs nutzen die mathematische Operation der Faltung, eine grundlegende Technik in der digitalen Signalverarbeitung. Im Kontext von DSP wird Faltung verwendet, um ein Signal durch einen Filter zu verändern und so wichtige Merkmale zu extrahieren. In ähnlicher Weise umfasst die Faltung in CNNs die Anwendung eines Filters auf ein Bild, um eine Feature-Map zu erstellen. Dieser Prozess ermöglicht es dem Netzwerk effektiv, Ähnlichkeiten oder spezifische Merkmale im Bild zu erkennen, die dem Filter entsprechen. Beispielsweise könnte ein Filter lernen, Kanten oder bestimmte Formen zu erkennen.

Während das Eingabebild durch aufeinanderfolgende Faltungsschichten verarbeitet wird, verwendet das CNN mehrere Filter auf jeder Schicht, um nach immer komplexeren Mustern zu suchen. Die erste Ebene kann einfache Kanten oder Texturen erkennen, während tiefere Ebenen komplexere Merkmale wie Teile von Objekten oder ganze Objekte erkennen können.

Gradientenabstieg und Training neuronaler Netze

Gradient Descent ist ein grundlegender Optimierungsalgorithmus, der beim Training neuronaler Netze und anderer Modelle für maschinelles Lernen verwendet wird. Dabei werden die Parameter des Modells iterativ angepasst, um die Verlustfunktion zu minimieren, die misst, wie gut die Vorhersagen des Modells mit den tatsächlichen Daten übereinstimmen. In jedem Schritt berechnet der Algorithmus den Gradienten der der Verlustfunktion in Bezug auf die Modellparameter und verschiebt die Parameter in die Richtung, die den Verlust reduziert.

Backpropagation ist die Technik, mit der diese Gradienten in neuronalen Netzen effizient berechnet werden. Es umfasst zwei Phasen:

  • Ein Vorwärtsdurchlauf, bei dem Eingabedaten durch das Netzwerk geleitet werden, um Vorhersagen zu generieren.
  • Ein Rückwärtsdurchlauf, bei dem der Gradient der der Verlustfunktion basierend auf der Vorhersage berechnet wird. Später wird es über das Netzwerk zurückgesendet, um die Gewichtungen zu aktualisieren.

Dieser Prozess nutzt die Kettenregel der Analysis zur Schätzung von Gradienten und stellt sicher, dass jedes Gewicht proportional zu seinem Beitrag zum Gesamtfehler angepasst wird. Zusammen ermöglichen Gradient Descent und Backpropagation neuronalen Netzen, aus Daten zu lernen, indem sie ihre Genauigkeit iterativ verbessern.

Die Verlustfunktionen

Verlustfunktionen spielen eine entscheidende Rolle bei der Steuerung des Trainingsprozesses. Sie wird auch als Kostenfunktion oder Fehlerfunktion bezeichnet. Es quantifiziert die Differenz zwischen den vorhergesagten Ergebnissen des Netzwerks und den tatsächlichen Zielwerten. Diese Metrik liefert ein konkretes Maß dafür, wie gut das Netzwerk funktioniert. Das Ziel des Trainings besteht darin, diesen Verlust zu minimieren und dadurch die Parameter des Modells zu optimieren.

Häufig verwendete Verlustfunktionen in ANNs variieren je nach Art der spezifischen Aufgabe:

  • Für Regressionsaufgaben, bei denen das Ziel darin besteht, kontinuierliche Werte vorherzusagen, wird häufig der Mean Squared Error (MSE)Verlust verwendet. MSE berechnet den Durchschnitt der Quadrate der Differenzen zwischen den vorhergesagten und den tatsächlichen Werten und bestraft größere Fehler stärker.
  • Für Klassifizierungsaufgaben, bei denen die Ausgabe eine Klassenbezeichnung ist, wird häufig Kreuzentropieverlust verwendet. Diese Verlustfunktion misst die Unähnlichkeit zwischen der wahren Etikettenverteilung und den vom Modell bereitgestellten Vorhersagen.

Das Problem des verschwindenden Gradienten und ReLu

Eine große Herausforderung beim Aufbau tiefer neuronaler Netze ist das Problem des verschwindenden Gradienten. Die im Trainingsprozess verwendeten Gradienten können zu klein werden, wodurch verhindert wird, dass Gewichte ihre Werte ändern, was dazu führt, dass das Netzwerk die Parameter nicht ausreichend aktualisiert.

Dieses Problem tritt besonders bei Sigmoid- oder Tanh-Aktivierungsfunktionen auf. Um dies zu mildern, hat Deep Learning die Aktivierungsfunktion Rektifizierte Lineareinheit (ReLu) eingeführt. ReLu ist definiert als ReLU(x)=max(0,x), wobei x die Eingabe in ein Neuron darstellt. Diese Funktion trägt dazu bei, während des Trainings einen stärkeren Gradienten aufrechtzuerhalten, sodass tiefere Netzwerke effektiv lernen können, ohne dass die Gradienten verschwinden. Diese Einfachheit und Effizienz bei der Förderung der Nichtlinearität, ohne die Skalierung des Gradienten zu beeinflussen, machen ReLu zu einer beliebten Wahl in Deep-Learning-Architekturen.

Spezialisierte Techniken des maschinellen Lernens

Der Kurs entwickelte sich zu einer Vielzahl spezialisierterer Techniken des maschinellen Lernens, die jeweils auf bestimmte Anwendungen und Domänen zugeschnitten sind.

Verarbeitung natürlicher Sprache

Natural Language Processing (NLP) umfasst die Anwendung rechnerischer Techniken zur Analyse und Synthese natürlicher Sprache und Sprache. Eine der größten Herausforderungen beim Einsatz von maschinellem Lernen für NLP besteht darin, dass Textdaten von Natur aus unstrukturiert und hochdimensional sind. Text muss in ein numerisches Format umgewandelt werden, das maschinelle Lernalgorithmen verarbeiten können, eine Aufgabe, die durch die Nuancen der Sprache wie Syntax, Semantik und Kontext erschwert wird.

Die Tasche der Worte

Das Bag of Words (BoW)-Modell behebt dieses Problem, indem es Text in Vektoren fester Länge umwandelt, indem es zählt, wie oft jedes Wort in einem Dokument vorkommt, und dabei die Reihenfolge und den Kontext der Wörter ignoriert. Diese Methode vereinfacht Textdaten, macht sie für grundlegende Modelle des maschinellen Lernens verwaltbar und dient als grundlegende Technik für Textklassifizierungsaufgaben, wie z. B. Spam-Erkennung oder Stimmungsanalyse. Allerdings schränken die Einfachheit des BoW-Modells und seine Missachtung der Wortreihenfolge und des semantischen Kontexts seine Wirksamkeit für komplexere Sprachaufgaben ein.

Reinforcement Learning mit UCB und Thompson Sampling

Reinforcement Learning (RL) ist eine Art maschinelles Lernen, bei dem ein Agent lernt, Entscheidungen durch Interaktion mit einer Umgebung zu treffen. Es unterscheidet sich vom überwachten Lernen, da weder korrekte Eingabe-/Ausgabepaare präsentiert noch suboptimale Aktionen explizit korrigiert werden. Diese Strategie entwickelt sich durch die Balance zwischen Erkundung, dem Ausprobieren neuer Dinge und der Nutzung bekannter Informationen in Entscheidungsprozessen.

Der Agent ergreift Maßnahmen auf der Grundlage einer Richtlinie, erhält Feedback durch Belohnungen oder Bestrafungen und aktualisiert seine Richtlinie, um die langfristigen Belohnungen zu maximieren. Zwei bemerkenswerte Strategien in RL, die helfen, das Explorations-Ausbeutungs-Dilemma zu bewältigen, sind die Upper Confidence Bound (UCB) und Thompson Sampling.

UCB ist ein Algorithmus, der die Erkundung priorisiert, indem er Aktionen auswählt, die entweder hohe Belohnungen bieten oder nicht oft ausprobiert wurden. Die Idee besteht darin, die bekannten Belohnungen mit der Möglichkeit in Einklang zu bringen, bei weniger erprobten Aktionen höhere Belohnungen zu finden. UCB tut dies, indem es Konfidenzgrenzen um die Schätzungen der Aktionsbelohnungen herum erstellt und die Aktion mit der höchsten oberen Konfidenzgrenze auswählt. Dieser Ansatz reduziert systematisch die Unsicherheit und verbessert die Entscheidungsfindung im Laufe der Zeit.

Thompson Sampling verfolgt einen Bayes'schen Ansatz für das Explorations-Ausbeutungs-Problem. Dabei werden Stichproben aus den hinteren Verteilungen der Belohnungen für jede Aktion gezogen und die Aktion mit der höchsten Stichprobe ausgewählt. Diese Methode ermöglicht eine probabilistischere Erkundung auf der Grundlage der bekannten Ausführung von Aktionen, wobei ein dynamischer Ausgleich zwischen der Erforschung neuer Aktionen und der Nutzung bekannter Aktionen auf der Grundlage ihrer Belohnungswahrscheinlichkeitsverteilungen erfolgt.

Sowohl UCB als auch Thompson Sampling sind leistungsstarke Techniken in Situationen, in denen die Lernumgebung dem Agenten zunächst unbekannt ist und eine systematische Erkundung und optimiertes Lernen basierend auf dem vom Agenten erhaltenen Feedback ermöglicht Umfeld. Diese Methoden sind besonders nützlich in Echtzeit-Entscheidungsszenarien wie A/B-Tests oder Netzwerkrouting.

Techniken zur Dimensionsreduktion

PCA ist eine statistische Technik zur Dimensionsreduzierung unter Beibehaltung möglichst großer Varianz. Dabei werden sogenannte Hauptkomponenten identifiziert – die Richtungen, entlang derer die Varianz der Daten maximiert wird. Es reduziert die Dimension der Daten, indem es die ursprünglichen Variablen in einen neuen Satz orthogonaler Variablen umwandelt. Durch die Orthogonalität ist diese neue Variable so unkorreliert wie möglich und berücksichtigt die maximale Varianz in den Daten. Dies ist besonders nützlich, um die Anzahl der Variablen in Daten zu reduzieren und gleichzeitig die Beziehungen beizubehalten, die am meisten zur Varianz beitragen. Durch die Umwandlung der Daten in einen neuen Satz von Dimensionen mit reduzierter Komplexität hilft PCA bei der Visualisierung hochdimensionaler Daten, beschleunigt Lernalgorithmen und entfernt Rauschen.

LDA hingegen ist ebenfalls eine Technik zur Dimensionsreduktion, konzentriert sich jedoch mehr auf die Maximierung der Trennbarkeit zwischen bekannten Kategorien. Es versucht, den Unterschied zwischen den Datenklassen zu modellieren. LDA erreicht dies, indem es eine lineare Kombination von Merkmalen findet, die Klassen trennt. Die resultierende Kombination kann als linearer Klassifikator oder zur Dimensionsreduktion vor einer späteren Klassifizierung verwendet werden.

Sowohl PCA als auch LDA dienen leicht unterschiedlichen Zwecken:

  • PCA ist unbeaufsichtigt und konzentriert sich auf die Varianz in den Daten.
  • LDA wird überwacht und konzentriert sich auf die Maximierung der Klassentrennbarkeit.

Moderne Modellauswahl- und Boosting-Techniken

Der letzte Teil des Kurses befasst sich mit fortgeschrittenen Modellauswahlstrategien und stellt Boosting vor. Boosting funktioniert, indem mehrere schwache Lernende nacheinander zu einem stärkeren Modell kombiniert werden. Jeder Lernende in der Sequenz konzentriert sich auf die Fehler des vorherigen Lernenden und verbessert so nach und nach die Genauigkeit des Modells. Bei den Lernenden handelt es sich in der Regel um einfache Modelle wie Entscheidungsbäume, und jedes einzelne trägt schrittweise zur endgültigen Entscheidung bei, wodurch das Ensemble stärker ist als jedes einzelne Modell allein.

Extreme Steigungsverstärkung

Eine der beliebtesten Implementierungen dieser Technik ist Extreme Gradient Boosting (XGBoost), die sich durch ihre Effizienz und Effektivität bei einem breiten Spektrum prädiktiver Modellierungsaufgaben auszeichnet.

Abschluss

Der Kurs „Maschinelles Lernen A-Z: AI, Python & R“ ist ein toller Einstieg für alle, die sich für maschinelles Lernen interessieren. Es deckt viele wichtige Themen ab und bietet einen umfassenden Überblick, aber es ist erst der Anfang.

Der Abschluss dieses Kurses macht Sie nicht sofort zu einem Experten, der für einen speziellen Job im Bereich maschinelles Lernen bereit ist. Betrachten Sie es stattdessen als einen ersten Schritt. Es hilft Ihnen, die Grundlagen zu verstehen und zeigt Ihnen, welche Teile des maschinellen Lernens für Sie am interessantesten sein könnten.

Das obige ist der detaillierte Inhalt vonMonate des maschinellen Lernens und darüber hinaus: Maschinelles Lernen von A bis Z. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage