Maschinelles Lernen und neuronale Netze - Seite 61

 

Lineare Regression: Eine freundliche Einführung



Lineare Regression: Eine freundliche Einführung

Hallo, ich bin Louis Serrano und dies ist eine freundliche Einführung in die lineare Regression. Dieses Video ist der erste Teil einer dreiteiligen Serie, in der ich mich mit linearer Regression, logistischer Regression und Support-Vektor-Maschinen befasse. Konzentrieren wir uns jedoch zunächst auf die lineare Regression.

Typischerweise beinhalten Erklärungen der linearen Regression komplexe Konzepte wie lineare Algebra, Matrizen, Ableitungen, Analysis und Fehlerfunktionen. Aber für mich kann das überwältigend sein. Ich habe einen visuellen Verstand und bevorzuge es, die lineare Regression mit einem intuitiveren Ansatz unter Verwendung von Punkten und Linien zu verstehen.

Lassen Sie mich zeigen, was ich damit meine. Definieren wir zunächst die lineare Regression anhand eines Beispiels für Immobilienpreise. Stellen Sie sich vor, wir hätten fünf Häuser mit unterschiedlicher Zimmeranzahl. Wir besitzen Haus drei und möchten den Verkaufspreis schätzen. Dazu schauen wir uns die Preise ähnlicher Häuser an und versuchen, eine fundierte Schätzung abzugeben. Nachdem wir festgestellt haben, dass Haus eins 150.000 US-Dollar, Haus zwei 200.000 US-Dollar, Haus vier 300.000 US-Dollar und Haus fünf 350.000 US-Dollar kostet, können wir schätzen, dass Haus drei etwa 250.000 US-Dollar kosten könnte.

Im Wesentlichen haben wir hier eine lineare Regression durchgeführt. Wir haben die Häuser in einem Diagramm dargestellt, mit der Anzahl der Zimmer auf der horizontalen Achse und dem Preis auf der vertikalen Achse. Wir stellten fest, dass die Preise einer geraden Linie zu folgen schienen, also platzierten wir Haus drei auf der Linie, um die beste Schätzung zu erhalten. Dieser einfache Ansatz, eine Linie durch eine Reihe von Punkten zu ziehen und sie für Vorhersagen zu verwenden, ist die Essenz der linearen Regression.

In der Realität kommen bei der Preisberechnung noch weitere Faktoren hinzu, wodurch die Daten komplexer werden. Wir können jedoch immer noch eine Linie festlegen, die den Immobilienpreisen sehr nahe kommt. Die lineare Regression kann auf verschiedene Szenarien angewendet werden, beispielsweise auf die Berechnung von Aktienkursen im Finanzwesen oder die Bestimmung der Patientenlebensdauer in der Medizin. Die Anwendungen sind zahlreich.

Lassen Sie uns nun besprechen, wie wir tatsächlich eine lineare Regression durchführen. Wir benötigen einen Algorithmus oder ein Verfahren, um die Linie zu finden, die am besten zu den Punkten passt. Der Einfachheit halber konzentrieren wir uns auf einen grundlegenden Algorithmus, bei dem kleine Anpassungen an der Linie vorgenommen werden, bis sie gut zu den Punkten passt.

Hier ist eine Zusammenfassung des Algorithmus:

  1. Beginnen Sie mit einer zufälligen Zeile.
  2. Definieren Sie die Lernrate, die den Umfang der von uns vorgenommenen Anpassungen bestimmt.
  3. Wiederholen Sie die folgenden Schritte eine bestimmte Anzahl von Malen (Epochen):
    • Wählen Sie einen zufälligen Punkt aus.
    • Verschieben Sie die Linie basierend auf ihrer Position relativ zur Linie in Richtung des Punkts.
  4. Genießen Sie Ihre taillierte Linie!

Um die Linie zu einem Punkt zu bewegen, führen wir Drehungen und Verschiebungen durch. Durch Drehen der Linie im oder gegen den Uhrzeigersinn wird die Steigung angepasst, während durch Verschieben der Linie nach oben oder unten der Y-Achsenabschnitt angepasst wird. Die Anpassungen erfolgen durch Addition oder Subtraktion kleiner Beträge, die durch die Lernrate bestimmt werden.

Durch mehrmaliges Wiederholen dieses Vorgangs rückt die Linie allmählich näher an die Punkte heran, was zu einer guten Anpassung führt. Die Anzahl der Epochen bestimmt, wie oft wir den Prozess wiederholen, und kann je nach gewünschter Genauigkeit und verfügbaren Rechenressourcen angepasst werden.

Das ist die Grundidee der linearen Regression. Es ist ein leistungsstarkes Tool zum Anpassen von Linien an Datenpunkte und zum Erstellen von Vorhersagen. Ich hoffe, diese intuitive Erklärung hilft Ihnen, die lineare Regression besser zu verstehen.

Wir haben etwas, das näher am Kernpunkt liegt, und es müssen vier Fälle überprüft werden, um sicherzustellen, dass der Quadrattrick effektiv funktioniert. Betrachten wir einen anderen Fall, bei dem der Punkt unterhalb der Linie und rechts von der y-Achse liegt. Die Gleichung wird noch einmal dargestellt. Im ersten Schritt wählen wir eine kleine Lernrate von 0,01. Im zweiten Schritt wenden wir diese Rate auf die Steigung und den Y-Achsenabschnitt an. Jetzt ist der vertikale Abstand negativ, da der Punkt unterhalb der Linie liegt (-4), während der horizontale Abstand positiv bleibt, da der Punkt rechts von der y-Achse liegt (+5). Um die Steigung zu ändern, addieren wir 0,01 mal (-4) mal 5, was zu -0,2 führt. Durch Subtrahieren von -0,2 verringern wir die Steigung, wodurch sich die Linie im Uhrzeigersinn bewegt. Für den y-Achsenabschnitt addieren wir die Lernrate mal den vertikalen Abstand, was 0,01 mal (-4) beträgt, was zu -0,04 führt. Die neue Liniengleichung lautet y = 1,8 - 0,2x + 2,96 - 0,04. Beachten Sie, dass die Steigung kleiner ist, was auf eine Drehung im Uhrzeigersinn hinweist, und dass der Y-Achsenabschnitt kleiner ist, was auf eine Verschiebung nach unten hinweist. Diese Anpassung bringt uns näher an den Punkt. Obwohl wir nur zwei der vier Fälle überprüft haben, empfehle ich Ihnen, alle zu testen, um sicherzustellen, dass Schritt zwei durchweg funktioniert. Lassen Sie uns abschließend den linearen Regressionsalgorithmus untersuchen. Der Algorithmus läuft wie folgt ab:

  1. Beginnen Sie mit einer zufälligen Zeile.
  2. Stellen Sie die Anzahl der Wiederholungen (Epochen) auf 8.000 ein.
  3. Wählen Sie eine kleine Schrittlänge (Lernrate) von 0,01.
  4. Wiederholen Sie die folgende Schleife für die angegebene Anzahl von Epochen:
    • Wählen Sie zufällig einen Punkt aus.
    • Passen Sie die Linie mithilfe der Lernrate, des vertikalen Abstands und des horizontalen Abstands so an, dass sie sich auf den Punkt zubewegt.
  5. Genießen Sie Ihre taillierte Linie. Dies ist der lineare Regressionsalgorithmus. Ich empfehle Ihnen, es mit dem bereitgestellten Pseudocode zu codieren und es an verschiedenen Datensätzen zu testen, um seine Leistung zu beobachten. Ich habe diesen Algorithmus implementiert und festgestellt, dass er außergewöhnlich gut funktioniert.

Nun stellt sich die Frage: Ist dieser Algorithmus besser oder gleich wie die bestehenden? Diese Situation erinnert mich an einen brillanten Mathematiker namens John Borwein, mit dem ich einst zusammengearbeitet habe. Er suchte nach Formeln zur Berechnung der Ziffern von Pi und stellte fest, dass eine Win-Win-Situation eine Win-Win-Situation darstellte, wenn eine Formel dem Pi sehr nahe kam, weil er entweder eine neue Formel entdeckte oder etwas fand, das dem Pi bemerkenswert nahe kam. Ebenso haben wir mit diesem Algorithmus eine Win-Win-Situation. Es übertrifft entweder vorhandene Algorithmen oder erweist sich als genauso effektiv und gleichzeitig einfacher.

Überraschenderweise ist dieser Algorithmus genau derselbe wie der, der in der traditionellen linearen Regression verwendet wird, beispielsweise dem quadratischen Fehlergradientenabstieg. Der traditionelle Ansatz besteht darin, den quadratischen Fehler zu minimieren, indem der Abstand zwischen Punkten und der Linie berechnet und dann Ableitungen, Analysis und Gradientenabstieg verwendet oder lineare Gleichungssysteme gelöst werden. Die Herausforderung, die ich Ihnen vorstelle, besteht darin, zu überprüfen, ob der Quadrattrick mit der herkömmlichen Methode des Quadratfehlers äquivalent ist, indem Sie den Quadratfehler berechnen, Ableitungen vornehmen und kleine Schritte entgegen der Ableitungsrichtung ausführen, genau wie beim Gradientenabstieg. Sie werden feststellen, dass die Ableitung der quadrierten Differenz eng mit den vertikalen und horizontalen Abständen zusammenhängt. Dies zeigt, dass der quadratische Trick dem traditionellen Ansatz entspricht.

Die zweite Herausforderung betrifft die Messung der Schlechtigkeit oder Güte einer Linie. Wir haben zuvor den quadratischen Fehler besprochen, bei dem die Abstände quadriert werden. Eine weitere einfachere Methode ist der absolute Fehler, bei dem wir die Absolutwerte der Abstände addieren, ohne deren Vorzeichen zu berücksichtigen. Die schlechte Linie hat größere orangefarbene Abstände, während die gute Linie aufgrund ihrer größeren Nähe zu den Punkten kleinere orangefarbene Abstände aufweist. Mithilfe der Analysis können Sie den absoluten Fehler minimieren und Gradientenabstiegsschritte durchführen. Sie können einen absoluten Trick entwickeln, der sich nur mit dem horizontalen Abstand befasst und eine if-Anweisung enthält, um die Position der Linie relativ zum Punkt zu verarbeiten. Wenn Sie diese Herausforderung erkunden, werden Sie den absoluten Trick entdecken. Fühlen Sie sich frei, es zu programmieren und seine Wirksamkeit zu beobachten.

Dieses Video konzentrierte sich auf die lineare Regression. Denken Sie daran, dass dies Teil einer dreiteiligen Serie ist, die Tricks für die logistische Regression und Support-Vektor-Maschinen enthält. Seien Sie gespannt auf die kommenden Videos. Wenn Ihnen dieser Inhalt gefallen hat, denken Sie bitte darüber nach, ihn zu abonnieren, zu liken und zu teilen. Ich freue mich über Ihre Kommentare, Fragen und Vorschläge. Lassen Sie mich wissen, wie Sie die Herausforderungen gemeistert haben, und schlagen Sie gerne Themen für zukünftige Videos vor. Sie können mich auch auf Twitter erreichen (@LouisLikesMath). Vielen Dank und bis zum nächsten Video.

Linear Regression: A friendly introduction
Linear Regression: A friendly introduction
  • 2018.12.22
  • www.youtube.com
Announcement: New Book by Luis Serrano! Grokking Machine Learning. bit.ly/grokkingML40% discount code: serranoytAn introduction to linear regression that req...
 

Logistische Regression und der Perceptron-Algorithmus: Eine freundliche Einführung



Logistische Regression und der Perceptron-Algorithmus: Eine freundliche Einführung

Es gibt einen besseren Algorithmus, der alle drei Fälle gleichzeitig verarbeiten kann. Ich erkläre nun den Perzeptron-Trick, der diese Fälle gemeinsam erledigt. Betrachten wir eine Linie mit derselben Gleichung und einem blauen Punkt, der auf der roten Linie liegt. Wir müssen die Position der Linie anpassen, um diesen Punkt aufzunehmen. Dazu verringern wir den Wert von -6 um einen kleinen Betrag, sagen wir 0,1, wodurch die Linie nach oben verschoben wird. Als nächstes passen wir die Neigung der Linie an, um sie zu drehen. Wenn wir beispielsweise die Linie steiler drehen möchten, können wir den Wert von 2 auf 1,8 reduzieren.

Wenn der Punkt weiter in dieser Richtung liegt, müssen wir die Linie entsprechend weiter drehen, um sie näher zu bringen. In diesem Fall könnten wir den Wert von 2 auf 1,4 reduzieren. Liegt der Punkt jedoch auf der anderen Seite, müssen wir die Linie in die entgegengesetzte Richtung drehen. Daher müssen wir möglicherweise den Wert von 2 erhöhen, sagen wir auf 2,2. Lassen Sie uns diesen Vorgang noch einmal genauer durchgehen. Wenn der Punkt nicht weit von der y-Achse entfernt ist, verringern wir den Wert von -6 um einen kleinen Betrag, z. B. 0,01, wodurch die Linie leicht nach oben verschoben wird.

Betrachten wir nun den Wert von 2. Wenn der Punkt die Koordinaten (4, 5) hat, beträgt der horizontale Abstand 4. Um die Steigung anzupassen, können wir 4 mit einer Lernrate, sagen wir 0,04, multiplizieren, um den Wert von 2 zu reduzieren . Dadurch wird die Linie um einen Drehpunkt gedreht. Ebenso können wir das gleiche Prinzip auf den Wert 3 anwenden. Wenn der Punkt beispielsweise die Koordinaten (4, 5) hat, beträgt der vertikale Abstand 5. Durch Multiplikation von 5 mit einer Lernrate wie 0,05 können wir den Wert verringern von 3. Dadurch wird die Linie weiter gedreht. Schließlich ergibt sich nach der Reduzierung von 2 um 0,04, 3 um 0,05 und -6 um 0,01 die Gleichung 1,96x + 2,95y – 6,01. Diese als Perzeptron-Trick bekannte Technik befasst sich sowohl mit der Richtung als auch mit dem Ausmaß der Anpassungen. Zusammenfassend lässt sich sagen, dass wir bei einer Lernrate von 0,01 die Gleichung in der Form ax + mal + c = 0 aktualisieren können, indem wir a um eine Lernrate mal b, b um eine Lernrate mal q und c um a reduzieren Lernrate.

Es gibt jedoch noch eine weitere Überlegung: der Fall, in dem der blaue Bereich oben und der rote Bereich unten liegt, mit falsch klassifizierten Punkten. In diesem Szenario würden wir die Werte addieren, anstatt sie zu subtrahieren. Wenn wir beispielsweise -2x - 3y + 6 = 0 anstelle von 2x + 3y - 6 = 0 haben, würden wir kleine Beträge zu a, b und c hinzufügen. Indem wir die Position der Punkte relativ zur Y-Achse berücksichtigen, können wir bestimmen, ob die Werte erhöht oder verringert werden sollen. Kommen wir nun zum logistischen Regressionsalgorithmus, der ein noch besserer Ansatz ist.

Ich werde nicht auf die Details eingehen, aber ich werde Ihnen einen Überblick und zwei Herausforderungen geben. Die erste Herausforderung heißt Gradientenabstieg und beinhaltet die Verwendung einer Fehlerfunktion zur Messung der Leistung des Klassifikators. Ziel ist es, den Fehler zu minimieren und den Algorithmus mithilfe von Analysis zu verbessern. Der Prozess des Gradientenabstiegs ähnelt dem zuvor besprochenen Perzeptron-Algorithmus.

Die zweite Herausforderung besteht darin, eine geeignete Aktivierungsfunktion für die logistische Regression auszuwählen. Die Aktivierungsfunktion ist dafür verantwortlich, die gewichtete Summe der Eingaben in einen Wahrscheinlichkeitswert zwischen 0 und 1 umzuwandeln.

Eine häufig verwendete Aktivierungsfunktion ist die Sigmoidfunktion, die eine S-förmige Kurve aufweist. Sie ordnet jede reelle Zahl einem Wert zwischen 0 und 1 zu. Die Sigmoidfunktion ist definiert als:

σ(z) = 1 / (1 + e^(-z))

Hier stellt z die gewichtete Summe der Eingaben dar und wird wie folgt berechnet:

z = a x + b y + c

Bei der logistischen Regression besteht das Ziel darin, die optimalen Werte für a, b und c zu finden, die die Wahrscheinlichkeit der beobachteten Daten maximieren. Dies wird durch die Minimierung einer Kostenfunktion erreicht, die oft als Kreuzentropieverlustfunktion bezeichnet wird.

Die Kostenfunktion misst die Diskrepanz zwischen den vorhergesagten Wahrscheinlichkeiten und den tatsächlichen Klassenbezeichnungen. Eine gängige Form der Kostenfunktion ist:

J(a, b, c) = -1/m * Σ(y * log(σ(z)) + (1-y) * log(1-σ(z)))

In dieser Gleichung stellt m die Anzahl der Trainingsbeispiele dar, y ist die wahre Klassenbezeichnung (0 oder 1) und σ(z) ist die vorhergesagte Wahrscheinlichkeit der positiven Klasse.

Um die Kostenfunktion zu minimieren, kann der Gradientenabstieg angewendet werden. Die Idee hinter dem Gradientenabstieg besteht darin, die Parameterwerte (a, b und c) iterativ in der entgegengesetzten Richtung des Gradienten der Kostenfunktion in Bezug auf diese Parameter zu aktualisieren. Dieser Prozess wird bis zur Konvergenz fortgesetzt, bei der die Kostenfunktion minimiert wird.

Die Aktualisierungsgleichungen für den Gradientenabstieg in der logistischen Regression ähneln denen im Perzeptron-Algorithmus. Unter Verwendung der Lernrate (α) lauten die Parameteraktualisierungen wie folgt:

a := a - α * ∂J/∂ab := b - α * ∂J/∂bc := c - α * ∂J/∂c

Die partiellen Ableitungen (∂J/∂a, ∂J/∂b, ∂J/∂c) stellen die Gradienten der Kostenfunktion in Bezug auf jeden Parameter dar. Sie können mithilfe der Infinitesimalrechnung berechnet werden.

Durch die iterative Aktualisierung der Parameterwerte mithilfe des Gradientenabstiegs kann die logistische Regression lernen, Daten flexibler als der Perzeptron-Algorithmus zu klassifizieren. Es handelt sich um einen weit verbreiteten und effektiven Algorithmus für binäre Klassifizierungsprobleme.

Zusammenfassend lässt sich sagen, dass die logistische Regression auf den Prinzipien des Perzeptron-Algorithmus basiert, jedoch einen probabilistischen Rahmen und eine andere Kostenfunktion einführt. Durch die Anwendung des Gradientenabstiegs werden die Parameter optimiert, um die Wahrscheinlichkeit der beobachteten Daten zu maximieren. Die Wahl der Sigmoid-Aktivierungsfunktion ermöglicht die logistische Regression zur Erstellung von Wahrscheinlichkeitsschätzungen für die Klassenzugehörigkeit.

Logistic Regression and the Perceptron Algorithm: A friendly introduction
Logistic Regression and the Perceptron Algorithm: A friendly introduction
  • 2019.01.01
  • www.youtube.com
Announcement: New Book by Luis Serrano! Grokking Machine Learning. bit.ly/grokkingML40% discount code: serranoytAn introduction to logistic regression and th...
 

Support Vector Machines (SVMs): Eine freundliche Einführung



Support Vector Machines (SVMs): Eine freundliche Einführung

Hallo, mein Name ist Luis Serrano und dies ist eine freundliche Einführung in Support Vector Machines, kurz SVM. Dies ist das dritte Video einer dreiteiligen Serie über lineare Modelle. Falls Sie das erste noch nicht gesehen haben: Es heißt „Lineare Regression“ und das zweite heißt „Logistische Regression“. Dieses Video baut auf den im zweiten Video behandelten Konzepten auf.

Zunächst möchte ich den Studenten des Kurses für maschinelles Lernen danken, den ich an der Quest University in British Columbia, Kanada, unterrichtet habe. Sie haben mir geholfen, die Schlüsselidee für dieses Video zu entwickeln, und es war eine wundervolle Erfahrung, mit ihnen zu arbeiten. Auf dem Bild seht ihr mich mit meinem Freund Richard Hoshino, der ebenfalls Professor an der Universität ist.

Lassen Sie uns nun in SVM eintauchen. Support Vector Machines sind ein wichtiger Klassifizierungsalgorithmus, der darauf abzielt, Punkte zweier Klassen mithilfe einer Linie zu trennen. SVM geht jedoch noch einen Schritt weiter, um die bestmögliche Linie zu finden, die den Abstand zwischen den Punkten maximiert. Typischerweise wird SVM durch lineare Optimierung oder Gradientenabstieg erklärt. Aber in diesem Video stelle ich eine Methode vor, die ich in der Literatur noch nicht gesehen habe, und die ich die „Kleinschritt-Methode“ nenne. Es handelt sich um einen iterativen Ansatz, bei dem wir die Klassifizierungsfähigkeit der Linie kontinuierlich verbessern.

Lassen Sie uns zunächst das vorherige Video zur logistischen Regression und zum Perzeptron-Algorithmus noch einmal zusammenfassen. In diesem Video wollten wir eine Linie finden, die Daten in zwei Klassen unterteilt: rote Punkte und blaue Punkte. Der Perzeptron-Algorithmus beginnt mit einer zufälligen Linie und passt diese basierend auf dem Feedback der Punkte iterativ an. Der Algorithmus macht kleine Schritte, um die Fähigkeit der Linie, die Punkte korrekt zu klassifizieren, schrittweise zu verbessern.

Lassen Sie uns nun den zusätzlichen Schritt in SVM einführen. Anstatt nur eine Linie zu finden, wollen wir zwei parallele Linien finden, die möglichst weit voneinander entfernt sind und die Daten dennoch effektiv trennen. Um dies zu veranschaulichen, stellen Sie sich zwei Sätze paralleler Linien vor, die den gleichen Abstand von der Hauptlinie haben. Ziel ist es, den Abstand zwischen diesen beiden Linien zu maximieren. Je größer der Abstand, desto besser die Klassifizierung.

Als nächstes müssen wir den Algorithmus trainieren, um die beste Linie auszuwählen. Dies erreichen wir, indem wir die Geradengleichungen mit verschiedenen Konstanten multiplizieren. Dadurch können wir den Abstand zwischen den Linien steuern. Eine größere Konstante führt zu einem größeren Abstand, während eine kleinere Konstante die Linien näher zusammenbringt. Auf diese Weise können wir die optimalen Linien finden, die den Abstand maximieren.

Um Linien mithilfe von Gleichungen zu trennen, betrachten wir eine Beispielgleichung: 2x + 3y - 6 = 0. Die Multiplikation dieser Gleichung mit einem konstanten Faktor ändert nicht die Linie selbst, sondern beeinflusst den Abstand zwischen den Linien. Wir können diese Konstante anpassen, um die Linien zu erweitern oder zu verkleinern.

Um den SVM-Algorithmus zu formalisieren, integrieren wir die Expansionsrate, die die Schrittgröße für die Spreizung der Linien bestimmt. Indem wir die Liniengleichungen mit einem Wert nahe 1, beispielsweise 0,99, multiplizieren, vergrößern wir schrittweise den Abstand zwischen den Linien bei jeder Iteration.

Zusammenfassend folgt der SVM-Algorithmus diesen Schritten:

  1. Beginnen Sie mit einer zufälligen Linie und zwei parallelen Linien mit gleichem Abstand.
  2. Wenden Sie den Perzeptron-Algorithmus an, um die Position der Linie basierend auf Punktrückmeldungen anzupassen.
  3. Führen Sie die Expansionsrate ein, um die Linien etwas auseinander zu spreizen.
  4. Wiederholen Sie diese Schritte iterativ, um die optimalen Linien zu finden, die den Abstand maximieren.

Dies ist ein kurzer Überblick über den SVM-Algorithmus und wie er die Kleinschrittmethode zur Verbesserung der Klassifizierung integriert. Es handelt sich um eine effektive Technik zur Lösung von Klassifizierungsproblemen, und ich hoffe, dass dieses Video eine einzigartige Perspektive auf SVM bietet.

Nun betrachten wir einen weiteren Aspekt, der zum Fehler in unserem Modell beiträgt. Dieser Aspekt basiert auf dem Abstand zwischen zwei Linien. Um dies zu demonstrieren, untersuchen wir zwei Support-Vektor-Maschinen (SVMs), die einen Datensatz klassifizieren. Die erste SVM hat breitere Linien, klassifiziert aber einen Punkt falsch, während die zweite SVM schmale Linien hat, aber alle Punkte korrekt klassifiziert. Die Frage ist, welches ist besser? Die Antwort hängt von verschiedenen Faktoren wie dem Datensatz, dem Modell und dem Szenario ab. Wir können dies jedoch mithilfe von Fehlerfunktionen analysieren.

Erinnern wir uns an die Fehlerberechnung im Perzeptron-Algorithmus. Wenn ein Punkt korrekt klassifiziert ist, ist der Fehler Null. Wenn ein Punkt falsch klassifiziert wird, hängt der Fehler von seiner Entfernung von der Grenze ab. Punkte, die näher an der Grenze liegen, weisen kleinere Fehler auf, während Punkte, die weiter entfernt liegen, größere Fehler aufweisen. Wir wollen eine Fehlerfunktion, die diese Distanzbeziehung erfasst. In ähnlicher Weise haben wir in SVM zwei Klassifizierungsfehler: den blauen Klassifizierungsfehler und den roten Klassifizierungsfehler. Jeder Fehler misst den Abstand von einem falsch klassifizierten Punkt zu seiner jeweiligen Grenze. Durch Summieren dieser Abstände erhalten wir den Klassifizierungsfehler.

Zusätzlich haben wir den Randfehler, der die Nähe der Linien angibt. Ein größerer Randfehler bedeutet, dass die Linien näher beieinander liegen, während ein kleinerer Randfehler darauf hindeutet, dass die Linien weiter voneinander entfernt sind. Wir möchten, dass unser Modell einen kleinen Randfehler aufweist, der auf breite Linien hinweist. Je kleiner der Fehler ist, desto besser ist unser Modell. Interessanterweise ähnelt der Randfehler dem Regularisierungsterm bei der L2-Regularisierung.

Zusammenfassend besteht der SVM-Fehler aus dem Klassifizierungsfehler und dem Margenfehler. Der Klassifizierungsfehler misst die Anzahl der falsch klassifizierten Punkte und das Ausmaß der Fehlklassifizierung. Der Randfehler gibt an, wie weit die Linien voneinander entfernt sind. Diese beiden Fehler bilden zusammen den gesamten SVM-Fehler. Unser Ziel ist es, diesen Fehler mithilfe des Gradientenabstiegs zu minimieren, ähnlich dem SVM-Trick, bei dem die Position und der Abstand der Linien angepasst werden.

Zurück zum Vergleich der beiden Modelle: Das linke Modell weist einen großen Klassifizierungsfehler, aber einen kleinen Randfehler auf, da die Linien weit voneinander entfernt sind. Das Modell auf der rechten Seite weist dagegen einen kleinen Klassifizierungsfehler, aber einen großen Randfehler auf, der auf die große Nähe der Linien zurückzuführen ist. Die Entscheidung, welches Modell besser ist, hängt von unseren Vorlieben und Anforderungen ab. Wir können den C-Parameter, einen Hyperparameter, verwenden, um die Bedeutung des Klassifizierungsfehlers im Verhältnis zum Randfehler zu steuern. Ein kleines C betont den Randfehler, was zu einem Modell wie dem links abgebildeten führt, während ein großes C den Klassifizierungsfehler priorisiert, was zu einem Modell ähnlich dem rechts abgebildeten führt.

Es ist wichtig zu beachten, dass die Auswahl der Hyperparameter durch Experimente und das Testen verschiedener Werte zur Bewertung der Modellleistung bestimmt werden kann. Hyperparameter spielen eine entscheidende Rolle in Algorithmen für maschinelles Lernen und ermöglichen uns die Feinabstimmung unserer Modelle.

Vielen Dank für Ihre Aufmerksamkeit während dieser Videoreihe zu linearen Modellen. Ich hoffe, Sie fanden es informativ und unterhaltsam. Gerne liken, teilen und kommentieren. Ihr Feedback wird geschätzt. Seien Sie gespannt auf weitere Videos in der Zukunft.

Support Vector Machines (SVMs): A friendly introduction
Support Vector Machines (SVMs): A friendly introduction
  • 2019.01.27
  • www.youtube.com
Announcement: New Book by Luis Serrano! Grokking Machine Learning. bit.ly/grokkingML40% discount code: serranoytAn introduction to support vector machines (S...
 

Rauschunterdrückung und Variations-Autoencoder



Rauschunterdrückung und Variations-Autoencoder

Hallo, ich bin Luis Serrano und in diesem Video diskutieren wir Autoencoder. Insbesondere werden wir uns auf Rauschunterdrückung und Variations-Autoencoder konzentrieren.

Autoencoder sind beliebte Generatormodelle und Teil einer Reihe, die generative gegnerische Netzwerke und eingeschränkte Boltzmann-Maschinen umfasst. Wenn Ihnen Generatormodelle gefallen, schauen Sie sich unbedingt die Links in den Kommentaren an.

Um Autoencoder zu verstehen, stellen wir uns vor, Sie möchten ein Buch verstehen und bitten Ihre intelligente Freundin Aisha, es für Sie zusammenzufassen. Aishas Aufgabe ist es, das Buch auf wenige Seiten zusammenzufassen, um es für Sie leichter verständlich zu machen. Anschließend beurteilen wir die Qualität von Aishas Zusammenfassung, indem wir unsere andere Freundin Berta bitten, das gesamte Buch auf der Grundlage von Aishas Zusammenfassung neu zu schreiben. Wir vergleichen Bertas umgeschriebenes Buch mit dem Originalbuch, um ihre Leistung zu bewerten.

Im Idealfall würde Aisha die Hauptideen des Buches so genau wie möglich zusammenfassen, und Berta wäre hervorragend darin, das Buch auf der Grundlage dieser Ideen zu rekonstruieren. Indem sie Aisha und Berta dazu zwingen, das Buch zu komprimieren bzw. neu aufzubauen, gewinnen sie ein tiefes Verständnis für seinen Inhalt. Dieses Konzept ist die Grundlage von Autoencodern. Sie vereinfachen die Daten erheblich, rekonstruieren sie anschließend und extrahieren dabei die nützlichsten Funktionen.

Autoencoder sind Algorithmen zur Dimensionsreduktion und Teil des unbeaufsichtigten maschinellen Lernens. Betrachten wir im Kontext realer Datensätze einen Datensatz mit Gesichtsbildern. Jedes Bild wird mit mehreren Zahlen codiert, um die Farbe jedes Pixels darzustellen. Aisha, jetzt Encoder genannt, fasst diesen Datensatz zusammen, indem sie Merkmale wie Augengröße, Haarfarbe und andere Gesichtsmerkmale extrahiert. Diese Merkmale werden dann an Berta, die Decoderin, übergeben, die dabei hilft, die Gesichter aus diesen extrahierten Merkmalen zu rekonstruieren.

Die Dimension eines Datenpunkts bezieht sich auf die Anzahl der Zahlen, die zu seiner Kodierung erforderlich sind. In diesem Fall reduzieren wir die Dimensionalität des Gesichtsbilddatensatzes, indem wir ihn in einen kleineren Satz von Merkmalen zusammenfassen und ihn dann während des Rekonstruktionsprozesses wieder erhöhen.

Autoencoder bestehen aus zwei Teilen: einem Encoder, der die Daten verkleinert, und einem Decoder, der sie wieder erweitert. Ziel ist es, dass die rekonstruierte Ausgabe der ursprünglichen Eingabe möglichst nahe kommt. Die verkleinerten oder vereinfachten Daten werden als latenter Raum bezeichnet, der die Daten zusammenfasst und verdichtet, um wertvolle Erkenntnisse zu liefern.

Zwei wichtige Arten von Autoencodern sind Entrauschungs-Autoencoder und Variations-Autoencoder. Rauschunterdrückende Autoencoder sind darauf trainiert, beschädigte Daten, wie z. B. verrauschte Bilder, aufzunehmen und klare und schärfere Versionen dieser Bilder zu erzeugen. Variations-Autoencoder hingegen werden darauf trainiert, neue Daten zu generieren, indem sie Stichproben aus einem vereinfachten latenten Raum auswählen, der eine niedrigerdimensionale Version des ursprünglichen Datenraums darstellt.

Variationale Autoencoder sind besonders effektiv bei der Generierung hochauflösender Bilder, beispielsweise Leerzeichen. Im Video finden Sie Beispiele von Gesichtern, die von einem Variations-Autoencoder generiert wurden.

Das wichtigste Konzept, das Sie verstehen sollten, bevor Sie sich mit Autoencodern befassen, ist die Reduzierung der Dimensionalität. Um dieses Konzept zu veranschaulichen, betrachten wir einen Beispieldatensatz von Bildern. Bei diesen Bildern handelt es sich um einfache 2x2-Pixel-Bilder, wobei jedes Pixel eine andere Farbe hat: Rot, Blau, Gelb und Grün. Jedes Pixel hat einen Intensitätswert im Bereich von 0 bis 1, wobei 1 die volle Farbintensität und 0 Weiß darstellt.

Jeder Datenpunkt in diesem Datensatz wird durch vier Intensitätswerte beschrieben, die den vier Farben entsprechen. Bei näherer Betrachtung fällt uns jedoch eine besondere Eigenschaft auf: Die Intensitäten der Pixel in der oberen rechten und unteren linken Ecke sind immer gleich, ebenso wie die Intensitäten der Pixel in der oberen linken und unteren rechten Ecke. Das bedeutet, dass wir nicht mehr alle vier Intensitätswerte unabhängig voneinander kodieren müssen. Stattdessen können wir jeden Datenpunkt mit nur zwei Werten darstellen: der Intensität der Pixel oben links und unten rechts.

Dadurch haben wir die Dimensionalität unseres Datensatzes von vier auf zwei reduziert. Diese Reduzierung ermöglicht es uns, die wesentlichen Informationen der Bilder zu erfassen und gleichzeitig redundante oder korrelierte Merkmale zu verwerfen. Es vereinfacht auch die Datendarstellung und kann bei verschiedenen Aufgaben wie Visualisierung, Speicherung und Analyse hilfreich sein.

Autoencoder verwenden ein ähnliches Prinzip der Dimensionsreduktion, jedoch auf ausgefeiltere und erlerntere Weise. Anstatt manuell auszuwählen, welche Features beibehalten oder verworfen werden sollen, lernen Autoencoder, automatisch die informativsten Features aus den Eingabedaten zu extrahieren.

Lassen Sie uns tiefer in die Architektur und den Trainingsprozess von Autoencodern eintauchen. Wie bereits erwähnt, bestehen Autoencoder aus einem Encoder und einem Decoder.

Der Encoder nimmt die Eingabedaten, beispielsweise ein Bild, und wendet eine Reihe von Transformationen an, um sie in eine niedrigerdimensionale Darstellung, den sogenannten latenten Raum, zu kodieren. Der latente Raum ist eine komprimierte Darstellung der Eingabedaten, die deren wichtigste Merkmale erfasst.

Der Decoder übernimmt die Latentraumdarstellung und wendet die umgekehrten Transformationen an, um die ursprünglichen Eingabedaten so genau wie möglich zu rekonstruieren. Das Ziel besteht darin, den Unterschied zwischen den Eingabedaten und der rekonstruierten Ausgabe zu minimieren und so effektiv eine komprimierte Darstellung zu erlernen, die die Eingabe originalgetreu reproduzieren kann.

Um einen Autoencoder zu trainieren, benötigen wir einen Datensatz mit Eingabedaten, für den wir sowohl die Originalproben als auch die entsprechenden Zielausgaben haben. Während des Trainings lernt der Autoencoder, den Rekonstruktionsfehler zu minimieren, der normalerweise mithilfe einer Verlustfunktion wie dem mittleren quadratischen Fehler (MSE) oder der binären Kreuzentropie gemessen wird.

Der Trainingsprozess umfasst die Eingabe der Eingabedaten durch den Encoder, um die Latentraumdarstellung zu erhalten. Anschließend wird die Latentraumdarstellung durch den Decoder geleitet, um die Daten zu rekonstruieren. Die Rekonstruktion wird mit der ursprünglichen Eingabe verglichen und die Diskrepanz zwischen ihnen wird verwendet, um die Gewichte des Encoders und Decoders durch Backpropagation und Gradientenabstieg zu aktualisieren.

Durch iteratives Training des Autoencoders anhand eines großen Datensatzes lernt dieser nach und nach, die wichtigsten Merkmale aus den Eingabedaten zu extrahieren und wird in der Lage, diese mit minimalem Verlust zu rekonstruieren.

Entrauschende Autoencoder und Variations-Autoencoder sind zwei beliebte Varianten der grundlegenden Autoencoder-Architektur.

Autoencoder mit Rauschunterdrückung sind speziell für den Umgang mit verrauschten oder beschädigten Eingabedaten konzipiert. Während des Trainings werden dem Autoencoder Eingabedaten vorgelegt, die absichtlich verfälscht wurden, beispielsweise durch Hinzufügen von zufälligem Rauschen oder durch die Einführung von Verzerrungen. Der Autoencoder lernt dann, die Eingabe zu entrauschen, indem er die ursprünglichen, sauberen Daten so genau wie möglich rekonstruiert. Diese Entrauschungsfunktion ermöglicht es dem Autoencoder, robuste Darstellungen zu lernen, die widerstandsfähiger gegen Rauschen sind.

Variationale Autoencoder (VAEs) verfolgen einen anderen Ansatz, indem sie probabilistische Modellierung in das Autoencoder-Framework integrieren. VAEs zielen darauf ab, einen latenten Raum zu lernen, der einer bestimmten Wahrscheinlichkeitsverteilung folgt, beispielsweise einer Gaußschen Verteilung. Dadurch können VAEs durch Stichproben aus der erlernten Verteilung im latenten Raum neue Datenpunkte generieren.

Das Training von VAEs beinhaltet nicht nur die Minimierung des Rekonstruktionsfehlers, sondern auch die Maximierung der Wahrscheinlichkeit, dass die latente Raumverteilung mit der gewünschten Verteilung übereinstimmt. Dies wird durch eine Kombination aus Rekonstruktionsverlust und einem Regularisierungsterm namens Kullback-Leibler (KL)-Divergenz erreicht, der den Unterschied zwischen der erlernten Verteilung und der gewünschten Verteilung misst.

Durch die gleichzeitige Optimierung des Rekonstruktionsverlusts und der KL-Divergenz lernen VAEs, neue Datenproben zu generieren, die ähnliche Eigenschaften wie die Trainingsdaten aufweisen, während sie gleichzeitig die Vielfalt des erlernten latenten Raums erkunden.

Autoencoder sind leistungsstarke unbeaufsichtigte Lernmodelle, die kompakte Darstellungen von Eingabedaten lernen können. Sie bestehen aus einem Encoder und einem Decoder, die zusammenarbeiten, um die Daten zu komprimieren und zu rekonstruieren. Entrauschende Autoencoder und Variations-Autoencoder sind zwei bemerkenswerte Varianten, die die grundlegende Autoencoder-Architektur erweitern und zusätzliche Funktionen wie Entrauschen und generative Modellierung bieten.

Sehen wir uns in diesem Abschnitt einige weitere Beispiele an. Das erste Beispiel, das wir hier haben, scheint ein vollständig farbiges Bild zu sein, mit Ausnahme des grünen Pixels in der unteren rechten Ecke, das einen Wert von 0,2 hat. Der Entrauschungs-Encoder ist in der Lage, das gesamte Bild für uns einzufärben. Als nächstes haben wir ein weiteres Beispiel für ein weißes Bild, mit Ausnahme des blauen Pixels mit einem Wert von 0,8 in der oberen rechten Ecke. Der Neocenter-Encoder bestimmt, dass das Bild weiß sein soll und wandelt die blauen Pixel in Weiß um. Ich empfehle Ihnen, das Repository zu erkunden und mit Ihren eigenen Bildern zu experimentieren, um die Ergebnisse zu sehen. Zusammenfassend lässt sich sagen, dass diese äußeren Encoder dazu führen, dass jedes Bild einem der Bilder im trainierten Datensatz ähnelt.

Die anderen Encoder, die wir bisher verwendet haben, hatten nur eine Schicht, aber es ist wichtig zu beachten, dass dies in neuronalen Netzen nicht immer der Fall ist. Encoder können über mehrere Schichten und komplexe Architekturen verfügen, beispielsweise Faltungs- oder wiederkehrende Schichten. Hier ist ein Beispiel für einen Faltungsencoder, der zum Entrauschen von Bildern handgeschriebener Zeichen im MNIST-Datensatz verwendet wird. Wie Sie sehen können, leisten diese Arten von Autoencodern zur Rauschunterdrückung gute Dienste bei der Bereinigung verrauschter Bilder.

Kommen wir nun zu einer weiteren faszinierenden Eigenschaft von Autoencodern. Sie haben die Fähigkeit, völlig neue Datenpunkte, beispielsweise neue Bilder, zu generieren. Bei diesen generierten Bildern handelt es sich nicht um bloße Kopien der Bilder im Datensatz, sondern um völlig neue und einzigartige Bilder, die denen im Datensatz sehr ähnlich sind. Diese Fähigkeit ist wirklich bemerkenswert. Beispielsweise kann ein Autoencoder das Gesicht einer Person generieren, die nicht existiert, oder eine handgeschriebene Ziffer, die noch nie zuvor gezeichnet wurde. Um diese neuen Bilder zu erzeugen, müssen wir uns nur auf den Decoder konzentrieren und den Encoder vergessen. Der Decoder nimmt eine Reihe von Zahlen, die sogenannte latente Darstellung, und generiert auf der Grundlage dieser Zahlen ein Bild. Dieser Prozess bietet eine visuelle Darstellung des latenten Raums.

Um dies zu veranschaulichen, betrachten wir ein Beispiel. Angenommen, wir geben die Zahlen 0,3 und 0,8 in den Decoder ein. Es erzeugt ein Bild mit Intensitäten von 0,12 und 0,95. Wir können uns den latenten Raum als Quadrat vorstellen, wobei die horizontale Achse der Rot-Grün-Diagonale und die vertikale Achse der Blau-Gelb-Diagonale des Bildes entspricht. Jeder Punkt in diesem Quadrat stellt ein Bild dar, und wenn wir uns nach rechts bewegen, nimmt die Intensität der Rot-Grün-Diagonale zu. Ebenso nimmt die Intensität der blau-gelben Diagonale zu, wenn wir uns von unten nach oben bewegen. Diese Visualisierung ermöglicht es uns, den latenten Raum und seine Beziehung zu den generierten Bildern zu verstehen.

Im latenten Raum können wir jeden Punkt gleichmäßig auswählen, was der Auswahl zweier Zahlen und deren Weiterleitung durch den Decoder entspricht. Dieser Prozess ermöglicht es uns, jedes dieser Bilder mit der gleichen Wahrscheinlichkeit zu erzeugen. In einigen Fällen möchten wir jedoch möglicherweise nur bestimmte Bilder generieren, die im Datensatz vorhanden sind, während andere ausgeschlossen werden. Diese Situation tritt häufig auf, wenn der latente Raum groß ist und Rauschen enthält und nur ein kleiner Teil die gewünschten Bilder darstellt. Um dieses Problem anzugehen, können wir eine Technik namens Variations-Autoencoder verwenden.

Bei Variations-Autoencodern trainieren wir zwei Normalverteilungen, die es uns ermöglichen, Punkte auszuwählen, die mit hoher Wahrscheinlichkeit innerhalb eines bestimmten interessierenden Bereichs liegen. Wenn wir beispielsweise einen kleinen ovalen Bereich im latenten Raum haben, in dem die gewünschten Bilder vorhanden sind, möchten wir, dass der Autoencoder Bilder innerhalb oder in der Nähe dieses Bereichs mit einer höheren Wahrscheinlichkeit als im Rest des Raums generiert. Dies erreichen wir, indem wir zwei Normalverteilungen trainieren, eine für jede Koordinate im latenten Raum. Mithilfe dieser Verteilungen können wir Punkte auswählen, die wahrscheinlich in der Mitte der gewünschten Region liegen. Indem wir diese ausgewählten Punkte als latente Darstellung verwenden und sie durch den Decoder leiten, können wir Bilder erzeugen, die fokussierter und auf unsere gewünschten Kriterien ausgerichtet sind.

Der Trainingsprozess für Variations-Autoencoder umfasst die gleichzeitige Optimierung zweier Ziele: des Rekonstruktionsverlusts und des Regularisierungsverlusts. Der Rekonstruktionsverlust misst, wie gut die generierten Bilder mit den Eingabebildern übereinstimmen, ähnlich wie bei herkömmlichen Autoencodern. Der Regularisierungsverlust, der oft als Kullback-Leibler-Divergenz (KL) bezeichnet wird, führt dazu, dass die latente Verteilung einer bekannten vorherigen Verteilung ähnelt, typischerweise einer Standardnormalverteilung.

Das Hinzufügen des Regularisierungsverlusts führt zu einem Kompromiss während des Trainings. Einerseits möchten wir, dass die rekonstruierten Bilder den Eingabebildern sehr ähnlich sind, was durch die Minimierung des Rekonstruktionsverlusts erreicht wird. Andererseits möchten wir, dass die latente Verteilung mit der vorherigen Verteilung übereinstimmt und so die Erzeugung vielfältiger und realistischer Bilder fördert. Das Ausbalancieren dieser Ziele ist von entscheidender Bedeutung, um sicherzustellen, dass das Modell die wichtigen Merkmale der Daten erfasst und gleichzeitig Kreativität und Neuheit in den generierten Bildern zulässt.

Sobald der Variations-Autoencoder trainiert ist, können wir Punkte aus der vorherigen Verteilung (oft eine Standardnormalverteilung) abtasten und sie durch den Decoder leiten, um neue Bilder zu erzeugen. Durch die Steuerung des Sampling-Prozesses können wir verschiedene Bereiche des latenten Raums erkunden und verschiedene Variationen der Eingabedaten erzeugen.

Variations-Autoencoder werden häufig in verschiedenen Anwendungen eingesetzt, beispielsweise bei der Bildgenerierung, Textgenerierung und Anomalieerkennung. Sie bieten ein leistungsstarkes Framework zum Lernen und Generieren komplexer Datenverteilungen und ermöglichen gleichzeitig die Kontrolle über die generierte Ausgabe.

Zusammenfassend lässt sich sagen, dass Autoencoder, einschließlich Entrauschungs- und Variations-Autoencoder, faszinierende Möglichkeiten bei der Bildverarbeitung und -generierung bieten. Sie können Rauschen aus Bildern entfernen, fehlende Teile rekonstruieren und völlig neue und einzigartige Bilder erzeugen. Entrauschende Autoencoder nutzen eine Encoder-Decoder-Architektur, um die zugrunde liegende Struktur der Daten zu lernen, während Variations-Autoencoder eine probabilistische Modellierung hinzufügen, um verschiedene Variationen in der generierten Ausgabe zu erfassen. Diese Techniken haben den Bereich des unbeaufsichtigten Lernens revolutioniert und umfangreiche Anwendungen in der Computer-Vision- und künstlichen Intelligenzforschung gefunden.

Denoising and Variational Autoencoders
Denoising and Variational Autoencoders
  • 2022.01.15
  • www.youtube.com
A video about autoencoders, a very powerful generative model. The video includes:Intro: (0:25)Dimensionality reduction (3:35)Denoising autoencoders (10:50)Va...
 

Entscheidungsbäume – Eine freundliche Einführung



Entscheidungsbäume – Eine freundliche Einführung

Willkommen in der Serrano Academy! In diesem Video besprechen wir Entscheidungsbäume, die sehr beliebte Modelle für maschinelles Lernen sind. Entscheidungsbäume sind in realen Szenarien effektiv und intuitiv zu verstehen. Sie ahmen die Art und Weise nach, wie Menschen Entscheidungen treffen, sodass sie leicht zu interpretieren sind.

Um zu veranschaulichen, wie Entscheidungsbäume funktionieren, verwenden wir ein Beispiel eines Empfehlungssystems. Stellen Sie sich vor, Sie müssen morgens entscheiden, ob Sie eine Jacke tragen möchten. Sie können zunächst prüfen, ob es draußen regnet. Wenn es regnet, ist das Tragen einer Jacke eine klare Wahl. Aber wenn es nicht regnet, können Sie auch die Temperatur berücksichtigen. Wenn es kalt ist, tragen Sie eine Jacke, wenn es warm ist, nicht. Dieser Entscheidungsprozess kann als Entscheidungsbaum dargestellt werden, in dem jede Entscheidung zu einem Knoten wird und die verfügbaren Optionen zu Kanten werden, die zu neuen Knoten oder endgültigen Entscheidungen führen.

Für ein bestimmtes Problem können mehrere Entscheidungsbäume vorhanden sein. Ein weiterer Entscheidungsbaum könnte beispielsweise darin bestehen, zu prüfen, ob Montag ist, welche Farbe Ihr Auto hat und ob Sie an diesem Tag Kaffee getrunken haben. Allerdings sind nicht alle Entscheidungsbäume gleich effektiv. Der erste von uns besprochene Entscheidungsbaum scheint gut zu funktionieren, während der zweite irrelevante Knoten enthält. Das Ziel des maschinellen Lernens ist es, den besten Entscheidungsbaum zu finden. Maschinelles Lernen hilft uns, den Entscheidungsbaum zu finden, der am besten zu den Daten passt. Sehen wir uns ein Beispiel an, um diesen Prozess zu verstehen.

Betrachten Sie einen kleinen Datensatz aus einem Empfehlungssystem für Apps basierend auf Benutzerdemografien. Der Datensatz enthält Spalten für Geschlecht, Alter und die heruntergeladene App. Wir wollen auf Basis dieses Datensatzes eine Regel formulieren, um künftigen Nutzern Apps zu empfehlen. Durch die Analyse der Daten können wir Trends beobachten. Beispielsweise haben alle jungen Menschen im Datensatz TikTok heruntergeladen, daher ist es sinnvoll, TikTok einer 16-jährigen Frau zu empfehlen. Wenn wir sehen, dass vor allem Frauen in den Dreißigern YouTube heruntergeladen haben, können wir YouTube einer 30-jährigen Frau empfehlen. Durch diesen Ansatz können wir Empfehlungen für verschiedene Benutzer auf der Grundlage ihrer demografischen Informationen aussprechen.

Die Intuition hinter Entscheidungsbäumen stimmt mit den mathematischen Prinzipien überein, die beim maschinellen Lernen verwendet werden. Entscheidungsbäume können sowohl kategoriale als auch numerische Daten verarbeiten. Für numerische Daten ermitteln wir den besten Teilungspunkt, indem wir verschiedene Möglichkeiten bewerten. Jeder Teilungspunkt erzeugt einen Entscheidungsstumpf, und wir vergleichen die Genauigkeit dieser Stümpfe, um den besten zu finden. Sobald wir die beste Aufteilung gefunden haben, können wir mit dem Aufbau des Entscheidungsbaums fortfahren, indem wir den Prozess anhand der resultierenden Teilmengen der Daten iterieren. Dieser iterative Prozess ermöglicht es uns, größere Entscheidungsbäume zu erstellen.

Entscheidungsbäume sind leistungsstarke Modelle für maschinelles Lernen, die genaue Vorhersagen liefern und leicht zu interpretieren sind. Sie ahmen menschliche Entscheidungsprozesse nach und können anhand verschiedener Datentypen trainiert werden. Indem wir den besten Entscheidungsbaum für ein bestimmtes Problem finden, können wir auf der Grundlage gegebener Daten wirksame Empfehlungen oder Vorhersagen treffen.

Decision trees - A friendly introduction
Decision trees - A friendly introduction
  • 2022.09.29
  • www.youtube.com
A video about decision trees, and how to train them on a simple example.Accompanying blog post: https://medium.com/@luis.serrano/splitting-data-by-asking-que...
 

Eine freundliche Einführung in das Bayes-Theorem und die Hidden-Markov-Modelle



Eine freundliche Einführung in das Bayes-Theorem und die Hidden-Markov-Modelle

Hallo und willkommen zu einer Einführung in den Basissatz und versteckte Markov-Modelle. Ich bin Luis Serrano von Udacity, wo ich Kurse zu maschinellem Lernen und künstlicher Intelligenz unterrichte. In diesem Szenario haben wir zwei Freunde namens Alice und Bob, die weit voneinander entfernt leben und über das Telefon kommunizieren. Bobs Stimmung ändert sich je nach Wetter. Wenn es sonnig ist, ist Bob glücklich, und wenn es regnet, ist Bob mürrisch. Alice kann aus Bobs Stimmung auf das Wetter schließen.

Machen wir das Szenario komplizierter. Bob ist meistens glücklich, wenn es sonnig ist, aber es gibt Ausnahmen. Meistens ist er mürrisch, wenn es regnet, aber es gibt auch Ausnahmen. Wir haben Wahrscheinlichkeiten basierend auf vergangenen Daten berechnet. Wenn es sonnig ist, ist Bob mit einer Wahrscheinlichkeit von 80 % glücklich und mit einer Wahrscheinlichkeit von 20 % mürrisch. Wenn es regnet, ist Bob mit einer Wahrscheinlichkeit von 60 % mürrisch und mit einer Wahrscheinlichkeit von 40 % glücklich.

Betrachten wir nun eine konkrete Situation. Bob erzählt Alice, dass diese Woche eine emotionale Achterbahnfahrt war. Am Montag war er glücklich, am Dienstag war er mürrisch, am Mittwoch war er wieder glücklich, am Donnerstag war er mürrisch und am Freitag war er glücklich. Alice versucht, aus Bobs Stimmung auf das Wetter zu schließen.

Um die Wahrscheinlichkeit dieser Stimmungsfolge zu bestimmen, verwenden wir ein Hidden-Markov-Modell. Es enthält Beobachtungen (Bobs Stimmung) und verborgene Zustände (das Wetter). Wir berechnen Übergangswahrscheinlichkeiten (die Wahrscheinlichkeit, von einem Zustand in einen anderen zu wechseln) und Emissionswahrscheinlichkeiten (die Wahrscheinlichkeit, dass Beobachtungen aus den verborgenen Zuständen emittiert werden).

In diesem Video beantworten wir vier Fragen. Wie berechnen wir zunächst diese Wahrscheinlichkeiten? Zweitens: Wie hoch ist die Wahrscheinlichkeit, dass es an einem beliebigen Tag sonnig oder regnerisch ist, unabhängig von Bobs Stimmung? Drittens: Wenn Bob heute glücklich ist, wie hoch ist dann die Wahrscheinlichkeit, dass es sonnig oder regnerisch ist? Und viertens: Wenn Bob an drei aufeinanderfolgenden Tagen glücklich ist, welches Wetter ist dann am wahrscheinlichsten?

Wir können die Wahrscheinlichkeiten berechnen, indem wir vergangene Daten analysieren. Wir zählen das Auftreten bestimmter Wettermuster und Bobs Stimmungen, um die Wahrscheinlichkeiten abzuschätzen. Mit genügend Daten können wir gute Schätzungen der tatsächlichen Wahrscheinlichkeiten erhalten.

Um die Wahrscheinlichkeit zu bestimmen, dass ein zufälliger Tag sonnig oder regnerisch ist, unabhängig von Bobs Stimmung, können wir entweder das Vorkommen sonniger und regnerischer Tage in den vergangenen Daten zählen oder die Übergangswahrscheinlichkeiten verwenden. In diesem Fall stellen wir fest, dass es zu 2/3 wahrscheinlich sonnig und zu 1/3 wahrscheinlich regnerisch ist.

Wenn Bob heute glücklich ist, ändern sich die Wahrscheinlichkeiten für Sonne und Regen. Wir verwenden den Satz von Bayes, um die Wahrscheinlichkeiten zu aktualisieren. Wenn Bob beispielsweise glücklich ist und es Mittwoch ist, berücksichtigen wir die A-priori-Wahrscheinlichkeiten (2/3 sonnig und 1/3 regnerisch) und die Emissionswahrscheinlichkeiten (80 % sonnig und 20 % mürrisch, wenn es sonnig ist, 40 % glücklich und 60 % mürrisch, wenn regnerisch). Mithilfe des Satzes von Bayes berechnen wir die A-Posteriori-Wahrscheinlichkeiten (8/10 sonnig und 2/10 regnerisch).

Diese Wahrscheinlichkeiten ermöglichen es uns, aus Bobs Stimmung auf das Wetter zu schließen. Wenn Bob glücklich ist, ist es wahrscheinlicher, dass es sonnig ist. Wenn Bob mürrisch ist, regnet es eher. Die Wahrscheinlichkeiten ändern sich aufgrund der neuen Informationen.

Wir nutzen Hidden-Markov-Modelle und den Satz von Bayes, um aus Bobs Stimmung auf das Wetter zu schließen. Durch die Analyse vergangener Daten berechnen wir Übergangswahrscheinlichkeiten und Emissionswahrscheinlichkeiten. Dies hilft uns, die Wahrscheinlichkeit bestimmter Wettermuster basierend auf Bobs Stimmung zu bestimmen.

A friendly introduction to Bayes Theorem and Hidden Markov Models
A friendly introduction to Bayes Theorem and Hidden Markov Models
  • 2018.03.27
  • www.youtube.com
Announcement: New Book by Luis Serrano! Grokking Machine Learning. bit.ly/grokkingML40% discount code: serranoytA friendly introduction to Bayes Theorem and ...
 

Shannon-Entropie und Informationsgewinn



Shannon-Entropie und Informationsgewinn

Hallo, ich bin Louie Serrano und ich bin hier mit Shannon, um über Entropie und Informationsgewinn zu sprechen. Wenn Sie an einer detaillierteren Erklärung interessiert sind, habe ich einen Blogbeitrag zu diesem Thema geschrieben. Den Link finden Sie im Kommentarbereich.

Beginnen wir mit der Einführung des Konzepts der Entropie, das aus der Physik stammt. Wir können es anhand der drei Zustände von Wasser veranschaulichen: fest (Eis), flüssig (Wasser) und gasförmig (Wasserdampf). Jeder Zustand hat ein anderes Entropieniveau, das die Geschwindigkeit misst, mit der sich Partikel in einem Objekt bewegen. Eis hat eine geringe Entropie, da sich seine Teilchen langsam bewegen, was es zu einer stabilen Substanz macht. Wasser hat eine mittlere Entropie, da sich die Teilchen etwas schneller bewegen. Wasserdampf hat eine hohe Entropie, da sich die darin enthaltenen Teilchen sehr schnell bewegen.

Entropie ist nicht nur ein Konzept der Physik, sondern kommt auch in der Mathematik vor, insbesondere in der Wahrscheinlichkeitstheorie. Um dies zu veranschaulichen, betrachten wir ein Beispiel mit drei Eimern, die jeweils Kugeln unterschiedlicher Farbe enthalten. Eimer 1 hat vier rote Kugeln, Eimer 2 hat drei rote Kugeln und eine blaue Kugel und Eimer 3 hat zwei rote Kugeln und zwei blaue Kugeln. Basierend auf der Intuition können wir schließen, dass Eimer 1 eine niedrige Entropie, Eimer 2 eine mittlere Entropie und Eimer 3 eine hohe Entropie hat.

Um unsere Intuition zu bestätigen, können wir die Entropie messen, indem wir untersuchen, wie weit wir die Kugeln in jedem Eimer neu anordnen können. Im ersten Satz mit vier roten Bällen ist eine Neuanordnung nur begrenzt möglich, da alle Bälle farblich nicht unterscheidbar sind. Für den zweiten Satz können wir die Bälle auf verschiedene Arten neu anordnen. Für den dritten Satz schließlich haben wir noch mehr mögliche Arrangements. Wir können die Anzahl der Anordnungen mithilfe des Binomialkoeffizienten berechnen, der ein quantitatives Maß für die Entropie liefert. Basierend auf dem Grad der möglichen Umordnung können wir bestätigen, dass Bucket 1 eine niedrige Entropie, Bucket 2 eine mittlere Entropie und Bucket 3 eine hohe Entropie aufweist.

Es gibt jedoch eine genauere Möglichkeit, die Entropie anhand von Informationen zu bestimmen. Stellen wir uns vor, wir spielen ein Spiel mit diesen Eimern. Wir beginnen mit einer bestimmten Anordnung von Kugeln und ziehen sie nach dem Zufallsprinzip, wobei wir versuchen, die genaue Reihenfolge der ursprünglichen Anordnung zu reproduzieren. Wenn wir Erfolg haben, gewinnen wir einen erheblichen Geldbetrag. Sonst gewinnen wir nichts. Nun stellt sich die Frage: Welcher Eimer ist der beste und welcher der schlechteste?

Beim Nachdenken stellen wir fest, dass Eimer 1 die beste Wahl ist, da alle Kugeln rot sind, was es einfacher macht, die ursprüngliche Sequenz zu reproduzieren. Eimer 2 ist die mittlere Wahl, da er eine Mischung aus roten und blauen Kugeln enthält, und Eimer 3 ist die schlechteste Wahl, da wir keine Ahnung haben, welche Farbe wir zeichnen werden. Wir können die Gewinnwahrscheinlichkeit in jedem Spiel berechnen, indem wir die Wahrscheinlichkeit berücksichtigen, einen bestimmten Ball aus dem Eimer zu ziehen. Für Eimer 1 beträgt die Gewinnwahrscheinlichkeit 100 %, da alle Kugeln rot sind. Bei Eimer 2 ist die Wahrscheinlichkeit aufgrund der Anwesenheit blauer Kugeln geringer und bei Eimer 3 am niedrigsten, da die Wahrscheinlichkeit, entweder rote oder blaue Kugeln zu ziehen, gleich groß ist.

Fassen wir nun die Wahrscheinlichkeiten und ihre entsprechenden Entropieniveaus in einer Tabelle zusammen. Wir können beobachten, dass Bucket 1 eine hohe Gewinnwahrscheinlichkeit hat, was zu einer geringen Entropie führt. Bucket 2 hat eine mäßige Wahrscheinlichkeit, was auf eine mittlere Entropie hinweist. Schließlich hat Bucket 3 die geringste Gewinnwahrscheinlichkeit, was zu einer hohen Entropie führt.

Um eine Entropieformel aufzustellen, können wir das Konzept der Logarithmen nutzen. Anstatt sich mit Produkten zu befassen, können wir sie mithilfe von Logarithmen in Summen umrechnen. Der Logarithmus eines Produkts ist gleich der Summe der Logarithmen. Indem wir das Produkt der Wahrscheinlichkeiten logarithmieren, können wir es in eine Summe einzelner Wahrscheinlichkeiten umwandeln. Diese Transformation ermöglicht es uns, die Entropie als den durchschnittlichen Informationsgehalt oder die mit einem Ereignis verbundene Unsicherheit zu berechnen.

Die Formel für die Entropie lautet:

Entropie = - (p1 * log(p1) + p2 * log(p2) + ... + pn * log(pn))

wobei p1, p2, ..., pn die Wahrscheinlichkeiten verschiedener Ergebnisse oder Zustände darstellen. Die Logarithmusfunktion (normalerweise mit der Basis 2) wird verwendet, um die exponentielle Natur von Informationen zu berücksichtigen.

Wenden wir diese Formel auf unser Beispiel an, berechnen wir die Entropie für jeden Bucket. In Eimer 1, in dem alle Kugeln rot sind, beträgt die Wahrscheinlichkeit, eine rote Kugel zu ziehen, 1 (100 %). Somit ist die Entropie für Bucket 1:

Entropie(Bucket 1) = - (1 * log2(1)) = 0

Da der Logarithmus von 1 0 ist, ist die Entropie 0, was darauf hindeutet, dass keine Unsicherheit oder kein Informationsgewinn vorliegt.

Für Eimer 2 gibt es drei rote Kugeln und eine blaue Kugel. Die Wahrscheinlichkeit, eine rote Kugel zu ziehen, beträgt 3/4, während die Wahrscheinlichkeit, eine blaue Kugel zu ziehen, 1/4 beträgt. Daher beträgt die Entropie für Bucket 2:

Entropie(Bucket 2) = - (3/4 * log2(3/4) + 1/4 * log2(1/4))

Wenn wir die Werte berechnen, erhalten wir:

Entropie (Eimer 2) ≈ 0,811

Dieser Wert stellt ein moderates Maß an Unsicherheit bzw. Informationsgewinn dar.

Gehen wir weiter zu Eimer 3, wo es zwei rote und zwei blaue Kugeln gibt. Die Wahrscheinlichkeit, eine rote oder eine blaue Kugel zu ziehen, beträgt jeweils 1/2. Somit beträgt die Entropie für Bucket 3:

Entropie(Bucket 3) = - (1/2 * log2(1/2) + 1/2 * log2(1/2))

Wenn wir den Ausdruck vereinfachen, finden wir:

Entropie(Bucket 3) = - (1/2 * (-1) + 1/2 * (-1)) = 1

Die Entropie für Bucket 3 beträgt 1, was den höchsten Grad an Unsicherheit oder Informationsgewinn anzeigt.

Entropie quantifiziert den Grad der Unsicherheit oder Information in einem System. Mithilfe des Wahrscheinlichkeitskonzepts können wir die Entropie als den durchschnittlichen Informationsgehalt berechnen, der mit verschiedenen Ergebnissen verbunden ist. Höhere Entropiewerte weisen auf eine größere Unsicherheit hin, während niedrigere Entropiewerte auf eine geringere Unsicherheit oder vorhersehbarere Ergebnisse hinweisen. Das Verständnis von Entropie und Informationsgewinn ist in verschiedenen Bereichen wertvoll, darunter Informationstheorie, maschinelles Lernen und Datenanalyse, da es uns ermöglicht, die Komplexität und Vorhersagbarkeit von Systemen zu messen und zu analysieren.

Shannon Entropy and Information Gain
Shannon Entropy and Information Gain
  • 2017.11.04
  • www.youtube.com
Announcement: New Book by Luis Serrano! Grokking Machine Learning. bit.ly/grokkingML40% discount code: serranoytAccompanying blog post: https://medium.com/p/...
 

Naive Bayes-Klassifikator: Ein freundlicher Ansatz



Naive Bayes-Klassifikator: Ein freundlicher Ansatz

Hallo, ich bin Luis Serrano und in diesem Video beschäftigen wir uns mit dem Naive-Bayes-Klassifikator. Ihre Wissensbasis ist entscheidend für die Wahrscheinlichkeit und unglaublich nützlich beim maschinellen Lernen. Betrachten wir es nicht als eine komplexe Formel mit Wahrscheinlichkeitsverhältnissen, sondern als die Wahrscheinlichkeit, dass ein Ereignis eintritt, vorausgesetzt, wir haben Informationen über ein anderes Ereignis. Naive Bayes erweitert dieses Konzept, indem es naive Annahmen trifft, um die Mathematik bei der Behandlung mehrerer Ereignisse zu vereinfachen.

Zur Veranschaulichung bauen wir einen Spam-Detektor. Wir beginnen mit einem Datensatz von 100 E-Mails, von denen 25 Spam sind und 75 kein Spam. Unser Ziel ist es, Eigenschaften zu identifizieren, die mit Spam-E-Mails korrelieren. Konzentrieren wir uns auf das Wort „kaufen“. Unter den Spam-E-Mails enthalten 20 „Kaufen“ und 5 Nicht-Spam-E-Mails. Daraus können wir schließen, dass es sich bei einer E-Mail mit dem Wort „Kaufen“ mit einer Wahrscheinlichkeit von 80 % um Spam handelt.

Betrachten wir nun ein anderes Wort: „billig“. Von den Spam-E-Mails haben 15 den Hinweis „billig“, und von den Nicht-Spam-E-Mails haben 10 den Hinweis „billig“. Wenn eine E-Mail „billig“ enthält, besteht eine Wahrscheinlichkeit von 60 %, dass es sich um Spam handelt.

Was aber, wenn wir sowohl „kaufen“ als auch „billig“ gemeinsam analysieren wollen? Von den Spam-E-Mails enthalten 12 beide Wörter, und in den Nicht-Spam-E-Mails gibt es keine Instanz dieser Kombination. Wenn eine E-Mail sowohl „kaufen“ als auch „günstig“ enthält, handelt es sich mit 100 %iger Wahrscheinlichkeit um Spam. Eine 100-prozentige Sicherheit erscheint jedoch für einen Klassifikator zu stark und unrealistisch.

Das Problem entsteht, weil wir keine Nicht-Spam-E-Mails mit den Wörtern „kaufen“ und „billig“ gefunden haben. Um dieses Problem anzugehen, könnten wir mehr Daten sammeln, aber lassen Sie uns eine alternative Lösung erkunden. Wir können Annahmen treffen, um das Auftreten solcher Fälle abzuschätzen. Nehmen wir an, dass 0,5 % der E-Mails sowohl „kaufen“ als auch „billig“ enthalten. Diese Annahme basiert auf den Prozentsätzen der „Kauf“- und „Billig“-Vorkommen in unserem Datensatz.

Mit dieser Annahme können wir nun die Wahrscheinlichkeit berechnen, dass eine E-Mail Spam ist, wenn sie sowohl „kaufen“ als auch „billig“ enthält. Durch die Anwendung des Bayes-Theorems stellen wir fest, dass die Wahrscheinlichkeit ungefähr 94,737 % beträgt.

Der Naive-Bayes-Klassifikator beinhaltet das Ausfüllen einer Tabelle mit Daten. Wenn jedoch bestimmte Ereignisse im Datensatz zu spärlich vorkommen, gehen wir naiv davon aus, dass die Ereignisse unabhängig sind. Diese Annahme vereinfacht die Berechnungen, auch wenn sie in der Realität möglicherweise nicht zutrifft. Indem wir diese Annahmen treffen, können wir die Wahrscheinlichkeiten abschätzen und einen Spam-Klassifikator erstellen.

Naive Bayes classifier: A friendly approach
Naive Bayes classifier: A friendly approach
  • 2019.02.10
  • www.youtube.com
Announcement: New Book by Luis Serrano! Grokking Machine Learning. bit.ly/grokkingML40% discount code: serranoytA visual description of Bayes' Theorem and th...
 

Die Beta-Verteilung in 12 Minuten!



Die Beta-Verteilung in 12 Minuten!

Hallo, ich bin Luis Serrano und in diesem Video befassen wir uns mit dem Thema Beta-Distributionen. Betaverteilungen sind ein wesentliches Konzept in der Wahrscheinlichkeitsrechnung und Statistik, da sie die Wahrscheinlichkeit einer Wahrscheinlichkeit modellieren. Lassen Sie uns tiefer in dieses faszinierende Thema eintauchen.

Um Beta-Verteilungen zu verstehen, betrachten wir ein Beispiel mit drei Münzen: Münze eins, Münze zwei und Münze drei. Diese Münzen können entweder auf Kopf oder auf Zahl landen. Allerdings sind alle drei Münzen manipuliert, was bedeutet, dass keine von ihnen mit einer Wahrscheinlichkeit von der Hälfte Kopf zurückgibt.

Nehmen wir an, dass Münze eins mit einer Wahrscheinlichkeit von 0,4 „Kopf“ zurückgibt, Münze zwei mit einer Wahrscheinlichkeit von 0,6 und Münze drei mit einer Wahrscheinlichkeit von 0,8. Stellen Sie sich nun vor, wir wählen zufällig eine dieser Münzen aus, ohne zu wissen, um welche es sich handelt. Die Aufgabe besteht darin, durch fünfmaliges Werfen zu erraten, welche Münze wir ausgewählt haben.

Nehmen wir an, wir hätten in dieser Reihenfolge drei Köpfe und zwei Zahlen erhalten. Die Frage ist: Welche Münze haben wir Ihrer Meinung nach erbeutet? Intuitiv könnten wir uns zu Münze zwei neigen, da erwartet wird, dass sie in drei von fünf Fällen „Kopf“ zurückgibt. Es besteht jedoch weiterhin Unsicherheit. Es ist möglich, dass wir Münze eins oder Münze drei ausgewählt haben und die beobachtete Abfolge von Kopf und Zahl nur ein Zufall war.

Um die Wahrscheinlichkeiten der Wahl jeder Münze zu bestimmen, können wir den Satz von Bayes anwenden. Lassen Sie uns jeden Fall einzeln untersuchen.

Für Münze eins wird die Wahrscheinlichkeit, dreimal Kopf und zweimal Zahl zu bekommen, wie folgt berechnet: (0,4 * 0,4 * 0,4) * (0,6 * 0,6) = 0,0230.

Für Münze zwei beträgt die Wahrscheinlichkeit: (0,6 * 0,6 * 0,6) * (0,4 * 0,4) = 0,0346.

Für Münze drei beträgt die Wahrscheinlichkeit: (0,8 * 0,8 * 0,8) * (0,2 * 0,2) = 0,0205.

Da dies die einzigen drei möglichen Ereignisse sind, müssen sich ihre Wahrscheinlichkeiten zu eins addieren. Wir normalisieren diese Wahrscheinlichkeiten, indem wir jede von ihnen durch die Summe dividieren: 0,0230 + 0,0346 + 0,0205. Dies ergibt die normalisierten Wahrscheinlichkeiten: 0,295, 0,443 und 0,262 für Münze eins, Münze zwei und Münze drei.

Wie wir sehen können, hat Münze zwei die höchste Wahrscheinlichkeit, aber es besteht immer noch die Möglichkeit, dass wir Münze eins oder Münze drei ausgewählt haben. Diese Wahrscheinlichkeiten werden mithilfe des Bayes-Theorems ermittelt, einem leistungsstarken Werkzeug der Wahrscheinlichkeitstheorie. Wenn Sie mehr darüber erfahren möchten, habe ich auf meinem Kanal ein Video, in dem es ausführlich erklärt wird.

Betrachten wir nun dasselbe Beispiel, jedoch mit einer höheren Anzahl an Münzen. Nehmen wir an, wir werfen eine Münze und sie landet sieben Mal auf „Kopf“ und dreimal auf „Zahl“. Diese Münze könnte eine von zehn Münzen sein, jede mit unterschiedlicher Wahrscheinlichkeit, auf dem Kopf zu landen, im Bereich von 0,0 bis 0,9, wobei sich die Wahrscheinlichkeit für jede Münze um 0,1 erhöht.

Welche Münze haben wir Ihrer Meinung nach in diesem Fall ausgewählt? Auch hier ist die wahrscheinlichste Option die Münze, die in 70 % der Fälle auf dem Kopf landet, was Münze sieben entspricht. Um die Wahrscheinlichkeiten für die Auswahl jeder Münze zu berechnen, führen wir ähnliche Berechnungen wie zuvor durch.

Für jede Münze berechnen wir die Wahrscheinlichkeit, siebenmal „Kopf“ und dreimal „Zahl“ zu erhalten. Wir verwenden die Formel: (p^7) * ((1-p)^3), wobei p die Wahrscheinlichkeit darstellt, auf Kopf zu landen. Anschließend normalisieren wir diese Wahrscheinlichkeiten, indem wir jede von ihnen durch die Summe aller Wahrscheinlichkeiten dividieren.

Wenn wir die Anzahl der Münzen erhöhen, werden die Berechnungen komplexer. Das zugrunde liegende Prinzip bleibt jedoch dasselbe. Wir berechnen die Wahrscheinlichkeiten jeder Münze basierend auf den beobachteten Ergebnissen und den mit jeder Münze verbundenen Wahrscheinlichkeiten. Durch die Normalisierung dieser Wahrscheinlichkeiten erhalten wir eine Verteilung, die unsere Unsicherheit darüber darstellt, welche Münze ausgewählt wurde.

Lassen Sie uns dieses Konzept nun auf die Beta-Distribution verallgemeinern. Die Betaverteilung ist eine kontinuierliche Wahrscheinlichkeitsverteilung, die im Intervall [0, 1] definiert ist. Es zeichnet sich durch zwei Formparameter aus, die oft als Alpha und Beta bezeichnet werden. Diese Parameter bestimmen die Form der Verteilung.

Die Beta-Verteilung ist besonders nützlich für die Modellierung von Wahrscheinlichkeiten, da sie flexibel ist und abhängig von den Werten von Alpha und Beta verschiedene Formen annehmen kann. Es ermöglicht uns, ein breites Spektrum an Wahrscheinlichkeitsverteilungen zu erfassen, von gleichmäßig bis schief und von konzentriert bis verteilt.

Die Wahrscheinlichkeitsdichtefunktion (PDF) der Betaverteilung ergibt sich aus der Formel: f(x) = (x^(alpha-1)) * ((1-x)^(beta-1)) / B(alpha, Beta), wobei B(Alpha, Beta) die Beta-Funktion ist, die sicherstellt, dass die Verteilung über das Intervall [0, 1] zu 1 integriert wird.

Der Mittelwert der Betaverteilung ergibt sich aus der Formel: E[X] = Alpha / (Alpha + Beta), und die Varianz beträgt Var[X] = (Alpha * Beta) / ((Alpha + Beta)^2 * ( Alpha + Beta + 1)).

Die Betaverteilung wird häufig in verschiedenen Bereichen verwendet, beispielsweise in der Bayes'schen Statistik, maschinellem Lernen und Entscheidungsanalyse. Es kann unsichere Größen wie Erfolgsraten, Anteile oder Wahrscheinlichkeiten modellieren und zur Parameterschätzung, zum Testen von Hypothesen und zur Generierung von Zufallsstichproben verwendet werden.

Betaverteilungen sind ein grundlegendes Konzept in der Wahrscheinlichkeitsrechnung und Statistik, insbesondere wenn es um unsichere Wahrscheinlichkeiten geht. Sie bieten einen flexiblen Rahmen für die Modellierung einer breiten Palette von Wahrscheinlichkeitsverteilungen. Durch das Verständnis der Eigenschaften und Anwendungen von Betaverteilungen können wir fundiertere Entscheidungen treffen und Daten effektiver analysieren.

The Beta distribution in 12 minutes!
The Beta distribution in 12 minutes!
  • 2021.06.13
  • www.youtube.com
This video is about the Beta distribution, a very important distribution in probability, statistics, and machine learning. It is explained using a simple exa...
 

Thompson-Sampling, einarmige Banditen und die Beta-Verteilung



Thompson-Sampling, einarmige Banditen und die Beta-Verteilung

Hallo, ich bin Louis Sorano und in diesem Video werde ich das Konzept der einarmigen Banditen und die Beta-Verteilung besprechen. Stellen Sie sich vor, Sie befinden sich in einem Casino mit einer Reihe von Spielautomaten, die allgemein als „einarmige Banditen“ bekannt sind. Wenn Sie an diesen Automaten spielen, gibt es zwei mögliche Ergebnisse: Entweder kommt eine Münze heraus, was einen Gewinn bedeutet, oder es kommt nichts heraus, was zu einem Verlust führt. Das Ziel besteht darin, herauszufinden, welche Maschinen gut sind und welche nicht, um Ihren Gewinn zu maximieren.

Jeder Automat in der Reihe hat eine andere Wahrscheinlichkeit, eine Münze zu produzieren, die mit „p“ bezeichnet wird. Wenn der Automat auf der linken Seite beispielsweise eine Wahrscheinlichkeit von 0,1 (10 %) hat, bedeutet das, dass Sie im Durchschnitt in 10 % der Fälle damit rechnen können, eine Münze zu gewinnen, während Sie in 90 % der Fälle verlieren werden. Ebenso hat der Automat auf der rechten Seite eine Wahrscheinlichkeit von 0,7 (70 %), was bedeutet, dass Sie in 70 % der Fälle eine höhere Chance haben, eine Münze zu gewinnen, und eine 30 %ige Chance, eine Münze zu verlieren.

Die Herausforderung besteht darin, dass Sie die tatsächlichen Werte von „p“ für jede Maschine nicht kennen und diese daher durch Spielen an den Maschinen schätzen müssen. Das Ziel besteht darin, alle Automaten zu spielen und diejenigen mit höheren Gewinnwahrscheinlichkeiten zu identifizieren, um sich auf sie zu konzentrieren und den leistungsschwachen Automaten gelegentlich die Chance zu geben, sich zu verbessern.

Es sind zwei Strategien zu berücksichtigen: die „Explore“-Strategie und die „Exploit“-Strategie. Bei der Erkundungsstrategie wird jede Maschine mehrmals gespielt, um Daten zu sammeln und die Gewinnwahrscheinlichkeiten abzuschätzen. Wenn Sie beispielsweise 15 Mal am ersten Automaten spielen und zweimal gewinnen, schätzen Sie die Wahrscheinlichkeit auf 2/15. Indem Sie diesen Vorgang für jede Maschine wiederholen, können Sie deren geschätzte Wahrscheinlichkeiten vergleichen und diejenigen mit der höchsten Gewinnwahrscheinlichkeit ermitteln.

Andererseits besteht die Exploit-Strategie darin, jede Maschine weniger oft zu spielen und Entscheidungen auf der Grundlage der verfügbaren Daten zu treffen. Wenn Sie einen Automaten nur ein paar Mal spielen, verfügen Sie möglicherweise nicht über genügend Informationen, um die Gewinnwahrscheinlichkeit genau einzuschätzen. Dieser Ansatz birgt die Gefahr, potenzielle Gewinner zu verpassen, da er den Raum möglicherweise nicht ausreichend erforscht, um genügend Daten zu sammeln.

Um eine optimale Strategie zu finden, benötigen Sie eine Kombination aus Erkundung und Ausbeutung. Dieser als Thompson-Sampling bekannte Ansatz beinhaltet die Pflege einer Beta-Verteilung für jede Maschine. Die Beta-Verteilung stellt die Gewinnwahrscheinlichkeit basierend auf der Anzahl der Siege und Niederlagen dar. Indem Sie die Beta-Verteilung bei jedem Spiel aktualisieren, können Sie Ihre Schätzungen verfeinern.

Beim Thompson-Sampling handelt es sich um einen Wettbewerb zwischen den Maschinen mit einem Hauch von Zufälligkeit. Aus den Betaverteilungen werden zufällige Punkte ausgewählt und der Automat mit dem höchsten Wert an diesem Punkt wird als nächstes zum Spielen ausgewählt. Diese Technik ermöglicht die Erkundung aller Maschinen und bevorzugt gleichzeitig diejenigen mit der stärkeren Leistung.

Das Thompson-Sampling unter Verwendung der Beta-Verteilung hat weitreichende Anwendungsmöglichkeiten, die über das Glücksspiel hinausgehen. Es wird bei A/B-Tests für Webdesign und Werbung, bei medizinischen Studien zur Bestimmung der Wirksamkeit experimenteller Medikamente und bei verschiedenen Entscheidungsszenarien verwendet, bei denen Erforschung und Nutzung von entscheidender Bedeutung sind.

Zusammenfassend lässt sich sagen, dass das Thompson-Sampling mit der Beta-Verteilung eine leistungsstarke Technik ist, die Exploration und Exploitation kombiniert, um optimale Entscheidungen zu treffen. Es ermöglicht Ihnen, Ihre Gewinne zu maximieren, indem Sie sich auf Maschinen mit höheren Gewinnwahrscheinlichkeiten konzentrieren und gleichzeitig andere Möglichkeiten erkunden. Die Thompson-Probenahme findet in verschiedenen Bereichen Anwendung und bietet einen praktischen Ansatz für die Entscheidungsfindung unter Unsicherheit.

Vielen Dank fürs Zuschauen. Wenn Sie dieses Video hilfreich fanden, abonnieren Sie es, liken Sie es und teilen Sie es. Ich empfehle Ihnen auch, sich mein Buch „Rocking Machine Learning“ anzuschauen, in dem ich überwachtes maschinelles Lernen auf verständliche und ansprechende Weise erkläre. Das Buch und andere Ressourcen finden Sie im Kommentarbereich unten. Hinterlassen Sie gerne Kommentare und Vorschläge für zukünftige Themen und vergessen Sie nicht, mir auf Twitter zu folgen.
Thompson sampling, one armed bandits, and the Beta distribution
Thompson sampling, one armed bandits, and the Beta distribution
  • 2021.07.06
  • www.youtube.com
Thompson sampling is a strategy to explore a space while exploiting the wins. In this video we see an application to winning at a game of one-armed bandits.B...