Maschinelles Lernen und neuronale Netze - Seite 60

 

Vorlesung 16.3 – Bayesianische Optimierung von Hyperparametern



Vorlesung 16.3 – Bayesianische Optimierung von Hyperparametern [Neuronale Netze für maschinelles Lernen]

In diesem Video werde ich einige aktuelle Arbeiten diskutieren, die sich mit der Frage befassen, wie Hyperparameter in neuronalen Netzen bestimmt werden können. Der in dieser Arbeit vorgestellte Ansatz nutzt eine andere Art des maschinellen Lernens, um die Auswahl geeigneter Werte für Hyperparameter zu unterstützen. Anstatt die Hyperparametereinstellungen manuell anzupassen, nutzt diese Methode maschinelles Lernen, um den Prozess zu automatisieren. Die Technik basiert auf Gaußschen Prozessen, die bei der Modellierung glatter Funktionen wirksam sind. Obwohl Gauß-Prozesse traditionell als unzureichend für Aufgaben wie Sprache und Sehen galten, eignen sie sich gut für Bereiche mit begrenztem Vorwissen, in denen ähnliche Eingaben tendenziell zu ähnlichen Ergebnissen führen.

Hyperparameter wie die Anzahl versteckter Einheiten, Schichten, Gewichtseinbußen und die Verwendung von Dropout spielen eine entscheidende Rolle für die Leistung neuronaler Netzwerke. Das Finden der richtigen Kombinationen von Hyperparametern kann eine Herausforderung sein, insbesondere wenn der Raum manuell erkundet wird. Gaußsche Prozesse zeichnen sich durch hervorragende Ergebnisse bei der Identifizierung von Trends in Daten aus und können effektiv gute Sätze von Hyperparametern identifizieren. Viele Forscher zögern, neuronale Netze zu verwenden, da es schwierig ist, Hyperparameter richtig einzustellen, da ein falscher Wert für einen Hyperparameter das Netzwerk wirkungslos machen kann. Die Rastersuche, ein gängiger Ansatz, beinhaltet das ausführliche Ausprobieren aller möglichen Kombinationen, was bei zahlreichen Hyperparametern nicht mehr möglich ist.

Eine effizientere Methode besteht jedoch darin, Kombinationen von Hyperparametern zufällig auszuwählen. Dadurch werden redundante Experimente vermieden und den Hyperparametern, die einen erheblichen Einfluss haben, mehr Aufmerksamkeit geschenkt. Dennoch haben zufällige Kombinationen Einschränkungen, und hier kommt maschinelles Lernen ins Spiel. Durch den Einsatz von maschinellem Lernen können wir den Prozess simulieren, bei dem ein Doktorand Hyperparameterwerte auswählt. Anstatt uns auf zufällige Kombinationen zu verlassen, untersuchen wir die bisher erzielten Ergebnisse und sagen voraus, welche Kombinationen wahrscheinlich gute Ergebnisse liefern. Diese Vorhersage erfordert die Bestimmung von Regionen des Hyperparameterraums, von denen erwartet wird, dass sie günstige Ergebnisse liefern.

Um ein Vorhersagemodell zu erstellen, gehen wir davon aus, dass die Auswertung einer einzelnen Hyperparametereinstellung erhebliche Rechenressourcen erfordert, beispielsweise das Training eines großen neuronalen Netzwerks anhand eines riesigen Datensatzes, was Tage dauern kann. Andererseits ist die Erstellung eines Modells zur Vorhersage der Leistung von Hyperparametereinstellungen auf der Grundlage früherer Experimente weniger rechenintensiv. Für solche Vorhersagen eignen sich Gaußsche Prozessmodelle, die davon ausgehen, dass ähnliche Eingaben zu ähnlichen Ausgaben führen. Diese Modelle lernen die geeignete Skala zur Messung der Ähnlichkeit in jeder Eingabedimension und ermöglichen uns so die Identifizierung ähnlicher und unterschiedlicher Hyperparameterwerte.

Darüber hinaus sagen Gaußsche Prozessmodelle nicht nur das erwartete Ergebnis eines Experiments voraus, sondern liefern auch eine Verteilung der Vorhersagen, einschließlich einer Varianz. Bei der Vorhersage der Leistung neuer Hyperparametereinstellungen, die den vorherigen Einstellungen ähneln, sind die Vorhersagen der Modelle präzise und weisen eine geringe Varianz auf. Umgekehrt weisen die Vorhersagen für Hyperparametereinstellungen, die sich erheblich von früheren Experimenten unterscheiden, eine hohe Varianz auf.

Die Strategie zur Verwendung von Gaußschen Prozessen zur Bestimmung der nächsten Hyperparametereinstellung besteht darin, eine Einstellung auszuwählen, von der erwartet wird, dass sie eine wesentliche Verbesserung gegenüber der bisher besten beobachteten Einstellung bringt. Das Risiko, ein schlechtes Ergebnis zu erhalten, ist akzeptabel, da es nicht die beste erzielte Einstellung ersetzen würde. Diese Strategie ähnelt dem Ansatz von Hedgefonds-Managern, die einen erheblichen Anreiz haben, Risiken einzugehen, weil es keine nennenswerten Nachteile gibt. Indem wir dieser Strategie folgen, können wir fundierte Entscheidungen darüber treffen, welche Hyperparametereinstellungen als nächstes untersucht werden sollen.

Diese Richtlinie kann angepasst werden, um mehrere Experimente parallel auszuführen, wodurch der Prozess effizienter wird. Als Mensch ist es eine Herausforderung, die Ergebnisse zahlreicher Experimente im Auge zu behalten und deren Ergebnisse genau vorherzusagen. Gaußsche Prozessmodelle können diese Aufgabe jedoch effektiv bewältigen, da sie Trends und Muster in den Daten erkennen können. Schließlich sind Gaußsche Prozessmodelle im Vergleich zu menschlichen Modellen weniger anfällig für Verzerrungen. Bei der Durchführung von Forschungsarbeiten geben sich Forscher oft mehr Mühe, gute Hyperparametereinstellungen für ihre neue Methode zu finden als für etablierte Methoden. Durch die Verwendung von Gaußschen Prozessmodellen wird diese Verzerrung beseitigt, da sie für alle zu bewertenden Modelle gleichermaßen nach guten Hyperparametersätzen suchen. Zusammenfassend lässt sich sagen, dass Gaußsche Prozessmodelle einen leistungsstarken und effizienten Ansatz zur Bestimmung von Hyperparametern in neuronalen Netzen bieten. Durch die Nutzung der Vorhersagefähigkeiten von Gaußschen Prozessen können wir den Prozess der Auswahl von Hyperparameterwerten automatisieren und so den Bedarf an manueller Untersuchung und Vermutungen reduzieren.

Herkömmliche Methoden wie die Rastersuche können bei der Verarbeitung einer großen Anzahl von Hyperparametern unpraktisch sein. Das zufällige Abtasten von Kombinationen von Hyperparametern ist ein effizienterer Ansatz, weist jedoch immer noch Einschränkungen auf. Durch die Einbeziehung von maschinellem Lernen können wir den Entscheidungsprozess eines menschlichen Forschers simulieren und fundiertere Vorhersagen darüber treffen, welche Hyperparameterkombinationen wahrscheinlich gute Ergebnisse liefern. Gaußsche Prozessmodelle sind für diese Aufgabe besonders gut geeignet. Sie zeichnen sich durch die Erkennung von Datentrends aus und können die Beziehung zwischen Hyperparametereinstellungen und Leistungsergebnissen effektiv modellieren. Diese Modelle sagen nicht nur die erwartete Leistung neuer Hyperparametereinstellungen voraus, sondern liefern auch eine Verteilung der Vorhersagen, einschließlich eines Maßes für die Unsicherheit. Dadurch können wir die Zuverlässigkeit der Vorhersagen beurteilen und fundiertere Entscheidungen treffen.

Die Strategie zur Verwendung von Gaußschen Prozessen besteht darin, Hyperparametereinstellungen auszuwählen, von denen erwartet wird, dass sie erhebliche Verbesserungen gegenüber den besten bisher beobachteten Einstellungen bringen. Indem wir kalkulierte Risiken eingehen und Einstellungen untersuchen, die sich erheblich von früheren Experimenten unterscheiden, können wir möglicherweise noch bessere Konfigurationen entdecken. Darüber hinaus können Gaußsche Prozessmodelle mehrere Experimente parallel durchführen, was den Prozess effizienter macht. Sie können Trends und Muster in den Daten erkennen und so die gleichzeitige Untersuchung verschiedener Hyperparametereinstellungen ermöglichen. Ein weiterer Vorteil der Verwendung von Gaußschen Prozessen ist ihre Fähigkeit, Verzerrungen zu minimieren. Forscher investieren im Vergleich zu etablierten Methoden häufig mehr Aufwand in die Suche nach guten Hyperparametereinstellungen für ihre neuen Methoden. Gaußsche Prozessmodelle beseitigen diese Verzerrung, indem sie in allen ausgewerteten Modellen gleichermaßen nach optimalen Hyperparametersätzen suchen.

Gaußsche Prozessmodelle bieten einen leistungsstarken und effizienten Ansatz zur Bestimmung von Hyperparametern in neuronalen Netzen. Durch die Nutzung ihrer Vorhersagefähigkeiten können wir den Prozess automatisieren und fundiertere Entscheidungen darüber treffen, welche Hyperparametereinstellungen untersucht werden sollen. Dieser Ansatz reduziert die Abhängigkeit von der manuellen Erkundung und erhöht die Effizienz und Effektivität der Hyperparameter-Abstimmung in der neuronalen Netzwerkforschung.

Lecture 16.3 — Bayesian optimization of hyper-parameters [Neural Networks for Machine Learning]
Lecture 16.3 — Bayesian optimization of hyper-parameters [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Vorlesung 16.4 – Der Nebel des Fortschritts



Vorlesung 16.4 – Der Nebel des Fortschritts [Neuronale Netze für maschinelles Lernen]

In diesem letzten Video war ich versucht, Vorhersagen über die Zukunft der Forschung zu neuronalen Netzen zu treffen. Ich möchte jedoch erklären, warum der Versuch langfristiger Vorhersagen äußerst dumm wäre. Ich werde eine Analogie verwenden, um diesen Punkt zu veranschaulichen.

Stellen Sie sich vor, Sie fahren nachts ein Auto und konzentrieren sich auf die Rücklichter des Autos vor Ihnen. Die Anzahl der Photonen, die Sie von diesen Rücklichtern empfangen, nimmt bei klarer Luft mit dem Kehrquadrat der Entfernung (1/d^2) ab. Bei Nebel ändert sich jedoch das Verhalten. Über kurze Entfernungen sinkt die Anzahl der Photonen immer noch auf 1/d^2, da der Nebel in diesem Bereich nicht viel Licht absorbiert. Über größere Entfernungen folgt die Abnahme jedoch einer Exponentialfunktion (e^(-d)), da Nebel eine exponentielle Wirkung hat. Es absorbiert einen Bruchteil der Photonen pro Entfernungseinheit und wird mit zunehmender Entfernung undurchsichtiger. Das bedeutet, dass das Auto vor Ihnen in einer Entfernung, in der Ihr Nahbereichsmodell es vorhergesagt hat, völlig unsichtbar werden könnte. Dieses Phänomen ist für Unfälle verantwortlich, die dadurch verursacht werden, dass Personen bei Nebel in Autos auffahren.

Ebenso verläuft die Entwicklung von Technologien, einschließlich maschinellem Lernen und neuronalen Netzen, typischerweise exponentiell. Kurzfristig scheinen die Fortschritte relativ langsam und vorhersehbar zu sein. Wir können vernünftige Schätzungen über die nahe Zukunft anstellen, beispielsweise über die Funktionen des nächsten iPhone-Modells. Wenn wir jedoch weiter in die langfristige Zukunft blicken, stößt unsere Fähigkeit zur Vorhersage an Grenzen, genau wie bei Nebel. Wir wissen einfach nicht, was in 30 Jahren passieren wird, denn exponentieller Fortschritt kann zu unerwarteten und transformativen Veränderungen führen.

Daher bleibt die langfristige Zukunft des maschinellen Lernens und neuronaler Netze ein völliges Rätsel. Wir können es nach unserem derzeitigen Wissensstand nicht vorhersagen. Auf kurze Sicht, sagen wir 3 bis 10 Jahre, können wir jedoch ziemlich genaue Vorhersagen treffen. Es scheint mir offensichtlich, dass große tiefe neuronale Netze in den nächsten fünf Jahren weiterhin bemerkenswerte Dinge leisten werden.

Ich möchte diese Gelegenheit nutzen, um Ihnen allen zu gratulieren, dass Sie den Kurs bis zum Ende durchgehalten haben. Ich hoffe, es hat Ihnen gefallen und wünsche Ihnen viel Glück beim Abschlusstest.

Lecture 16.4 — The fog of progress [Neural Networks for Machine Learning]
Lecture 16.4 — The fog of progress [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Eine freundliche Einführung in Deep Learning und neuronale Netze



Eine freundliche Einführung in Deep Learning und neuronale Netze

Willkommen zu einer Einführung in Deep Learning! Ich bin Luis Serrano und arbeite bei Udacity. Beginnen wir mit der Beantwortung der Frage: Was ist maschinelles Lernen?

Um es zu erklären, betrachten wir ein einfaches Beispiel. Stellen Sie sich vor, wir haben einen Menschen und einen Kuchen und unser Ziel ist es, dem Menschen zu sagen, er solle den Kuchen holen. Wir können dies leicht tun, indem wir eine Anweisung geben: „Geh und hol den Kuchen.“ Der Mensch versteht und bekommt den Kuchen. Versuchen wir nun, dasselbe Problem mit einem Roboter zu lösen. Es ist nicht so einfach, weil wir dem Roboter eine Reihe von Anweisungen geben müssen. Zum Beispiel: „Biegen Sie rechts ab, gehen Sie zehn Schritte, biegen Sie links ab, gehen Sie vier Schritte und holen Sie sich dann den Kuchen.“ Diese Lösung ist spezifisch für dieses spezielle Szenario und nicht verallgemeinerbar. Befindet sich der Roboter in einer anderen Position, bräuchten wir eine völlig andere Anleitung.

Um dieses Problem allgemeiner zu lösen, können wir maschinelles Lernen nutzen. Anstatt explizite Anweisungen zu geben, können wir dem Computer beibringen, herauszufinden, wie er den Kuchen am besten findet. Wir tun dies, indem wir den Computer bitten, den Abstand zum Kuchen zu berechnen und uns dann in die Richtung zu bewegen, die den Abstand minimiert. Der Computer iteriert so lange, bis er den Kuchen findet. Dieses Konzept der Minimierung eines Fehlers oder einer Entfernung ist der Kern der meisten Probleme des maschinellen Lernens. Wir definieren eine Fehlermetrik, beispielsweise die Entfernung zum Kuchen oder die Höhe eines Berges, und minimieren diesen Fehler dann mithilfe des Gradientenabstiegs. Indem wir den Gradienten wiederholt berechnen und uns in die Richtung bewegen, die den Fehler am meisten verringert, können wir Lösungen für verschiedene Probleme finden.

Maschinelles Lernen hat viele Anwendungsmöglichkeiten, etwa um einem Computer beizubringen, Spiele wie Go oder Jeopardy zu spielen, selbstfahrende Autos zu ermöglichen, Spam-E-Mails zu erkennen, Gesichter zu erkennen und mehr. Im Zentrum dieser Anwendungen steht das Konzept neuronaler Netze, die die Grundlage des Deep Learning bilden. Wenn wir an neuronale Netze denken, stellen wir uns möglicherweise komplexe Strukturen mit Knoten, Kanten und Schichten vor. Eine einfachere Möglichkeit, sie zu betrachten, besteht jedoch darin, sie als Werkzeug zum Teilen von Daten zu betrachten. So wie ein Kind im Sand spielt und eine Linie zeichnet, um rote und blaue Muscheln zu trennen, können neuronale Netze lernen, verschiedene Arten von Datenpunkten zu trennen.

Um ein neuronales Netzwerk zu trainieren, benötigen wir eine kontinuierliche Fehlerfunktion. Die Minimierung der Fehleranzahl ist nicht geeignet, da es sich um eine diskrete Funktion handelt. Stattdessen verwenden wir eine Fehlerfunktion, die falsch klassifizierten Punkten Strafen zuweist. Indem wir die Parameter des neuronalen Netzwerks anpassen, wie in unserem Beispiel die Position der Linie, können wir den Fehler minimieren und die beste Lösung finden. Dieser als logistische Regression bekannte Ansatz ermöglicht es uns, eine Wahrscheinlichkeitsfunktion zu erstellen, die verschiedenen Datenpunkten Wahrscheinlichkeiten zuordnet. Punkte, die näher an der 50/50-Linie liegen, haben eine höhere Chance, entweder als rot oder blau klassifiziert zu werden, während weiter entfernte Punkte sicherer klassifiziert werden.

Beim maschinellen Lernen geht es darum, Fehler oder Entfernungen zu minimieren, um die besten Lösungen für verschiedene Probleme zu finden. Neuronale Netze bieten eine Möglichkeit, Daten zu unterteilen und Klassifizierungen vorzunehmen. Durch die Verwendung kontinuierlicher Fehlerfunktionen und Gradientenabstieg können wir neuronale Netze trainieren und sie auf eine Vielzahl von Anwendungen anwenden.

A friendly introduction to Deep Learning and Neural Networks
A friendly introduction to Deep Learning and Neural Networks
  • 2016.12.26
  • www.youtube.com
Announcement: New Book by Luis Serrano! Grokking Machine Learning. bit.ly/grokkingML40% discount code: serranoytA friendly introduction to neural networks an...
 

Eine freundliche Einführung in rekurrente neuronale Netze



Eine freundliche Einführung in rekurrente neuronale Netze

Willkommen zu einer freundlichen Einführung in rekurrente neuronale Netze! Ich bin Luis Serrano, Dozent für maschinelles Lernen bei Udacity. Vielen Dank für das Feedback zu meinen vorherigen Videos. Ich habe viele Vorschläge erhalten, und einer davon betraf rekurrente neuronale Netze, weshalb ich beschlossen habe, dieses Video zu erstellen.

Beginnen wir mit einem einfachen Beispiel. Stellen Sie sich vor, Sie haben einen perfekten Mitbewohner, der drei Arten von Essen kocht: Apfelkuchen, Burger und Hühnchen. Seine Kochentscheidung richtet sich nach dem Wetter. Wenn es sonnig ist, kocht er Apfelkuchen, und wenn es regnet, kocht er einen Burger. Wir können dieses Szenario mithilfe eines einfachen neuronalen Netzwerks modellieren, bei dem die Eingabe das Wetter (sonnig oder regnerisch) und die Ausgabe das entsprechende Essen (Apfelkuchen oder Burger) ist.

Um das Essen und das Wetter darzustellen, verwenden wir Vektoren. Die Lebensmittelvektoren sind [1 0 0] für Apfelkuchen, [0 1 0] für Burger und [0 0 1] für Hühnchen. Die Wettervektoren sind [1 0] für sonnig und [0 1] für regnerisch. Wir können diese Vektoren mithilfe einer Matrixmultiplikation abbilden, bei der der Eingabevektor mit einer Matrix multipliziert wird, um den Ausgabevektor zu erhalten.

Betrachten wir nun ein komplizierteres Problem. Unser perfekter Mitbewohner kocht immer noch der Reihe nach (Apfelkuchen, Burger, Hühnchen), aber jetzt hängt seine Entscheidung davon ab, was er am Vortag gekocht hat. Dies wird als rekurrentes neuronales Netzwerk bezeichnet. Die Ausgabe jedes Tages wird zur Eingabe für den nächsten Tag. Wir können dieses Netzwerk mithilfe von Matrizen und Vektoroperationen darstellen.

Wenn das Essen am Vortag beispielsweise Apfelkuchen war und das Wetter heute regnerisch ist, verwenden wir die Lebensmittelmatrix und die Wettermatrix, um die Ausgabe zu berechnen. Die Lebensmittelmatrix nimmt den vorherigen Lebensmittelvektor und gibt den aktuellen und den nächsten Lebensmittelvektor verkettet zurück. Die Wettermatrix nimmt den Wettervektor und gibt an, ob wir das Essen des aktuellen oder des nächsten Tages kochen sollen. Durch die Addition der Ergebnisse dieser beiden Matrizen können wir bestimmen, was der Mitbewohner am nächsten Tag kochen wird.

Dieser Ansatz kombiniert die beiden vorherigen Beispiele, bei denen die Kochentscheidung des Mitbewohners sowohl vom Wetter als auch vom Essen des Vortages abhängt. Die Matrizen und Vektoroperationen helfen uns, die Ausgabe des rekurrenten neuronalen Netzwerks zu berechnen.

Rekurrente neuronale Netze sind leistungsstarke Modelle, die sequentielle Daten unter Berücksichtigung vorheriger Eingaben verarbeiten können. Sie sind in verschiedenen Anwendungen nützlich, beispielsweise bei der Verarbeitung natürlicher Sprache und der Zeitreihenanalyse. Ich hoffe, diese Einführung hat Ihnen ein gutes Verständnis rekurrenter neuronaler Netze vermittelt.

 

Eine freundliche Einführung in Generative Adversarial Networks (GANs)



Eine freundliche Einführung in Generative Adversarial Networks (GANs)

Hallo, ich bin Luis Serrano und in diesem Video geht es um Generative Adversarial Networks (GANs). GANs, entwickelt von Ian Goodfellow, stellen einen bedeutenden Fortschritt im maschinellen Lernen mit zahlreichen Anwendungen dar. Eine der faszinierendsten Anwendungen von GANs ist die Gesichtsgenerierung. Sie können dies in Aktion auf der Website „thispersondoesnotexist.com“ sehen, wo alle Bilder von Menschen von einem neuronalen Netzwerk generiert werden.

In diesem Video erfahren wir, wie man auf einfache Weise Gesichter mithilfe von GANs generiert. Auch wenn Sie lieber keinen Code schreiben möchten, vermittelt Ihnen dieses Video Intuition und Gleichungen. Wir werden ein Paar einschichtiger neuronaler Netze codieren, die einfache Bilder erzeugen. Den Code finden Sie auf GitHub.

Lassen Sie mich erklären, was GANs sind. GANs bestehen aus zwei neuronalen Netzen, einem Generator und einem Diskriminator, die miteinander konkurrieren. Der Generator versucht, gefälschte Bilder zu erstellen, während der Diskriminator versucht, zwischen echten und gefälschten Bildern zu unterscheiden. Während der Diskriminator den Generator erfasst, verbessert der Generator seine Bilder, bis er ein perfektes Bild erzeugen kann, das den Diskriminator täuscht. Um die GANs zu trainieren, verwenden wir eine Reihe echter Bilder und eine Reihe gefälschter Bilder, die vom Generator generiert werden. Der Diskriminator lernt, echte Bilder von gefälschten zu unterscheiden, während der Generator lernt, den Diskriminator dazu zu bringen, seine Bilder als echt zu klassifizieren.

In diesem Video erstellen wir mit Python ein einfaches GAN-Paar ohne Deep-Learning-Pakete. Unsere Aufgabe besteht darin, Gesichter in einer Welt namens „Slanted Land“ zu generieren, in der jeder länglich erscheint und in einem 45-Grad-Winkel geht. Die Welt von Slanted Land verfügt über begrenzte Technologie, einschließlich 2x2-Pixel-Bildschirmen, die Schwarzweißbilder anzeigen. Wir werden neuronale Netze mit einer Schicht erstellen, um Gesichter der Menschen in Slanted Land zu generieren.

Das Diskriminatornetzwerk analysiert die Pixelwerte von Bildern, um zwischen Gesichtern und Nicht-Gesichtern zu unterscheiden. Wir können feststellen, ob es sich bei einem Bild um ein Gesicht handelt, indem wir die Werte der oberen linken und unteren rechten Ecke mit den anderen beiden Ecken vergleichen. Bei Gesichtern ist der Wertunterschied größer, bei Bildern ohne Gesichter oder verrauschten Bildern ist der Unterschied geringer. Durch Anwenden eines Schwellenwerts können wir Bilder als Gesichter oder Nicht-Gesichter klassifizieren. Das Generatornetzwerk erstellt Flächen, indem es den oberen linken und unteren rechten Ecken höhere Werte und den oberen rechten und unteren linken Ecken niedrigere Werte zuweist. Durch die Anwendung der Sigmoidfunktion können wir Wahrscheinlichkeiten ermitteln und Pixelwerte für das Bild generieren. Das Generatornetzwerk ist so konzipiert, dass es unabhängig von den Eingabewerten immer ein Gesicht generiert. Um die neuronalen Netze zu trainieren, müssen wir eine Fehlerfunktion definieren. Wir verwenden den Log-Verlust, den negativen natürlichen Logarithmus, um den Fehler zwischen der vorhergesagten Ausgabe und der gewünschten Ausgabe zu messen. Die Fehlerfunktion hilft den Netzwerken, ihre Gewichte zu verbessern und den Fehler durch einen Prozess namens Backpropagation zu reduzieren.

Bei der Backpropagation wird die Ableitung des Fehlers nach den Gewichten berechnet und die Gewichte entsprechend angepasst, um den Fehler zu minimieren. Dieser Vorgang wird iterativ wiederholt, um die Generator- und Diskriminatornetzwerke zu trainieren. Indem wir die Generator- und Diskriminatornetzwerke mithilfe geeigneter Fehlerfunktionen und Backpropagation trainieren, können wir in Slanted Land realistische Gesichter erzeugen. Der Generator lernt, Bilder zu erstellen, die Gesichtern ähneln, während der Diskriminator lernt, zwischen echten und generierten Gesichtern zu unterscheiden.

Diese Übersicht bietet einen allgemeinen Überblick über GANs und wie sie Gesichter generieren können. Im Video gehen wir tiefer in die Konzepte ein und demonstrieren den Codierungsprozess Schritt für Schritt. Egal, ob Sie Code schreiben oder Intuition und Verständnis erlangen möchten, dieses Video wird für Sie wertvoll sein. Der Fehler für den Diskriminator wäre in diesem Fall also der negative Logarithmus von 1 minus der Vorhersage. Wir berechnen den Gradienten dieses Fehlers in Bezug auf die Gewichte des Diskriminators mithilfe von Backpropagation und aktualisieren dann die Gewichte des Diskriminators, um diesen Fehler zu minimieren. Betrachten wir als nächstes den Generator. Das Ziel des Generators besteht darin, Bilder zu erzeugen, die der Diskriminator als real oder als Gesichter klassifiziert. Mit anderen Worten: Der Generator möchte den Diskriminator dazu verleiten, für seine erzeugten Bilder eine hohe Wahrscheinlichkeit auszugeben. Daher ist der Fehler für den Generator der negative Logarithmus der Vorhersage des Diskriminators für das generierte Bild.

Auch hier berechnen wir mithilfe der Backpropagation den Gradienten dieses Fehlers in Bezug auf die Gewichte des Generators und aktualisieren die Gewichte des Generators, um diesen Fehler zu minimieren. Der Generator lernt, seine Gewichte so anzupassen, dass er Bilder erzeugt, die echten Gesichtern ähneln und die Wahrscheinlichkeit erhöhen, vom Diskriminator als Gesicht klassifiziert zu werden. Wir wiederholen diesen Vorgang mehrmals und wechseln dabei zwischen dem Training des Diskriminators und des Generators. Jede Iteration hilft beiden Netzwerken, ihre Leistung zu verbessern. Der Diskriminator kann besser zwischen echten und gefälschten Bildern unterscheiden, während der Generator realistischere Bilder erzeugen kann, die den Diskriminator täuschen können.

Dieser iterative Prozess des Trainings des Generators und Diskriminators macht GANs leistungsstark. Sie lernen, durch den Wettbewerb miteinander äußerst realistische und kohärente Proben zu generieren. Der Generator lernt, überzeugendere Bilder zu erstellen, während der Diskriminator besser darin wird, gefälschte Bilder zu erkennen. Mit ausreichend Training können GANs Bilder, Texte, Musik und sogar Videos erzeugen, die echten Daten ähneln.

GANs bestehen aus einem Generator und einem Diskriminator, die spielerisch gegeneinander antreten. Der Generator generiert gefälschte Proben und der Diskriminator versucht, zwischen echten und gefälschten Proben zu unterscheiden. Durch diesen kontradiktorischen Prozess und das Training mit geeigneten Fehlerfunktionen lernen GANs, qualitativ hochwertige und realistische Daten zu generieren.

A Friendly Introduction to Generative Adversarial Networks (GANs)
A Friendly Introduction to Generative Adversarial Networks (GANs)
  • 2020.05.05
  • www.youtube.com
Code: http://www.github.com/luisguiserrano/gansWhat is the simplest pair of GANs one can build? In this video (with code included) we build a pair of ONE-lay...
 

Eingeschränkte Boltzmann-Maschinen (RBM) – Eine freundliche Einführung



Eingeschränkte Boltzmann-Maschinen (RBM) – Eine freundliche Einführung

Hallo, ich bin Luis Serrano und in diesem Video geht es um Restricted Boltzmann Machines (RBMs). RBMs sind leistungsstarke Algorithmen, die beim überwachten Lernen, der Dimensionsreduktion und dem generativen maschinellen Lernen eingesetzt werden.

Beginnen wir mit einem Rätsel. Auf der anderen Straßenseite gibt es ein Haus, das manchmal von Leuten besucht wird. Wir beobachten, dass drei Individuen, Ayesha, Beto und Cameron, oft kommen, aber nicht immer zusammen. Manchmal taucht nur Ayesha auf, manchmal sind es Beto oder Cameron, und manchmal kommen mehr als einer von ihnen, auch an Tagen, an denen keiner von ihnen auftaucht. Wir untersuchen dieses Muster und stellen fest, dass sie sich nicht kennen, also müssen wir einen anderen Grund für ihr Erscheinen finden.

Wir entdecken, dass es im Haus Haustiere gibt, einen Hund namens Descartes und eine Katze namens Euler. Ayesha und Cameron lieben Hunde, deshalb tauchen sie auf, wenn Descartes da ist. Auf der anderen Seite ist Beto allergisch gegen Hunde, liebt aber Katzen und taucht daher nur auf, wenn Ayesha anwesend ist. Wir vergeben Punkte, um ihre Präferenzen darzustellen, wobei positive Werte „Gefällt mir“-Werte und negative Werte „Abneigungen“ anzeigen. Jetzt wollen wir herausfinden, wie wahrscheinlich es ist, dass verschiedene Szenarien eintreten. Wir weisen jedem Szenario Punkte zu und wandeln diese in Wahrscheinlichkeiten um. Ein Ansatz besteht darin, die Softmax-Funktion zu verwenden, um Bewertungen in Wahrscheinlichkeiten umzuwandeln und so sicherzustellen, dass höhere Bewertungen höheren Wahrscheinlichkeiten entsprechen.

Wir konstruieren eine Restricted Boltzmann Machine (RBM) mit sichtbaren und verborgenen Schichten. Die sichtbare Ebene stellt die beobachteten Daten (Personen) dar, während die verborgene Ebene die nicht beobachteten Daten (Haustiere) darstellt. Das RBM besteht aus Knoten, die durch Gewichtungen verbunden sind, wobei jeder Verbindung Punkte zugewiesen werden. Um das RBM zu trainieren, müssen wir die Gewichte finden, die mit den Wahrscheinlichkeiten übereinstimmen, die wir aus den Daten erhalten haben. Wir möchten, dass das RBM Szenarien, in denen Ayesha und Cameron oder nur Beto auftauchen, hohe Wahrscheinlichkeiten und anderen Szenarien niedrige Wahrscheinlichkeiten zuweist. Durch Anpassen der Gewichte können wir die vom RBM zugewiesenen Wahrscheinlichkeiten beeinflussen. Das Ziel besteht darin, das RBM mit den beobachteten Daten in Einklang zu bringen und die gewünschten Wahrscheinlichkeiten nachzuahmen.

Um unsere gewünschten Wahrscheinlichkeiten zu erreichen, müssen wir die Gewichte in unserem RBM anpassen. Die Gewichte bestimmen den Einfluss jeder Verbindung zwischen der sichtbaren und der verborgenen Schicht. Durch die Aktualisierung der Gewichte können wir die Wahrscheinlichkeit bestimmter Szenarien erhöhen und die Wahrscheinlichkeit anderer verringern. Um die Gewichte zu aktualisieren, verwenden wir eine Technik namens kontrastive Divergenz. Dabei werden die Wahrscheinlichkeiten der sichtbaren Schichtzustände vor und nach einigen Iterationen des RBM verglichen. Die Gewichtsaktualisierung basiert auf der Differenz zwischen diesen beiden Wahrscheinlichkeitssätzen. Während des Trainings präsentieren wir dem RBM wiederholt die Trainingsdaten und passen die Gewichte an, um die Wahrscheinlichkeit der beobachteten Daten zu maximieren. Dieser Prozess wird als unüberwachtes Lernen bezeichnet, da wir keine expliziten Bezeichnungen für die Trainingsdaten haben.

Nach dem Training kann das RBM verwendet werden, um durch Stichproben aus der erlernten Wahrscheinlichkeitsverteilung neue Daten zu generieren. Wir können Szenarien generieren, die denen ähneln, die in den Trainingsdaten beobachtet wurden. Um unser Modell zu trainieren, verwenden wir eine RBM (Restricted Boltzmann Machine) und folgen einem Prozess der Erhöhung und Verringerung der Wahrscheinlichkeiten. Anstatt alle möglichen Szenarien zu berücksichtigen, wählen wir zufällig ein Szenario aus und erhöhen seine Wahrscheinlichkeit, während wir die Wahrscheinlichkeit eines zufällig ausgewählten Szenarios verringern. Wir wiederholen diesen Vorgang mehrmals und passen die Wahrscheinlichkeiten schrittweise an unser gewünschtes Ergebnis an. Für jeden Datenpunkt wählen wir ein Szenario aus, das ihn erweitert und seine Wahrscheinlichkeit erhöht, während wir zufällig ein anderes Szenario auswählen und seine Wahrscheinlichkeit verringern. Wir setzen diesen Prozess für den gesamten Datensatz fort und durchlaufen ihn mehrmals. Die resultierenden Wahrscheinlichkeiten stimmen gut mit unseren Daten überein und stimmen mit dem Auftreten verschiedener Szenarien überein.

Um die Wahrscheinlichkeiten zu ändern, passen wir die Gewichte des RBM an. Wir konzentrieren uns auf bestimmte Eckpunkte und Kanten, die den gewünschten Szenarien entsprechen. Indem wir die Gewichte erhöhen oder verringern, beeinflussen wir die Wahrscheinlichkeiten dieser Szenarien. Die Stichprobenziehung stellt eine Herausforderung dar, da wir Szenarien basierend auf ihren jeweiligen Wahrscheinlichkeiten auswählen möchten. Wir führen unabhängige Stichproben ein, bei denen wir nur die relevanten Eckpunkte und Kanten berücksichtigen, die mit den gewünschten Szenarien verbunden sind. Durch die Berechnung der Wahrscheinlichkeiten mithilfe der Sigmoidfunktion können wir zufällig Szenarien auswählen, deren Wahrscheinlichkeiten proportional zu ihren Gewichten sind. Um ein Szenario auszuwählen, das mit einem bestimmten Datenpunkt übereinstimmt, konzentrieren wir uns auf die relevanten Teilnehmer und ihre Verbindungen und lassen die irrelevanten außer Acht. Wir berechnen die Wahrscheinlichkeiten anhand der Gewichte und wandeln sie mithilfe der Sigmoidfunktion in Wahrscheinlichkeiten um. Dadurch können wir zufällig ein Szenario auswählen, dessen Wahrscheinlichkeiten deren Gewichtung widerspiegeln.

Um ein völlig zufälliges Szenario auszuwählen, nähern wir uns diesem an, indem wir zufällige Schritte in der Verteilung vornehmen, ähnlich wie beim Erkunden verschiedener Möglichkeiten. Obwohl es sich möglicherweise nicht um die perfekte Darstellung eines völlig zufälligen Szenarios handelt, dient es doch als gute Annäherung. Dieser Prozess ermöglicht es uns, das RBM zu trainieren und die Wahrscheinlichkeiten an unsere gewünschten Ergebnisse anzupassen und so unsere Daten effektiv zu modellieren.

Eingeschränkte Boltzmann-Maschinen wurden erfolgreich für verschiedene Aufgaben eingesetzt, beispielsweise für kollaboratives Filtern, Dimensionsreduktion und Feature-Learning. Sie werden auch als Bausteine für komplexere Deep-Learning-Modelle wie Deep-Believe-Netzwerke verwendet.

Eingeschränkte Boltzmann-Maschinen sind leistungsstarke Algorithmen, die beim maschinellen Lernen verwendet werden. Sie umfassen eine sichtbare Schicht und eine verborgene Schicht, die durch Gewichte verbunden sind. Durch die Anpassung der Gewichte durch Training können RBMs die Wahrscheinlichkeitsverteilung der Trainingsdaten lernen und neue Datenproben generieren. RBMs haben Anwendungen in verschiedenen Bereichen und sind ein wichtiger Bestandteil von Deep-Learning-Modellen.

Restricted Boltzmann Machines (RBM) - A friendly introduction
Restricted Boltzmann Machines (RBM) - A friendly introduction
  • 2020.07.07
  • www.youtube.com
CORRECTION: The score for BE is 6 and for BD is -1.A simple introduction to Restricted Boltzmann Machines (RBM) and their training process, using a real-life...
 

Eine freundliche Einführung in Deep Reinforcement Learning, Q-Netzwerke und Policy Gradients



Eine freundliche Einführung in Deep Reinforcement Learning, Q-Netzwerke und Policy Gradients

Hallo, ich bin Luis Serrano und dies ist eine freundliche Einführung in Deep Reinforcement Learning und Policy Gradients. Reinforcement Learning findet Anwendung in selbstfahrenden Autos, in der Robotik und in komplexen Spielen wie Go, Schach und Atari-Spielen. Der Hauptunterschied zwischen verstärkendem Lernen und prädiktivem maschinellen Lernen besteht darin, dass wir beim verstärkenden Lernen einen Agenten haben, der mit einer Umgebung interagiert und Belohnungen und Bestrafungen sammelt, um Daten zu erstellen, während prädiktives maschinelles Lernen auf vorhandenen Daten basiert, um ein Modell zu trainieren. In diesem Video behandeln wir wichtige Konzepte wie Markov-Entscheidungsprozesse (MDPs), die Bellman-Gleichung und wie neuronale Netze das verstärkende Lernen mit Q-Netzen und Richtliniengradienten unterstützen können.

Beginnen wir mit einem Beispiel für verstärkendes Lernen mithilfe eines MDP namens Grid World. In Grid World haben wir ein Gitter, das das Universum darstellt, und unseren Agenten, der als Kreis dargestellt wird. Das Gitter enthält spezielle Felder, darunter Felder mit Geld und ein Feld mit einem Drachen, der zum Spielende führt. Das Ziel des Agenten besteht darin, die Punkte zu maximieren, indem er sich im Raster bewegt und Belohnungen oder Strafen einsammelt. Die beste Strategie für den Agenten können wir mithilfe der Bellman-Gleichung ermitteln, die den Wert jedes Zustands auf der Grundlage der Maximalwerte seiner Nachbarzustände berechnet. Anschließend können wir eine Richtlinie ableiten, die dem Agenten Anweisungen für den besten Weg zur Punktemaximierung gibt.

Um die Effizienz der Police zu verbessern, führen wir Prämien und einen Rabattfaktor ein. Belohnungen stellen Punkte dar, die bei einem Schritt gewonnen oder verloren werden, und der Rabattfaktor berücksichtigt den Wert zukünftiger Belohnungen im Vergleich zu unmittelbaren Belohnungen. Indem wir Belohnungen und den Rabattfaktor berücksichtigen, können wir die Werte der Staaten anpassen und die Bellman-Gleichung entsprechend aktualisieren. Durch Iterieren und Aktualisieren von Werten können wir die optimalen Werte für jeden Zustand ermitteln und die Richtlinie bestimmen, die den Agenten zu den höchsten Punkten führt.

Durch das Verständnis der Bellman-Gleichung und die Verwendung von Belohnungs- und Rabattfaktoren können wir MDPs lösen und die beste Richtlinie für verstärktes Lernen finden. Die linke Seite zeigt an, dass der Agent nach rechts gehen sollte, um den besten Wert zu finden. Die Richtlinie weist den Agenten an, sich mit einer Wahrscheinlichkeit von 1 nach rechts und mit einer Wahrscheinlichkeit von 0 in andere Richtungen zu bewegen. Im Gegensatz dazu würde eine stochastische Richtlinie eine Bewegung nach rechts stark begünstigen, anderen Richtungen jedoch aufgrund der erzielten Belohnungen eine Chance geben . Beispielsweise priorisiert die stochastische Richtlinie auf der rechten Seite den Staat auf der rechten Seite, weil er den höchsten Wert hat, während der Staat auf der linken Seite aufgrund seiner niedrigen Punktzahl die niedrigste Priorität hat. Allerdings sind die Wahrscheinlichkeiten immer noch ungleich Null, sodass der Agent den Raum erkunden kann, auch wenn er nicht immer die beste Belohnung erhält.

Lassen Sie uns nun die Rolle neuronaler Netze in diesem Prozess diskutieren. Anstatt den Agenten wiederholt alle Staaten besuchen zu lassen, was teuer ist, können wir ein neuronales Netzwerk verwenden, um Informationen aus einigen Staaten zu sammeln. Das neuronale Netzwerk kann lernen, dass Zustände mit ähnlichen Koordinaten ähnliche Werte haben sollten. Wir verwenden ein Wertenetzwerk, bei dem die Eingabe die Koordinaten eines Punktes und die Ausgabe die Punktzahl an diesem Punkt ist. Ebenso können wir ein Richtliniennetzwerk verwenden, um die Richtlinien in jedem Staat anzunähern. Das Richtliniennetzwerk verwendet die Koordinaten als Eingabe und gibt vier Zahlen aus, die die Wahrscheinlichkeiten der Bewegung nach oben, rechts, unten und links darstellen. Um das Wertenetzwerk zu trainieren, zwingen wir es, die Bellman-Gleichung zu erfüllen, die den Wert eines Staates mit seinen Nachbarstaaten in Beziehung setzt. Wir verwenden die Werte des neuronalen Netzwerks in benachbarten Zuständen und passen den Wert in der Mitte an, um die Gleichung zu erfüllen. Durch wiederholte Aktualisierung des neuronalen Netzwerks basierend auf der Bellman-Gleichung können wir die Werte aller Zustände annähern.

Für das Richtliniennetzwerk trainieren wir es, indem wir Pfade basierend auf der aktuellen Richtlinie einschlagen und jede Aktion mit dem entsprechenden Gewinn kennzeichnen. Wir erstellen einen Datensatz mit Gewinn, Koordinaten und Aktionen und geben ihn an das Richtliniennetzwerk weiter. Wir ermutigen oder entmutigen das Netzwerk dann, bestimmte Maßnahmen auf der Grundlage des Gewinns zu ergreifen. Indem wir diesen Prozess mit unterschiedlichen Pfaden wiederholen, können wir das Richtliniennetzwerk im Laufe der Zeit verbessern. Wir nutzen neuronale Netze, um die Werte und die Politik von Staaten anzunähern. Das Wertnetzwerk hilft uns, den Wert jedes Staates abzuschätzen, während das Richtliniennetzwerk die Aktionen des Agenten steuert. Das Training beinhaltet die wiederholte Aktualisierung der Netzwerke basierend auf der Bellman-Gleichung und der pfadbasierten Beschriftung.

Da wir nun die Werte für jeden Staat und die entsprechenden Richtlinien haben, können wir diese nutzen, um Entscheidungen im Spiel zu treffen. Die Richtlinie teilt uns anhand der von uns berechneten Werte mit, welche Maßnahmen in jedem Bundesstaat am besten zu ergreifen sind. Befindet sich der Agent beispielsweise in einem bestimmten Zustand und möchte wissen, welche Maßnahmen er ergreifen soll, schaut er sich einfach die Richtlinie an und folgt dem Pfeil, der auf den Nachbarstaat mit dem höchsten Wert zeigt. Dadurch wird sichergestellt, dass der Agent den optimalen Weg einschlägt, um seine Belohnungen zu maximieren. Im Fall unseres Grid-World-Spiels kann die Richtlinie den Agenten anleiten, Hindernissen auszuweichen und so schnell wie möglich die Endzustände mit den höchsten Belohnungen zu erreichen. Durch Befolgen der Richtlinie kann der Agent durch die Grid-Welt navigieren und Punkte sammeln, während er gleichzeitig negative Belohnungen vermeidet.

Reinforcement-Learning-Algorithmen wie Q-Learning oder Policy Gradients können verwendet werden, um die optimalen Richtlinien und Werte für komplexere Umgebungen zu finden. Diese Algorithmen nutzen die Konzepte von Markov-Entscheidungsprozessen und der Bellman-Gleichung, um die Werte iterativ zu aktualisieren und die Richtlinie im Laufe der Zeit zu verbessern. Neuronale Netze können auch zur Handhabung großer und komplexer Zustandsräume eingesetzt werden. Q-Netzwerke und Richtliniengradientenmethoden nutzen neuronale Netze, um die Werte oder Richtlinienfunktionen anzunähern, was ein effizienteres und effektiveres Lernen bei verstärkenden Lernaufgaben ermöglicht.

Durch die Kombination von Reinforcement-Learning-Algorithmen und neuronalen Netzen können wir herausfordernde Probleme wie selbstfahrende Autos, Robotik und komplexe Spiele angehen. Diese Techniken haben vielfältige Anwendungsmöglichkeiten und treiben das Gebiet der künstlichen Intelligenz weiter voran.

Beim Reinforcement-Learning geht es darum, einem Agenten beizubringen, in einer Umgebung Entscheidungen zu treffen, indem er mit dieser interagiert und Belohnungen sammelt. Der Agent nutzt die aus der Bellman-Gleichung abgeleiteten Werte und Richtlinien, um sich in der Umgebung zurechtzufinden und seine Belohnungen zu maximieren. Neuronale Netze können zur Bewältigung komplexerer Probleme beim Reinforcement Learning eingesetzt werden.

A friendly introduction to deep reinforcement learning, Q-networks and policy gradients
A friendly introduction to deep reinforcement learning, Q-networks and policy gradients
  • 2021.05.24
  • www.youtube.com
A video about reinforcement learning, Q-networks, and policy gradients, explained in a friendly tone with examples and figures.Introduction to neural network...
 

Eine freundliche Einführung in maschinelles Lernen



Eine freundliche Einführung in maschinelles Lernen

Hallo und willkommen in der Welt des maschinellen Lernens. Heute werden wir untersuchen, worum es beim maschinellen Lernen geht. In dieser Welt gibt es Menschen und Computer, und ein wesentlicher Unterschied zwischen ihnen besteht in der Art und Weise, wie sie lernen. Menschen lernen aus vergangenen Erfahrungen, während Computer programmiert werden und Anweisungen befolgen müssen. Aber können wir auch Computern beibringen, aus Erfahrungen zu lernen? Die Antwort lautet „Ja“, und hier kommt maschinelles Lernen ins Spiel. Im Bereich der Computer werden vergangene Erfahrungen als Daten bezeichnet.

In den folgenden Minuten präsentiere ich Ihnen einige Beispiele, die zeigen, wie wir Computern beibringen können, aus früheren Daten zu lernen. Das Spannende daran ist, dass diese Algorithmen recht einfach sind und maschinelles Lernen kein Grund zur Angst ist. Lassen Sie uns in unser erstes Beispiel eintauchen. Stellen Sie sich vor, wir untersuchen den Immobilienmarkt und unsere Aufgabe besteht darin, den Preis eines Hauses anhand seiner Größe vorherzusagen. Wir haben Daten zu verschiedenen Häusern gesammelt, einschließlich ihrer Größe und Preise. Indem wir diese Daten in einem Diagramm darstellen, wobei die x-Achse die Hausgröße in Quadratfuß und die y-Achse den Preis in Dollar darstellt, können wir die Beziehung zwischen beiden visualisieren. Wir stellen fest, dass die Datenpunkte ungefähr eine Linie bilden.

Mit einer Methode namens lineare Regression können wir eine Linie zeichnen, die am besten zu den Datenpunkten passt. Diese Linie stellt unsere beste Schätzung zur Vorhersage des Preises eines Hauses angesichts seiner Größe dar. Durch die Untersuchung der Grafik können wir den Preis eines mittelgroßen Hauses schätzen, indem wir den entsprechenden Punkt auf der Linie identifizieren. Mithilfe der linearen Regression können wir die am besten passende Linie finden, indem wir die Fehler zwischen der Linie und den Datenpunkten minimieren. Die lineare Regression ist nur ein Beispiel für einen Algorithmus für maschinelles Lernen. Es ist relativ einfach und effektiv, wenn die Daten eine lineare Beziehung bilden. Abhängig von der Art des Problems können wir jedoch ähnliche Methoden verwenden, um andere Datentypen wie Kurven, Kreise oder Polynome höheren Grades anzupassen.

Kommen wir nun zu einem anderen Beispiel. Angenommen, wir möchten ein E-Mail-Spam-Erkennungssystem aufbauen. Wir haben Daten zu früheren E-Mails gesammelt, einschließlich der Frage, ob diese als Spam markiert wurden oder nicht. Durch die Analyse dieser Daten können wir Merkmale identifizieren, die wahrscheinlich darauf hinweisen, ob es sich bei einer E-Mail um Spam handelt oder nicht. Beispielsweise stellen wir möglicherweise fest, dass E-Mails, die das Wort „billig“ enthalten, häufig als Spam gekennzeichnet werden. Mit dem naiven Bayes-Algorithmus können wir diesen Merkmalen Wahrscheinlichkeiten zuordnen. Wenn in diesem Fall eine E-Mail das Wort „billig“ enthält, stellen wir fest, dass 80 % dieser E-Mails als Spam markiert werden. Durch die Kombination mehrerer Merkmale und der damit verbundenen Wahrscheinlichkeiten können wir einen Klassifikator erstellen, der anhand seiner Merkmale vorhersagt, ob es sich bei einer E-Mail um Spam handelt oder nicht.

Kommen wir zu unserem nächsten Beispiel: Nehmen wir an, wir arbeiten im App Store oder bei Google Play und unser Ziel ist es, Benutzern Apps zu empfehlen. Wir können Daten über Benutzer, ihre Eigenschaften und die von ihnen heruntergeladenen Apps sammeln. Durch die Analyse dieser Daten können wir einen Entscheidungsbaum erstellen, der unsere Empfehlungen leitet. Der Entscheidungsbaum besteht aus Fragen basierend auf Benutzereigenschaften, die zur Empfehlung bestimmter Apps führen. Beispielsweise könnten wir fragen, ob der Benutzer jünger als 20 Jahre ist. Basierend auf der Antwort können wir eine bestimmte App empfehlen. Wenn der Benutzer älter ist, können wir eine andere Frage stellen, beispielsweise nach seinem Geschlecht, um unsere Empfehlung weiter zu verfeinern. Der Entscheidungsbaum hilft uns, personalisierte App-Empfehlungen basierend auf Benutzerattributen zu geben.

Betrachten wir abschließend die Zulassungsstelle einer Universität. Sie versuchen anhand von zwei Informationen zu bestimmen, welche Studenten zugelassen werden sollen: einem Ergebnis der Aufnahmeprüfung und den Noten der Studenten. Durch die Analyse der Daten bereits zugelassener und abgelehnter Studierender können wir ein logistisches Regressionsmodell erstellen.

Mithilfe der logistischen Regression können wir eine Linie ziehen, die die Datenpunkte angenommener und abgelehnter Studierender trennt. Diese Linie stellt die Entscheidungsgrenze für die Entscheidung dar, ob ein Student zugelassen oder abgelehnt wird. Das logistische Regressionsmodell berechnet die Wahrscheinlichkeit einer Zulassung basierend auf dem Ergebnis und den Noten der Aufnahmeprüfung. Sobald die Entscheidungsgrenze festgelegt ist, können neue Studierende bewertet werden, indem ihr Ergebnis und ihre Noten in der Aufnahmeprüfung in einem Diagramm dargestellt werden. Wenn der Punkt über der Entscheidungsgrenze liegt, sagt das Modell die Zulassung voraus; Bei Unterschreitung sagt das Modell eine Ablehnung voraus. Dies sind nur einige Beispiele für maschinelle Lernalgorithmen und wie sie auf verschiedene Bereiche angewendet werden können. Durch maschinelles Lernen können Computer aus Daten lernen und Vorhersagen oder Entscheidungen treffen, ohne für jedes Szenario explizit programmiert zu werden. Es ermöglicht Automatisierung, Mustererkennung und die Fähigkeit, komplexe und große Datenmengen zu verarbeiten.

Es ist wichtig zu beachten, dass maschinelles Lernen Daten zum Lernen erfordert. Qualität und Relevanz der Daten spielen eine wesentliche Rolle für die Genauigkeit und Wirksamkeit der Modelle. Darüber hinaus müssen Modelle des maschinellen Lernens anhand eines repräsentativen Datensatzes trainiert und validiert werden, um ihre Generalisierbarkeit sicherzustellen.

Maschinelles Lernen ist ein sich schnell entwickelndes Feld mit zahlreichen Algorithmen, Techniken und Anwendungen. Forscher und Praktiker erforschen ständig neue Methoden und erweitern die Grenzen des Möglichen. Da die Technologie voranschreitet und mehr Daten verfügbar werden, wird erwartet, dass maschinelles Lernen einen immer größeren Einfluss auf verschiedene Branchen und Aspekte unseres Lebens haben wird.

A Friendly Introduction to Machine Learning
A Friendly Introduction to Machine Learning
  • 2016.09.09
  • www.youtube.com
Grokking Machine Learning Book: https://www.manning.com/books/grokking-machine-learning40% discount promo code: serranoytA friendly introduction to the main ...
 

Maschinelles Lernen: Tests und Fehlermetriken



Maschinelles Lernen: Tests und Fehlermetriken

Hallo und willkommen zu diesem Tutorial zu maschinellen Lerntests und Fehlermetriken. Mein Name ist Luis Serrano und ich arbeite bei Udacity, wo ich maschinelles Lernen unterrichte. Das ist ein Bild von mir. Heute konzentrieren wir uns auf zwei Fragen: Erstens: Wie gut schlägt sich mein Modell? Wenn wir das herausgefunden haben, wie können wir es anhand dieser Kennzahlen verbessern? Lassen Sie uns gleich eintauchen und uns einige Daten ansehen. Wir haben blaue und rote Punkte und möchten ein Modell trainieren, um sie zu trennen. Unser einfachstes Modell ist ein lineares Modell, also eine Linie, die die Daten in Blau und Rot schneidet. Es macht einige Fehler, ist aber im Großen und Ganzen gut. Betrachten wir auch ein komplexeres Modell, das ein Polynom höheren Grades verwendet. Dieses Modell ist besser darin, die Punkte zu trennen, aber welches Modell ist zwischen den beiden besser?

Um diese Frage zu beantworten, müssen wir Tests verwenden. Anstatt alle Punkte für das Training zu verwenden, teilen wir sie in Trainings- und Testsätze auf. Die Trainingspunkte werden zum Trainieren des Modells verwendet, während die Testpunkte zur Bewertung der Leistung des Modells verwendet werden. In unserem Beispiel macht das lineare Modell einen Fehler beim Testsatz, während das Polynommodell zwei Fehler macht. Daher schneidet das lineare Modell beim Testsatz besser ab, da es besser verallgemeinert.

Beim Testen sind einige wichtige Regeln zu beachten. Die erste goldene Regel besteht darin, Ihre Testdaten niemals für Schulungen zu verwenden. Halten Sie Ihre Testdaten getrennt und verwenden Sie sie nur zur Auswertung. Die zweite Regel besteht darin, sicherzustellen, dass Ihre Freunde ihre Testdaten nicht auch zum Training verwenden. Schließlich betont die dritte Regel, dass Sie Ihre Testdaten niemals für das Training verwenden dürfen. Es ist wichtig, einen versehentlichen Missbrauch der Testdaten zu vermeiden.

Auch wenn es den Anschein hat, als würden wir Daten durch die Aufteilung in Trainings- und Testsätze verschwenden, gibt es eine Möglichkeit, dieses Problem anzugehen. Wir können die Daten in k gleiche Mengen aufteilen, typischerweise mithilfe einer Technik namens k-fache Kreuzvalidierung. Jeder Teil der Daten wird sowohl für das Training als auch für Tests verwendet und die Ergebnisse werden am Ende gemittelt. Dieser Ansatz ermöglicht es uns, die Daten besser zu nutzen und gleichzeitig die Leistung des Modells zu bewerten.

Lassen Sie uns nun die Metriken besprechen, die uns helfen zu beurteilen, wie gut unsere Modelle funktionieren. Eine gängige Metrik ist die Genauigkeit, die misst, wie viele Instanzen das Modell im Vergleich zur Gesamtzahl der Instanzen korrekt klassifiziert. Allerdings ist Genauigkeit allein möglicherweise nicht immer der beste Maßstab, wie die Beispiele zur Erkennung von Kreditkartenbetrug, zur medizinischen Diagnostik und zur Spam-Klassifizierung zeigen. In diesen Fällen haben falsch-negative und falsch-positive Ergebnisse unterschiedliche Auswirkungen.

Um die Modelle effektiver bewerten zu können, verwenden wir eine Verwirrungsmatrix. Diese Matrix stellt vier Möglichkeiten dar: echte Positive, echte Negative, falsche Positive und falsche Negative. Jedes davon stellt unterschiedliche Ergebnisse dar, die auf den Vorhersagen des Modells im Vergleich zu den tatsächlichen Daten basieren. Beispielsweise bedeutet in der medizinischen Diagnostik ein falsch negatives Ergebnis, dass eine erkrankte Person als gesund eingestuft wird, was schlimmer ist als ein falsch positives Ergebnis. Ebenso bedeutet ein falsch positives Ergebnis bei der Spam-Klassifizierung, dass eine E-Mail, die kein Spam ist, als Spam markiert wird, was schlimmer ist als ein falsch negatives Ergebnis.

Indem wir den spezifischen Kontext und die Folgen falsch positiver und falsch negativer Ergebnisse berücksichtigen, können wir geeignete Metriken für die Bewertung unserer Modelle auswählen. Genauigkeit allein erfasst möglicherweise nicht das ganze Bild, und andere Metriken wie Präzision, Erinnerung und F1-Score können weitere Einblicke in die Leistung des Modells liefern.

Können wir diese beiden Partituren zu einer kombinieren? Eine einfache Möglichkeit, Präzisions- und Erinnerungswerte zu kombinieren, besteht darin, deren Durchschnitt zu ermitteln. Berechnen wir den Durchschnitt für die angegebenen Präzisions- und Erinnerungswerte. Links beträgt die Genauigkeit 69,5 und rechts 66,95. Wenn wir den Durchschnitt dieser beiden Werte bilden, erhalten wir 68,225. Dieser Durchschnitt liefert jedoch möglicherweise keine ausreichenden Informationen und weicht möglicherweise nicht wesentlich von der Genauigkeit ab. Um die Auswirkungen dieses Durchschnittswerts zu verstehen, betrachten wir ein extremes Beispiel zur Erkennung von Kreditkartenbetrug.

Im Beispiel haben wir zwei Modelle: eines, das alle Transaktionen als gut einstuft, und ein anderes, das alle Transaktionen als betrügerisch einstuft. Berechnen wir die Präzision und den Rückruf für beide Modelle.

Für das Modell, das alle Transaktionen als gut klassifiziert, beträgt die Genauigkeit 100 % (da alle als schlecht eingestuften Transaktionen tatsächlich gut sind), und der Rückruf beträgt 0 % (da keine der betrügerischen Transaktionen erkannt wird). Wenn wir den Durchschnitt aus Präzision und Erinnerung nehmen, kämen wir auf 50 %. Einem Modell mit schlechter Leistung eine so hohe Punktzahl zu geben, erscheint jedoch nicht angemessen. Ebenso beträgt die Genauigkeit für das Modell, das alle Transaktionen als betrügerisch klassifiziert, 0,16 % (472 aller Transaktionen wurden korrekt klassifiziert) und der Rückruf beträgt 100 % (da alle betrügerischen Transaktionen abgefangen werden). Auch hier würde der Durchschnitt zwischen Präzision und Rückruf bei etwa 50 % liegen, was die schlechte Leistung des Modells nicht genau widerspiegelt.

Um diese Einschränkung zu überwinden, können wir eine andere Art von Durchschnitt verwenden, den sogenannten harmonischen Mittelwert, der auch als F1-Score bekannt ist. Das harmonische Mittel wird nach der Formel 2 * (Präzision * Rückruf) / (Präzision + Rückruf) berechnet. Der F1-Score bietet eine ausgewogenere Darstellung, insbesondere wenn sich eine Metrik (Präzision oder Erinnerung) deutlich von der anderen unterscheidet.

Für das medizinische Modell beträgt die Präzision 55,7 und der Rückruf 83,3. Wenn wir den F1-Score mithilfe der harmonischen Mittelwertformel berechnen, erhalten wir 66,76 %. Für das Spam-Erkennungsmodell beträgt die Genauigkeit 76,9 und der Rückruf 37. Der F1-Score beträgt 49,96 %. Und für das lineare Modell beträgt die Präzision 75 und der Rückruf 85,7. Der F1-Score liegt bei 80 %.

Wenn wir im Fall der Kreditkartenbetrugsmodelle lieber alle betrügerischen Transaktionen auffangen möchten, würden wir dem Rückruf Vorrang einräumen. Eine gute Metrik wäre in diesem Fall also eher die Erinnerung als die Präzision.

Test- und Fehlermetriken sind für die Bewertung und Verbesserung von Modellen für maschinelles Lernen von entscheidender Bedeutung. Das Befolgen der goldenen Testregeln, die Auswahl geeigneter Metriken und die Berücksichtigung der Konsequenzen falsch positiver und falsch negativer Ergebnisse helfen uns, fundierte Entscheidungen über unsere Modelle zu treffen.

Die Kombination von Präzision und Erinnerung in einem einzigen Score kann mithilfe des F1-Scores erfolgen, der das harmonische Mittel der beiden Metriken annimmt. Dies sorgt für eine ausgewogenere Auswertung und ist besonders nützlich, wenn sich eine Metrik deutlich von der anderen unterscheidet.

Machine Learning: Testing and Error Metrics
Machine Learning: Testing and Error Metrics
  • 2017.03.16
  • www.youtube.com
Announcement: New Book by Luis Serrano! Grokking Machine Learning. bit.ly/grokkingML40% discount code: serranoytA friendly journey into the process of evalua...
 

ROC-Kurve (Receiver Operating Characteristic) in 10 Minuten!



ROC-Kurve (Receiver Operating Characteristic) in 10 Minuten!

Grüße! Ich bin Luis Serrano und in diesem Video besprechen wir die ROC-Kurve (Receiver Operating Characteristic). Die ROC-Kurve wird häufig zur Bewertung von Modellen für maschinelles Lernen und zum Treffen wichtiger Entscheidungen verwendet.

Beginnen wir mit einem Datensatz, der blaue und rote Punkte enthält, wobei die blauen Punkte als positiv und die roten als negativ gekennzeichnet sind. Wir werden ein maschinelles Lernmodell erstellen, das zu diesem Datensatz passt. Betrachten Sie zum Beispiel diese Zeile. Beachten Sie, dass die blaue Seite der Linie jeden Punkt auf dieser Seite als blau oder positiv klassifiziert, während die rote Seite Punkte auf dieser Seite als rot oder negativ klassifiziert. Allerdings macht das Modell einige Fehler. Ein Beispiel ist der rote Punkt im blauen Bereich, der falsch positiv ist. Ein weiteres Beispiel ist der blaue Punkt unterhalb der Linie im roten Bereich, der falsch negativ ist. Um falsch-positive und falsch-negative Ergebnisse besser zu verstehen, schauen Sie sich mein anderes Video zu maschinellen Lerntests und Fehlermetriken an.

Betrachten wir nun zwei verschiedene Beispiele für denselben Modelltyp. Das Modell links ist ein medizinisches Modell, bei dem die positiven Punkte kranke Patienten und die negativen Punkte gesunde Patienten darstellen. Andererseits ist das Modell rechts ein Spam-Erkennungsmodell, bei dem die positiven Punkte Spam-Nachrichten und die negativen Punkte Nicht-Spam- oder „Ham“-Nachrichten sind.

Im medizinischen Modell kommt es zu einem falsch positiven Ergebnis, wenn eine gesunde Person als krank diagnostiziert wird, was zu unnötigen Tests führt. Ein falsch negatives Ergebnis liegt vor, wenn eine kranke Person als gesund diagnostiziert wird und keine Behandlung erfolgt. In diesem Fall gelten falsch-negative Ergebnisse als schlimmer, da es besser ist, eine gesunde Person zu zusätzlichen Tests zu schicken, als eine kranke Person ohne Behandlung nach Hause zu schicken. Unser Ziel ist es daher, das Modell zu modifizieren, um falsch-negative Ergebnisse zu reduzieren.

Im Spam-Erkennungsmodell sind falsch positive E-Mails gute „Ham“-E-Mails, die als Spam klassifiziert und an den Spam-Ordner gesendet werden. Falsch-negativ sind Spam-E-Mails, die fälschlicherweise als „Ham“ klassifiziert und im Posteingang zugestellt werden. Hier gelten Fehlalarme als schlimmer, da der Empfang gelegentlicher Spam-E-Mails im Posteingang gegenüber wichtigen E-Mails, die als Spam markiert werden, bevorzugt wird. Daher konzentrieren wir uns in diesem Modell auf die Reduzierung falsch positiver Ergebnisse.

Diese beiden Modelle stellen Extreme dar, und die meisten Modelle liegen irgendwo dazwischen und tolerieren einige falsch-positive oder falsch-negative Ergebnisse. Die jedem Fehlertyp zugewiesene Bedeutung kann jedoch unterschiedlich sein. Daher müssen wir für jeden Modelltyp den optimalen Punkt zum Festlegen des Klassifizierungsschwellenwerts bestimmen.

In diesem Video zeige ich Ihnen eine nützliche Methode, um solche Entscheidungen zu treffen. Wir betrachten einen hypothetischen Datensatz, der durch diese Linie dargestellt wird. Unsere Modelle werden Parallelübersetzungen dieser Linie sein. Für jedes Modell erfassen wir die Anzahl der korrekt klassifizierten roten und blauen Punkte.

Wir beginnen mit der Linie unten, wo alle blauen Punkte richtig klassifiziert sind und keiner der roten Punkte richtig klassifiziert ist. Das ergibt 0 richtige rote Punkte und 5 richtige blaue Punkte. Wir zeichnen diese Werte auf und verschieben die Linie, um jeweils einen Punkt abzudecken und die korrekten Klassifizierungen aufzuzeichnen. Dieser Prozess dauert bis zum Ende. Am Ende haben wir immer 5 richtige blaue Punkte und 0 richtige rote Punkte. Wir zeichnen diese Punkte ein und berechnen die Fläche unter der Kurve. In diesem Fall beträgt die Fläche 21 von 25 Quadraten, was zu einer Fläche unter der Kurve von 0,84 führt. Der Bereich liegt zwischen 0 und 1, wobei höhere Werte auf eine bessere Modellleistung hinweisen. Wir können diese ROC-Kurve verwenden, um Entscheidungen über unser Modell zu treffen. Ein gutes Modell würde durch einen Punkt auf der Kurve dargestellt werden, der wenige falsch-positive und falsch-negative Ergebnisse aufweist. Abhängig von unseren spezifischen Anforderungen, wie zum Beispiel der Minimierung falsch-negativer Ergebnisse im medizinischen Modell oder falsch-positiver Ergebnisse im Spam-Erkennungsmodell, können wir die entsprechenden Punkte auf der Kurve auswählen.

Alternativ können wir die Datenpunkte so betrachten, dass sie vom Modell Bewertungen zwischen 0 und 1 aufweisen. Durch die Anwendung eines Schwellenwerts können wir diese Ergebnisse in diskrete Vorhersagen umwandeln. Wir passen den Schwellenwert an und beobachten, wie sich das Modell auf verschiedenen Ebenen verhält. Dieser Prozess erstellt die ROC-Kurve. Die Auswahl eines Punktes auf der Kurve hilft uns, einen geeigneten Schwellenwert für unsere Vorhersagen auszuwählen. Darüber hinaus ist zu beachten, dass eine Fläche unter der Kurve von weniger als 0,5 nicht auf ein schlechteres Modell hinweist. Tatsächlich kann es immer noch ein gutes Modell sein. Beispielsweise entspricht ein Modell mit einer Fläche von 0 einem Modell, das alle Fehler macht, aber wenn wir die Vorhersagen umdrehen, wird es fast so gut wie ein Modell, das keine Fehler macht. Daher können Modelle mit Flächen unter 0,5 immer noch effektiv sein.

Danke für Ihre Aufmerksamkeit! Wenn Ihnen dieses Video gefallen hat, abonnieren Sie es bitte für weitere Inhalte. Fühlen Sie sich frei, es zu liken, zu teilen und zu kommentieren, insbesondere wenn Sie Vorschläge für zukünftige Videos haben. Sie können mich auch auf Twitter unter @LuisLikesMath erreichen. Weitere Informationen zu Videos, Büchern und Kursen finden Sie in der Luis Serrano Academy. Wir sehen uns im nächsten Video!

ROC (Receiver Operating Characteristic) Curve in 10 minutes!
ROC (Receiver Operating Characteristic) Curve in 10 minutes!
  • 2020.07.14
  • www.youtube.com
The ROC curve is a very effective way to make decisions on your machine learning model based on how important is it to not allow false positives or false neg...