Maschinelles Lernen und neuronale Netze - Seite 66

 

Verwendung der Greedy-Kreuzvalidierung zur schnellen Identifizierung optimaler Modelle für maschinelles Lernen



Verwendung der Greedy-Kreuzvalidierung zur schnellen Identifizierung optimaler Modelle für maschinelles Lernen

Grüße an alle. Ich bin Dr. Soper und möchte heute über eine von mir entwickelte Technik namens „Greedy Cross Validation“ sprechen. Diese Technik dient als Grundlage für die effiziente Identifizierung optimaler oder nahezu optimaler Modelle für maschinelles Lernen.

Beginnen wir mit einer kurzen Einführung und einer Erklärung, warum dieses Problem von großer Bedeutung ist. Bei der Entwicklung von Lösungen für maschinelles Lernen ist es üblich, verschiedene Modelle zu testen, um festzustellen, welches Modell die beste Leistung erbringt. Hier bezieht sich der Begriff „Modell“ auf eine spezifische Kombination aus einem Algorithmus für maschinelles Lernen und den gewählten Werten für seine einstellbaren Parameter.

Praktiker des maschinellen Lernens stehen oft vor der Herausforderung, Hunderte oder sogar Tausende von Modellen zu testen, bevor sie sich endgültig für ein Analyse- oder Datenwissenschaftsprojekt entscheiden. Dieser Prozess kann zeitaufwändig, rechenintensiv und kostspielig sein. Das Training einiger fortgeschrittener Modelle für maschinelles Lernen erfordert Stunden oder sogar Tage.

Da das Testen einer großen Anzahl von Modellen ressourcenintensiv ist, haben Forscher nach Möglichkeiten gesucht, so schnell wie möglich das leistungsstärkste Modell zu ermitteln. Zu den bestehenden Methoden gehören unter anderem Bayes'sche Ansätze, Gradientenabstiegsmethoden, evolutionäre Ansätze und bevölkerungsbasiertes Training. Diese Methoden zielen typischerweise darauf ab, Beziehungen zwischen Modellparametern und der Leistungsmetrik zu identifizieren und so vielversprechende Bereiche des Suchraums zu erkunden.

Im Gegensatz zu bestehenden Methoden verfolgt Greedy Cross Validation einen besonderen Ansatz, um die Identifizierung des Modells mit der besten Leistung zu beschleunigen. Anstatt sich darauf zu konzentrieren, vielversprechende Regionen innerhalb des Suchraums zu finden, konzentriert sich Greedy Cross Validation auf die Messung der Modellleistung selbst als Grundlage für die schnelle Identifizierung optimaler Modelle für maschinelles Lernen.

Ein Modell umfasst sowohl strukturelle als auch algorithmische Parameter, die zusammen als Hyperparameter bezeichnet werden. Zu den Strukturparametern gehören Faktoren wie die Anzahl verborgener Schichten oder Knoten in einem neuronalen Netzwerk, während algorithmische Parameter den Lernprozess steuern, beispielsweise die Mini-Batch-Größe oder die Lernrate. Die Aufgabe, die optimale Kombination von Hyperparametereinstellungen für ein bestimmtes Problem des maschinellen Lernens zu finden, wird als Hyperparameteroptimierung bezeichnet.

Um das Konzept der Greedy Cross Validation zu verstehen, betrachten wir ein einfaches Beispiel für die Suche nach einem optimalen Modell durch Hyperparameteroptimierung. In diesem Fall haben wir zwei Hyperparameter, die auf der horizontalen und vertikalen Achse dargestellt sind. Jedes orangefarbene Quadrat repräsentiert ein bestimmtes Modell mit seiner einzigartigen Kombination von Hyperparameterwerten. Durch die Bewertung der Leistung jedes Modells können wir das beste Modell identifizieren. Ein gängiger Ansatz für diesen Zweck ist die sogenannte „Rastersuche“.

Wie schätzen wir nun die reale Leistung eines Modells ein? Die gebräuchlichste Lösung besteht darin, jedes Modell anhand von Daten zu testen, auf die es während des Trainings nicht gestoßen ist. Dieser Prozess wird als „k-fache Kreuzvalidierung“ bezeichnet. So funktioniert das:

  1. Teilen Sie die Trainingsdaten nach dem Zufallsprinzip in k Teilmengen auf, die als „Falten“ bezeichnet werden.
  2. Trainieren Sie das Modell mit allen Falten bis auf eine.
  3. Testen Sie die Leistung des Modells anhand der verbleibenden Falte.
  4. Wiederholen Sie die Schritte 2 und 3, bis jede Falte einmal verwendet wurde, um die Leistung des Modells zu bewerten.

Die Gesamtleistung des Modells wird dann als Durchschnitt der Leistungswerte berechnet, die aus jeder einzelnen Bewertung erhalten wurden. Dies gewährleistet eine robuste Schätzung der Leistung des Modells.

Nachdem wir nun verstanden haben, wie die Standard-Kreuzvalidierung funktioniert, können wir ihre Rolle im gesamten Hyperparameter-Optimierungsprozess untersuchen. Bei der Bewertung mehrerer Kandidatenmodelle mithilfe der standardmäßigen Kreuzvalidierung aktualisiert jede Faltung für ein bestimmtes Modell unsere Schätzung seiner Leistung. Sobald wir alle Falten eines Modells ausgewertet haben, erhalten wir die endgültige Schätzung seiner Gesamtleistung. Indem wir diesen Vorgang für alle Modelle wiederholen, können wir den besten Kandidaten identifizieren.

Im Gegensatz dazu verfolgt Greedy Cross Validation einen anderen Ansatz. Anstatt alle Falten für jedes Modell nacheinander auszuwerten, werden die Falten für verschiedene Modelle iterativ ausgewertet. Die als nächstes zu bewertende spezifische Falte wird dynamisch basierend auf der aktuellen Durchschnittsleistung jedes Kandidatenmodells ausgewählt. Zunächst wird für jedes Modell eine Falte bewertet, und nachfolgende Faltungen werden basierend auf der Leistung der bisher bewerteten Modelle ausgewählt.

Die Grundidee der Greedy Cross Validation besteht darin, die Bewertung von Modellen zu priorisieren, die sich frühzeitig als vielversprechend erweisen. Auf diese Weise können wir schnell Modelle identifizieren, die wahrscheinlich eine gute Leistung erbringen, und ihnen mehr Rechenressourcen zuweisen. Durch diesen Ansatz entfällt die Notwendigkeit, alle Falten für jedes einzelne Modell zu bewerten, was erhebliche Zeit- und Rechenressourcen spart.

Um die Greedy Cross Validation zu implementieren, gehen wir folgendermaßen vor:

  1. Teilen Sie die Trainingsdaten nach dem Zufallsprinzip in k Falten auf.
  2. Initialisieren Sie einen leeren Satz ausgewerteter Modelle.
  3. Für jedes Modell in der Menge der Kandidatenmodelle: a. Bewerten Sie die Leistung des Modells auf einmal. B. Berechnen Sie die durchschnittliche Leistung des Modells anhand der ausgewerteten Falten.
  4. Wiederholen Sie die Schritte 3a und 3b, bis alle Kandidatenmodelle auf mindestens einer Falte bewertet wurden.
  5. Wählen Sie die nächste Falte zur Bewertung basierend auf der aktuellen Durchschnittsleistung jedes Modells aus.
  6. Wiederholen Sie die Schritte 3a bis 5, bis alle Falten für alle Kandidatenmodelle ausgewertet wurden.
  7. Wählen Sie das Modell mit der besten Leistung basierend auf der durchschnittlichen Leistung über alle Falten aus.

Durch die dynamische Auswahl der nächsten zu bewertenden Falte auf der Grundlage der aktuellen Durchschnittsleistung der Modelle kann Greedy Cross Validation schnell Modelle mit der besten Leistung identifizieren. Dieser Ansatz ermöglicht es uns, die Rechenressourcen auf die vielversprechendsten Modelle zu konzentrieren und gleichzeitig Modelle außer Acht zu lassen, die wahrscheinlich keine gute Leistung erbringen.

Einer der Vorteile der Greedy Cross Validation ist ihre Fähigkeit, eine große Anzahl von Kandidatenmodellen effizient zu verarbeiten. Anstatt alle Modelle auf allen Ebenen umfassend zu bewerten, priorisiert und bewertet Greedy Cross Validation die Modelle adaptiv anhand ihrer Leistung, wodurch der gesamte Rechenaufwand erheblich reduziert wird.

Es ist wichtig zu beachten, dass die Greedy Cross Validation keine garantierte Methode ist, um das absolut beste Modell zu finden. Wie andere Hyperparameter-Optimierungstechniken basiert es auf Heuristiken und identifiziert möglicherweise nicht immer das globale Optimum. Es bietet jedoch einen praktischen und effizienten Ansatz zur schnellen Identifizierung leistungsstarker Modelle, insbesondere wenn es um eine große Anzahl von Kandidaten geht.

Greedy Cross Validation ist eine Technik zur beschleunigten Hyperparameteroptimierung beim maschinellen Lernen. Durch die adaptive Auswahl und Bewertung von Modellen auf der Grundlage ihrer Leistung ermöglicht es die effiziente Identifizierung der Modelle mit der besten Leistung. Obwohl es möglicherweise nicht garantiert, das absolut beste Modell zu finden, bietet es eine praktische Lösung für die effiziente Navigation im Hyperparameter-Suchraum.

Using Greedy Cross Validation to Quickly Identify Optimal Machine Learning Models
Using Greedy Cross Validation to Quickly Identify Optimal Machine Learning Models
  • 2021.12.01
  • www.youtube.com
Dr. Soper explains Greedy Cross Validation and shows how it can be used to quickly perform hyperparameter optimization and identify optimal machine learning ...
 

1.1 Kursübersicht (L01: Was ist maschinelles Lernen)


1.1 Kursübersicht (L01: Was ist maschinelles Lernen)

Hallo an alle!

Willkommen zurück im neuen Semester. Ich hoffe, Sie hatten alle eine wundervolle Sommerpause. In diesem Video möchte ich mir einen Moment Zeit nehmen, um das Kursmaterial durchzugehen und zu besprechen, wie wir in diesem Kurs zusammenarbeiten werden, da er sich ein wenig von den üblichen Präsenzsitzungen unterscheiden wird.

Für diesen Kurs habe ich vor, die Vorlesungen asynchron aufzuzeichnen. Das bedeutet, dass ich die Vorlesungen vorab aufzeichne und sie zu Beginn jeder Woche mit Ihnen teile. Auf diese Weise können Sie das Material bequem ansehen, wann immer es Ihnen am besten passt. Dieser Ansatz bietet Ihnen die Flexibilität, die Videos bei Bedarf mehrmals anzusehen. Wenn Sie über eine langsame Internetverbindung verfügen, können Sie die Videos außerdem auf Ihren Computer herunterladen, um Streaming-Probleme beim Ansehen zu vermeiden.

Um die Navigation durch die Vorlesungen zu erleichtern, werde ich jede Vorlesung in mehrere Videos zu unterschiedlichen Themen aufteilen. In Vorlesung 1 werde ich beispielsweise separate Videos haben, in denen der Kurs im Allgemeinen, die Einführung in maschinelles Lernen, Kategorien für maschinelles Lernen, Notation und Anwendungen für maschinelles Lernen besprochen werden. Diese Aufschlüsselung hilft Ihnen, sich auf bestimmte Themen zu konzentrieren und den Inhalt einfacher zu überprüfen.

Während asynchrones Lernen seine Vorteile hat, verstehe ich, dass es auch Nachteile hat, wie zum Beispiel, dass man während der Vorlesung keine Fragen stellen kann. Um dieses Problem anzugehen, werde ich Live-Sprechstunden veranstalten, in denen wir in Echtzeit Diskussionen führen können. Nähere Informationen zu den Sprechzeiten gebe ich in Kürze bekannt.

Beginnen wir nun mit Vorlesung 1. In dieser Vorlesung behandeln wir die Kursübersicht, den Lehrplan und die Themen, die wir im Laufe des Semesters behandeln werden. Ich werde meine Folien durchgehen und weitere Details zum Kurs und anderen Themen im Zusammenhang mit maschinellem Lernen bereitstellen.

Apropos Studieninhalte: Ich habe das Semester in sieben Teile bzw. Module unterteilt. Diese Unterteilung wird uns helfen, unsere Lernreise zu strukturieren. Im ersten Teil beginnen wir mit einer Einführung in maschinelles Lernen, in der ich die Grundkonzepte erläutere und ein einfaches Beispiel für einen Algorithmus für maschinelles Lernen namens K-Nearest Neighbors zeige.

Nach der Einführung gehen wir zu den rechnerischen Grundlagen über, zu denen auch eine kurze Einführung in Python und seine Relevanz für maschinelles Lernen gehört. Vorkenntnisse mit Python sind zwar nicht zwingend erforderlich, ein Grundverständnis ist jedoch von Vorteil, da wir Python in diesem Kurs ausführlich verwenden werden. Wir werden uns auf bestimmte Bibliotheken wie NumPy für lineare Algebra und scikit-learn, die Hauptbibliothek für maschinelles Lernen, konzentrieren.

In den folgenden Teilen werden wir baumbasierte Methoden, Modellbewertung, Dimensionsreduktion, unbeaufsichtigtes Lernen und Bayesianisches Lernen behandeln. Diese Themen sind von entscheidender Bedeutung für das Verständnis verschiedener Algorithmen für maschinelles Lernen und ihrer Anwendungen. Wenn es die Zeit erlaubt, werden wir uns mit dem Bayes’schen Lernen befassen, das Methoden umfasst, die auf dem Satz von Bayes basieren.

Gegen Ende des Semesters werden wir Präsentationen unserer Klassenprojekte durchführen. Ich werde im Verlauf des Semesters weitere Informationen zu den Kursprojekten bereitstellen.

Für detaillierte Informationen zu jeder Vorlesung und ihren Inhalten habe ich eine Kurswebsite auf Canvas erstellt. Auf dieser Plattform finden Sie alle Ressourcen, einschließlich Vorlesungsvideos, Folien, Vorlesungsskripten und Aufgaben. Ich empfehle, die Folien herunterzuladen, bevor Sie sich die Videos ansehen, damit Sie sich Notizen machen und sich effektiver mit dem Material beschäftigen können.

Im weiteren Verlauf des Kurses werde ich wöchentliche Module auf Canvas veröffentlichen, wo Sie auf die Vorlesungen, Folien und andere relevante Ressourcen zugreifen können. Darüber hinaus werde ich Ankündigungen auf Canvas machen, um Sie über Aktualisierungen oder wichtige Informationen im Zusammenhang mit dem Kurs auf dem Laufenden zu halten. Bitte stellen Sie sicher, dass Sie Benachrichtigungen für Ankündigungen aktiviert haben. Ich empfehle Ihnen, Ihre E-Mails regelmäßig zu überprüfen, um auf dem Laufenden zu bleiben.

Daher muss ich die Videos wahrscheinlich noch einmal hochladen und prüfen, ob sie richtig geladen werden. Ich entschuldige mich für die Unannehmlichkeiten und schätze Ihre Geduld bei der Lösung dieser technischen Probleme.

Zusätzlich zu den Vorlesungsvideos werde ich auch ergänzende Materialien wie Codebeispiele und Hausaufgaben auf GitHub bereitstellen. Links zu diesen Ressourcen finden Sie im entsprechenden Wochenmodul auf Canvas. GitHub wird in der Community für maschinelles Lernen häufig zum Teilen von Code und zur Zusammenarbeit an Projekten verwendet. Daher ist es für Sie von Vorteil, sich mit dieser Plattform vertraut zu machen.

Ich möchte betonen, wie wichtig es ist, die Ankündigungen auf Canvas regelmäßig zu überprüfen. Während ich bei wichtigen Updates E-Mail-Benachrichtigungen versende, ist es wichtig, Benachrichtigungen für Ankündigungen zu aktivieren, um sicherzustellen, dass Sie alle Informationen erhalten. Ich werde die Canvas-Ankündigungsfunktion verwenden, um Änderungen, Erinnerungen oder zusätzliche Ressourcen im Zusammenhang mit dem Kurs mitzuteilen.

Lassen Sie uns nun die Kursstruktur genauer besprechen. Wie bereits erwähnt, ist das Semester in sieben Teile oder Module unterteilt, die jeweils spezifische Themen im Zusammenhang mit maschinellem Lernen behandeln. Diese Module sollen eine progressive Lernerfahrung bieten, indem sie auf früheren Konzepten aufbauen und neue einführen.

Im ersten Teil beginnen wir mit einer Einführung in das maschinelle Lernen, in der ich die Grundlagen des Fachgebiets erläutere und ein einfaches Beispiel für einen maschinellen Lernalgorithmus namens K-Nearest Neighbors zeige. Dadurch erhalten Sie einen Eindruck davon, wie maschinelles Lernen funktioniert, und legen den Grundstein für die kommenden Module.

Der zweite Teil konzentriert sich auf rechnerische Grundlagen, wobei wir uns mit der grundlegenden Python-Programmierung und wichtigen Bibliotheken befassen, die beim maschinellen Lernen verwendet werden, wie NumPy für lineare Algebra und Scikit-Learn für die Implementierung von Algorithmen für maschinelles Lernen. Obwohl Vorkenntnisse in Python nicht zwingend erforderlich sind, empfehle ich Ihnen, die interaktiven Übungen zu absolvieren, die ich auf Canvas zur Verfügung stelle, um sich bei Bedarf mit Python vertraut zu machen.

In den folgenden Teilen werden wir uns mit spezifischen Themen des maschinellen Lernens befassen. Teil drei befasst sich mit baumbasierten Methoden, einschließlich Entscheidungsbäumen, Zufallswäldern und Gradient Boosting. Diese Methoden werden häufig in verschiedenen Anwendungen des maschinellen Lernens verwendet und stellen Ihnen wertvolle Werkzeuge zum Erstellen von Vorhersagemodellen zur Verfügung.

Teil vier konzentriert sich auf die Modellbewertung, einen wesentlichen Aspekt des maschinellen Lernens. Wir besprechen Techniken zum Vergleichen und Bewerten verschiedener Algorithmen und Modelle für maschinelles Lernen, damit Sie fundierte Entscheidungen bei der Auswahl und Bereitstellung von Modellen in realen Szenarien treffen können.

Im fünften Teil geht es um Dimensionsreduktion und unbeaufsichtigtes Lernen. Lassen Sie sich vom Begriff „unüberwachtes Lernen“ nicht einschüchtern; Wir werden es in den Vorlesungen ausführlich erläutern. Dieser Teil konzentriert sich auf Methoden, die Muster aus Daten ohne explizite Bezeichnungen analysieren und extrahieren und so neue Möglichkeiten für die Datenexploration und -analyse eröffnen.

Wenn es die Zeit erlaubt, werden wir uns im sechsten Teil mit dem Bayes’schen Lernen befassen, das Methoden beinhaltet, die auf dem Satz von Bayes basieren. Wir werden Bayes'sche Klassifikatoren, naive Bayes-Klassifikatoren und möglicherweise Bayes'sche Netzwerke diskutieren. Bayesianisches Lernen bietet einen probabilistischen Rahmen zum Verständnis und zur Modellierung von Unsicherheiten beim maschinellen Lernen.

Abschließend werden wir am Ende des Semesters Präsentationen unserer Klassenprojekte durchführen. Ich werde im Laufe des Semesters weitere Informationen zu den Kursprojekten bereitstellen, aber dies wird eine Gelegenheit für Sie sein, Ihr Wissen und Ihre Fähigkeiten auf ein bestimmtes Problem oder einen Datensatz von Interesse anzuwenden. Sie haben die Möglichkeit, Ihr Verständnis des Kursmaterials unter Beweis zu stellen und Ihre Fähigkeit zur Implementierung maschineller Lerntechniken unter Beweis zu stellen.

Während des gesamten Semesters werde ich Live-Sprechstunden abhalten, in denen wir in Echtzeit über den Kursstoff oder etwaige Fragen, die Sie haben, diskutieren können. Die Einzelheiten dieser Sprechzeiten werden zu gegebener Zeit bekannt gegeben, und ich empfehle Ihnen, diese Gelegenheit zu nutzen, um mit mir und Ihren Kommilitonen in Kontakt zu treten.

Um die Kommunikation und Zusammenarbeit zu erleichtern, werden wir auch Piazza nutzen, eine Online-Plattform, auf der Sie Fragen stellen, an Diskussionen teilnehmen und zeitnahe Antworten von mir oder Ihren Kollegen erhalten können. Ich ermutige Sie, aktiv an Piazza teilzunehmen, da dies nicht nur Ihnen zugute kommt, sondern auch zum kollektiven Lernerlebnis der Klasse beiträgt.

Abschließend habe ich den Aufbau des Kurses und die verschiedenen Ressourcen erläutert, die Ihnen zur Verfügung stehen. Ich hoffe, dieser Überblick hat Ihnen ein klares Verständnis dafür vermittelt, wie wir im Laufe des Semesters vorgehen werden. Wenn Sie Fragen oder Bedenken haben, können Sie mich gerne während der Bürozeiten kontaktieren oder auf Piazza posten. Ich bin hier, um Sie auf Ihrem Lernweg zu unterstützen, und ich freue mich darauf, mit Ihnen allen dieses Abenteuer des maschinellen Lernens zu beginnen.

Vielen Dank. Beginnen wir mit der ersten Lektion über die Kursübersicht und den Lehrplan.

1.1 Course overview (L01: What is Machine Learning)
1.1 Course overview (L01: What is Machine Learning)
  • 2020.09.02
  • www.youtube.com
Course overview for my Introduction to Machine Learning course. This video goes over the course contents and syllabus available at https://sebastianraschka.c...
 

1.2 Was ist maschinelles Lernen (L01: Was ist maschinelles Lernen)



1.2 Was ist maschinelles Lernen (L01: Was ist maschinelles Lernen)

Zu Beginn des neuen Semesters möchte ich Sie alle herzlich willkommen heißen. Ich hoffe, Sie hatten alle eine fantastische Sommerpause.

In diesem Video möchte ich mir einen Moment Zeit nehmen, um einige wichtige Aspekte des Kurses und unsere Zusammenarbeit zu besprechen. Dieser Kurs unterscheidet sich geringfügig vom traditionellen Format, bei dem wir persönliche Sitzungen abhalten. Wir werden asynchrones Lernen nutzen, was bedeutet, dass ich die Vorlesungen vorab aufzeichnen und sie zu Beginn jeder Woche mit Ihnen teilen werde. So können Sie sich das Material nach Belieben ansehen, wann immer es Ihnen am besten passt. Darüber hinaus können Sie die Videos bei Bedarf mehrmals ansehen. Wer über eine langsamere Internetverbindung verfügt, kann die Videos auch herunterladen, um sie offline anzusehen.

Um die Navigation durch die Vorlesungen zu erleichtern, werde ich jede Vorlesung in mehrere Videos zu unterschiedlichen Themen aufteilen. In der ersten Vorlesung werde ich beispielsweise verschiedene Themen behandeln, wie einen Überblick über den Kurs, den Lehrplan und die verschiedenen Kategorien des maschinellen Lernens. Dieser Vortrag ist in sechs Videos unterteilt.

Während einer der Nachteile des asynchronen Lernens darin besteht, dass Sie während der Vorlesung keine Fragen stellen können, werde ich Live-Bürostunden anbieten, in denen wir alle Fragen oder Bedenken besprechen können, die Sie haben. Nähere Informationen zu den Sprechzeiten gebe ich später bekannt.

Kommen wir nun zum Kursinhalt. Das Semester ist in sieben Teile bzw. Module gegliedert. Im ersten Teil beginnen wir mit einer Einführung in maschinelles Lernen und einem einfachen Beispiel eines Algorithmus für maschinelles Lernen namens K nächste Nachbarn. Anschließend behandeln wir die rechnerischen Grundlagen, einschließlich einer kurzen Einführung in Python, sowie die lineare Algebra und die Hauptbibliothek für maschinelles Lernen, scikit-learn. Machen Sie sich keine Sorgen, wenn Sie noch keine Erfahrung mit Python haben. Es ist leicht zu erlernen und ich stelle optionale interaktive Übungen auf Canvas zur Verfügung, um Ihnen den Einstieg zu erleichtern.

Nach den rechnerischen Grundlagen werden wir baumbasierte Methoden wie Entscheidungsbäume, Zufallswälder und Gradient Boosting untersuchen. Anschließend befassen wir uns mit der Modellbewertung, einem wichtigen Thema, das es uns ermöglicht, verschiedene Algorithmen und Modelle für maschinelles Lernen zu vergleichen. Dieser Teil des Kurses vermittelt Ihnen die Fähigkeiten, die besten Modelle für reale Anwendungen zu bewerten und auszuwählen.

Als nächstes werden wir uns mit Dimensionsreduktion und unbeaufsichtigtem Lernen befassen. Techniken zur Dimensionsreduktion sind für den Umgang mit komplexen Datensätzen von entscheidender Bedeutung. Durch unüberwachtes Lernen werden Sie in Methoden eingeführt, bei denen wir keine gekennzeichneten Daten zum Trainieren unserer Modelle haben.

Wenn es die Zeit erlaubt, werden wir auch auf das Bayesianische Lernen eingehen, das Techniken wie Naive-Bayes-Klassifikatoren und Bayesianische Netzwerke umfasst. Dieses Thema vermittelt ein Verständnis der Klassifizierungsmethoden basierend auf dem Bayes-Theorem.

Am Ende des Semesters werden wir Projektpräsentationen für die Klasse durchführen. Weitere Informationen zu den Kursprojekten werde ich später im Semester bekannt geben. Weitere Details und Ressourcen finden Sie auf der Kurswebsite, die ich auf Canvas hochgeladen habe. Ich empfehle Ihnen, die Website zu erkunden und die bereitgestellten Informationen durchzulesen.

Was Kommunikation und Ressourcen betrifft, werden wir Canvas hauptsächlich für alle kursbezogenen Aktivitäten verwenden. Vorlesungsvideos, Folien und zusätzliche Materialien werden auf Canvas verfügbar sein. Ich werde Canvas-Ankündigungen auch nutzen, um wichtige Updates und Informationen zu teilen. Bitte stellen Sie sicher, dass Ihre Benachrichtigungseinstellungen aktiviert sind, um diese Ankündigungen per E-Mail zu erhalten.

Um Ihr Lernerlebnis zu verbessern, empfehle ich, die Folien vor dem Ansehen der Videos herunterzuladen, damit Sie direkt Notizen dazu machen können. Notizen zu machen kann hilfreich sein, um den Stoff besser zu verstehen und zu behalten.

Sollten beim Zugriff auf die Kursmaterialien technische Schwierigkeiten auftreten, empfehle ich die Verwendung von Firefox oder Chrome als Browser, da diese in der Regel am besten mit Canvas funktionieren.

1.2 What is Machine Learning (L01: What is Machine Learning)
1.2 What is Machine Learning (L01: What is Machine Learning)
  • 2020.09.02
  • www.youtube.com
In this video, we are goin over the definition of machine learning and how machine learning is related to programming.-------This video is part of my Introdu...
 

1.3 Kategorien des maschinellen Lernens (L01: Was ist maschinelles Lernen)



1.3 Kategorien des maschinellen Lernens (L01: Was ist maschinelles Lernen)

Lassen Sie uns tiefer in die verschiedenen Kategorien oder Arten des maschinellen Lernens eintauchen. Die umfangreichste Kategorie ist das überwachte Lernen, bei dem es um gekennzeichnete Daten geht. Beim überwachten Lernen zielen wir darauf ab, eine Ausgabe basierend auf gegebenen Eingabedaten vorherzusagen. Bei der E-Mail-Spam-Klassifizierung wären die Bezeichnungen beispielsweise „Spam“ und „Kein Spam“. Ziel ist es, für zukünftige E-Mails vorherzusagen, ob es sich bei einer E-Mail um Spam handelt oder nicht. Diese Kategorie umfasst eine Rückkopplungsschleife, in der korrekte oder falsche Vorhersagen verwendet werden, um den Algorithmus zu verbessern und die Klassifizierungsgenauigkeit zu erhöhen.

Eine Unterkategorie des überwachten Lernens ist die Klassifizierung. Die Klassifizierung konzentriert sich auf die Zuweisung von Klassenbezeichnungen, z. B. „Spam“ und „Nicht-Spam“. Wir können beispielsweise Klassenbezeichnungen wie „Minus“ und „Plus“ verwenden, um diese beiden Klassen anhand der durch X1 und X2 dargestellten Eingabeinformationen zu unterscheiden. Ein maschineller Lernalgorithmus untersucht Messungen und trifft Vorhersagen, wobei er kontinuierlich lernt, korrekte Etiketten zuzuweisen. Indem der Algorithmus anhand eines Datensatzes mit zahlreichen Beispielen trainiert wird, kann er lernen, eine Entscheidungsgrenze zu zeichnen, also die Linie, die die Klassen trennt. Neue Datenpunkte, die auf einer Seite der Entscheidungsgrenze liegen, werden wahrscheinlich als eine bestimmte Klasse klassifiziert.

Eine weitere Art des überwachten Lernens ist die Regression, bei der es um die Zuweisung eines kontinuierlichen Ziel- oder Ausgabewerts geht. Die Regressionsanalyse konzentriert sich auf die Vorhersage eines kontinuierlichen Ergebnisses basierend auf Eingabemerkmalen. Beispielsweise ist die lineare Regression ein einfaches Modell mit einer Eingabevariablen, das darauf abzielt, einen Ausgabewert (Y) vorherzusagen, indem eine Linie durch Datenpunkte angepasst wird, um Fehler zu minimieren.

Beim unbeaufsichtigten Lernen geht es in dieser Kategorie um die Analyse unbeschrifteter Daten, um verborgene Muster oder Strukturen zu entdecken. Ohne Labels oder Feedback zielt unüberwachtes Lernen darauf ab, aussagekräftige Erkenntnisse innerhalb des Datensatzes zu finden. Clustering ist ein Beispiel für unbeaufsichtigtes Lernen, bei dem ähnliche Datenpunkte basierend auf Mustern oder Dichten gruppiert werden. Verschiedene Clustering-Algorithmen wie k-means, DBSCAN oder hierarchisches Clustering können verwendet werden, um ähnliche Datenpunkte zu identifizieren und zu gruppieren.

Die Dimensionsreduktion ist ein weiteres Beispiel für unbeaufsichtigtes Lernen. Dabei geht es darum, die Anzahl der Features oder Dimensionen im Datensatz zu reduzieren. Merkmalsextraktion und Merkmalsauswahl sind gängige Techniken zur Dimensionsreduktion. Diese Methoden helfen dabei, Features zu komprimieren oder zu transformieren, um die relevantesten Informationen zu erfassen und gleichzeitig die Komplexität zu reduzieren.

Die letzte Kategorie des maschinellen Lernens ist das verstärkende Lernen. Beim Reinforcement Learning lernt ein Agent eine Reihe von Aktionen, um ein bestimmtes Ziel zu erreichen oder die Belohnungen in einer bestimmten Umgebung zu maximieren. Diese Art des Lernens beinhaltet ein Belohnungssystem, bei dem der Agent Feedback basierend auf dem Ergebnis seiner Aktionen erhält. Durch Versuch und Irrtum lernt der Agent, bessere Entscheidungen zu treffen und seine Leistung zu optimieren. Reinforcement Learning wird häufig in Robotik, Spielen und komplexen Entscheidungsszenarien eingesetzt.

Es ist wichtig zu beachten, dass Reinforcement Learning zwar ein wichtiges Thema ist, in diesem Kurs jedoch nicht ausführlich behandelt wird. Es stehen jedoch spezielle Ressourcen für diejenigen zur Verfügung, die daran interessiert sind, das Lernen durch Verstärkung weiter zu erforschen.

Diese verschiedenen Kategorien des maschinellen Lernens bieten einen breiten Rahmen für das Verständnis und die Anwendung verschiedener Techniken und Algorithmen zur Lösung verschiedener Arten von Problemen.

Lassen Sie uns nun auf einen anderen Aspekt des maschinellen Lernens eingehen, das als halbüberwachtes Lernen bezeichnet wird. Wie der Name schon sagt, fällt es zwischen überwachtem und unüberwachtem Lernen. Beim halbüberwachten Lernen haben wir eine Mischung aus beschrifteten und unbeschrifteten Daten. Die beschrifteten Daten ähneln denen, die wir beim überwachten Lernen besprochen haben, wo wir Eingaben und entsprechende Klassenbezeichnungen haben. Allerdings haben wir beim halbüberwachten Lernen auch eine große Menge unbeschrifteter Daten ohne Klassenbezeichnungen.

Das Ziel des halbüberwachten Lernens besteht darin, die zusätzlichen unbeschrifteten Daten zu nutzen, um den Lernprozess zu verbessern. Durch die Kombination der beschrifteten und unbeschrifteten Daten kann der Algorithmus Muster und Beziehungen in den Daten entdecken, die bei nur den beschrifteten Daten möglicherweise nicht erkennbar waren. Dies kann zu genaueren Vorhersagen und einer besseren Verallgemeinerung führen.

Halbüberwachtes Lernen kann besonders in Szenarien nützlich sein, in denen die Beschaffung gekennzeichneter Daten teuer oder zeitaufwändig ist. Anstatt eine große Datenmenge manuell zu kennzeichnen, können wir einen kleineren Satz gekennzeichneter Daten zusammen mit einem größeren Satz unbeschrifteter Daten verwenden, um gute Ergebnisse zu erzielen.

Ein Ansatz für halbüberwachtes Lernen ist der Einsatz von Techniken wie Selbsttraining oder Co-Training. Beim Selbsttraining trainiert der Algorithmus zunächst anhand der gekennzeichneten Daten und generiert dann anhand seiner Vorhersagen Pseudobezeichnungen für die unbeschrifteten Daten. Diese Pseudoetiketten werden dann mit den ursprünglich markierten Daten kombiniert, um das Modell neu zu trainieren. Dieser Prozess wird mehrmals wiederholt, wodurch die Vorhersagen des Modells verfeinert und die unbeschrifteten Daten genutzt werden, um die Leistung zu verbessern.

Beim Co-Training lernt der Algorithmus aus mehreren Ansichten der Daten. Mehrere Klassifikatoren werden auf unterschiedliche Teilmengen von Merkmalen oder unterschiedliche Darstellungen der Daten trainiert. Zunächst wird jeder Klassifikator anhand der gekennzeichneten Daten trainiert. Anschließend tauschen sie ihre Vorhersagen zu den unbeschrifteten Daten aus, sodass jeder Klassifikator von den Vorhersagen des anderen lernen kann. Dieser iterative Prozess wird fortgesetzt, wobei jeder Klassifikator seine Vorhersagen auf der Grundlage des Konsenses der anderen verfeinert.

Halbüberwachtes Lernen ist ein wachsendes Forschungsgebiet, und es stehen verschiedene Algorithmen und Techniken zur Verfügung, um die Herausforderung der effektiven Nutzung unbeschrifteter Daten zu bewältigen. Es handelt sich um ein spannendes Feld, das vielversprechende Möglichkeiten zur Verbesserung der Leistung maschinellen Lernens bietet, wenn die gekennzeichneten Daten begrenzt sind.

Wir haben die verschiedenen Kategorien des maschinellen Lernens besprochen, darunter überwachtes Lernen, unüberwachtes Lernen, verstärkendes Lernen und halbüberwachtes Lernen. Jede Kategorie hat ihre eigenen Eigenschaften und Anwendungen. Überwachtes Lernen beschäftigt sich mit gekennzeichneten Daten und konzentriert sich auf die Erstellung von Vorhersagen oder die Zuweisung von Klassenbezeichnungen. Unüberwachtes Lernen zielt darauf ab, verborgene Strukturen oder Muster in unbeschrifteten Daten zu finden. Reinforcement Learning beinhaltet das Erlernen einer Reihe von Aktionen durch ein Belohnungssystem. Schließlich kombiniert halbüberwachtes Lernen gekennzeichnete und unbeschriftete Daten, um die Lernleistung zu verbessern.

1.3 Categories of Machine Learning (L01: What is Machine Learning)
1.3 Categories of Machine Learning (L01: What is Machine Learning)
  • 2020.09.02
  • www.youtube.com
In this video, we are discussing the three broad categories of machine learning: supervised learning, unsupervised learning, and reinforcement learning.-----...
 

1.4 Notation (L01: Was ist maschinelles Lernen)



1.4 Notation (L01: Was ist maschinelles Lernen)

Nachdem wir nun das Konzept des maschinellen Lernens und die Hauptkategorien des maschinellen Lernens besprochen haben, wollen wir tiefer in das überwachte Lernen eintauchen. Wie bereits erwähnt, ist überwachtes Lernen die größte Kategorie des maschinellen Lernens. In diesem Abschnitt werden wir die Notation, Terminologie und Konzepte im Zusammenhang mit überwachtem Lernen untersuchen.

Überwachtes Lernen folgt einem bestimmten Arbeitsablauf. Wir beginnen mit einem Trainingsdatensatz, der Beispiele für Eingabemerkmale und die entsprechenden Zielinformationen oder Beschriftungen enthält. Die Eingabemerkmale können auch als Beobachtungen bezeichnet werden. Der Datensatz wird dann einem maschinellen Lernalgorithmus bereitgestellt. Es gibt verschiedene Arten von Algorithmen für maschinelles Lernen, die wir später in diesem Kurs untersuchen werden. Der Algorithmus lernt aus den Trainingsdaten und generiert ein Vorhersagemodell.

Das Modell stellt das erlernte Wissen aus den Trainingsdaten dar und kann verwendet werden, um Vorhersagen zu neuen, ungesehenen Daten zu treffen. Wenn die neuen Daten dasselbe Format wie die Trainingsdaten haben und dieselben Funktionen enthalten, kann das trainierte Modell für Vorhersagen verwendet werden. Dies ist der Hauptarbeitsablauf des überwachten Lernens.

Lassen Sie uns nun auf die formalen Aspekte der Notation für überwachtes Lernen eingehen. Wir bezeichnen den Trainingsdatensatz als D, der aus N Trainingsbeispielen besteht. Jedes Trainingsbeispiel enthält einen Merkmalsvektor (X) und eine entsprechende Beschriftung (Y). Das hochgestellte „i“ stellt den Index des Trainingspunkts dar und gibt seine Position im Datensatz an. Der hochgestellte Index wird hier verwendet, um ihn vom tiefgestellten Index zu unterscheiden, den wir später einführen werden.

Der Trainingsdatensatz wird basierend auf einer zugrunde liegenden, oft unbekannten Funktion generiert, die den Features Beschriftungen zuweist. Diese Funktion ist normalerweise nicht explizit definiert und kann ein natürliches Phänomen oder ein menschlicher Kennzeichnungsprozess sein. Beim maschinellen Lernen besteht unser Ziel darin, diese Funktion (F(X)) mithilfe eines Modells oder einer Hypothese zu approximieren. Das Modell sollte die Zuordnung zwischen den Eingabemerkmalen (X) und den Beschriftungen (Y) auf ähnliche Weise wie die unbekannte Funktion erfassen.

Traditionell wird die vom Algorithmus für maschinelles Lernen gelernte Hypothese oder das Modell als H bezeichnet. Das Modell nimmt den Merkmalsvektor (X) auf und erzeugt eine vorhergesagte Bezeichnung (Y hat). Bei Regressionsproblemen ist die vorhergesagte Bezeichnung ein kontinuierlicher Wert, während bei Klassifizierungsproblemen die vorhergesagte Bezeichnung zu einer Menge möglicher Werte gehört. Bei der Klassifizierung wird die Menge der möglichen Bezeichnungen typischerweise durch ganze Zahlen dargestellt, sie könnte aber auch durch andere Symbole oder Buchstaben dargestellt werden.

Bei der Modellbewertung wird ein separater Datensatz verwendet, um die Leistung des Modells zu bewerten. Die vom Modell getroffenen Vorhersagen werden mit den tatsächlichen Bezeichnungen verglichen, um die Genauigkeit des Modells zu messen. Bei der Regression wird die Nähe der Vorhersagen zu den wahren Etiketten beurteilt, während bei der Klassifizierung die Übereinstimmung zwischen den vorhergesagten Etiketten und den wahren Etiketten untersucht wird.

Um diese Konzepte zu veranschaulichen, betrachten wir ein reales Beispiel eines Datensatzes, den Iris-Datensatz. Dieser Datensatz besteht aus Messungen verschiedener Merkmale von Irisblüten, wie z. B. den Kelch- und Blütenblattabmessungen. Ziel ist es, anhand dieser Messungen die Art der Blume vorherzusagen. Es gibt drei Arten: Setosa, Versicolor und Virginica.

Im Iris-Datensatz entspricht jedes Trainingsbeispiel einer Blütenmessung, wobei die Merkmale die Abmessungen und die Beschriftung die Blütenart darstellen. Der Datensatz enthält 150 Trainingsbeispiele, bezeichnet als N=150, und vier Features, bezeichnet als M=4.

Beim überwachten Lernen wird ein Trainingsdatensatz verwendet, um ein Modell zu erlernen, das eine unbekannte zugrunde liegende Funktion annähert. Das Modell nimmt Eingabemerkmale auf und generiert Vorhersagen. Die Genauigkeit des Modells wird anhand separater Daten bewertet. Die in diesem Abschnitt besprochene Notation und Terminologie bilden eine Grundlage für das Verständnis und die Arbeit mit überwachten Lernalgorithmen.

1.4 Notation (L01: What is Machine Learning)
1.4 Notation (L01: What is Machine Learning)
  • 2020.09.02
  • www.youtube.com
In this video, we are going over some of the machine learning formalities and notation that we will be using in this course.-------This video is part of my I...
 

1.5 ML-Anwendung (L01: Was ist maschinelles Lernen)



1,5 ML-Anwendung (L01: Was ist maschinelles Lernen)

Nachdem wir die Notation und den Formalismus rund um das überwachte Lernen besprochen haben, werfen wir noch einmal einen Blick auf die Pipeline des überwachten Lernens und untersuchen, wie wir Probleme des maschinellen Lernens in der Praxis angehen. Wir werden auch die einzelnen Komponenten untersuchen, die wir typischerweise während des Prozesses berücksichtigen.

Die vereinfachte Abbildung, die wir zuvor untersucht haben, zeigt den Arbeitsablauf des überwachten Lernens. In diesem Workflow beginnen wir mit einem beschrifteten Trainingsdatensatz, in dem wir Beschriftungen für die Features haben. Anschließend wenden wir einen Algorithmus für maschinelles Lernen an, der lernt, ein Modell an die Trainingsdaten anzupassen. Das resultierende Modell kann verwendet werden, um Vorhersagen zu neuen, unsichtbaren Daten zu treffen. Es ist wichtig zu beachten, dass bei diesem Prozess davon ausgegangen wird, dass die neuen Daten aus derselben Verteilung stammen wie die Trainingsdaten.

Schauen wir uns nun ein detaillierteres Flussdiagramm an, das die verschiedenen Komponenten des praktischen maschinellen Lernens veranschaulicht. Die grundlegenden Komponenten bleiben dieselben wie in der vorherigen Abbildung: ein Trainingsdatensatz, ein Lernalgorithmus und ein resultierendes Modell. Es sind jedoch noch weitere Details zu berücksichtigen.

In der Praxis führen wir vor dem Erhalt der Trainingsdaten normalerweise einige Vorverarbeitungsschritte durch. Sofern wir keinen vorgefertigten Datensatz erwerben, müssen wir die Merkmale bestimmen, die aus den Daten extrahiert werden sollen. Dies ist besonders wichtig beim traditionellen maschinellen Lernen. Wenn wir beispielsweise Irisblüten anhand von Messungen klassifizieren, verfügen wir möglicherweise über Bilddaten oder Beobachtungsdaten aus realen Szenarien. In beiden Fällen müssen wir relevante Funktionen extrahieren, um sie dem Algorithmus für maschinelles Lernen bereitzustellen. Anstatt Rohpixel aus Bildern zu verwenden, ist es oft effektiver, vorverarbeitete oder extrahierte Merkmale zu verwenden. Im Beispiel der Irisblume können diese Merkmale die Kelchblattlänge, die Kelchblattbreite usw. umfassen. Es ist üblich, Domänenexperten einzubeziehen, die über Kenntnisse über das Problem verfügen, beispielsweise Botaniker im Fall der Klassifizierung von Blumen. Ihr Fachwissen kann bei der Auswahl nützlicher Merkmale für die Klassifizierung hilfreich sein.

Unter der Annahme, dass wir die Merkmale aus den Rohdaten extrahiert haben, erhalten wir einen Trainingssatz bestehend aus Probenlänge, Probenbreite, Blütenblattlänge und Blütenblattbreite. Möglicherweise sind zusätzliche Vorverarbeitungsschritte erforderlich, z. B. Feature-Skalierung, Feature-Auswahl (Auswahl der einzubeziehenden Features) und Dimensionsreduzierung. Zu diesen Vorverarbeitungsschritten kann unter anderem auch die Unterabtastung des Datensatzes gehören. Im Laufe dieses Kurses werden wir eine Auswahl dieser Vorverarbeitungsschritte detaillierter untersuchen.

Sobald die Vorverarbeitung abgeschlossen ist, stellen wir dem Lernalgorithmus die Daten zur Verfügung und passen das Modell an. Bevor das Modell jedoch auf neue Daten angewendet wird, ist es üblich, den Datensatz in zwei Teile zu unterteilen: einen Trainingssatz und einen Testsatz. Der Trainingssatz wird verwendet, um den Algorithmus zu trainieren und das Modell zu erhalten, während der Testsatz als unabhängiger Datensatz zur Bewertung der Leistung des Modells dient. Dieser Bewertungsschritt hilft uns zu beurteilen, wie gut das Modell funktioniert, bevor wir es auf reale, unsichtbare Daten anwenden. Es ist wichtig zu beachten, dass während des Trainingsprozesses auch Bewertungsschritte wie Modellauswahl und Kreuzvalidierung erforderlich sind, die zur Optimierung der Hyperparameter beitragen. Wir werden diese Themen in diesem Kurs ausführlich behandeln.

Nachdem wir das endgültige Modell erhalten haben, bewerten wir seine Leistung mithilfe des Testsatzes. Diese Bewertung umfasst die Verwendung des Modells zur Vorhersage von Beschriftungen für den Testsatz und den Vergleich dieser Vorhersagen mit den tatsächlichen Beschriftungen. In Klassifizierungsbeispielen dreht sich die Bewertung häufig um die Klassifizierungsgenauigkeit oder den Klassifizierungsfehler und gibt den Prozentsatz korrekt klassifizierter Instanzen an. Beispielsweise könnten wir eine Genauigkeit von 95 % bei der korrekten Klassifizierung der Blumen erreichen. Sobald das Modell ausgewertet wurde, kann es auf neue Daten angewendet werden, um Vorhersagen für reale Anwendungen zu treffen.

Obwohl diese Folie angesichts der Menge an Informationen überwältigend erscheinen mag, können Sie sicher sein, dass wir uns im Verlauf dieses Kurses ausführlicher mit jedem dieser Schritte befassen werden.

In der Praxis sind bei der Entwicklung einer Anwendung für maschinelles Lernen normalerweise fünf Hauptschritte erforderlich. Zunächst müssen wir das Problem definieren, das wir lösen möchten.

Nachdem wir das Problem definiert haben, das wir lösen möchten, besteht der nächste Schritt darin, die Daten zu sammeln und aufzubereiten. Dazu gehört die Erfassung eines Datensatzes, der Beispiele für das Problem enthält, das wir lösen möchten. Der Datensatz sollte sowohl die Eingabemerkmale als auch die entsprechenden Beschriftungen enthalten.

Sobald wir den Datensatz haben, besteht der nächste Schritt darin, die Daten vorzuverarbeiten und zu bereinigen. Dies kann den Umgang mit fehlenden Werten, den Umgang mit Ausreißern, das Normalisieren oder Skalieren von Features und das Durchführen aller erforderlichen Transformationen oder Codierungen umfassen. Die Datenvorverarbeitung ist unerlässlich, um die Qualität und Zuverlässigkeit des Datensatzes sicherzustellen und ihn für den Lernalgorithmus vorzubereiten.

Nach der Vorverarbeitung der Daten gehen wir zum dritten Schritt über, der Auswahl eines geeigneten Algorithmus für maschinelles Lernen. Die Wahl des Algorithmus hängt von der Art des Problems, der Art der Daten und den verfügbaren Ressourcen ab. Es stehen verschiedene Arten von Algorithmen zur Auswahl, darunter Entscheidungsbäume, Support-Vektor-Maschinen, neuronale Netze und viele mehr. Jeder Algorithmus hat seine eigenen Stärken und Schwächen, und die Auswahl des für das jeweilige Problem am besten geeigneten Algorithmus ist entscheidend.

Sobald der Algorithmus ausgewählt ist, besteht der nächste Schritt darin, das Modell mithilfe des vorbereiteten Datensatzes zu trainieren. Während des Trainingsprozesses lernt das Modell, anhand der Eingabedaten und der entsprechenden Bezeichnungen zu verallgemeinern. Dabei werden die internen Parameter des Modells angepasst, um den Vorhersagefehler zu minimieren. Der Trainingsprozess umfasst typischerweise einen Optimierungsalgorithmus, wie etwa den Gradientenabstieg, der die Modellparameter basierend auf den beobachteten Fehlern iterativ aktualisiert.

Nachdem das Modell trainiert wurde, besteht der nächste Schritt darin, seine Leistung zu bewerten. Dies erfolgt mithilfe eines separaten Bewertungsdatensatzes, der oft als Validierungssatz oder Hold-out-Satz bezeichnet wird. Die verwendeten Bewertungsmetriken hängen von der Art des Problems ab. Für Klassifizierungsaufgaben werden üblicherweise Metriken wie Genauigkeit, Präzision, Rückruf und F1-Score verwendet. Für Regressionsaufgaben werden Metriken wie der mittlere quadratische Fehler (MSE) oder der mittlere absolute Fehler (MAE) verwendet. Die Auswertung hilft uns zu beurteilen, wie gut sich das Modell auf bisher unbekannte Daten verallgemeinern lässt, und liefert Einblicke in seine Stärken und Schwächen.

Wenn die Leistung des Modells zufriedenstellend ist, besteht der letzte Schritt darin, das Modell bereitzustellen und es zu verwenden, um Vorhersagen zu neuen, unsichtbaren Daten zu treffen. Dies kann die Integration des Modells in ein größeres System oder eine größere Anwendung umfassen, um die Entscheidungsfindung zu automatisieren oder bei der Lösung des vorliegenden Problems zu helfen.

Es ist erwähnenswert, dass der Prozess des maschinellen Lernens iterativ ist und häufig ein Hin- und Herwechseln zwischen den Schritten erfordert. Wenn beispielsweise die Leistung des Modells nicht zufriedenstellend ist, müssen wir möglicherweise den Schritt der Datenvorverarbeitung erneut durchführen, andere Algorithmen ausprobieren, Hyperparameter anpassen oder mehr Daten sammeln, um die Leistung des Modells zu verbessern.

Diese Übersicht bietet ein umfassendes Verständnis der typischen Schritte beim praktischen maschinellen Lernen. Im Verlauf dieses Kurses werden wir tiefer in jeden Schritt eintauchen, verschiedene Algorithmen und Techniken erkunden und praktische Erfahrungen bei der Anwendung von maschinellem Lernen auf reale Probleme sammeln.

1.5 ML application (L01: What is Machine Learning)
1.5 ML application (L01: What is Machine Learning)
  • 2020.09.06
  • www.youtube.com
This video is about the main steps for approaching a machine learning application along with a categorization with the different aspects of machine learning ...
 

1.6 ML-Motivation (L01: Was ist maschinelles Lernen)



1.6 ML-Motivation (L01: Was ist maschinelles Lernen)

Zuvor haben wir den Ansatz zur Lösung von Problemen des maschinellen Lernens besprochen. Der Prozess umfasste mehrere Schritte, beginnend mit der Definition des vorliegenden Problems. Wir haben betont, wie wichtig es ist, einen geeigneten Datensatz für die Arbeit zu sammeln oder zu finden. Sobald wir den Datensatz hatten, wählten wir einen Algorithmus oder eine Algorithmusklasse aus, um das Problem zu lösen. Als nächstes mussten wir eine Optimierungsmetrik definieren, um das Modell effektiv zu trainieren. Nach dem Training würden wir die Leistung des Modells anhand einer Bewertungsmetrik bewerten.

Im weiteren Verlauf haben wir kurz verschiedene Ansätze des maschinellen Lernens und die Beweggründe für den Einsatz von maschinellem Lernen untersucht. Professor Pedro Domingos von der University of Washington kategorisierte diese Ansätze in fünf Gruppen: Symbolisten, Konnektionisten, Evolutionäre, Bayesianer und Analogisierer. Jeder Stamm repräsentiert eine andere für das Modell gewählte Darstellung, einen Bewertungsteil (Zielfunktion) und einen Optimierungsansatz.

Beispielsweise verwendet der Stamm der Konnektionisten neuronale Netze als gewählte Modelldarstellung. Sie optimieren den quadratischen Fehler oder die Kreuzentropie als Zielfunktion und verwenden Gradientenabstieg oder Backpropagation als Optimierungsansatz. In ähnlicher Weise nutzt der Stamm der Evolutionäre die genetische Suche zur Optimierung mit genetischen Programmen als Modelldarstellung. Der Stamm der Bayesianer verwendet grafische Modelle und probabilistische Schlussfolgerungen, um die A-Posteriori-Wahrscheinlichkeit zu maximieren.

Diese Beispiele bieten einen Überblick über verschiedene Ansätze des maschinellen Lernens. Es ist wichtig zu beachten, dass diese Kategorien keinen Anspruch auf Vollständigkeit erheben und nur einige Beispiele für jeden Stamm darstellen.

Eine weitere Perspektive auf die Motivationen des maschinellen Lernens wird von Leo Breiman vorgestellt, einem einflussreichen Statistiker, der für seine Arbeiten zu Entscheidungsbäumen und Zufallswäldern bekannt ist. Er führte die Idee zweier Kulturen ein: Vorhersage und Information. Die Vorhersagekultur konzentriert sich auf den Einsatz maschinellen Lernens, um genaue Vorhersagen zu treffen, ohne unbedingt die zugrunde liegende Beziehung zwischen Eingabe- und Ausgabevariablen zu verstehen. Andererseits zielt die Informationskultur darauf ab, Wissen zu extrahieren und die Art der Beziehung zwischen Variablen zu verstehen.

Breiman erklärte, dass alle Modelle falsch seien, einige jedoch nützlich seien. Dies verdeutlicht den Kompromiss zwischen Modellinterpretierbarkeit und Leistung. Einfachere Modelle sind einfacher zu interpretieren, erreichen jedoch möglicherweise keine hohe Leistung, während komplexere Modelle möglicherweise eine bessere Leistung erbringen, aber schwieriger zu interpretieren sind.

Darüber hinaus gibt es unterschiedliche Motivationen, sich mit maschinellem Lernen zu beschäftigen. Ingenieure konzentrieren sich häufig auf die Anwendung maschinellen Lernens zur Lösung realer Probleme, während Mathematiker, Informatiker und Statistiker möglicherweise mehr an der Entwicklung einer Theorie des maschinellen Lernens interessiert sind. Neurowissenschaftler könnten maschinelles Lernen untersuchen, um das menschliche Gehirn besser zu verstehen und Algorithmen zu entwickeln, die von seiner Funktionsweise inspiriert sind.

Darüber hinaus haben wir die Beziehung zwischen KI, maschinellem Lernen und Deep Learning diskutiert. Maschinelles Lernen hat sich zu einem Teilgebiet der KI entwickelt, und Deep Learning ist ein Teilgebiet des maschinellen Lernens. Deep Learning konzentriert sich speziell auf mehrschichtige neuronale Netze und geht darüber hinaus. Deep Learning kann als Umbenennung neuronaler Netze betrachtet werden. KI-Systeme sind nicht-biologische Systeme, die durch Regeln Intelligenz zeigen, wie zum Beispiel selbstfahrende Autos oder Schachspielprogramme. Maschinelles Lernen ist keine Voraussetzung für KI, da KI-Systeme ohne den Einsatz maschineller Lerntechniken entwickelt werden können.

Abschließend haben wir erwähnt, dass sich dieser Kurs hauptsächlich mit maschinellem Lernen befassen wird, während KI und Deep Learning in unterschiedliche Kontexte fallen und möglicherweise in anderen Kursen untersucht werden.

Im Bereich des maschinellen Lernens gibt es mehrere beliebte Programmiersprachen und Bibliotheken, die häufig für die Implementierung und Arbeit mit Modellen des maschinellen Lernens verwendet werden. Diese Tools bieten eine Reihe von Funktionalitäten und sollen es Forschern und Praktikern erleichtern, Modelle für maschinelles Lernen zu entwickeln, zu trainieren und zu bewerten.

Eine der am häufigsten verwendeten Programmiersprachen im Bereich maschinelles Lernen ist Python. Python ist eine vielseitige und leicht zu erlernende Sprache, die ein umfangreiches Ökosystem an Bibliotheken bietet, die speziell auf maschinelles Lernen zugeschnitten sind. Diese Bibliotheken bieten effiziente Implementierungen verschiedener Algorithmen für maschinelles Lernen sowie Tools zur Datenmanipulation, Visualisierung und Auswertung.

Zu den beliebten Python-Bibliotheken für maschinelles Lernen gehören:

  1. NumPy: NumPy ist eine grundlegende Bibliothek für wissenschaftliches Rechnen in Python. Es bietet Unterstützung für große, mehrdimensionale Arrays und Matrizen sowie eine Sammlung mathematischer Funktionen, um diese Arrays effizient zu bearbeiten. NumPy ist die Grundlage für viele andere Bibliotheken für maschinelles Lernen.

  2. Pandas: Pandas ist eine leistungsstarke Bibliothek zur Datenbearbeitung und -analyse. Es stellt Datenstrukturen und Funktionen für den effizienten Umgang mit strukturierten Daten, wie z. B. Tabellendaten, bereit. Pandas ist besonders nützlich für die Vorverarbeitung und Bereinigung von Daten, bevor sie in Modelle für maschinelles Lernen eingespeist werden.

  3. Scikit-learn: Scikit-learn ist eine umfassende Bibliothek für maschinelles Lernen, die eine breite Palette von Algorithmen und Tools für Klassifizierung, Regression, Clustering, Dimensionsreduktion und mehr bietet. Es bietet eine einheitliche Schnittstelle und folgt einer konsistenten API, sodass Sie problemlos mit verschiedenen Algorithmen experimentieren und deren Leistung vergleichen können.

  4. TensorFlow: TensorFlow ist eine von Google entwickelte Open-Source-Bibliothek für numerische Berechnungen und maschinelles Lernen. Es bietet eine flexible Architektur zum Erstellen und Trainieren verschiedener Arten von Modellen für maschinelles Lernen, mit besonderem Schwerpunkt auf Deep Learning. TensorFlow bietet eine High-Level-API namens Keras, die den Prozess des Aufbaus und Trainings neuronaler Netze vereinfacht.

  5. PyTorch: PyTorch ist eine weitere beliebte Deep-Learning-Bibliothek, die dynamische Berechnungsdiagramme und eine nahtlose Integration mit Python bietet. Es ist für seine Flexibilität und Benutzerfreundlichkeit bekannt und daher eine bevorzugte Wahl für Forscher und Praktiker, die an Deep-Learning-Projekten arbeiten. PyTorch bietet außerdem ein umfangreiches Ökosystem vorab trainierter Modelle und Tools für die Modellbereitstellung.

Dies sind nur einige Beispiele der vielen Tools, die für maschinelles Lernen in Python verfügbar sind. Abhängig von den spezifischen Anforderungen Ihres Projekts können Sie andere Bibliotheken und Frameworks erkunden, die Ihren Anforderungen entsprechen. Es ist wichtig, über die neuesten Entwicklungen auf diesem Gebiet auf dem Laufenden zu bleiben und die Tools auszuwählen, die Ihren Zielen und Vorlieben am besten entsprechen.

Neben Python verfügen auch andere Programmiersprachen wie R und Julia über dedizierte Bibliotheken und Ökosysteme für maschinelles Lernen. Insbesondere R wird häufig für statistische Analysen verwendet und verfügt über eine umfangreiche Sammlung von Paketen für maschinelles Lernen. Julia hingegen ist eine Sprache, die speziell für numerisches Rechnen entwickelt wurde und leistungsstarke Bibliotheken für maschinelles Lernen bietet.

In diesem Kurs konzentrieren wir uns hauptsächlich auf die Verwendung von Python und den zugehörigen Bibliotheken, da diese eine leistungsstarke und flexible Umgebung für die Erforschung und Implementierung von Algorithmen für maschinelles Lernen bieten. Die in diesem Kurs behandelten Konzepte und Prinzipien können jedoch auch auf andere Programmiersprachen und -tools angewendet werden.

Ich hoffe, dass Ihnen dies einen Überblick über die von uns verwendeten Tools und deren Bedeutung im Bereich des maschinellen Lernens gibt. Wenn Sie weitere Fragen haben oder Erläuterungen benötigen, können Sie diese gerne stellen.

1.6 ML motivation (L01: What is Machine Learning)
1.6 ML motivation (L01: What is Machine Learning)
  • 2020.09.06
  • www.youtube.com
This video is mainly about the different perspectives and motivations regarding studying machine learning.-------This video is part of my Introduction of Mac...
 

2.1 Einführung in NN (L02: Nearest-Neighbor-Methoden)



2.1 Einführung in NN (L02: Nearest-Neighbor-Methoden)

Hallo zusammen und willkommen zurück! Ich hoffe, Sie hatten eine fantastische erste Woche. Lassen Sie uns kurz zusammenfassen, was wir besprochen haben. In Vorlesung 1 stellten wir das Konzept des maschinellen Lernens vor und diskutierten die häufigste Frage, die sich auf das Klassenprojekt bezog. Ich werde demnächst eine gesonderte Ankündigung zu dem Projekt veröffentlichen. Eine Sache, die ich erwähnen möchte, ist, dass ich auf Piazza eine Funktion aktiviert habe, mit der Sie Teammitglieder für das Projekt finden können. Weitere Einzelheiten werden in einer separaten Ankündigung bekannt gegeben.

Kommen wir nun zu Vorlesung 2. Heute konzentrieren wir uns hauptsächlich auf den KNN-Algorithmus (k-nearest neighbour), einen klassischen Algorithmus für maschinelles Lernen, der auch heute noch weit verbreitet ist. Ich halte es für den sanftesten und unkompliziertesten Einstieg in das maschinelle Lernen, da es uns ermöglicht, die Funktionsweise von Algorithmen für maschinelles Lernen zu verstehen. Obwohl KNN möglicherweise nicht mehr der beliebteste Algorithmus ist, empfehle ich dringend, ihn in Ihre Projekte einzubeziehen. Es dient als Leistungsmaßstab für Klassifizierungsaufgaben und sogar zur Vorhersage kontinuierlicher Ergebnisse. KNN kann Einblicke in die Vorhersagegenauigkeit und Recheneffizienz liefern.

Wenn wir über rechnerische Aspekte sprechen, werden wir neben der Erläuterung der Funktionsweise von KNN auch auf das Konzept der Big-O-Notation eingehen. Diese Notation wird in der Informatik häufig verwendet, um die Effizienz verschiedener Algorithmen zu analysieren. Obwohl es technisch klingen mag, ist das Verständnis der Big-O-Notation nicht nur für maschinelles Lernen, sondern auch für die allgemeine Programmierung nützlich.

Gegen Ende dieser Vorlesung werde ich einige Beispiele in Python zeigen, um Ihnen zu zeigen, wie Sie KNN nutzen. Bitte beachten Sie jedoch, dass es sich hierbei um einen kurzen Überblick handelt und wir uns in Vorlesung 3 eingehender mit Python befassen, einschließlich der Installation und der wichtigsten Bibliotheken wie NumPy und scikit-learn.

Beginnen wir also mit Vorlesung 2! Wir werden uns hauptsächlich auf Methoden des nächsten Nachbarn konzentrieren, einschließlich einer Einführung in KNN. Ich habe die Vorlesung in sechs Teile gegliedert, um sie zugänglicher zu machen:

  1. Anwendungen von Nearest-Neighbor-Methoden: Wir werden reale Anwendungen von KNN untersuchen, wie z. B. Web-Nutzungsdaten-Mining, Biometrie, Bildklassifizierung und Proteinanalyse. Diese Beispiele helfen, das Thema zu motivieren.

  2. One-Nearest-Neighbor-Methode: Bevor wir uns mit KNN befassen, besprechen wir den einfachsten Fall, nämlich die One-Nearest-Neighbor-Methode. Bei dieser Methode geht es darum, den Datenpunkt zu finden, der einem Abfragepunkt am ähnlichsten ist, und dessen Bezeichnung als Vorhersage zu verwenden.

  3. Entscheidungsgrenze der Methode des nächsten Nachbarn: Wir werden untersuchen, wie die Methode des nächsten Nachbarn die Entscheidungsgrenze bestimmt, um ein besseres Verständnis ihrer inneren Funktionsweise zu ermöglichen.

  4. Einführung in K-Nächste-Nachbarn-Methoden: Wir werden zu KNN übergehen, wo wir mehrere nächste Nachbarn statt nur einen berücksichtigen. Wir werden K-Nearest-Neighbor-Klassifikatoren und Regressoren behandeln.

  5. Big-O-Laufzeitkomplexität von K-Nearest-Neighbor-Algorithmen: Wir werden die Recheneffizienz von KNN mithilfe der Big-O-Notation untersuchen. Dieses Thema ist für die Analyse der Leistung von Algorithmen von entscheidender Bedeutung.

  6. Verbesserung der K-Nearest-Neighbor-Algorithmen: In diesem Teil werde ich Ideen und Tricks vorstellen, um die Leistung von KNN zu verbessern. Dieser Abschnitt konzentriert sich auf die Optimierung des Algorithmus.

Nachdem wir diese konzeptionellen Teile behandelt haben, werden wir mit der Anwendung von KNN in Python fortfahren. Auch wenn dies für manche der unterhaltsamste Teil ist, ist es wichtig, zunächst die Konzepte zu verstehen, bevor man sich an die praktische Umsetzung wagt.

In der nächsten Vorlesung, Vorlesung 3, werden wir uns mit der Python-Installation befassen und die wichtigsten Bibliotheken behandeln, einschließlich NumPy und scikit-learn. Bleiben Sie also unbedingt auf dem Laufenden! Beginnen wir mit Vorlesung 2, in der wir die Methoden des nächsten Nachbarn und den K-Algorithmus für den nächsten Nachbarn untersuchen und diesen Prozess für alle Datenpunkte im Trainingssatz fortsetzen. Am Ende der Schleife haben wir den Datenpunkt identifiziert, der dem Abfragepunkt am nächsten liegt.

Nachdem wir den nächstgelegenen Punkt gefunden haben, verwenden wir dessen Beschriftung als vorhergesagte Beschriftung für den Abfragepunkt. Bei Klassifizierungsproblemen ist die Bezeichnung häufig ein kategorialer Wert, der eine Klasse oder Kategorie darstellt. Bei Regressionsproblemen ist die Bezeichnung ein kontinuierlicher Wert.

Um den Vorhersageschritt des Algorithmus für den nächsten Nachbarn zusammenzufassen:

  1. Initialisieren Sie den nächstgelegenen Abstand als Unendlich und den nächstgelegenen Punkt als „Keine“.
  2. Für jeden Datenpunkt im Trainingssatz:
    • Berechnen Sie den Abstand zwischen dem aktuellen Datenpunkt und dem Abfragepunkt.
    • Wenn der Abstand kleiner ist als der nächste Abstand:
      • Aktualisieren Sie die nächstgelegene Entfernung mit der aktuellen Entfernung.
      • Legen Sie den nächstgelegenen Punkt als aktuellen Datenpunkt fest.
  3. Verwenden Sie die Beschriftung des nächstgelegenen Punkts als vorhergesagte Beschriftung für den Abfragepunkt.

Nachdem wir nun die Methode „Ein nächster Nachbar“ besprochen haben, gehen wir zum allgemeineren Fall von k nächsten Nachbarn über. Der k-nächste-Nachbarn-Algorithmus erweitert das Konzept der Suche nach dem nächstgelegenen Datenpunkt auf die Suche nach k nächsten Datenpunkten. Anstatt nur den nächsten Nachbarn zu berücksichtigen, berücksichtigen wir die k Datenpunkte im Trainingssatz, die dem Abfragepunkt am nächsten liegen.

Im Falle einer Klassifizierung wird die vorhergesagte Bezeichnung durch Mehrheitsentscheidung unter den k nächsten Nachbarn bestimmt. Die Stimme jedes Nachbarn wird gleich gewichtet und die Klasse mit der höchsten Stimmenzahl wird zur vorhergesagten Bezeichnung.

Bei Regressionsproblemen ist die vorhergesagte Bezeichnung häufig der Durchschnitt oder Median der Bezeichnungen der k nächsten Nachbarn. Die konkrete Methode zum Kombinieren der Bezeichnungen hängt von der Art des Problems und dem gewünschten Ergebnis ab.

Um die Entscheidungsgrenze der Methode des nächsten Nachbarn zu veranschaulichen, betrachten wir einen zweidimensionalen Merkmalsraum. Wir haben zwei Klassen, Klasse 0 und Klasse 1, die durch unterschiedliche Symbole dargestellt werden (z. B. Dreiecke und Quadrate). Die Entscheidungsgrenze ist die Linie oder Kurve, die die Regionen verschiedener Klassen trennt.

Bei der One-Nearest-Neighbor-Methode folgt die Entscheidungsgrenze der Kontur der Trainingsdatenpunkte. Jeder Punkt im Merkmalsraum wird basierend auf der Bezeichnung des nächstgelegenen Trainingsdatenpunkts klassifiziert. Die Entscheidungsgrenze ist keine glatte Kurve, sondern eine Ansammlung kleiner Regionen um jeden Trainingspunkt.

Bei Verwendung der k-Nächste-Nachbarn-Methode mit k größer als 1 wird die Entscheidungsgrenze glatter. Wenn wir mehr benachbarte Punkte berücksichtigen, nimmt der Einfluss einzelner Trainingsdatenpunkte ab, was zu einer allgemeineren Grenze führt. Die Entscheidungsgrenze wird durch die Mehrheit der k nächsten Nachbarn bestimmt, was zu einer gleichmäßigeren und kontinuierlicheren Trennung zwischen den Klassen führt.

Das Verständnis des Konzepts der Entscheidungsgrenze ist entscheidend für die Beurteilung der Leistung und Einschränkungen des k-Nächste-Nachbarn-Algorithmus. Die Form und Komplexität der Entscheidungsgrenze kann sich auf die Fähigkeit des Algorithmus auswirken, neue Datenpunkte genau zu klassifizieren oder vorherzusagen.

Neben der Erörterung des k-Nächste-Nachbarn-Algorithmus werden wir auch auf das Thema der Algorithmuseffizienz eingehen. Die Big-O-Notation ist eine gängige Methode zur Analyse und zum Vergleich der Effizienz verschiedener Algorithmen. Es liefert ein Maß für die zeitliche Komplexität des Algorithmus und gibt an, wie die Ausführungszeit mit zunehmender Eingabegröße zunimmt.

Die Analyse der Laufzeitkomplexität des k-Nearest-Neighbor-Algorithmus hilft uns, seine Recheneffizienz zu verstehen. Wir werden dieses Thema kurz untersuchen und diskutieren, wie sich die Effizienz des Algorithmus auf seine Leistung bei großen Datensätzen auswirken kann.

Gegen Ende dieser Vorlesung werden wir uns mit praktischen Beispielen für die Implementierung des k-Nächste-Nachbarn-Algorithmus mit Python befassen. Wir werden demonstrieren, wie der Algorithmus für Klassifizierungs- und Regressionsaufgaben verwendet wird, und seine Anwendung in realen Szenarien demonstrieren. Bevor man jedoch mit der Implementierung beginnt, ist es wichtig, die zugrunde liegenden Konzepte und Prinzipien von k nächsten Nachbarn zu verstehen.

Um es noch einmal zusammenzufassen: In Vorlesung zwei haben wir die One-Nearest-Neighbor-Methode als einfachen Fall von Nearest-Neighbor-Algorithmen behandelt. Wir haben untersucht, wie der Algorithmus den Datenpunkt ermittelt, der einem Abfragepunkt am nächsten liegt, und wie er die Beschriftung des nächstgelegenen Punkts für die Vorhersage verwendet. Wir haben auch das Konzept der Entscheidungsgrenze und ihrer Form in der One-Nearest-Neighbor-Methode eingeführt. Darüber hinaus haben wir den k-nächsten-Nachbarn-Algorithmus besprochen, der mehrere nächste Nachbarn berücksichtigt und nicht nur einen. Wir haben erwähnt, wie die vorhergesagte Bezeichnung bei Klassifizierungsproblemen durch Mehrheitsentscheidung und bei Regressionsproblemen durch die Mittelung oder den Medianwert bestimmt wird. Darüber hinaus haben wir kurz die Big-O-Notation und ihre Anwendung bei der Analyse der Effizienz von Algorithmen, einschließlich des k-Nächste-Nachbarn-Algorithmus, angesprochen.

In der nächsten Vorlesung, Vorlesung 3, werden wir uns mit der Implementierung des k-Nächste-Nachbarn-Algorithmus unter Verwendung von Python befassen. Wir werden die notwendigen Schritte, Bibliotheken und Techniken behandeln, um diesen Algorithmus effektiv zu nutzen. Seien Sie also unbedingt bei der nächsten Vorlesung dabei!

2.1 Introduction to NN (L02: Nearest Neighbor Methods)
2.1 Introduction to NN (L02: Nearest Neighbor Methods)
  • 2020.09.08
  • www.youtube.com
This first video of lecture 2 introduces nearest neighbor methods, going over some applications of nearest neighbors and covering the 1-nearest neighbor algo...
 

2.2 Entscheidungsgrenze für den nächsten Nachbarn (L02: Methoden für den nächsten Nachbarn)



2.2 Entscheidungsgrenze für den nächsten Nachbarn (L02: Methoden für den nächsten Nachbarn)

In diesem zweiten Video untersuchen wir die Entscheidungsgrenze des Algorithmus für den nächsten Nachbarn und konzentrieren uns dabei insbesondere auf den Klassifikator für den nächsten Nachbarn. Wir werden zur Veranschaulichung einen zweidimensionalen Datensatz verwenden, da dieser für Menschen einfacher zu visualisieren ist.

Der Datensatz besteht aus fünf Datenpunkten, die durch blaue Punkte dargestellt werden. Lassen Sie uns die Punkte A und B vergrößern und die Entscheidungsgrenze zwischen ihnen erkunden. Die Entscheidungsgrenze ist eine Linie oder Grenze, die die Punkte A und B trennt. Wenn wir ein One-Nearest-Neighbor-Modell an den Datensatz anpassen, wie würde diese Entscheidungsgrenze aussehen?

Um diese Frage zu beantworten, müssen wir das Konzept der Äquidistanz verstehen. Jeder Punkt, der auf der Entscheidungsgrenze liegt, sollte den gleichen Abstand von den Punkten A und B haben. Nehmen Sie sich einen Moment Zeit, um das Video anzuhalten und darüber nachzudenken, wie die Entscheidungsgrenze aussehen würde. Die Entscheidungsgrenze für die Punkte A und B wäre eine Linie, die mithilfe einer euklidischen Distanzmetrik gezogen wird. Jeder Punkt auf dieser Linie ist von den Punkten A und B gleich weit entfernt, was bedeutet, dass der Abstand zwischen dem Punkt auf der Linie und den Punkten A und B überall auf der Linie gleich ist. Kommen wir nun zu den Punkten A und C und bestimmen deren Entscheidungsgrenze. Die Entscheidungsgrenze für die Punkte A und C wäre eine Linie senkrecht zur Verbindungslinie zwischen A und C. Jeder Punkt auf dieser Linie ist von den Punkten A und C gleich weit entfernt.

Wir können diese Übung für alle Punktpaare im Datensatz, wie z. B. C und D, fortsetzen, um ihre jeweiligen Entscheidungsgrenzen zu bestimmen. Indem wir alle diese Entscheidungsgrenzen für jedes Punktpaar zusammenstellen, erhalten wir die Entscheidungsgrenze des Klassifikators für den nächsten Nachbarn, wie in der unteren rechten Ecke gezeigt.

Wenn wir uns das Diagramm genau ansehen, stellen wir möglicherweise fest, dass es einem Voronoi-Diagramm oder einer Voronoi-Tessellation ähnelt. Dieses Diagramm unterteilt den Datensatz in Regionen, wobei jede Region der Entscheidungsgrenze zwischen einem Punktpaar entspricht. Jeder Punkt auf einer Grenzlinie hat den gleichen Abstand zu den beiden benachbarten Punkten.

Allerdings sind wir noch nicht fertig. Auf der vorherigen Folie haben wir nur die Entscheidungsbereiche gezeigt, ohne die tatsächlichen Klassenbezeichnungen zu berücksichtigen. Jetzt führen wir die Klassenbezeichnungen wieder in den Datensatz ein. Dreiecke repräsentieren Klasse 1 und Quadrate repräsentieren Klasse 0.

Um die Entscheidungsregionen zu erhalten, die der Algorithmus für einen nächsten Nachbarn zur Klassifizierung verwenden würde, müssen wir die Vereinigung der Regionen bilden, die zur gleichen Klassenbezeichnung gehören. Beispielsweise verfügen die roten Dreiecke über einen Entscheidungsbereich, der von den Grenzen umgeben ist, die den nächstgelegenen Punkten der roten Dreiecke entsprechen. Ebenso haben die blauen Quadrate ihren eigenen Entscheidungsbereich. Indem wir diese Regionen mit ihren jeweiligen Farben ausfüllen, erhalten wir die Entscheidungsgrenze des Klassifikators für den nächsten Nachbarn.

Um Ihr Verständnis zu testen, stellen wir eine einfache Frage. Welcher Punkt liegt angesichts der fünf Datenpunkte im Datensatz am nächsten zum Fragezeichenpunkt? Halten Sie das Video einen Moment an und denken Sie über Ihre Antwort nach. Die Beantwortung dieser Frage erfordert die Kenntnis des Entfernungsmaßes, das zur Bestimmung der Nähe verwendet wird. In diesem Fall verwenden wir die euklidische Distanz, es können aber auch andere Distanzmaße verwendet werden. Abhängig vom gewählten Entfernungsmaß kann der Punkt, der dem Fragezeichenpunkt am nächsten liegt, variieren.

Im Video wurden zwei Distanzmaße demonstriert: die Euklidische Distanz und die Manhattan-Distanz. Die euklidische Distanz misst die geradlinige Distanz zwischen zwei Punkten, während die Manhattan-Distanz die Distanz durch Summieren der absoluten Differenzen zwischen den Koordinaten misst.

Darüber hinaus wird im Video kurz die Mahalanobis-Distanz erwähnt, die die Verteilung der Merkmale berücksichtigt. Dabei wird der Abstand eines Datenpunkts zu seiner Verteilung anhand von Standardabweichungen berücksichtigt. Als Distanzmaß wird auch die Kosinusähnlichkeit genannt, die den Winkel zwischen zwei Vektoren misst.

In der Praxis hängt die Wahl des Distanzmaßes vom konkreten Problem und den Eigenschaften des Datensatzes ab. Es kann als Hyperparameter des Algorithmus für den nächsten Nachbarn betrachtet werden, der basierend auf dem vorliegenden Problem sorgfältig ausgewählt werden muss.

Lassen Sie uns nun den k-Nearest-Neighbor-Algorithmus diskutieren, der eine Erweiterung des One-Nearest-Neighbor-Algorithmus ist. Im k-Nearest-Neighbor-Algorithmus berücksichtigen wir nicht nur den nächstgelegenen Punkt, sondern die k dem Abfragepunkt am nächsten gelegenen Punkte. Die Entscheidungsgrenze des k-Nearest-Neighbor-Algorithmus wird durch einen Abstimmungsmechanismus bestimmt. Jeder Punkt innerhalb des Entscheidungsbereichs einer bestimmten Klasse trägt zur Abstimmung für diese Klasse bei. Die Klasse mit der höchsten Stimmenzahl unter den k nächsten Nachbarn wird als vorhergesagte Klasse für den Abfragepunkt zugewiesen.

Nehmen wir zum Beispiel an, wir haben einen Abfragepunkt, der durch einen grünen Stern dargestellt wird. Wenn wir einen 3-Nächsten-Nachbarn-Algorithmus verwenden, betrachten wir die drei Punkte, die dem Abfragepunkt am nächsten liegen. Wenn zwei dieser Punkte zur Klasse 0 und einer zur Klasse 1 gehören, würde die Mehrheitsentscheidung den Abfragepunkt der Klasse 0 zuordnen. Wenn wir den Wert von k auf 5 erhöhen, würden wir entsprechend die fünf Punkte berücksichtigen, die der Abfrage am nächsten liegen Punkt. Wenn drei dieser Punkte zur Klasse 1 und zwei zur Klasse 0 gehören, würde die Mehrheitsentscheidung den Abfragepunkt der Klasse 1 zuordnen.

Die Wahl des Werts von k ist ein wichtiger Gesichtspunkt im k-Nearest-Neighbor-Algorithmus. Ein kleinerer Wert von k kann zu einer Überanpassung führen, bei der der Algorithmus zu empfindlich gegenüber lokalen Schwankungen in den Daten wird. Andererseits kann ein größerer Wert von k zu einer Unteranpassung führen, bei der die Entscheidungsgrenze zu glatt wird und feinere Details nicht erfasst werden kann. Wie bei jedem Algorithmus müssen Kompromisse eingegangen werden, und die Wahl von k hängt vom Datensatz und dem vorliegenden Problem ab. Es ist üblich, mit verschiedenen k-Werten zu experimentieren und Techniken wie Kreuzvalidierung zu verwenden, um den optimalen Wert zu finden.

Der k-Nearest-Neighbor-Algorithmus erweitert den One-Nearest-Neighbor-Algorithmus um die Berücksichtigung der k nächstgelegenen Punkte. Die Entscheidungsgrenze wird durch einen Abstimmungsmechanismus basierend auf den Klassenbezeichnungen der k nächsten Nachbarn bestimmt. Die Wahl von k ist ein Hyperparameter, der sorgfältig ausgewählt werden muss, um ein Gleichgewicht zwischen Überanpassung und Unteranpassung herzustellen.

2.2 Nearest neighbor decision boundary (L02: Nearest Neighbor Methods)
2.2 Nearest neighbor decision boundary (L02: Nearest Neighbor Methods)
  • 2020.09.08
  • www.youtube.com
This second video covers the intuition behind the 1-nearest neighbor's decision boundary. Also, it lists some of the common distance measures.-------This vid...
 

2.3 K-nächste Nachbarn (L02: Methoden des nächsten Nachbarn)



2.3 K-nächste Nachbarn (L02: Methoden des nächsten Nachbarn)

Im vorherigen Video habe ich erwähnt, dass nicht alle zuvor besprochenen Entfernungsmaße Metriken sind. Beispielsweise gilt die Kosinusähnlichkeit nicht als geeignete Metrik, da sie die Dreiecksungleichung nicht erfüllt. Die Dreiecksungleichung besagt, dass der Abstand zwischen zwei Datenpunkten, bezeichnet als A und C, kleiner oder gleich der Summe der Abstände zwischen A und B und B und C sein sollte. Obwohl es sich jedoch nicht um eine richtige Metrik handelt, ist der Kosinus Ähnlichkeit ist in der Praxis in bestimmten Kontexten immer noch sehr nützlich.

Schauen wir uns nun den Ansatz der k-nächsten Nachbarn (k-NN) an, der eine Erweiterung der Methode „Ein nächster Nachbar“ ist, die wir zuvor besprochen haben. Das k-NN-Modell ist relativ einfach, da es die Methode „Ein nächster Nachbar“ verallgemeinert, indem es mehrere nächste Nachbarn anstelle nur eines berücksichtigt.

In diesem Video präsentiere ich ein Beispiel eines k-NN-Modells. Wir haben zwei Features, x1 und x2, und einen Spielzeugdatensatz mit verschiedenen Klassen, die durch Kreuze, Kreise und Dreiecke dargestellt werden. Unser Ziel ist es, einen Datenpunkt zu klassifizieren, der durch ein Fragezeichen in der Mitte gekennzeichnet ist. Um Vorhersagen zu treffen, betrachten wir die Datenpunkte innerhalb eines bestimmten Radius um das Fragezeichen und verwenden dabei ein euklidisches Distanzmaß.

Die Frage ist nun: Welchen Wert hätte k in diesem k-NN-Ansatz für das gegebene Beispiel? Wenn Sie einen Moment nachdenken, werden Sie feststellen, dass k 5 ist, da wir die fünf Datenpunkte berücksichtigen, die dem Punkt, den wir klassifizieren möchten, am nächsten liegen.

Unter Berücksichtigung der fünf nächsten Nachbarn zählen wir die Vorkommen jeder Klasse. Wenn wir beispielsweise ein Dreieck, einen Kreis und drei Kreuze finden, weist die Mehrheitsentscheidung dem Abfragepunkt die vorhergesagte Klassenbezeichnung zu. In diesem Fall wäre die vorhergesagte Klassenbezeichnung ein Dreieck, da es unter den fünf nächsten Nachbarn am häufigsten vorkommt.

Obwohl wir in k-NN technisch gesehen eine „Mehrheitsabstimmung“ haben, wird sie in der Praxis allgemein als „Mehrheitsabstimmung“ bezeichnet. Wenn im Abstimmungsprozess Gleichstand herrscht und mehrere Klassen die gleiche Anzahl haben, wählen Softwarepakete normalerweise eine Bezeichnung nach dem Zufallsprinzip oder die Bezeichnung mit dem niedrigeren Klassenbezeichnungsindex aus.

Um eine formellere Definition der Mehrheitsentscheidung zu liefern, betrachten wir die Teilmenge D sub k, die die k nächsten Nachbarn darstellt. Wir definieren die Mehrheitsentscheidung als die Klassenbezeichnung (y), die die Summe der Deltafunktionen maximiert. Die Delta-Funktion gibt 1 zurück, wenn a gleich b ist (übereinstimmende Beschriftungen), andernfalls 0. Durch Summieren der Deltawerte für jeden Nachbarn können wir die Klassenbezeichnung ermitteln, die am häufigsten vorkommt.

Für die Regressionsanalyse mit k-NN ist der Prozess einfacher. Anstelle von Klassenbezeichnungen beschäftigen wir uns mit kontinuierlichen Zielwerten. Die Vorhersage (h) für die k-NN-Regression ist der Durchschnitt der Zielwerte der k nächsten Nachbarn.

Im nächsten Video werden wir uns mit dem Thema der Big-O-Analyse befassen, bei der es um die Analyse der Laufzeitkomplexität des k-Nearest-Neighbors-Algorithmus geht. Das Verständnis der Effizienz eines Algorithmus ist entscheidend für die Bewertung seiner Leistung und Skalierbarkeit. Die Big-O-Analyse bietet eine Möglichkeit abzuschätzen, wie die Ausführungszeit des Algorithmus mit zunehmender Eingabegröße zunimmt. Diese Analyse hilft uns, fundierte Entscheidungen über die Auswahl und Optimierung von Algorithmen zu treffen.

Um eine Big-O-Analyse für den k-Nearest-Neighbors-Algorithmus durchzuführen, müssen wir zwei Hauptfaktoren berücksichtigen: die Anzahl der Trainingsinstanzen (n) und die Anzahl der Features (d). Diese Faktoren bestimmen den Rechenaufwand für die Suche nach den k nächsten Nachbarn für einen bestimmten Abfragepunkt.

In der einfachsten Implementierung von k-nächsten Nachbarn würden wir den Abstand zwischen dem Abfragepunkt und jeder Trainingsinstanz berechnen, was zu einer zeitlichen Komplexität von O(nd) führt. Das bedeutet, dass die Laufzeit des Algorithmus linear mit der Anzahl der Trainingsinstanzen und der Anzahl der Features wächst.

Es gibt jedoch Möglichkeiten, den k-Nearest-Neighbors-Algorithmus zu optimieren und seinen Rechenaufwand zu reduzieren. Ein gängiger Ansatz besteht darin, Datenstrukturen zu verwenden, die die Suche nach nächsten Nachbarn beschleunigen, wie z. B. KD-Bäume oder Ballbäume. Diese Datenstrukturen unterteilen die Trainingsinstanzen hierarchisch und ermöglichen so eine effizientere Nachbarsuche.

Mithilfe dieser Datenstrukturen können wir in einigen Fällen eine kürzere Suchzeit von O(log n) oder sogar O(1) erreichen. Diese Verbesserung beschleunigt den Algorithmus erheblich, insbesondere bei großen Datensätzen.

Es ist wichtig zu beachten, dass die Wahl der Distanzmetrik auch die Laufzeitkomplexität des Algorithmus beeinflusst. Einige Distanzmetriken, wie etwa die euklidische Distanz, können effizient berechnet werden, während andere, wie etwa die Manhattan-Distanz, möglicherweise mehr Rechenressourcen erfordern.

Zusätzlich zur zeitlichen Komplexität sollten wir auch die räumliche Komplexität des k-Nächste-Nachbarn-Algorithmus berücksichtigen. Die Platzkomplexität bezieht sich auf die Menge an Speicher, die zum Speichern der Trainingsinstanzen und aller zusätzlichen Datenstrukturen erforderlich ist, die für eine effiziente Nachbarsuche verwendet werden. Die Raumkomplexität beträgt typischerweise O(nd) oder O(n) für optimierte Implementierungen.

Insgesamt hilft uns das Verständnis der Laufzeit- und Raumkomplexität des k-Nearest-Neighbors-Algorithmus, seine Skalierbarkeit zu beurteilen und fundierte Entscheidungen zu treffen, wenn wir mit großen Datensätzen oder Echtzeitanwendungen arbeiten.

Im nächsten Video werden wir diese Konzepte weiter untersuchen und eine detailliertere Analyse der Effizienz des Algorithmus liefern. Seien Sie gespannt auf eine ausführliche Diskussion zur Big-O-Analyse für k-nächste Nachbarn.

2.3 K-nearest neighbors (L02: Nearest Neighbor Methods)
2.3 K-nearest neighbors (L02: Nearest Neighbor Methods)
  • 2020.09.08
  • www.youtube.com
This third video extends the 1-nearest neighbor concepts to the k-nearest neighbors method for classification and regression.-------This video is part of my ...