Maschinelles Lernen und neuronale Netze - Seite 32

 

Lektion 4: Praktisches Deep Learning für Programmierer 2022



Lektion 4: Praktisches Deep Learning für Programmierer 2022

In diesem Video wird erklärt, wie man ein Deep-Learning-Modell für den Coders 2022-Wettbewerb erstellt. Der Autor behandelt, wie Sie einen Validierungssatz erstellen, wie Sie Wettbewerbsdaten verwenden, um die Leistung Ihres Modells zu testen, und wie Sie eine Überanpassung in realen Umgebungen vermeiden. In diesem Video erklärt Jeremy, wie man den Pearson-Korrelationskoeffizienten verwendet, um die Beziehung zwischen zwei Variablen zu messen, und wie man mit Pytorch ein Modell trainiert, das sich wie ein fast.ai-Lerner verhält. Er erörtert auch ein Problem mit Vorhersagen, die von NLP-Techniken generiert werden, und wie es durch die Verwendung einer Sigmoidfunktion gelöst werden kann.

  • 00:00:00 In diesem Video wird erläutert, wie Sie ein vortrainiertes Modell zur Verarbeitung natürlicher Sprache mithilfe einer anderen Bibliothek als fast.ai optimieren.

  • 00:05:00 Dieses Video behandelt den Algorithmus „Practical Deep Learning for Coders 2022“, ULMFiT. ULMFiT war ein maschineller Lernalgorithmus, der erstmals in einem fast.ai-Kurs vorgestellt wurde. ULMFiT wurde später vom Autor in eine wissenschaftliche Arbeit umgewandelt. Nach dem Training mit Wikipedia- und IMDB-Filmrezensionen war der Algorithmus in der Lage, die Stimmung einer Rezension mit einer Genauigkeit von 70 % vorherzusagen.

  • 00:10:00 In dieser Lektion erklärte Jeremy die Grundlagen des maskierten Sprachmodells von Transformers für maschinelles Lernen. Er stellte fest, dass dieser Ansatz beliebter sei als der ULMFiT-Ansatz und dass das Transformatormodell fünf Schichten habe. John stellte eine Frage dazu, wie man von einem Modell, das das nächste Wort vorhersagt, zu einem Modell übergeht, das für die Klassifizierung verwendet werden kann. Jeremy sagte, dass Sie Kantendetektoren und Gradientendetektoren in den ersten Schichten benötigen würden und dass die letzte Schicht Aktivierungen für jede Kategorie haben würde, die Sie vorhersagen. Er sagte, dass Sie dieses Modell trainieren können, indem Sie am Ende nach und nach eine neue Zufallsmatrix hinzufügen.

  • 00:15:00 Der Kaggle-Wettbewerb „US Patent Phrase to Phrase Matching Competition“ erfordert ein Modell, das automatisch feststellen kann, welche Anker- und Zielpaare über dasselbe sprechen. In diesem Video schlägt der Moderator vor, die Daten in ein Klassifizierungsproblem umzuwandeln, um NLP-Techniken zu nutzen.

  • 00:20:00 In diesem Video wird erklärt, wie man Deep Learning auf praktische Weise für die Klassifizierung nutzt, indem man mit einem Datensatz arbeitet, der bereits im CSV-Format (Comma-Separated Value) gespeichert ist. Das Video behandelt auch die Verwendung von Pandas zum Lesen der Daten.

  • 00:25:00 Dieses Video behandelt die Verwendung von vier Bibliotheken für Deep Learning – numpy, matplotlib, pandas und pytorch. Der Autor empfiehlt, „Python for Data Analysis“ von Wes McKinney zu lesen, wenn Sie mit diesen Bibliotheken nicht vertraut sind. Der erste Schritt beim Trainieren eines neuronalen Netzes besteht darin, die Daten in Tokens umzuwandeln, und der zweite Schritt besteht darin, das Netz zu trainieren.

  • 00:30:00 In diesem Video erklärt der Moderator, wie man einen Text in Token zerlegt und die Token nummeriert, um einen Hugging-Face-"Datensatz" zu erstellen. Der Referent empfiehlt die Verwendung eines vortrainierten Modells für die Tokenisierung und beschreibt einige der verschiedenen verfügbaren Modelle.

  • 00:35:00 In diesem Video erklärt der Moderator, wie man mit einem Tokenizer einen Satz tokenisiert und die Tokens in Zahlen umwandelt. Der Datensatz ist derselbe wie der ursprüngliche Datensatz, aber der tokenisierte Datensatz unterscheidet sich aufgrund des Tokenizers.

  • 00:40:00 Das Video erläutert, wie Textfolgen in Zahlen umgewandelt werden, um Deep Learning zu ermöglichen, und erklärt, dass es nicht notwendig ist, einem festgelegten Format zu folgen, solange die Informationen bereitgestellt werden. Wenn ein Feld besonders lang ist, kann es hilfreich sein, einen Transformatoransatz zu verwenden.

  • 00:45:00 In diesem Video erklärt der Autor, wie wichtig separate Trainings-, Validierungs- und Testsätze für maschinelles Lernen sind. Sie zeigen, wie eine Polynomregression grafisch dargestellt wird, und veranschaulichen den Unterschied zwischen Underfit und Overfit.

  • 00:50:00 Das Video erklärt, wie Sie ein gutes Validierungsset für ein Deep-Learning-Modell erstellen und Wettbewerbsdaten verwenden, um die Leistung Ihres Modells zu testen. Außerdem wird erläutert, wie eine Überanpassung in realen Umgebungen vermieden werden kann.

  • 00:55:00 In diesem Video erfahren wir mehr über Deep Learning und wie man Modelle für Coders 2022-Wettbewerbe erstellt. Wir lernen, dass ein Validierungssatz ein Satz von Bildern ist, die nicht zum Trainieren des Modells verwendet werden, und dass ein Testsatz ein weiterer Validierungssatz ist, der zum Messen der Genauigkeit verwendet wird. Wir erfahren auch, dass es zwei Testsets gibt – das eine, das während des Wettbewerbs auf der Rangliste angezeigt wird, und ein zweites Testset, das erst nach Beendigung des Wettbewerbs angezeigt wird.

  • 01:00:00 Der „Pearson-Korrelationskoeffizient“ ist ein weit verbreitetes Maß dafür, wie ähnlich zwei Variablen sind. Wenn Ihre Vorhersagen den realen Werten sehr ähnlich sind, wird der "Pearson-Korrelationskoeffizient" hoch sein.

  • 01:05:00 In diesem 1-minütigen Video wird erläutert, wie der Pearson-Korrelationskoeffizient verwendet wird, um die Beziehung zwischen zwei Variablen zu messen. Der Korrelationskoeffizient ist ein Maß dafür, wie eng zwei Variablen miteinander verbunden sind, und kann verwendet werden, um die Stärke einer Beziehung zwischen zwei Variablen zu beurteilen. Der Korrelationskoeffizient kann mithilfe eines Streudiagramms visualisiert werden und kann nützlich sein, um den Datensatz zu bewerten, für den er verwendet wird.

  • 01:10:00 In diesem Video erläutert der Moderator, wie ein Deep-Learning-Modell richtig trainiert wird. Sie behandeln Themen wie Korrelation, Ausreißer und die richtige Aufteilung von Daten. Anschließend zeigen sie, wie man das Modell mit einem „Lernenden“ in fast.ai trainiert und wie man „Stapelgröße“ und „Epochen“ verwendet, um zu steuern, wie viele Zeilen gleichzeitig verarbeitet werden.

  • 01:15:00 Hugging Face Transformers bietet eine Vielzahl von Lernraten für verschiedene Aufgaben und stellt ein Modell bereit, das zum Klassifizieren von Sequenzen aus einem vortrainierten Modell geeignet ist. Es kann auch Ausreißer in den Daten identifizieren.

  • 01:20:00 In dieser Lektion erklärt der Kursleiter, wie man mit Pytorch ein Modell trainiert, das sich wie ein fast.ai-Lerner verhält. Er stellt fest, dass Ausreißer zwar niemals gelöscht werden sollten, aber untersucht und gegebenenfalls korrigiert werden können.

  • 01:25:00 Deep Learning ist eine leistungsstarke Technologie, die in zahlreichen Anwendungsbereichen eingesetzt wird. Es ist relativ anfängerfreundlich und im Bereich der Verarbeitung natürlicher Sprache (NLP) liegen die größten Chancen. Eine mögliche Verwendung für Deep Learning NLP ist die Erstellung kontextgerechter Prosa für soziale Medien, die Auswirkungen darauf haben könnte, wie Menschen die Welt sehen.

  • 01:30:00 In diesem Video erklärt John, wie NLP-Techniken wie maschinelles Lernen verwendet werden können, um Text zu generieren, der zugunsten einer bestimmten Sichtweise voreingenommen ist. Das Video diskutiert auch ein Problem mit Vorhersagen, die von NLP-Techniken generiert werden, und wie es durch die Verwendung einer Sigmoidfunktion gelöst werden kann.
 

Lektion 5: Praktisches Deep Learning für Programmierer 2022



Lektion 5: Praktisches Deep Learning für Programmierer 2022

Dieses Video bietet ein Tutorial zum Erstellen und Trainieren eines linearen Modells mit Deep Learning. Das Video beginnt mit der Erörterung von direkten Operationen, die die Werte von Variablen innerhalb einer bestimmten Funktion ändern. Als Nächstes zeigt das Video, wie der Verlust für ein lineares Modell mit Rückwärtsgradientenabstieg berechnet wird. Schließlich stellt das Video eine Funktion bereit, die Koeffizienten innerhalb eines linearen Modells initialisiert und aktualisiert. Das Video schließt mit einer Demonstration, wie die Funktion ausgeführt und der Verlust gedruckt wird. In diesem Video wird erläutert, wie Sie die beste binäre Aufteilung für eine bestimmte Spalte in einem Datensatz berechnen. Dies ist besonders nützlich für Wettbewerbe zum maschinellen Lernen, da es ein Basismodell zum Vergleich bietet.

  • 00:00:00 Diese Lektion behandelt das lineare Modell und das neuronale Netzwerk von Grund auf mit Jupyter Notebook. Das Ziel ist es, die Logik hinter dem Code zu verstehen und die erwartete Ausgabe zu erhalten.

  • 00:05:00 Das Video behandelt praktisches Deep Learning für Programmierer und behandelt Themen wie die Installation von Kaggle und die Verwendung seiner Umgebungsvariablen, das Lesen von CSV-Dateien mit Pandas und das Imputieren fehlender Werte. Es behandelt auch grundlegende Konzepte in Pandas wie den Modus und die Verwendung von Methoden und Reduktionen zum Füllen von Datenrahmen.

  • 00:10:00 In dieser Lektion behandelt Jeremy, wie man fehlende Werte in einem Datensatz mit der Methode fillna() in Pandas imputiert. Er erklärt, dass dieser „dumme“ Weg in den meisten Fällen ausreicht und dass es wichtig ist, die Grundlagen unseres Datensatzes zu kennen, damit gängige Methoden nicht mehrfach erklärt werden. Javier fragt nach den Vor- und Nachteilen des Verwerfens von Feldern, die nicht im Modell verwendet werden.

  • 00:15:00 In dieser Lektion stellt der Kursleiter das Konzept der „Dummy-Variablen“ vor und wie sie verwendet werden können, um kategoriale Daten sinnvoller darzustellen. Er zeigt auch, wie man alle numerischen und nicht numerischen Variablen in den Daten beschreibt.

  • 00:20:00 In diesem Video zeigt der Kursleiter, wie man eine Spalte in einem Datenrahmen in einen Tensor umwandelt und wie man diese Tensoren verwendet, um ein lineares Modell und ein neuronales Netz zu trainieren. Er zeigt auch, wie man Pytorch anstelle von einfachem Python verwendet, wenn man Matrix- und elementweise Multiplikationen durchführt.

  • 00:25:00 In diesem Video erläutert der Kursleiter, wie ein Matrix-Vektor-Produkt in Python ausgeführt wird. Er gibt ein Beispiel für die Multiplikation einer Matrix mit einem Vektor und erklärt, dass das Ergebnis interessant ist, weil Mathematiker die gleiche Operation mit der Matrizenalgebra durchführen können. Er erklärt auch, dass das Starten einer pseudozufälligen Sequenz wichtig ist, um reproduzierbare Ergebnisse zu erzielen.

  • 00:30:00 In diesem Video erklärt der Autor, wie Broadcasting funktioniert und warum es nützlich ist. Broadcasting ist eine Technik, die es ermöglicht, mehrere Werte miteinander zu multiplizieren, wobei die Größe jedes Werts berücksichtigt wird. Dies ermöglicht Code, der prägnanter und schneller auf der GPU ausgeführt werden kann.

  • 00:35:00 In diesem Video wird erläutert, wie Sie Deep-Learning-Modelle optimieren, indem Sie den Gradientenabstiegsverlust berechnen. Der Autor demonstriert dies, indem er eine Funktion zur Berechnung des Verlusts erstellt und die Funktion dann in eine Pytorch-Sitzung importiert.

  • 00:40:00 Dieses YouTube-Video bietet ein Tutorial zum Erstellen und Trainieren eines linearen Modells mit Deep Learning. Das Video beginnt mit der Erörterung von direkten Operationen, die die Werte von Variablen innerhalb einer bestimmten Funktion ändern. Als Nächstes zeigt das Video, wie der Verlust für ein lineares Modell mit Rückwärtsgradientenabstieg berechnet wird. Schließlich stellt das Video eine Funktion bereit, die Koeffizienten innerhalb eines linearen Modells initialisiert und aktualisiert. Das Video schließt mit einer Demonstration, wie die Funktion ausgeführt und der Verlust gedruckt wird.

  • 00:45:00 In diesem 1-minütigen Video wird erläutert, wie eine Genauigkeitsfunktion für ein Deep-Learning-Modell erstellt wird, das vorhersagt, wer die Titanic überlebt hat. Die Funktion basiert auf der Sigmoidfunktion, einer mathematischen Funktion, die asymptotisch zu Eins wird, wenn Zahlen zu groß oder zu klein werden.

  • 00:50:00 In diesem Video erklärt John, wie man ein neuronales Netz mithilfe einer Sigmoid-Funktion optimiert. Er erklärt auch, wie man mit kategorieblockabhängigen Variablen mit fast.ai umgeht.

  • 00:55:00 In diesem Video erklärt der Autor, wie man mit Pytorch in Python ein Modell von Grund auf neu erstellt und wie man das Modell an Kaggle übermittelt. Der Autor erwähnt, dass der Operator „matrix-multiply“ Matrix-multiply bedeutet, aber dass Python keine Implementierung des Operators enthält.

  • 01:00:00 In diesem Video erklärt der Moderator, wie man mit Pytorch ein neuronales Netzwerk erstellt. Der erste Schritt besteht darin, eine Matrix mit Summen der Koeffizienten der ersten Spalte zu erstellen. Diese Matrix wird dann mit dem Trainingsdatenvektor multipliziert. Der zweite Schritt besteht darin, eine zweite Matrix mit den verborgenen Aktivierungen zu erstellen. Diese Matrix wird dann mit den Koeffizienten der ersten Spalte multipliziert. Der letzte Schritt besteht darin, die Vektoren zu zentralisieren und das neuronale Netzwerk zu trainieren.

  • 01:05:00 In diesem Video erklärt Jeremy, wie man ein neuronales Netzwerk mit Deep Learning trainiert. Er erklärt, dass er zum Trainieren des Netzes zunächst die Gradienten berechnen und die Koeffizienten initialisieren muss. Als nächstes führt er update_coeffs() aus, das die Koeffizienten von den Gradienten subtrahiert. Schließlich trainiert er das Netzwerk und vergleicht die Ergebnisse mit einem linearen Modell.

  • 01:10:00 In diesem Video wird erklärt, wie Deep-Learning-Modelle initialisiert, die Koeffizienten aktualisiert und alle Ebenen durchlaufen werden. Es wird auch erörtert, warum Deep Learning bei kleinen Datensätzen möglicherweise nicht so effektiv ist und wie man mit Deep-Learning-Modellen gute Ergebnisse erzielt.

  • 01:15:00 In dieser Lektion lehrt der Autor, wie man ein Deep-Learning-Framework verwendet, und zeigt, wie es viel einfacher ist, als es von Grund auf neu zu machen. Der Autor bietet auch ein Tutorial zum Feature-Engineering mit Pandas.

  • 01:20:00 In diesem Video demonstriert der Trainer, wie er die Fastai-Bibliothek verwendet, um eine Lernrate für ein Deep-Learning-Modell zu empfehlen. Er zeigt, wie man mehrere Epochen durchläuft und vergleicht die Vorhersagen des Modells mit den Vorhersagen von zwei anderen Modellen. Schließlich demonstriert er, wie die Ensemble-Funktion verwendet wird, um einen Satz von fünf Vorhersagen zu erstellen, die über die Zeilen gemittelt werden.

  • 01:25:00 In diesem Video erklärt John, wie Random Forests funktionieren und warum sie ein beliebter Algorithmus für maschinelles Lernen sind. Er zeigt auch, wie man eine praktische Verknüpfung verwendet, um alle notwendigen Module zu importieren.

  • 01:30:00 In diesem Video erklärt Pandas, wie Deep Learning funktioniert und wie man es auf Programmierprobleme anwendet. Der Random-Forest-Algorithmus wird eingeführt und es wird gezeigt, dass diese Technik verwendet werden kann, um die Genauigkeit von Vorhersagen zu verbessern, die unter Verwendung einer kategorialen Variablen gemacht werden.

  • 01:35:00 Diese 1-Absatz-Zusammenfassung erklärt, wie man eine binäre Teilung bewertet, indem man eine einfache Methode zum Addieren der Standardabweichungswerte der beiden Datengruppen verwendet. Der beste Teilungspunkt wird gefunden, indem der kleinste Index in die Liste der Teilungspunkte mit der kleinsten Punktzahl berechnet wird.

  • 01:40:00 In dieser Lektion erklärt der Kursleiter, wie die beste binäre Teilung für eine bestimmte Spalte in einem Datensatz berechnet wird. Dies ist besonders nützlich für Wettbewerbe zum maschinellen Lernen, da es ein Basismodell zum Vergleich bietet.
 

Lektion 6: Praktisches Deep Learning für Programmierer 2022



Lektion 6: Praktisches Deep Learning für Programmierer 2022

Dieses YouTube-Video bietet Programmierern eine Anleitung zum Einstieg in Deep Learning. Der Schwerpunkt liegt auf praktischem Deep Learning für Programmierer, mit Tipps, wie man einen Wettbewerb aufsetzt, ein Validierungsset erhält und schnell iteriert. Das Video erläutert auch die Bedeutung von Feature-Wichtigkeits- und Partial-Dependence-Plots sowie deren Erstellung mithilfe eines maschinellen Lernmodells.

Dieses Video bietet einen Überblick darüber, wie Sie mit Deep Learning die Genauigkeit von Codierungsprojekten verbessern können. Es erklärt, dass Datensätze oft eine Vielzahl von Eingabegrößen und Seitenverhältnissen haben können, was es schwierig macht, genaue Darstellungen mit Rechtecken zu erstellen. Es schlägt vor, stattdessen quadratische Darstellungen zu verwenden, die sich in den meisten Fällen als gut erwiesen haben.

  • 00:00:00 In dieser Lektion zeigen die Autoren, wie man einen Entscheidungsbaum erstellt, um vorherzusagen, welche Männer die Titanic überleben.

  • 00:05:00 Das Video erläutert, wie ein Entscheidungsbaum-Klassifikator mit höchstens vier Blattknoten erstellt wird. Der Baum kann automatisch generiert werden und der Code zur Berechnung des Gini-Koeffizienten wird bereitgestellt. Der mittlere absolute Fehler des Entscheidungsbaums wird mit 0,407 berechnet.

  • 00:10:00 In diesem Video wird erklärt, wie man einen Entscheidungsbaum erstellt, um Fahrpreisklassifikationen anhand von Daten aus einem Kaggle-Wettbewerb vorherzusagen. Entscheidungsbäume sind effizient und erfordern keine Vorverarbeitung, was sie zu einer guten Option für tabellarische Daten macht.

  • 00:15:00 Leo Breimans „Bagging“-Technik wird verwendet, um eine große Anzahl unvoreingenommener Modelle zu erstellen, die besser sind als jedes einzelne Modell. Dies geschieht, indem jedes Mal, wenn ein Entscheidungsbaum erstellt wird, zufällig eine Teilmenge der Daten ausgewählt und diese Daten zum Trainieren des Modells verwendet werden.

  • 00:20:00 In dieser Lektion haben wir gelernt, wie man einen Random Forest erstellt, einen Algorithmus für maschinelles Lernen, der einfach zu implementieren ist und bei kleinen Datensätzen gut funktioniert. Wir haben auch gezeigt, wie man Feature-Importance-Plots verwendet, um festzustellen, welche Features in den Trainingsdaten am wichtigsten sind.

  • 00:25:00 In diesem Video behandelt John die Grundlagen des Deep Learning, einschließlich der Funktionsweise von Random Forests und warum eine Erhöhung der Anzahl von Bäumen immer zu einer besseren Fehlerrate führt. Jeremy erklärt dann, wie Random Forests verwendet werden können, um Ergebnisse für große Datensätze vorherzusagen, ohne dass ein Validierungssatz erforderlich ist.

  • 00:30:00 Das Video erklärt, wie der Out-of-Bag-Error oder OOB-Error berechnet wird, der ein Maß für die Genauigkeit von Vorhersagen ist, die auf Daten basieren, die nicht beim Training eines maschinellen Lernmodells verwendet werden. Es wird darauf hingewiesen, dass ein hoher OOB-Fehler darauf hindeutet, dass das Modell die Daten nicht korrekt vorhersagt.

  • 00:35:00 Das Video erörtert die Bedeutung von Darstellungen der Merkmalswichtigkeit und partiellen Abhängigkeiten und wie sie mithilfe eines Modells für maschinelles Lernen erstellt werden.

  • 00:40:00 In diesem Video erklärt Jeremy, wie Random-Forest-Modelle funktionieren und wie ihre Feature-Importance-Plots zu interpretieren sind. Er erwähnt auch, dass Random-Forest-Modelle zuverlässiger sind als andere Erklärbarkeitstechniken.

  • 00:45:00 Random Forests sind ein maschinell lernender Algorithmus, der besonders gut Vorhersagen treffen kann. Durch das Hinzufügen weiterer Bäume wird das Modell jedoch genauer, und eine Überanpassung ist kein Problem. Gradient Boosting ist ein Algorithmus für maschinelles Lernen, der Random Forests ähnelt, aber anstatt einen Baum immer wieder anzupassen, passt er sehr kleine Bäume an, die zu einer geringen Datenaufteilung führen.

  • 00:50:00 Das Video erklärt, wie eine Gradient Boosting Machine (GBM) genauer ist als ein zufälliger Wald, aber dass Sie mit einem GBM überpassen können. Die exemplarische Vorgehensweise zeigt, wie man einen Kaggle-Wettbewerb auswählt und den ersten Platz erreicht.

  • 00:55:00 Dieses YouTube-Video bietet Programmierern eine Anleitung zum Einstieg in Deep Learning. Der Schwerpunkt liegt auf praktischem Deep Learning für Programmierer, mit Tipps, wie man einen Wettbewerb aufsetzt, ein Validierungsset erhält und schnell iteriert.

  • 01:00:00 In diesem Video wird erklärt, wie Sie mit FastKaggle Deep-Learning-Modelle trainieren. Es erklärt, dass Sie bei der Arbeit mit Bildern vorsichtig sein müssen, da sich die Größe je nach Seitenverhältnis ändern kann. Das Video zeigt auch, wie man die Größe der Bilder mit einer Funktion namens „Squish“ ändert.

  • 01:05:00 In diesem Video erläutert der Kursleiter, wie die schnelle KI-Bibliothek show_batch() verwendet wird, um schnell zu sehen, wie Daten für maschinelle Lernmodelle aussehen. Er empfiehlt die Verwendung von resnet26d für eine schnelle Trainingsleistung und Genauigkeit.

  • 01:10:00 Das Video zeigt, wie Sie ein Deep-Learning-Modell in weniger als einer Minute an Kaggle senden, indem Sie einen Dataloader und eine CSV-Datei verwenden, die die Vorhersagen und Bezeichnungen des Modells enthält.

  • 01:15:00 Der Moderator teilt seine Strategie zum Erstellen öffentlicher Notizbücher auf Kaggle, die das Duplizieren und Umbenennen von Notizbüchern nach Bedarf beinhaltet, um sie zu organisieren. Er stellt fest, dass dieser Low-Tech-Ansatz für ihn gut funktioniert und dass er normalerweise nur jeweils ein Notizbuch einreicht.

  • 01:20:00 Der Moderator gibt einen kurzen Überblick über verschiedene Methoden für Deep Learning, einschließlich AutoML-Frameworks und Random Forests. Er empfiehlt die Verwendung eines Lernratenfinders, um ein Übertrainieren von Modellen zu vermeiden, und empfiehlt, wenn möglich GPUs für Deep Learning zu verwenden.

  • 01:25:00 In dieser Lektion erklärt der Autor, wie eine Iteration eines Kaggle-Wettbewerbs mit einer anderen CNN-Architektur (Convolutional Neural Network) beschleunigt werden kann. Er zeigt auch, wie man anhand einer Faustregel die richtige CNN-Größe auswählt.

  • 01:30:00 In diesem Video erläutert der Moderator, wie die Leistung eines Deep-Learning-Modells mithilfe verschiedener Vorverarbeitungstechniken, einschließlich Zuschneiden und Auffüllen, verbessert werden kann. Er weist auch darauf hin, dass Test Time Augmentation (TTA) die Leistung eines Modells verbessern kann, indem mehrere Versionen eines Bildes gemittelt werden.

  • 01:35:00 In diesem Video erläutert Jeremy, wie die Genauigkeit eines Computer-Vision-Modells mithilfe von Deep Learning verbessert werden kann. Er merkt an, dass die Genauigkeit des Modells verbessert werden kann, indem man die Bilder variiert, auf denen es trainiert wird, und gibt ein Beispiel dafür, wie man dies mit Pandas machen kann. Er erklärt auch, wie schnell Deep-Learning-Algorithmen arbeiten und wie man TTA oder Test Time Augmentation verwendet, um den Trainingsprozess zu beschleunigen. Abschließend fasst er die Fragen zusammen, die Victor und John gestellt haben.

  • 01:40:00 In diesem Video erklärt Jeremy, wie Deep Learning verwendet werden kann, um die Genauigkeit von Codierungsprojekten zu verbessern. Er weist darauf hin, dass Datensätze oft eine Vielzahl von Eingabegrößen und Seitenverhältnissen haben können, was es schwierig macht, genaue Darstellungen mit Rechtecken zu erstellen. Er schlägt vor, stattdessen quadratische Darstellungen zu verwenden, die sich in den meisten Fällen als gut erwiesen haben.
 

Lektion 7: Praktisches Deep Learning für Programmierer 2022



Lektion 7: Praktisches Deep Learning für Programmierer 2022

In Lektion 7 von Praktisches Deep Learning für Programmierer 2022 erklärt Jeremy, wie Deep-Learning-Modelle skaliert werden können, indem der für größere Modelle benötigte Speicher reduziert wird. Er demonstriert einen Trick namens Gradientenakkumulation, bei dem die Gewichte nicht in jeder Schleife jedes Mini-Batchs aktualisiert werden, sondern alle paar Male, wodurch größere Batch-Größen verwendet werden können, ohne größere GPUs zu benötigen. Darüber hinaus erörtert Jeremy die k-fache Kreuzvalidierung und die Erstellung eines Deep-Learning-Modells, das sowohl die Reissorte als auch die im Bild vorhandene Krankheit mithilfe einer anderen Verlustfunktion, die als Kreuzentropieverlust bezeichnet wird, vorhersagt. Insgesamt bietet das Video praktische Tipps und Tricks zum Erstellen komplexerer Deep-Learning-Modelle.

In diesem Video untersucht der Referent die Erstellung von Empfehlungssystemen mit kollaborativer Filterung und Punktprodukt in PyTorch. Er beschreibt die Matrixmultiplikationsvorhersage von Filmbewertungen und berechnet die Verlustfunktion, ein Maß dafür, wie gut die vorhergesagten Bewertungen mit den tatsächlichen Bewertungen übereinstimmen. Er führt das Konzept der Einbettungen ein, das eine Beschleunigung von Matrixmultiplikatoren mit Dummy-Variablen ermöglicht. Der Referent erklärt dann, wie man der Matrix Bias und Regularisierung hinzufügt, um Benutzerbewertungen zu differenzieren und eine Überanpassung zu verhindern. Abschließend wird das Thema der Hyperparametersuche diskutiert, wobei die Notwendigkeit granularer Daten für genaue Empfehlungen betont wird. Insgesamt zerlegt das Video komplexe Deep-Learning-Konzepte, um ein praktisches Verständnis für die Zuschauer zu schaffen.

  • 00:00:00 In diesem Abschnitt führt der Kursleiter einen einfachen Trick zum weiteren Hochskalieren von Modellen ein, bei dem der für größere Modelle benötigte Speicher reduziert wird. Wenn größere Modelle verwendet werden, bedeuten mehr Parameter, dass sie kompliziertere Merkmale finden können, wodurch sie genauer werden. Größere Modelle haben jedoch eine Kehrseite, da ihre zu berechnenden Aktivierungen oder Gradienten viel GPU-Speicher verbrauchen und es bei nicht ausreichendem Speicher zu einer Fehlermeldung kommt. Der Kursleiter erklärt, wie dieses Problem umgangen und ein X-Large-Modell sogar auf der 16-Gig-GPU von Kaggle verwendet werden kann.

  • 00:05:00 In diesem Abschnitt des Videos erläutert Jeremy die praktischen Aspekte der Ausführung von Deep-Learning-Modellen auf Kaggle und die Verwendung schneller Hacky-Methoden zur Bestimmung der Speichernutzung von Modellen. Er demonstriert einen Trick namens Gradientenakkumulation, der verwendet werden kann, wenn das Modell mit einem „cuda out of memory error“ abstürzt, um den Kauf einer größeren GPU zu vermeiden. Durch Anpassen der Stapelgröße und Anzahl der Bilder kann sichergestellt werden, dass das Modell so wenig Speicher wie möglich verwendet, ohne die Lernraten zu beeinträchtigen.

  • 00:10:00 In diesem Abschnitt erörtert der Sprecher das Konzept der Gradientenakkumulation, bei dem es darum geht, die Gewichtungen nicht bei jeder Schleife für jeden Mini-Batch zu aktualisieren, sondern dies stattdessen alle paar Male zu tun. Dadurch können größere Stapelgrößen verwendet werden, ohne dass größere GPUs erforderlich sind, da der Gradient über mehrere kleinere Stapel akkumuliert werden kann. Die Ergebnisse sind für Architekturen, die keine Stapelnormalisierung verwenden, numerisch identisch, können jedoch für diejenigen, die dies tun, zu mehr Volatilität führen. Insgesamt ist die Gradientenakkumulation eine einfache Idee mit erheblichen Auswirkungen auf das Training größerer Modelle.

  • 00:15:00 In diesem Abschnitt diskutiert Jeremy Fragen aus dem Forum in Bezug auf lr_find() und Gradientenakkumulation. Er erklärt, dass lr_find() die Stapelgröße des Datenladers verwendet und dass die Gradientenakkumulation das Experimentieren mit verschiedenen Stapeln ermöglicht, um die optimale Größe für verschiedene Architekturen zu finden. Jeremy empfiehlt, die größte Stapelgröße auszuwählen, die in Ihre GPU passt, erwähnt jedoch, dass es nicht immer notwendig ist, die größte Stapelgröße zu verwenden. Als Faustregel gilt, die Batchgröße durch zwei zu teilen und die Lernrate durch zwei zu teilen. Abschließend demonstriert Jeremy, wie man die Gradientenakkumulation in fastai verwendet, indem er die Stapelgröße durch den gewünschten Akkumulationswert dividiert und beim Erstellen des Lerners den GradientAccumulation-Callback übergibt, wodurch er mehrere Modelle auf einer 16-GB-Karte trainieren kann.

  • 00:20:00 In diesem Abschnitt erörtert der Moderator die Verwendung der vortrainierten Transformer-Modelle vit, swinv2 und swin, die feste Größen haben. Um dies zu umgehen, muss die endgültige Größe quadratisch sein und die erforderliche Größe haben. Der Präsentator verwendet ein Wörterbuch mit Architekturen und Vorverarbeitungsdetails, wechselt den Trainingspfad zurück zur Verwendung aller Bilder und durchläuft jede Architektur und transformiert die Größe, um jedes Modell zu trainieren. Das Trainingsskript gibt tta-Vorhersagen zurück, die an eine Liste angehängt werden, die später durch Bagging gemittelt wird, um eine Liste von Indizes für jede Krankheit zu erstellen. Durch regelmäßiges Einreichen von Beiträgen verbesserte der Präsentator seine Ergebnisse und konnte sich eine Top-Ranglistenposition sichern.

  • 00:25:00 In diesem Abschnitt erörtert Jeremy das Konzept der k-fachen Kreuzvalidierung und wie es dem ähnelt, was er mit Ensembling-Modellen gemacht hat. Er erklärt, dass bei der k-fachen Kreuzvalidierung die Daten in fünf Teilmengen aufgeteilt werden und Modelle auf jeder Teilmenge mit nicht überlappenden Validierungssätzen trainiert werden, die dann zusammengestellt werden. Obwohl es möglicherweise besser als seine Methode sein könnte, bevorzugt Jeremy das Ensemling, da es das einfache Hinzufügen und Entfernen von Modellen ermöglicht. Jeremy spricht auch über die Akkumulation von Gradienten und dass es keine wirklichen Nachteile oder potenziellen Fallstricke gibt, und empfiehlt den Kauf billigerer Grafikkarten mit weniger Speicher als teure. Schließlich erwähnt er, dass Nvidia das einzige Spiel in der Stadt für GPUs ist und die Consumer-RTX-Karten genauso gut sind wie die teuren Enterprise-Karten.

  • 00:30:00 In diesem Abschnitt erörtert Jeremy die Vorteile der Investition in eine GPU für Deep Learning und räumt ein, dass diese aufgrund ihrer Verwendung im Cloud-Computing teuer sein können. Er geht auch darauf ein, wie man ein kleineres Modell trainiert, um die gleichen Aktivierungen wie ein größeres zu erzeugen, was in Teil 2 behandelt wird. Der Rest des Videos konzentriert sich auf den Aufbau eines Modells, das sowohl die Krankheit als auch die Reissorte eines Bildes vorhersagt , was einen Datenlader mit zwei abhängigen Variablen erfordert. Jeremy erklärt, wie man den DataBlock verwendet, um einen Loader mit mehreren abhängigen Variablen zu erstellen, und demonstriert, wie man zwischen Eingabe- und Ausgabekategorien unterscheidet.

  • 00:35:00 In diesem Abschnitt erklärt der Kursleiter, wie ein Deep-Learning-Modell erstellt wird, das sowohl die Reissorte als auch die im Bild vorhandene Krankheit vorhersagt. Um dies zu erreichen, muss die get_y-Funktion ein Array mit zwei unterschiedlichen Labels annehmen. Einer ist der Name des Elternverzeichnisses, da er die Krankheit angibt, und der zweite ist die Sorte. Der Lehrer erstellt eine Funktion, die den Ort im Datenrahmen des Dateinamens nimmt und die Sortenspalte zurückgibt. Schließlich erstellen sie ein Modell, das 20 Dinge vorhersagt: die Wahrscheinlichkeit jeder der 10 Krankheiten und jeder der 10 Sorten. Die Fehlerratenmetrik muss geändert werden, um drei statt zwei Dinge zu verarbeiten, um mit dem neuen Datensatz zu arbeiten.

  • 00:40:00 In diesem Abschnitt erläutert der Referent die Notwendigkeit einer anderen Verlustfunktion namens Kreuzentropieverlust, wenn die abhängige Variable eine Kategorie ist. Während vision_learner von fastai früher den Cross-Entropie-Verlust erraten und verwendet hat, erklärt der Referent nun anhand einer Tabelle, wie es im Detail funktioniert. Ausgehend von der Ausgabe eines Modells mit fünf Kategorien demonstriert der Referent, wie man Modellausgaben mit der Softmax-Funktion in Wahrscheinlichkeiten umwandelt. Sobald die Ausgaben Wahrscheinlichkeiten sind, wird die Kreuzentropieverlustfunktion verwendet, um die Differenz zwischen den vorhergesagten Wahrscheinlichkeiten und den tatsächlichen Wahrscheinlichkeiten zu messen und zu bestimmen, wie gut das Modell arbeitet.

  • 00:45:00 In diesem Abschnitt erfahren wir etwas über Softmax und wie es verwendet wird, um eine bestimmte Sache aus vorher ausgewählten Kategorien vorherzusagen. Die zur Berechnung des Kreuzentropieverlusts verwendete Formel umfasst die Multiplikation von Wahrscheinlichkeiten und tatsächlichen Zielwerten und die anschließende Summenbildung. Das Protokoll von Softmax wird verwendet, um Berechnungen zu beschleunigen. Das Ergebnis ist ein einzelner Wahrscheinlichkeitswert, der dann für jede Zeile aufsummiert wird, um den Kreuzentropieverlust zu berechnen.

  • 00:50:00 In diesem Abschnitt erklärt der Kursleiter die binäre Kreuzentropieverlustfunktion und wie sie mit mehreren Zielen verwendet wird. Er stellt fest, dass Pytorch zwei Versionen von Verlustfunktionen hat, eine Klasse und eine Funktion, und zeigt, wie man sie verwendet. Beim Erstellen eines Multi-Target-Modells benötigt der Visionslerner zwanzig Ausgaben, von denen zehn die Krankheit und zehn die Varietät vorhersagen. Der Kursleiter demonstriert, wie dieses Modell erstellt wird, und trainiert es dann. Insgesamt ist dieses Modell mit dem vorherigen Modell identisch, mit Ausnahme der Hinzufügung des zweiten Satzes von Zielen.

  • 00:55:00 In diesem Abschnitt erfahren wir, wie ein Modell anhand seiner Verlustfunktion weiß, was es vorhersagt. Die ersten zehn Spalten der Eingabewerte sagen die Krankheitswahrscheinlichkeit voraus, und die zweiten zehn stellen die Wahrscheinlichkeit der Sorte dar. Unter Verwendung von Kreuzentropie berücksichtigen wir sowohl die Krankheits- als auch die Sortenzielwerte, um eine Verlustfunktion zu erstellen, die auf der Vorhersage dieser beiden Werte basiert. Die Verlustfunktion verringert sich, wenn die ersten zehn Spalten gute Vorhersagen für Krankheiten und die zweiten zehn für die Vielfalt machen, wodurch die Koeffizienten jede Spalte besser nutzen können. Wir berechnen und verfolgen Fehlerraten sowohl für Krankheits- als auch für Sortenvorhersagen während der gesamten Trainingsepoche. Längeres Training mit einem Multi-Target-Modell kann manchmal zu einer besseren Krankheitsvorhersage führen als mit einem Einzel-Target-Modell, da bestimmte Merkmale helfen, verschiedene Targets zu erkennen.

  • 01:00:00 In diesem Abschnitt des Videos erörtert der Sprecher die Vorteile des Erstellens von Modellen, die mehrere Dinge vorhersagen, und ermutigt die Zuschauer, mit Modellen auf kleinen Datensätzen zu experimentieren. Er stellt auch das Collaborative Filtering Deep Dive-Notizbuch vor, das einen Datensatz mit Filmbewertungen verwendet, um das Konzept von Empfehlungssystemen zu vermitteln. Er erklärt, dass diese Art von Daten in Branchen wie Empfehlungssystemen üblich ist, und gibt ein Beispiel für eine Kreuztabelle, um den Datensatz besser zu verstehen. Der Sprecher macht dann eine Pause, bevor er sich dem nächsten Notizbuch zuwendet.

  • 01:05:00 In diesem Abschnitt erklärt der Referent, wie man Lücken in einem kollaborativen Filterdatensatz füllt. Die kollaborative Filterung hilft, einem Benutzer ein Produkt zu empfehlen, indem Daten verwendet werden, die von vielen Benutzern gesammelt wurden. Um herauszufinden, ob einem Benutzer ein bestimmter Film gefallen könnte, schlägt der Sprecher ein Verfahren zum Multiplizieren entsprechender Werte von Benutzerpräferenzen und der Art des Films durch Vektoranalyse vor. Da wir jedoch keine Informationen über Benutzer oder Filme erhalten, schlägt der Referent vor, latente Faktoren zu schaffen, um die fehlenden Datenpunkte zu ergänzen. Unter Verwendung vermeintlicher latenter Faktoren schlägt der Redner vor, die SGD zu verwenden, um die Korrelation zu finden und eine Hypothese zu erstellen.

  • 01:10:00 In diesem Abschnitt beschreibt das Video, wie die Matrixmultiplikation verwendet wird, um Filmbewertungen für Benutzer basierend auf ihren historischen Bewertungen vorherzusagen. Das Lernprogramm weist latenten Faktoren für Filme und Benutzer zufällige Werte zu und führt das Skalarprodukt aus, um die Bewertungen vorherzusagen. Anschließend wird eine Verlustfunktion berechnet und mit dem Data Solver-Tool optimiert. Das Video zeigt, dass sich die vorhergesagten Bewertungen verbessert haben, indem es sie mit den tatsächlichen Bewertungen nach der Optimierung vergleicht. Die Matrixvervollständigungstechnik und das kollaborative Filtern, bei dem Benutzern mit ähnlichem Geschmack ähnliche Filme empfohlen werden, werden ebenfalls vorgestellt.

  • 01:15:00 In diesem Abschnitt behandelt das Video die Verwendung von kollaborativem Filtern und Punktprodukten in PyTorch. Der Kosinus des Winkels zwischen zwei Vektoren kann die Korrelation annähern, und sie sind gleich, sobald sie normalisiert sind. Excel wird verwendet, um die notwendigen Berechnungen in PyTorch zu erklären. Das Video weist auch darauf hin, dass Einbettungen, die oft als komplexes mathematisches Werkzeug angesehen werden, eigentlich Arrays sind, die verwendet werden, um Dinge nachzuschlagen. Das Video versucht, verwirrenden Jargon aufzubrechen, um Deep Learning für alle verständlicher zu machen.

  • 01:20:00 In diesem Abschnitt erklärt Jeremy, wie man kollaborative Filter-Datenladeprogramme in PyTorch verwendet, um mit Filmbewertungsdaten zu arbeiten. Er führt die Filmtabelle mit der Bewertungstabelle zusammen, um die Benutzer-ID und den Namen des Films zu erhalten. Die CollabDataLoaders-Funktion wird verwendet, um Daten aus dem Datenrahmen mit Spalten für Bewertungen, Benutzer-ID und Elementtitel zu laden. Dann erstellt er Benutzer- und Filmfaktoren mithilfe einer Matrix aus Zufallszahlen, wobei die Anzahl der Spalten gleich der Anzahl der Faktoren ist, die er erstellen möchte. Er erwähnt auch, dass er eine vorgegebene Formel zur Bestimmung der Anzahl der Faktoren verwendet, die aus seiner Intuition abgeleitet und durch Anpassen einer Funktion getestet wird.

  • 01:25:00 In diesem Abschnitt erklärt der Sprecher, dass ein One-Hot-codierter Vektor verwendet werden kann, um eine Indexnummer im Vektor nachzuschlagen, was dasselbe ist, wie das Skalarprodukt eines One-Hot-codierten Vektors zu nehmen mit etwas. Einbettungen werden dann als rechnerische Abkürzung zum Multiplizieren von etwas mit einem One-Hot-codierten Vektor eingeführt, was eine Beschleunigung bei der Durchführung von Matrixmultiplikatoren mit Dummy-Variablen ermöglicht. Der Referent stellt auch die Erstellung eines Pytorch-Modells vor, bei dem es sich um eine Klasse handelt, die eine Oberklasse namens Module enthält, die einige zusätzliche Funktionen bietet. Das Punktproduktobjekt wird als Beispiel für die Erstellung eines Modells verwendet, das die Methode dunder init aufruft und Einbettungen von Benutzern nach Faktoren und Filme nach Vektoren erstellt.

  • 01:30:00 In diesem Abschnitt erklärt der Kursleiter, wie PyTorch verwendet wird, um eine Methode namens „Forward“ aufzurufen, um das Modell zu berechnen. Das Objekt selbst und die zu berechnenden Daten werden an "forward" übergeben. Die Verwendung des Punktprodukts und die Weitergabe der Daten durch PyTorch ist viel schneller als die Verwendung von Excel. Das Modell funktioniert jedoch nicht gut, da es beispielsweise Werte vorhersagt, die größer als der höchstmögliche Wert sind, während niemand einen Film unter einer Eins bewertet. Der Ausbilder behebt dies, indem er die Sigmoid-Funktion verwendet, um die Vorhersage in einen Bereich zwischen null und 5,5 zu quetschen. Trotz dieser Änderung verbessert sich der Verlust nicht wesentlich, aber der Kursleiter führt eine neue Beobachtung einiger Benutzer mit hohen Bewertungen ein, was darauf hindeutet, dass die Einbeziehung der Benutzervoreingenommenheit das Modell verbessern könnte.

  • 01:35:00 In diesem Abschnitt demonstriert der Sprecher, wie man der Matrix, die im Filmempfehlungsmodell verwendet wird, Verzerrungen hinzufügen kann. Durch das Hinzufügen dieser Verzerrungen ist es möglich, Benutzer zu unterscheiden, die tendenziell niedrigere oder höhere Bewertungen abgeben. Der Referent erörtert auch, wie man eine Überanpassung durch Gewichtsverfall oder L2-Regularisierung vermeiden kann. Der Referent erklärt, dass dies erreicht werden kann, indem die Summe der Gewichte im Quadrat zur Verlustfunktion addiert wird. Insgesamt bietet der Abschnitt eine nützliche Einführung in das Thema Bias und Regularisierung in Deep-Learning-Modellen.

  • 01:40:00 In diesem Abschnitt diskutiert das Video die Verwendung von Weight Decay als eine Form der Regularisierung, um eine Überanpassung in Deep-Learning-Modellen zu verhindern. Indem die richtige Mischung von Gewichten gefunden wird, die nicht zu hoch, aber hoch genug sind, um bei der Vorhersage nützlich zu sein, kann das Modell den niedrigstmöglichen Wert der Verlustfunktion erhalten. Der Gewichtsverlustkoeffizient kann an die Anpassungsmethode übergeben werden, und die Standardwerte sind normalerweise gut für Bildverarbeitungsanwendungen, aber für tabellarische und kollaborative Filterung sollten Benutzer ein paar Vielfache von 10 ausprobieren, um zu sehen, was das beste Ergebnis liefert. Bei der Regularisierung geht es darum, das Modell nicht komplexer zu machen, als es sein muss, wobei die höheren Werte des Gewichtsabfalls die Überanpassung reduzieren, aber auch die Fähigkeit des Modells verringern, gute Vorhersagen zu treffen.

  • 01:45:00 In diesem Abschnitt erörtern Jeremy und John das Thema der Hyperparametersuche und wie sie häufig beim Erstellen individueller Modelle verwendet wird. Es gibt jedoch keine anderen Regeln als Jeremys Faustregel, wenn es darum geht, eine Untersuchung nach Hyperparametern durchzuführen. Als Antwort auf die Frage, ob Empfehlungssysteme basierend auf den durchschnittlichen Bewertungen der Benutzererfahrung statt auf kollaborativem Filtern aufgebaut werden können, erklärt Jeremy, dass es nicht ideal wäre, wenn man nur die Kaufhistorie hätte. Stattdessen werden granulare Daten wie demografische Informationen über Benutzer und Metadaten über Produkte benötigt, um genaue Empfehlungen zu geben.
 

Lektion 8 – Praktisches Deep Learning für Programmierer 2022



Lektion 8 – Praktisches Deep Learning für Programmierer 2022

Dieses Video behandelt die Grundlagen des Deep Learning für Programmierer. Es erklärt, wie Parameter für Deep-Learning-Modelle mithilfe der Pytorch-Bibliothek erstellt werden, wie PCA verwendet wird, um die Anzahl der Faktoren in einem Datensatz zu reduzieren, und wie ein neuronales Netz verwendet wird, um den Auktionsverkaufspreis von industriellen Schwermaschinen vorherzusagen.

Dieses YouTube-Video bietet einen Überblick über Deep Learning für Programmierer. Der Referent erklärt, dass Hartnäckigkeit in diesem Bereich wichtig ist und rät, wer erfolgreich sein will, sollte weitermachen, bis etwas fertig ist. Er empfiehlt auch, anderen Anfängern auf forums.fast.ai zu helfen.

  • 00:00:00 In dieser Lektion kümmert sich Pytorch um das Erstellen und Verwalten von Parametern für ein neuronales Netzwerk und stellt automatisch sicher, dass die Koeffizienten und Gewichtungen auf die richtige Weise initialisiert werden. Dies erspart dem Benutzer, sich diese Informationen zu merken oder Code dafür zu schreiben.

  • 00:05:00 In diesem Video wird erläutert, wie Parameter für Deep-Learning-Modelle mithilfe der Pytorch-Bibliothek erstellt werden. Pytorch initialisiert diese Parameter automatisch basierend auf einer zufällig generierten Verteilung.

  • 00:10:00 Dieses Video zeigt, wie eine Pytorch-Einbettungsebene von Grund auf neu erstellt wird, wobei derselbe Code und dieselben Konzepte wie im Original verwendet werden. Das Video zeigt dann, wie die Ebene Filmpräferenzen vorhersagt, indem es frühere Filmpräferenzen betrachtet.

  • 00:15:00 Das Video zeigt, wie die kollaborative Lernanwendung fast.ai verwendet wird, um vorherzusagen, welcher Film einem Benutzer gefallen könnte. Die Anwendung verwendet latente Faktoren ( Filme und Faktoren ), um die Neigung eines Benutzers zu berechnen, die dann verwendet wird, um vorherzusagen, welcher Film dem Benutzer gefallen könnte.

  • 00:20:00 In diesem Video wird erläutert, wie PCA verwendet wird, um die Anzahl der Faktoren in einem Datensatz zu reduzieren. Es behandelt auch das Bootstrapping-Problem, also die Frage, wie man Kunden neue Produkte empfiehlt, wenn man keine Vorgeschichte mit ihnen hat.

  • 00:25:00 Dieses Video behandelt die Grundlagen des Deep Learning für Programmierer, einschließlich eines sequentiellen Modells, der Verwendung der Pytorch-Funktionalität zur einfachen Erstellung eines Modells und der Anpassung des Modells an einen kollaborativen Lerner. Jona stellt dem Moderator eine Frage zum Problem der Verzerrung in kollaborativen Filtersystemen, und der Moderator gibt eine allgemeine Antwort auf das Problem.

  • 00:30:00 In diesem Video erklärt Jeremy, wie Einbettungen in Collaborative Filtering und NLP funktionieren und wie sie zur Interpretation neuronaler Netze verwendet werden können.

  • 00:35:00 In diesem Video demonstriert der Autor, wie man ein neuronales Netz verwendet, um den Auktionsverkaufspreis von industriellem Schwergerät vorherzusagen, indem er einen Random Forest und einen tabellarischen Lerner verwendet. Der Autor stellt fest, dass das mit dem tabellarischen Lerner erstellte neurale Netz fast identisch mit dem manuell erstellten neuralen Netz ist.

  • 00:40:00 Neuronale Netze können als eine Art maschineller Lernalgorithmus betrachtet werden, der Daten als Eingabe aufnimmt und diese Daten verwendet, um Vorhersagen oder Ausgaben zu erstellen. Neuronale Netze bestehen aus Schichten von Knoten (Neuronen genannt), die miteinander verbunden sind, um einen Graphen zu erstellen. Die Eingaben in ein neuronales Netz können kategorial (z. B. eine Kategorie wie Autos oder Blumen) oder kontinuierlich (z. B. eine Zahl) sein. Neuronale Netze können verwendet werden, um die Ergebnisse verschiedener Ergebnisse (z. B. Verkäufe in verschiedenen Geschäften) vorherzusagen oder den Inhalt einer neuen Eingabe zu erraten (z. B. den geografischen Standort eines bestimmten Satzes von Datenpunkten).

  • 00:45:00 In diesem Video erfahren wir etwas über Faltungen, eine Art Matrixmultiplikation, die in neuronalen Faltungsnetzen verwendet wird. Wir sehen ein Beispiel dafür in Aktion und diskutieren dann, wie man einen Detektor für die obere Kante unter Verwendung von Convolutional Neural Networks erstellt.

  • 00:50:00 Das Video erklärt, wie eine Faltung durchgeführt wird, eine mathematische Operation, die zwei Datenarrays nimmt und ihre Elemente kombiniert, wodurch ein Ergebnis erzeugt wird, das normalerweise auf der linken Seite des Arrays höher ist als auf der rechten Seite. Auf einem 3 mal 3 Kernel wird eine Faltung durchgeführt, die mehrmals wiederholt wird, um eine Deep-Learning-Schicht zu erzeugen.

  • 00:55:00 Das Video erklärt, wie Deep Learning funktioniert, indem gezeigt wird, wie zwei Filter, einer für horizontale Kanten und einer für vertikale Kanten, kombiniert werden, um eine einzige Aktivierung zum Erkennen von Zahlen zu erstellen. Die ältere Vorgehensweise, bei der maximales Pooling verwendet wurde, führte zu weniger Aktivierungen und schließlich zu einer verbleibenden. Der neuere Weg, der eine Technik namens „Max Pooling mit gleitenden Fenstern“ verwendet, wird fortgesetzt, bis alle Aktivierungen verwendet werden, und liefert ein genaueres Ergebnis.

  • 01:00:00 In diesem Video erklärt der Moderator, wie Deep Learning im 21. Jahrhundert funktioniert. Heute wird Deep Learning anders durchgeführt als noch vor 10 Jahren, und der Moderator liefert ein Beispiel dafür, wie diese Änderung funktioniert. Anstelle von Max Pooling verwenden Deep-Learning-Algorithmen jetzt Stride 2 Convolution. Darüber hinaus verwenden Deep-Learning-Modelle jetzt eine einzige dichte Schicht am Ende anstelle einer Max-Pool-Schicht. Abschließend gibt der Moderator einen kurzen Überblick darüber, wie fast.ai mit Deep-Learning-Training und -Vorhersage umgeht.

  • 01:05:00 In diesem YouTube-Video zeigt der Autor, wie Faltung dasselbe ist wie Matrizenmultiplikation und wie man eine Faltung mit den beiden Methoden berechnet. Er diskutiert auch Dropout, eine Technik zur Reduzierung der Auswirkungen von zufälligem Rauschen in neuronalen Netzwerken.

  • 01:10:00 In dieser Lektion beschreibt der Autor, wie Dropout-Layer dazu beitragen, eine Überanpassung in neuronalen Netzen zu vermeiden. Je mehr Dropouts Sie verwenden, desto weniger gut sind die Trainingsdaten, aber desto besser sollten sie verallgemeinern. Dies geht aus einem Papier der Gruppe von Geoffrey Hinton hervor, das von der Hauptkonferenz für neurale Netze, damals NIPS, jetzt NeurIPS genannt, abgelehnt wurde.

  • 01:15:00 Dieses Video behandelt die Grundlagen des Deep Learning, einschließlich der Arten neuronaler Netze und ihrer Implementierung. Es behandelt auch die Verwendung verschiedener Trainingsmethoden und die Bewertung der Leistung eines neuronalen Netzes. Abschließend gibt das Video Ratschläge, wie man Deep Learning weiterlernen kann.

  • 01:20:00 Lucas fragt, wie man beim Deep Learning motiviert bleibt, und stellt fest, dass sich das Feld schnell in Richtung teurerer und groß angelegter Modelle verlagert. Er fragt sich, ob er in Zukunft noch vernünftige Modelle mit einer einzigen GPU trainieren könnte. Insgesamt bietet dieses Video einen Überblick darüber, wie man beim Deep Learning motiviert bleibt und wie man mit den neuesten Forschungsergebnissen auf dem Laufenden bleibt.

  • 01:25:00 Dieses YouTube-Video gibt einen kurzen Überblick über Deep Learning und seine praktische Anwendung beim Programmieren. Das Video erläutert, wie der Deep Learning-Erfolg von DawnBench auf den gesunden Menschenverstand und die Intelligenz des Teams zurückzuführen ist und wie jeder Deep Learning auf seine eigenen Problembereiche anwenden kann. Das Video geht auch auf die Bedeutung der formalen Bildung im Bereich des maschinellen Lernens ein und darauf, wie Live-Codierungssitzungen dazu beitragen, das Lernen zu verstärken.

  • 01:30:00 Jeremy hat einige Produktivitäts-Hacks geteilt, einschließlich der Zeit, jeden Tag etwas Neues zu lernen und nicht zu hart zu arbeiten.

  • 01:35:00 Dieses YouTube-Video ist eine Lektion über Deep Learning für Programmierer, und der Sprecher erklärt, dass Hartnäckigkeit in diesem Bereich wichtig ist. Er rät, dass man, wenn man erfolgreich sein will, weitermachen sollte, bis etwas fertig ist, auch wenn es nicht die beste Qualität ist. Er empfiehlt auch, anderen Anfängern auf forums.fast.ai zu helfen.
 

Lektion 9: Deep Learning Foundations to Stable Diffusion, 2022



Lektion 9: Deep Learning Foundations to Stable Diffusion, 2022

Dieses Video bietet eine Einführung in Deep Learning und erläutert, wie stabile Diffusionsmodelle funktionieren und wie sie angewendet werden können, um neue Bilder zu generieren. Das Video enthält eine Demonstration der Verwendung der Diffuser-Bibliothek zum Erstellen von Bildern, die wie handgeschriebene Ziffern aussehen. Es führt auch das Konzept der stabilen Diffusion ein, das eine Methode zum Trainieren neuronaler Netze ist. Die Grundidee besteht darin, die Eingaben in ein neuronales Netzwerk zu modifizieren, um die Ausgabe zu ändern. In diesem Video erläutert der Kursleiter, wie ein neuronales Netz erstellt wird, das in der Lage ist, handschriftliche Ziffern aus verrauschten Eingaben korrekt zu identifizieren. In diesem Video wird erläutert, wie Sie ein maschinelles Lernmodell mit einem Deep-Learning-Algorithmus trainieren. Das Modell wird mit einem Satz latenter Variablen (die die Daten darstellen) initialisiert und verwendet einen Decoder, um die Rohdaten zu verstehen. Als nächstes wird ein Textcodierer verwendet, um maschinenlesbare Beschriftungen für die Daten zu erstellen. Schließlich wird ein U-Net unter Verwendung der Beschriftungen als Eingabe trainiert, und die Gradienten (die "Bewertungsfunktion") werden verwendet, um die Rauschpegel in den Trainingsdaten anzupassen.

  • 00:00:00 In dieser Lektion wird erklärt, wie Deep Learning funktioniert und wie man es auf reale Probleme anwendet. Da die in dieser Lektion beschriebenen Konzepte und Techniken jedoch in naher Zukunft wahrscheinlich veraltet sein werden, wird der Großteil des Videos darauf verwendet, die Verwendung von Stable Diffusion zu lehren, einem Deep-Learning-Algorithmus, der auch 2022 noch anwendbar sein wird.

  • 00:05:00 Der Kurs schreitet schnell voran und neue Arbeiten haben gezeigt, dass die Anzahl der Schritte, die zum Erstellen eines stabilen Diffusionsmodells erforderlich sind, von tausend auf vier oder sechsundfünfzig gesunken ist. Der Kurs konzentriert sich auf die Grundlagen des Modells und wie es funktioniert.

  • 00:10:00 Der Kurs bietet Deep-Learning-Grundlagen, diskutiert die Funktionsweise von Stable-Diffusion-Modellen und stellt Ressourcen für tiefergehendes Lernen bereit. 2022 werden GPUs für Deep Learning teurer, daher ist es wichtig, die aktuellen Empfehlungen zu beachten.

  • 00:15:00 Dieses YouTube-Video bietet eine kurze Einführung in Deep Learning und skizziert die Grundlagen der stabilen Diffusion. Der Autor stellt eine Reihe von Colab-Notebooks, „diffusion-nbs“, zur Verfügung, die verwendet werden können, um die Grundlagen des Deep Learning zu erkunden. Das Video schließt mit einer Empfehlung, mit dem bereitgestellten Material herumzuspielen und andere Ressourcen zu erkunden.

  • 00:20:00 In dieser Lektion werden die Grundlagen von Deep Learning behandelt, einschließlich der Erstellung eines stabilen Diffusionsalgorithmus. Danach wird die Diffusers-Bibliothek vorgestellt und wie man eine Pipeline speichert, damit andere sie verwenden können.

  • 00:25:00 In dieser Lektion werden die Grundlagen von Deep Learning und die Verwendung von Colab zum Erstellen hochwertiger Bilder erläutert. Die 51 Schritte, die zum Erstellen eines Bildes erforderlich sind, werden mit den ab Oktober 2022 verfügbaren drei bis vier Schritten verglichen.

  • 00:30:00 In dieser Lektion demonstriert der Kursleiter, wie Bilder mithilfe von Deep Learning erstellt werden. Er demonstriert, wie man die "Leitlinienskala" verwendet, um zu steuern, wie abstrakt die Bilder sind.

  • 00:35:00 In diesem Video wird erklärt, wie ein Deep-Learning-Modell verwendet wird, um Bilder zu erzeugen, die wie die Originalzeichnung aussehen, und zwar mithilfe einer Technik, die als stabile Diffusion bezeichnet wird.

  • 00:40:00 In dieser Lektion erklärt der Kursleiter, wie Modelle für maschinelles Lernen mit dem stabilen Diffusionsalgorithmus trainiert werden. Sie erklären, dass der Algorithmus nützlich ist, um Bilder zu erzeugen, die den bereitgestellten Beispielen ähneln. Der Kursleiter teilt auch ein Beispiel dafür, wie der stabile Diffusionsalgorithmus verwendet wurde, um ein Bild eines Teddys zu erzeugen, das dem ursprünglichen Teddy ähnlich ist.

  • 00:45:00 In diesem Video stellt der Kursleiter das Konzept der stabilen Diffusion vor, bei dem es sich um einen mathematischen Ansatz handelt, der dem traditionellen Ansatz entspricht, aber konzeptionell einfacher ist. Er erklärt, dass man durch Verwendung einer Funktion, die die Wahrscheinlichkeit bestimmen kann, dass ein Bild eine handgeschriebene Ziffer ist, neue Bilder erzeugen kann, die wie handgeschriebene Ziffern aussehen.

  • 00:50:00 In diesem Video erklärt ein Kursleiter, wie man mithilfe von Deep Learning den Gradienten der Wahrscheinlichkeit berechnet, dass ein eingegebenes Bild eine handgeschriebene Ziffer ist.

  • 01:05:00 Dieses Video stellt die Idee der stabilen Diffusion vor, einer Methode zum Trainieren neuronaler Netze. Die Grundidee besteht darin, die Eingaben in ein neuronales Netzwerk zu modifizieren, um die Ausgabe zu ändern.

  • 01:10:00 In diesem Video erläutert der Kursleiter, wie ein neuronales Netz erstellt wird, das in der Lage ist, handschriftliche Ziffern aus verrauschter Eingabe korrekt zu identifizieren. Sie besprechen zunächst, wie ein Trainingsdatensatz erstellt wird, und erklären dann, wie das neuronale Netz trainiert wird.

  • 01:15:00 Dieses Video stellt das Konzept des tiefen Lernens und der stabilen Diffusion vor, mit denen das Rauschen in einem digitalen Bild vorhergesagt werden kann. Das neuronale Netz sagt das Rauschen voraus, und die Verlustfunktion ist einfach: Nehmen Sie die Eingabe und sagen Sie das Rauschen voraus.

  • 01:20:00 Das neuronale Netzwerk in diesem Video versucht, das Rauschen vorherzusagen, das den Eingängen hinzugefügt wurde. Dazu subtrahiert er die Bits, die er für Rauschen hält, von der Eingabe. Nachdem Sie dies mehrmals getan haben, wird es schließlich etwas, das eher wie eine Ziffer aussieht.

  • 01:25:00 In diesem Video zeigt der Kursleiter, wie ein neuronales Netz, U-Net genannt, verwendet werden kann, um ein Bild anzunähern. Das Problem ist, dass das U-Net viel Speicherplatz benötigt, was für Google mit seiner großen Wolke von TPUs ein Problem sein kann.

  • 01:30:00 Das Video erklärt, wie man ein Bild mit Deep Learning komprimiert. Zunächst wird ein Bild komprimiert, indem es durch eine Schicht aus zwei Faltungsschichten geführt wird. Dieser Vorgang wird wiederholt, bis das Bild auf eine 64x64x4-Version verkleinert ist. Als nächstes wird das Bild als neuronale Netzwerkebene gespeichert. Schließlich wird das neuronale Netzwerk verwendet, um Bilder unterschiedlicher Größe zu komprimieren.

  • 01:35:00 Das Video erläutert, wie eine Verlustfunktion verwendet werden kann, um einem neuronalen Netz beizubringen, wie man ein Bild komprimiert, was zu einer kleineren Datei führt. Der Komprimierungsalgorithmus funktioniert gut und kann verwendet werden, um Bilder zwischen zwei Personen auszutauschen.

  • 01:40:00 Dieses Video bietet ein Tutorial zum Trainieren eines Deep-Learning-Modells mit latenten Daten. Latente sind eine spezielle Art von Daten, die nicht direkt beobachtet werden und zum Trainieren eines Deep-Learning-Modells verwendet werden. Latente werden erzeugt, indem die Pixel eines Bildes mithilfe eines neuronalen Netzwerks codiert werden. Der Kodierungsprozess erzeugt eine latente Repräsentation des Bildes. Der Decoder verwendet diese latente Darstellung, um das ursprüngliche Bild zu erzeugen.

  • 01:45:00 Dieses Video erklärt, wie ein neuronales Netzwerk lernen kann, Rauschen besser vorherzusagen, indem es sich die Tatsache zunutze macht, dass es weiß, was das Originalbild war. Dies ist nützlich, da das Modell, wenn es beispielsweise mit der Zahl 3 gefüttert wird, sagt, dass das Rauschen alles ist, was nicht die Zahl 3 darstellt.

  • 01:50:00 Das Video erklärt, wie zwei neuronale Netze verwendet werden können, um Text und Bilder zu kodieren. Das erste neuronale Netzwerk wird verwendet, um Text zu codieren, und das zweite neuronale Netzwerk wird verwendet, um Bilder zu codieren. Das Ziel besteht darin, dass die beiden Netzwerke ähnliche Ausgaben für eine gegebene Eingabe erzeugen. Die Ähnlichkeit der Ausgaben wird durch das Skalarprodukt der Merkmale der Eingabe und der Merkmale der Ausgabe bestimmt.

  • 01:55:00 In diesem Video wird erläutert, wie Sie einen CLIP-Textcodierer erstellen, bei dem es sich um eine Art maschinelles Lernmodell handelt, das ähnliche Einbettungen für ähnliche Texteingaben erzeugen kann. Dies ist wichtig, da es eine multimodale Texterkennung und -synthese ermöglicht.

  • 02:00:00 In diesem Video erklärt der Kursleiter, wie ein maschinelles Lernmodell mit einem Deep-Learning-Algorithmus trainiert wird. Das Modell wird mit einem Satz latenter Variablen (die die Daten darstellen) initialisiert und verwendet einen Decoder, um die Rohdaten zu verstehen. Als nächstes wird ein Textcodierer verwendet, um maschinenlesbare Beschriftungen für die Daten zu erstellen. Schließlich wird ein U-Net unter Verwendung der Beschriftungen als Eingabe trainiert, und die Gradienten (die "Bewertungsfunktion") werden verwendet, um die Rauschpegel in den Trainingsdaten anzupassen.

  • 02:05:00 In diesem Video beschreibt der Autor, wie Deep-Learning-Algorithmen funktionieren und wie sie versuchen, die beste Schätzung für ein latentes (unbekanntes) Bild zu finden. Der Autor beschreibt auch, wie die Parameter des Algorithmus optimiert werden können, um die Ergebnisse zu verbessern.

  • 02:10:00 Das Video erläutert, wie Differentialgleichungslöser wie Optimierer ähnliche Ideen wie Deep-Learning-Modelle verwenden. Das Video erläutert, wie Perceptual Loss und andere Verlustfunktionen verwendet werden können, um die Genauigkeit von Deep-Learning-Modellen zu verbessern. Das Video bietet einen kleinen Vorgeschmack auf die nächste Lektion, in der der Code für eine Deep-Learning-Pipeline erklärt wird.

  • 02:15:00 Dieses Video diskutiert einige neue Forschungsrichtungen im Bereich Deep Learning, die wahrscheinlich die Stabilität und Verbreitung der Technologie verbessern werden.
 

Herausforderungen beim Deep Learning (Dr. Razvan Pascanu – DeepMind)



Herausforderungen beim Deep Learning (Dr. Razvan Pascanu – DeepMind)

Dr. Razvan Pascanu von DeepMind diskutiert in diesem Video mehrere Herausforderungen beim Deep Learning. Er betont die Bedeutung der Anpassungsfähigkeit und der Verlagerung des Fokus von Leistungsmetriken und schlägt vor, dass die Einschränkungen der Rechenressourcen in Deep-Learning-Systemen tatsächlich von Vorteil sein können. Darüber hinaus untersucht er die Herausforderungen des kontinuierlichen Lernens und des damit verbundenen Teilgebiets des maschinellen Lernens, einschließlich des Einflusses von Größe und Architektur auf die Leistung von Deep-Learning-Modellen. Dr. Pascanu erörtert auch die Rolle des stochastischen Gradientenabstiegs, die Bedeutung expliziter Verzerrungen und das Konzept des Vortrainings und das Hinzufügen induktiver Verzerrungen in Deep-Learning-Modellen.

Dr. Razvan Pascanu von DeepMind diskutiert das Problem des Vergessens beim Deep Learning und wie sich Modelle davon erholen können. Obwohl etwas Wissen nach dem Vergessen noch vorhanden sein kann, ist es schwierig festzustellen, wie viele Informationen verloren gehen. Dr. Pascanu erwähnt, dass sich jüngste Arbeiten zum gezielten Vergessen auf den Datenschutz konzentriert haben, aber in diesem Bereich mehr Forschung und Konzentration erforderlich sind.

  • 00:00:00 In diesem Abschnitt erläutert Dr. Razvan Pascanu seine Erkenntnisse zur Bedeutung der Anpassung beim Deep Learning. Trotz der Betonung von Leistungsmetriken hebt Pascanu die einschränkenden Auswirkungen der kontinuierlichen Optimierung für dieses einzelne Maß hervor. Der Mangel an Anpassungsfähigkeit in festen Systemen angesichts unvorhersehbarer Änderungen in der Umgebung, der Fokus auf One-Size-Fits-All-Lösungen, das Fehlen klar definierter Leistungsmetriken in komplexeren Szenarien und die Skalierung von Systemen, um sie allein zu bewältigen Engpässe wie begrenzte Daten- und Rechenressourcen sind einige der Probleme, die dazu führen, dass sich der Fokus auf die Anpassung im Deep Learning verlagert.

  • 00:05:00 In diesem Abschnitt erörtert Dr. Razvan Pascanu die Grenzen der ausschließlichen Konzentration auf die Leistung beim Deep Learning und schlägt vor, Systeme zu erforschen, die sich kontinuierlich an Veränderungen anpassen können. Er hebt Fragen der Abdeckung und Datenrepräsentativität beim Lernen aus großen Datensätzen hervor sowie die Herausforderung, die Out-of-Distribution-Generalisierungsfähigkeit eines Systems zu bewerten. Pascanu schlägt vor, dass das Nachdenken über Anpassungsfähigkeit die Perspektive verändert und dazu beitragen kann, einige dieser Probleme anzugehen. Er zitiert das Argument von Thomas Griffiths, dass der Grund, warum wir bestimmte Schritte von AlphaGo nicht verstehen können, darin besteht, dass wir dazu neigen, Probleme in Teilziele zu zerlegen, während sich der Agent nur um die endgültige Leistung kümmert. Pascanu kommt zu dem Schluss, dass ein Perspektivenwechsel vielleicht nicht alle Probleme löst, aber zu neuen Einsichten und Ansätzen führen könnte.

  • 00:10:00 In diesem Abschnitt erörtert Dr. Pascanu die Idee, dass Einschränkungen in Deep-Learning-Systemen von Vorteil sein können. Während Menschen kognitive Einschränkungen haben, die unsere Denkweise prägen, haben maschinelle Lernsysteme rechnerische Einschränkungen, die prägen, wie sie lernen. Wenn wir Einschränkungen als eine Hürde betrachten, die es zu überwinden gilt, verpassen wir möglicherweise die Vorteile dieser Einschränkungen. Die Begrenzung des Rechenbudgets kann das System dazu zwingen, kombinatorische Lösungen zu finden, was zu besseren Ergebnissen führen kann. Dr. Pascanu ist der Ansicht, dass wir uns nicht nur auf die Leistung konzentrieren sollten, sondern auch die Lernkosten, die Kosten der Inferenz und die Menge an fest codierten Informationen berücksichtigen sollten. Es gibt jedoch noch Herausforderungen in Bezug auf die Beziehung zwischen Datenverteilung und Datenpunkten zu überwinden, und Dr. Pascanu betont, wie wichtig es ist, verschiedene Werkzeuge wie die Kategorientheorie zu erforschen, um diese Herausforderungen anzugehen.

  • 00:15:00 In diesem Abschnitt erläutert Dr. Razvan Pascanu-DeepMind, warum kontinuierliches Lernen wichtig ist und welche Anforderungen an ein System gestellt werden, das kontinuierlich effizient lernen kann. Er hebt hervor, dass es viele Arten des kontinuierlichen Lernens gibt, was es schwierig macht, jedes spezifische Problem zu definieren und zu lokalisieren. Darüber hinaus kann die Definition von kontinuierlichem Lernen auch zu Widersprüchen führen, und einige der Probleme werden je nach den verwendeten Aufgaben und Benchmarks sichtbarer. Dr. Pascanu-DeepMind schlägt vor, dass eine Möglichkeit, kontinuierliches Lernen zu erden, darin besteht, sich auf echte Probleme zu konzentrieren, wie z. Eine andere Möglichkeit besteht darin, sich auf bestärkendes Lernen zu konzentrieren.

  • 00:20:00 In diesem Abschnitt erörtert Dr. Razvan Pascanu die Herausforderungen des kontinuierlichen Lernens beim Reinforcement Learning (RL) und die Techniken, die bisher entwickelt wurden, um dieses Problem zu mindern. Da Daten in RL nicht stationär sind, ist es notwendig, sich mit kontinuierlichem Lernen auseinanderzusetzen, damit Funktionsannäherungen funktionieren. Mehrere Techniken wurden basierend auf Brute-Force-Methoden entwickelt, wie z. B. Wiederholungspuffer, um katastrophales Vergessen zu verhindern, Expertenliga in Starcraft und Verkaufsspiel in AlphaGo. Diese Verfahren können jedoch teuer werden, und es besteht immer die Notwendigkeit, diese Kosten zu reduzieren. Pascanu präsentiert ein interessantes Papier, das argumentiert, dass sich RL und überwachtes Lernen darin unterscheiden, dass die Übertragung von Merkmalen in RL-Systemen nicht so hilfreich ist und der Fokus auf der Kontrolle der Qualität der Daten und der Zentralisierung des Akteurs und Kritikers liegen sollte.

  • 00:25:00 In diesem Abschnitt erörtert der Referent die Herausforderungen des kontinuierlichen Lernens und weist darauf hin, dass es Aspekte der kontinuierlichen Ausrichtung gibt, die das überwachte Lernen nicht nachahmen kann. Der Referent erwähnt ein Papier, das diese Unterschiede zwischen RL und überwachtem Lernen auflistet. Darüber hinaus erörtert der Redner, wie kontinuierliches Lernen eher als Verfolgungsproblem denn als Konvergenz zu einem Punkt betrachtet werden kann. Der Referent erwähnt den Verlust an Plastizität, der bei der Feinabstimmung auf neue Daten auftritt, und wie sich dies auf die Verallgemeinerung auswirken kann. Abschließend erörtert der Referent die Kreditvergabe in neuronalen Netzen und wie der Gradient für jedes Gewicht unabhängig berechnet wird, was zu widersprüchlichen Abstimmungen führen kann, die sich auf den Durchschnitt auswirken.

  • 00:30:00 In diesem Abschnitt des Videos spricht Dr. Razvan Pascanu über das spontane Lernen, das einem Tauziehen ähnelt, bei dem jedes Beispiel eine Kraft auf das Gewicht ausübt und das Lernen stattfindet, wenn das Gleichgewicht herrscht zwischen diesen Kräften erreicht. ID-Daten sind in diesem Prozess unerlässlich, da sie sicherstellen, dass alle Kräfte vorhanden sind. Darüber hinaus lehrt das Lernen indirekt Wissen, wobei verschiedene verwandte Konzepte gleichzeitig gelernt werden. Es wird vorgeschlagen, dass die Learning Dynamics-, Optimierer- und Spielautomatisierungs-Middleware verbessert werden kann, um einen effizienteren Lernprozess zu schaffen, um mehr Wissen aus weniger Daten zu gewinnen.

  • 00:35:00 In diesem Abschnitt erörtert Dr. Razvan Pascanu von DeepMind die Herausforderungen im Teilgebiet des maschinellen Lernens, bekannt als kontinuierliches Lernen, bei dem versucht wird, einem System neue Dinge beizubringen, ohne dass es das zuvor Gelernte vergisst. Das Feld ist unterspezifiziert, Benchmarks sind nicht klar definiert und es gibt Meinungsverschiedenheiten darüber, was den Menschen am Herzen liegt. Ein Problem ist die Qualität der Daten und die Kompromisse zwischen Lernen und Vergessen, die stark davon abhängen, wie der Benchmark definiert ist. Ziel ist es, Benchmarks zu entwickeln, die natürlicher sind, aber nicht einmal die Definition von "natürlich" ist sich einig.

  • 00:40:00 In diesem Abschnitt erörtert Dr. Razvan Pascanu das Konzept von AGI-Systemen und ihre Beziehung zur menschlichen Intelligenz. Er erklärt, dass der Bau eines AGI-Systems, das Menschen ähnelt, zwar wünschenswert sein könnte, um die Interpretation zu erleichtern, dies aber nicht notwendig ist. Die beim AGI-Lernen verwendeten Unterziele sind effizient und helfen bei der kompositorischen Verallgemeinerung, was ein schnelleres Lernen neuer Dinge ermöglicht. Pascanu erörtert auch, wie die impliziten Vorurteile von Deep-Learning-Modellen zu Fehlern führen können und wie explizite Vorurteile zur Verbesserung von Modellen verwendet werden können. Er gibt ein Beispiel dafür, wie kontinuierliches Lernen durch den Einsatz überparametrisierter Systeme im Bereich sehr geringer Krümmung verbessert werden kann.

  • 00:45:00 In diesem Abschnitt des Videos erörtert Dr. Razvan Pascanu die Auswirkungen der Größe und Architektur eines Modells auf seine Leistung beim Deep Learning. Er stellt fest, dass allein die Skalierung einen erheblichen Einfluss darauf hat, wie gut ein System vergisst, und die Wahl der richtigen Architektur einen großen Unterschied macht. Das Feld ignoriert normalerweise die Auswirkungen von Architekturentscheidungen und vergleicht Architekturen oft unfair. Dr. Pascanu hebt auch die Rolle der Optimierung beim Deep Learning hervor und weist darauf hin, dass eine Überparametrisierung zu vielen Lösungen ohne Trainingsfehler führt. Wenn die Anzahl der Lösungen explodiert, konvergiert die Lösung, die der Initialisierung am nächsten kommt, und das System hängt immer noch von Initialisierungsbedingungen ab. Er nennt Beispiele von Forschungsarbeiten, die zeigen, dass die niedrige Oberfläche beliebig strukturiert und beliebig kompliziert sein kann. Abschließend erklärt er, dass res net aufgrund der Sprungverbindung gut funktioniert, die es verwendet, um zu ändern, wie Gradienten im System fließen.

  • 00:50:00 In diesem Abschnitt spricht Dr. Razvan Pascanu über einige neuere Ergebnisse, die die impliziten Verzerrungen beim stochastischen Gradientenabstieg (SGD) und die Bedeutung expliziter Verzerrungen zeigen. In Bezug auf SGD wurde traditionell angenommen, dass das Rauschen in SGD dazu beigetragen hat, scharfen Minima zu entkommen, aber es stellt sich heraus, dass der in SGD verwendete Regularizer eine implizite Verzerrung aufweist. Darüber hinaus ist das Datenerweiterungsrauschen schädlich, und sie fanden heraus, dass die Mittelung des Gradienten über verschiedene Datenerweiterungen dieses Rauschen reduzieren kann. Darüber hinaus sind Verzerrungen sehr wichtig, und eine geringfügige Änderung der Datenerweiterung kann zu enormen Leistungsverbesserungen führen. Sie untersuchten auch die Idee verschiedener Initialisierungen und wie sie die Partitionierung des Raums beeinflussen können, die für die Lösung des Problems von wesentlicher Bedeutung ist. Schließlich zeigt sich, dass auch die Nutzung expliziter Verzerrungen wie Vortraining zu signifikanten Verbesserungen führt.

  • 00:55:00 In diesem Abschnitt erörtert Dr. Razvan Pascanu das Konzept des Vortrainings und das Hinzufügen induktiver Verzerrungen in Deep-Learning-Modellen. Er erklärt, dass Vortraining dazu beitragen kann, dass Informationen ordnungsgemäß zwischen Knoten übertragen werden können, und zu einer erheblichen Verbesserung exklusiver Geräte führen kann. Darüber hinaus beschreibt Dr. Pascanu einen einzigartigen Ansatz zum Hinzufügen induktiver Vorspannungen durch Formen der Verlustoberfläche anstelle des Hinzufügens eines Regularisierungsterms, der dazu beitragen kann, dass die Gewichtungen auf Null fixiert werden und die Lerneffizienz verbessert wird. Er spricht auch Probleme im Zusammenhang mit katastrophalem Vergessen und der Herausforderung an, Probleme beim maschinellen Lernen zu zerlegen.

  • 01:00:00 In diesem Abschnitt erörtert Dr. Pascanu die Idee des Vergessens beim Deep Learning und wie sich Modelle davon erholen können. Er weist darauf hin, dass auch dann noch etwas Wissen verborgen ist, wenn ein Modell bestimmte Dinge vergessen hat, aber es ist schwierig festzustellen, wie viel Wissen tatsächlich verloren geht. Dr. Pascanu erwähnt bevorstehende Arbeiten zum gezielten Vergessen, bei denen bestimmte Datenpunkte aus dem Modell entfernt werden, um die Privatsphäre zu schützen, aber er glaubt, dass mehr Forschung auf diesem Gebiet erforderlich ist.
 

CS 198-126: Modern Computer Vision Herbst 2022 (University of California, Berkeley) Vorlesung 1 - Einführung in maschinelles Lernen



CS 198-126: Vorlesung 1 - Einführung in maschinelles Lernen

In dieser Vorlesung zum maschinellen Lernen behandelt der Dozent ein breites Themenspektrum, darunter eine Einführung in den Kurs, einen Überblick über maschinelles Lernen, verschiedene Arten von maschinellem Lernen, maschinelle Lernpipeline, Kennzeichnung von Daten und Verlustfunktion. Das Konzept des Bias-Varianz-Kompromisses, Overfitting und Underfitting wird ebenfalls diskutiert. Der Kursleiter betont die Bedeutung der Auswahl der richtigen Funktion während des Prozesses des maschinellen Lernens und die Rolle von Hyperparametern in diesem Prozess. Das übergeordnete Ziel des maschinellen Lernens besteht darin, neue Daten genau vorherzusagen und nicht nur die Trainingsdaten anzupassen. Der Dozent ermutigt die Studenten, den Kurs zu besuchen und sich zu bemühen, etwas über maschinelles Lernen und Deep Learning zu lernen.

  • 00:00:00 In diesem Abschnitt gibt es keinen sinnvollen Inhalt zum Zusammenfassen, da der bereitgestellte Transkriptauszug ein Gespräch zwischen dem Sprecher und dem Publikum über die Mikrofonsituation im Raum zu sein scheint.

  • 00:05:00 In diesem Abschnitt werden wir in die Vortragsreihe zu Deep Learning für Computer Vision eingeführt, die von Jake und seinen Kollegen präsentiert wird. Zu Beginn des Kurses geht Jake die Logistik des Kurses durch und skizziert, was sie in der ersten Vorlesung besprechen werden, nämlich einen Überblick über maschinelles Lernen und wie es angegangen wird. Trotz einiger technischer Schwierigkeiten mit dem Aufnahmegerät freut sich Jake darauf, die Klasse zu unterrichten, und beginnt mit einer Vorstellung von sich und seinen Kollegen.

  • 00:10:00 In diesem Abschnitt stellt sich der Kursleiter selbst und den Kurs vor, der darauf abzielt, Studienanfängern, die noch nicht viel mit dem Material in Berührung gekommen sind, ein einführendes Bootcamp in Computer Vision und Deep Learning zu bieten. Der Kurs behandelt Themen wie Computer-Vision-Aufgaben, Lernen aus großen Bilddatensätzen, 3D-Vision und generative Kunst. Der Kursleiter betont, dass der Kurs Spaß machen und interaktiv sein soll, und stellt die Logistik für den Kurs bereit, z. B. den Zugriff auf Aufzeichnungsfolien und Aufgaben auf der Website und die Verwendung von Ed stem, um mit Studenten und dem Kurspersonal zu interagieren. Der Lehrplan ist auch auf der Website verfügbar, und das erste Quiz wird Ende nächsten Wochenendes fällig.

  • 00:15:00 In diesem Abschnitt gibt der Kursleiter eine Einführung in maschinelles Lernen (ML). Er erklärt, dass ML der Prozess ist, Daten zu verwenden, um herauszufinden, wie eine Funktion aussieht, anstatt sie selbst zu programmieren. Bei ML leiten die Daten die Funktionen, und der Kursleiter gibt ein Beispiel dafür, wie eine Funktion zum Identifizieren der Zahl 7 aus einem Bild mit ML viel einfacher zu erstellen ist als der Versuch, dies durch Codierung zu tun. Der Kursleiter erklärt, dass ML die Erstellung von Vorlagen beinhaltet, bei der man die Struktur einer Funktion erstellt und einige Parameter belässt, die bestimmen, wie sich die Funktion verhält, wobei die Parameter durch Daten gelernt werden. Es wird diskutiert, wie wichtig es ist, die richtigen Funktionsvorlagen zu erstellen, da sie den Erfolg des ML-Modells bestimmen.

  • 00:20:00 In diesem Abschnitt des Vortrags erklärt der Referent, dass der Schlüssel zum maschinellen Lernen darin besteht, das Format der Funktion herauszufinden, der das Modell folgen wird. Diese Funktion wird manchmal als Modellklasse bezeichnet, und bestimmte Teile davon sind leer und werden als Parameter bezeichnet, die die Werte sind, die wir lernen dürfen. Der Referent betont, dass die Wahl der Funktion von entscheidender Bedeutung ist, um genaue Ergebnisse zu erzielen. Der Referent bietet auch einen kurzen Überblick und eine Kategorisierung verschiedener Arten des maschinellen Lernens, einschließlich überwachtes Lernen, nicht überwachtes Lernen und bestärkendes Lernen, und führt in das Vokabular ein, das mit maschinellem Lernen verbunden ist, einschließlich Funktion, Parameter, Gewichtungen, Verzerrungen, Hyperparameter und Merkmale.

  • 00:25:00 In diesem Abschnitt erklärt der Dozent den Prozess des maschinellen Lernens mit Schwerpunkt auf der ML-Pipeline. Zunächst ist es wichtig, das Problem zu definieren, die Daten vorzubereiten und das Modell und die Verlustfunktion auszuwählen. Es ist auch wichtig, die Daten mit einem One-Hot-Labeling-System zu kennzeichnen, um sie in Zahlen umzuwandeln, die das Modell erkennen kann. Der Dozent betont die Bedeutung guter Daten und weist darauf hin, dass eine schlechte Dateneingabe zu einem ebenso schlechten Ergebnis führt. Darüber hinaus erläutert er die Bedeutung der Vektorisierung von Daten, um sicherzustellen, dass alle Features im gleichen Maßstab und in der richtigen Reihenfolge dargestellt werden.

  • 00:30:00 In diesem Abschnitt erklärt der Dozent, wie man Daten für maschinelle Lernanwendungen kennzeichnet und warum es wichtig ist, Daten korrekt darzustellen. Es wird eine Hot-Kennzeichnung verwendet, wobei jede Kennzeichnung durch einen Vektor mit einer Eins an der entsprechenden Position und Nullen an anderer Stelle dargestellt wird. Das Definieren eines Modells und einer Verlustfunktion ist beim Trainieren eines Modells für maschinelles Lernen von entscheidender Bedeutung. Das Modell sollte auf das spezifische Problem und die Daten zugeschnitten sein, und es können verschiedene Modelle getestet werden, um zu sehen, welches am besten funktioniert. Die Verlustfunktion misst die Effektivität des Modells, und ein niedriger Wert ist wünschenswert.

  • 00:35:00 In diesem Abschnitt erörtert der Dozent die Bedeutung einer Metrik zur Optimierung beim maschinellen Lernen und stellt das Konzept einer Verlustfunktion vor, um den Unterschied zwischen der Ausgabe des Modells und der korrekten Bezeichnung zu messen. Der mittlere quadratische Fehler wird als Beispiel für eine Verlustfunktion angegeben, um den Abstand zwischen der Ausgabe des Modells und dem richtigen Etikett zu berechnen. Die Verlustfunktion ist ein Hyperparameter, der vorher ausgewählt werden muss. Außerdem spricht der Dozent über die Trainingsphase, in der der Algorithmus mithilfe der Verlustfunktion die optimalen Werte für die Parameter des Modells auswählt. Darüber hinaus wird ein Testsatz verwendet, den das Modell zuvor noch nicht gesehen hat, um die Leistung des Modells zu bewerten und zu bestimmen, wie gut sich das Modell auf neue Daten verallgemeinern lässt. Abschließend wird betont, wie wichtig es ist sicherzustellen, dass das Modell die Trainingsdaten nicht nur speichert, sondern sich gut auf neue Daten verallgemeinern lässt.

  • 00:40:00 In diesem Abschnitt wird das Konzept des Ausgleichs von Bias und Varianz als entscheidender Aspekt beim maschinellen Lernen erörtert, der in Deep Learning und allen anderen ML-Klassen auftritt. Bias bezieht sich auf die Tendenz des Modells zu bestimmten Vorhersagen, und Varianz ist die Fähigkeit eines Modells, die Komplexität von Daten zu erfassen, ohne sie sich zu merken. Es werden Beispiele für hohe Verzerrung und hohe Varianz gegeben, wobei eine hohe Verzerrung ein Fall ist, in dem ein Modell nicht ausdrucksstark genug ist, um einen Datensatz genau zu lernen, während sich eine hohe Varianz auf eine Überanpassung bezieht. Das ideale Modell ist eines, das die Komplexität der Daten erfasst, ohne sie sich zu merken, was als Goldilocks-Zone bekannt ist. Der Bias-Varianz-Kompromiss ist ein wichtiges Konzept beim maschinellen Lernen, das Benutzer kennen sollten, da sie ihm in jedem maschinellen Lernkurs begegnen werden, an dem sie teilnehmen.

  • 00:45:00 In diesem Abschnitt erörtert der Referent das Konzept der Überanpassung und Unteranpassung in maschinellen Lernmodellen. Das Ziel des maschinellen Lernens besteht darin, neue Daten genau zu modellieren und vorherzusagen, und nicht nur die Trainingsdaten anzupassen. Wenn ein Modell in der Lage ist, die Trainingsdaten zu genau abzugleichen, neue Daten jedoch nicht genau vorherzusagen, ist es überangepasst. Wenn ein Modell hingegen zu einfach ist und die Muster in den Daten nicht erfassen kann, ist es unzureichend angepasst. Der beste Ansatz besteht darin, ein Gleichgewicht zwischen einer ausreichenden Anpassung an die Trainingsdaten und der Verallgemeinerung auf neue Daten zu finden. Dies beinhaltet Trial-and-Error mit Hyperparameter-Tuning und der Auswahl geeigneter Verlustfunktionen.

  • 00:50:00 In diesem Abschnitt behandelt der Kursleiter das Konzept von Bias und Varianz in maschinellen Lernmodellen. Ein Modell mit hoher Verzerrung hat eine ähnliche Genauigkeit zwischen Trainings- und Testdaten, da es unabhängig von der Eingabe immer die gleiche Ausgabe ausspuckt. Andererseits passt ein Modell mit hoher Varianz zu eng an die Daten, was zu einem großen Verlust führt, wenn es mit neuen Daten getestet wird. Der Ausbilder betont den Kompromiss zwischen Modellkomplexität und Verallgemeinerung, der bei der Auswahl eines Modells für eine bestimmte Aufgabe zu verstehen ist. Schließlich ermutigt der Kursleiter die Schüler, den Unterricht zu besuchen und sich zu bemühen, etwas über maschinelles Lernen und Deep Learning zu lernen, auch wenn dies möglicherweise nicht ihre oberste Priorität ist.
 

CS 198-126: Vorlesung 2 - Einführung in Deep Learning, Teil 1



CS 198-126: Vorlesung 2 - Einführung in Deep Learning, Teil 1

In diesem YouTube-Vortrag zur Einführung in Deep Learning erörtert der Dozent die Grundlagen von Deep-Learning-Modellen und wie man sie mit Gradientenabstieg trainiert, behandelt verschiedene Bausteine für neuronale Netze und warum Deep Learning eine so weit verbreitete Technologie ist. Die Vorlesung stellt das Perzeptron und das Stapeln mehrerer Perzeptronen vor, um ein komplexeres und anspruchsvolleres neuronales Netzwerk zu erstellen, und erklärt, wie die Ausgabe durch Matrixmultiplikation und eine abschließende Addition berechnet wird, wobei die mittlere Schicht eine ReLU-Aktivierungsfunktion verwendet. Der Referent spricht die Verwendung der Softmax-Funktion und der ReLU-Aktivierungsfunktion an, wobei Verlustfunktionen als Metriken zur Bewertung der Leistung des Modells verwendet werden, sowie das Konzept der Gradientenabstiegsoptimierung. Abschließend erörtert der Kursleiter die Idee des Deep Learning und wie ein großes neuronales Netzwerk trotz seiner Fähigkeit, sich die Daten zu merken, zu geringen Verlusten führt. Außerdem stellt der Dozent das Konzept des Hyperparameter-Tunings in neuronalen Netzen vor, um deren Leistung mit bestimmten Datensätzen zu verbessern. Er stellt fest, dass es keine universellen Werte für Hyperparameter gibt, und schlägt vor, verschiedene Optionen wie Schichtnummern und Aktivierungsfunktionen zu untersuchen. Aus zeitlichen Gründen endet die Vorlesung abrupt, aber der Dozent versichert den Studierenden, dass das bevorstehende Quiz nicht allzu schwierig sein und auf der GreatScope-Plattform zugänglich sein wird.

  • 00:00:00 In diesem Abschnitt fragt der Dozent das Publikum, ob es Fragen zum vorherigen Vortrag hat, insbesondere zum Bias-Varianz-Trade-off und zu One-Hot-Codierungen. Sie gehen kurz auf die explorative Datenanalyse und die k-fache Kreuzvalidierung ein und erklären, dass diese Themen im Kurs nicht viel behandelt werden. Der Dozent erklärt, wie die k-fache Kreuzvalidierung funktioniert, bevor er mit der zweiten Vorlesung über Deep Learning beginnt.

  • 00:05:00 In diesem Abschnitt der Vorlesung gibt der Dozent einen kurzen Überblick darüber, was die Studenten lernen können, einschließlich der Grundlagen von Deep-Learning-Modellen und wie man sie mit Gradientenabstieg trainiert. Der Vortrag behandelt auch verschiedene Bausteine für neuronale Netze und warum Deep Learning eine so weit verbreitete Technologie ist. Bevor er in die Besonderheiten des Deep Learning eintaucht, wiederholt der Kursleiter einige grundlegende Konzepte der linearen Algebra, wie z. B. Vektorpunktprodukte und Matrix-Vektor-Multiplikation. Diese Konzepte sind wichtig, um das Innenleben von Deep-Learning-Modellen zu verstehen. Der Lehrer stellt Beispiele und Notationen zur Verfügung, um den Schülern zu helfen, das Material vollständig zu verstehen.

  • 00:10:00 In diesem Abschnitt des Videos erörtert der Sprecher die Notation und Indexierung beim Deep Learning, wo Vektoren und Matrizen verwendet werden, um die Parameter der Black-Box-Funktion darzustellen. Der Sprecher erklärt, dass jedes Element in der Matrix ein Parameter ist und sich bei der Indizierung innerhalb eines Vektors auf einen einzelnen Skalar bezieht. Sie betonen die Einfachheit partieller Ableitungen in Bezug auf Eingaben und erklären die Motivation hinter neuronalen Netzen.

  • 00:15:00 In diesem Abschnitt diskutiert der Dozent die verschiedenen Arten von Problemen, die Deep Learning lösen kann, wie Regression, Klassifizierung und Reinforcement Learning. Ziel ist es, ein universelles Modell zu schaffen, das für alle Arten von Aufgaben verwendet werden kann, ähnlich den Fähigkeiten des menschlichen Gehirns. Um dieses Modell zu erstellen, führt der Dozent das Perzeptron ein, eine mathematische Formulierung, die einem Neuron ähnelt. Das Perzeptron nimmt Eingaben auf, gewichtet sie, addiert sie und aktiviert sie dann durch eine Sprungfunktion. Das Ziel ist es, ein Mini-Gehirn zu schaffen, das komplexe Probleme lösen kann, wie z. B. die nichtlineare Regression eines kompliziert aussehenden Polynoms.

  • 00:20:00 In diesem Abschnitt stellt das Video das Konzept des Stapelns mehrerer Perzeptronen vor, um ein komplexeres und anspruchsvolleres neuronales Netzwerk zu erstellen. Das Video zeigt, wie die Perzeptronoperation kompakter als Skalarprodukt zwischen Eingaben und Gewichten und einem Bias-Term geschrieben werden kann. Das Video übernimmt dann diese Operation und wiederholt sie für mehrere Perceptrons, um ein neuronales Netzwerk mit einer einzigen Schicht zu erstellen. Das Video weist darauf hin, dass die Gewichte für jedes Perzeptron je nach Datensatz und vorliegendem Problem erlernt werden können.

  • 00:25:00 In diesem Abschnitt erklärt der Dozent, wie das Skalarprodukt funktioniert, um die Perzeptronausgabe zu berechnen, wobei jedes Perzeptron seine eigenen einzigartigen Gewichte und Verzerrungen hat. Jedes Element im Vektor stellt die Perzeptronausgabe dar, bei der es sich um das Skalarprodukt mit einem hinzugefügten Skalar handelt. Der Vortrag stellt dann ein Spielzeugbeispiel vor und bittet das Publikum, sich an seinen Nachbarn zu wenden und die Mathematik zu diskutieren, um die Ausgabe vorherzusagen.

  • 00:30:00 In diesem Abschnitt stellt der Referent ein grundlegendes neuronales Netzwerk vor, das aus einer Eingabeschicht mit zwei Eingängen, einer verborgenen Schicht mit drei Knoten und einer Ausgabeschicht mit einem Ausgang besteht. Der Referent demonstriert, wie die Ausgabe durch Matrixmultiplikation und eine abschließende Addition berechnet wird, wobei die mittlere Schicht eine ReLU-Aktivierungsfunktion verwendet. Der Referent erklärt dann, wie man die Forward-Pass-Notation komprimiert und geht auf eine Frage zur Reihenfolge der Gewichte ein. Abschließend führt der Referent kurz in die Klassifikation mittels neuronaler Netze ein.

  • 00:35:00 In diesem Abschnitt des Vortrags spricht der Referent über die Interpretation der Ausgabe eines Deep-Learning-Modells. Der Sprecher verwendet das Beispiel der Klassifizierung einer Ziffer und der Darstellung der Bezeichnungen als One-Hot-Darstellung. Um die Ausgabe des Modells einzuschränken und sicherzustellen, dass die Ausgabe des Modells als die Wahrscheinlichkeit interpretiert werden kann, dass das Modell glaubt, dass es zu einer bestimmten Klasse gehört, führt der Sprecher die Softmax-Operation ganz am Ende des neuronalen Netzwerks ein. Die Softmax-Funktion nimmt die Exponentialfunktion aller Ausgabewerte und normalisiert dann die Ergebnisse, um sicherzustellen, dass alle Elemente zwischen 0 und 1 liegen und sich zu 1 summieren. Diese Funktion garantiert, dass das Modell niemals vollkommenes Vertrauen hat, es sei denn, es gibt fast unendlich negativ aus jeden einzelnen Wert, daher das Meme, dass es beim Deep Learning immer Ungewissheit geben wird.

  • 00:40:00 In diesem Abschnitt erörtert der Dozent die Softmax-Funktion, die einen Vektor von Werten aufnimmt und einen Vektor von Werten ausgibt, die sich zu Eins summieren und alle größer als Null sind. Diese Funktion wird am Ende eines neuronalen Netzes verwendet, wenn man die Ausgaben des Netzes als Wahrscheinlichkeiten für verschiedene Klassen interpretieren möchte. Der Vortrag erklärt auch, dass der Grund für das Hinzufügen der ReLU-Aktivierungsfunktion, die das Netzwerk komplexer macht, darin besteht, die Modellierung komplexer Funktionen zu ermöglichen, die eine einfache Matrixmultiplikation ohne ReLU möglicherweise nicht erfasst. Der Dozent geht auch auf die Verwendung von Verlustfunktionen als Metriken zur Bewertung der Leistung des Modells ein, wie z. B. den mittleren quadratischen Fehler. Schließlich wird die Metapher eingeführt, auf einem Hügel zu sein und nach unten gehen zu wollen, während man nur einen Fuß um sich herum sieht, um das Konzept der Gradientenabstiegsoptimierung zu erklären.

  • 00:45:00 In diesem Abschnitt stellt der Dozent das Konzept des Bergsteigens in der Optimierung und seine Anwendung auf Deep Learning vor. Das neuronale Netz ist eine Vektorfunktion, und die steilste Richtung ist der Gradient der Vektorfunktion. Der Dozent erklärt, dass das Herausfinden der Richtung des steilsten Anstiegs mithilfe eines Kalküls mit mehreren Variablen erfolgen kann, bei dem das Nehmen des Gradienten einer beliebigen Funktion mehrerer Variablen in Bezug auf ihre Eingaben die steilste Richtung ergibt. Beim Deep Learning ist das Problem, die besten Gewichte zu finden, die den minimalen Verlust optimieren, unglaublich schwierig, daher schlägt der Dozent vor, dass wir einfach alle Gewichte und Bias auf zufällige Werte initialisieren und kleine Schritte in Richtung des steilsten Abstiegs machen. Bei kontinuierlicher Bewertung sollte dieser Prozess zur richtigen Auswahl von Gewichtungen und Bias führen.

  • 00:50:00 In diesem Abschnitt erörtert der Redner, wie man in einer Verlustfunktion den Hügel hinuntersteigt, indem man die partielle Ableitung der Verlustfunktion in Bezug auf alle einzelnen Parameter nimmt. Der Referent erwähnt auch, dass die Verlustfunktion von allen Parametern wie Gewichtungen und Verzerrungen abhängt. Um diese Gewichtungen und Verzerrungen zu aktualisieren, nimmt man die Ableitung der Verlustfunktion in Bezug auf jene Parameter, die mit ihrem aktuellen Wert bewertet werden, und macht einen kleinen Schritt in die entgegengesetzte Richtung der größten Änderung, skaliert durch eine Lernrate. Die Hoffnung ist, dass nach dem Update der Wert der Verlustfunktion deutlich sinkt.

  • 00:55:00 In diesem Abschnitt erklärt der Dozent, wie man die Gewichtungen schrittweise erhöht, um den Verlust eines Beispiels zu verringern, mit dem Ziel, den Verlust für den gesamten Datensatz zu verringern. Der Gradient jedes einzelnen Trainingsbeispiels wird genommen, und wenn er gemittelt wird, ist dies der Schritt, der unternommen werden kann, um über den gesamten Datensatz zur größten Verlustabnahme zu führen. Für mehr Recheneffizienz können Sie es aufteilen und sich nur kleine Stücke ansehen, die als Batch-Gradientenabstieg bezeichnet werden. Der Dozent erläutert detailliert den Prozess von Netzwerkbausteinen wie Aktivierungsfunktionen und Verlustfunktionen und betont, dass es am Ende des Tages nur darauf ankommt, dass die Verlustfunktion quantifiziert, wie gut es uns geht. Der Dozent merkt auch an, dass es keine konkrete Möglichkeit gibt, die besten Werte für alle Gewichtungen und Bias im neuronalen Netzwerk zu definieren, daher die Verwendung dieser faulen Methoden. Abschließend wird die Idee des Deep Learning erklärt und erklärt, wie ein großes neuronales Netzwerk trotz seiner Fähigkeit, sich die Daten zu merken, zu geringen Verlusten führt, wie empirische Befunde zeigen.

  • 01:00:00 In diesem Abschnitt erörtert der Dozent den Prozess der Optimierung von Hyperparametern in einem neuronalen Netzwerk, um seine Leistung mit einem bestimmten Datensatz zu optimieren. Er räumt ein, dass es keinen festen Satz von Hyperparametern gibt, die für alle Datensätze funktionieren, und empfiehlt stattdessen, verschiedene Werte für Parameter wie die Anzahl der Schichten, Aktivierungsfunktionen usw. zu testen. Der Dozent musste das Ende der Vorlesung durcheilen und erwähnt dies Ein Quiz wird in Kürze veröffentlicht, aber es wird nicht zu herausfordernd sein und in großem Umfang verfügbar sein.
 

CS 198-126: Vorlesung 3 - Einführung in Deep Learning, Teil 2



CS 198-126: Vorlesung 3 - Einführung in Deep Learning, Teil 2

In diesem Abschnitt der Vorlesung wird das Konzept der Backpropagation erklärt, das ein schneller Weg ist, um alle partiellen Ableitungen zu erhalten, die für den Gradientenabstiegsalgorithmus benötigt werden, ohne redundante Operationen durchzuführen. Der Dozent erörtert auch, wie Vanilla Gradient Descent für die Deep-Learning-Optimierung verbessert werden kann, und stellt Momentum, RMSprop und Adam als Optimierungsmethoden vor. Die Wichtigkeit, den Trainingsverlauf eines Modells zu verfolgen, die Verwendung von Batch-Normalisierung und Zusammenstellung als Technik zur Verbesserung der Modellleistung werden ebenfalls diskutiert, sowie Techniken, die häufig beim Deep Learning verwendet werden, um eine Überanpassung wie Dropout und Skip Connections zu verringern. Abschließend geht der Dozent kurz auf die Benutzerfreundlichkeit von PyTorch ein und öffnet das Wort für Fragen.

  • 00:00:00 In diesem Abschnitt des Vortrags macht der Referent einige kurze Ankündigungen über den bevorstehenden Abgabetermin für die Codierungsaufgabe und das erste Quiz. Die erste Aufgabe ist eine Gelegenheit für die Schüler, die Werkzeuge zu lernen, die für den Rest des Kurses benötigt werden, und das Quiz soll als Verständnisprüfung dienen. Der Referent umreißt dann die Themen, die in der Vorlesung behandelt werden, einschließlich Backpropagation und moderner Deep-Learning-Tools, und versichert den Studenten, dass es in Ordnung ist, wenn sie die mathematischen Details der Backpropagation nicht verstehen, solange sie die allgemeine Idee verstehen . Die zweite Hälfte der Vorlesung ist wichtig und behandelt die Werkzeuge, mit denen modernes Deep Learning gut funktioniert.

  • 00:05:00 In diesem Abschnitt der Vorlesung wird das Konzept der Erstellung eines Berechnungsgraphen für Funktionen und die Verwendung der Kettenregel zur Berechnung partieller Ableitungen besprochen. Der Berechnungsgraph ermöglicht eine effiziente Berechnung von Ableitungen in Bezug auf einzelne Knoten. Dieses Konzept wird dann auf die Backpropagation in einem Beispiel eines neuronalen Spielzeugnetzwerks angewendet, wo die Kettenregel verwendet wird, um die partiellen Ableitungen des Verlusts in Bezug auf jeden Gewichtungs- und Vorspannungsparameter zu berechnen. Durch Multiplizieren aller partiellen Ableitungen entlang des Weges von jedem Parameter zum Verlustknoten kann eine redundante Berechnung vermieden werden.

  • 00:10:00 In diesem Abschnitt wird das Konzept der Backpropagation erläutert, das eine schnellere Möglichkeit darstellt, alle partiellen Ableitungen zu erhalten, die für den Gradientenabstiegsalgorithmus erforderlich sind, ohne redundante Operationen durchzuführen. Wenn die Tiefe des Netzwerks zunimmt, werden viele Berechnungen wiederholt und überflüssig, was sie für das Training tiefer Netzwerke ungeeignet macht. Backpropagation funktioniert, indem Werte während des Vorwärtsdurchlaufs zwischengespeichert und während des Rückwärtsdurchlaufs wiederverwendet werden, wenn partielle Ableitungen berechnet werden. Da partielle Ableitungen jetzt jedoch Matrizen und Matrizen umfassen, wird das Caching kritischer, da es Multiplikationsoperationen einspart, die normalerweise teurer sind. Das Video erklärt, dass wir Tools wie pyTorch verwenden können, um die erforderlichen Werte automatisch für uns zwischenzuspeichern.

  • 00:15:00 In diesem Abschnitt erörtert der Dozent, wie man den Vanilla-Gradientenabstieg für die Deep-Learning-Optimierung verbessern kann. Ein Problem beim Vanilla-Gradientenabstieg besteht darin, dass er an lokalen Minima oder flachen Stellen, an denen der Gradient Null ist, Probleme hat, wodurch der Algorithmus daran gehindert wird, bessere Lösungen zu finden. Um dies zu lösen, führt der Dozent das Konzept des Impulses ein, inspiriert von einem Ball, der einen Hügel hinunterrollt. Indem der gewichtete Durchschnitt vergangener Gradienten zum aktuellen Gradienten addiert wird, kann das Momentum dabei helfen, kleine lokale Minima und Flachstellen zu überwinden. Obwohl es technisch gesehen kein echter Gradientenabstieg ist, kann das Momentum es dem Algorithmus ermöglichen, diese Hindernisse zu überwinden und hoffentlich bessere Lösungen zu finden. Der Dozent erörtert auch, wie man den gewichteten Durchschnitt vergangener Gradienten skaliert, um den aktuellen Gradienten nicht zu sehr zu schrumpfen.

  • 00:20:00 In diesem Abschnitt wird das Konzept des Impulses beim Gradientenabstieg diskutiert. Die Vorlesung erklärt, dass Betas verwendet werden, um die Schrittweiten so zu steuern, dass die Schrittweiten nicht zu groß und inkonsistent werden. Der Vortrag erklärt Schwung als eine Möglichkeit, damit die Schrittweiten beim Abwärtsrollen gleich bleiben, aber auch verwendet werden, um sich weiterhin in die Richtung zu bewegen, in die der Gradient historisch gezeigt hat. Die Vorlesung führt dann in die RMS-Prop-Optimierungsmethode ein, die einen gewichteten Durchschnitt der quadrierten Komponenten früherer Gradienten speichert.

  • 00:25:00 In diesem Abschnitt erklärt der Ausbilder das Konzept von RMSprop, einer Form des Gradientenabstiegs, und wie es im Vergleich zu herkömmlichen Methoden funktioniert. Er erklärt, dass RMSprop die Gradienten durch die Quadratwurzel der quadrierten gleitenden Durchschnitte der Gradienten dividiert, was er anhand von Beispielen kleiner und großer Gradienten demonstriert. Dadurch ist der Algorithmus in der Lage, die Lernrate, die als adaptive Lernrate bekannt ist, adaptiv anzupassen. Er kommt schließlich zu dem Schluss, dass Adam die beste Form des Gradientenabstiegs ist, da er die Vorteile sowohl von RMSprop als auch von traditionellen Methoden bietet.

  • 00:30:00 In diesem Abschnitt stellt der Dozent Adam, eine Kombination aus RMSProp und Momentum, als bevorzugte Optimierungsmethode für den Gradientenabstieg in Deep-Learning-Modellen vor. Adam berücksichtigt die Vorteile, lokale Minima mit Schwung vermeiden zu können, während Probleme mit flachen Stellen berücksichtigt werden, die eine Verstärkung durch sie erfordern. Es ändert nicht die Richtung des Farbverlaufs, sondern nur dessen Skalierung. Der Vortrag schlägt Modell-Checkpointing vor, um jegliches unberechenbare Verhalten zu bekämpfen, das bei Adam oder RMSProp auftreten kann, nachdem sie ein lokales Minimum erreicht haben. Es können auch Optimierungsverfahren zweiter Ordnung verwendet werden, die jedoch mehr Rechenleistung benötigen und weniger verbreitet sind.

  • 00:35:00 In diesem Abschnitt erklärt der Ausbilder, wie wichtig es ist, den Trainingsverlauf eines Modells im Auge zu behalten und wie gut es bei neuen Daten abschneidet, die es zuvor noch nicht gesehen hat, um effektiv zu bestimmen, welcher Prüfpunkt der beste ist. Es wird auch eine Normalisierungstechnik namens Batch-Normalisierung diskutiert, bei der für jede einzelne Aktivierung in einem neuronalen Netzwerk der Mittelwert subtrahiert und durch die Standardabweichung dividiert wird und das Netzwerk diese Werte dann nach Belieben neu skalieren kann, indem es jedes Gewicht mit einem Gammawert multipliziert und Hinzufügen der Vorspannung. Diese Technik hilft bei der Normalisierung von Daten und erzeugt regelmäßig aussehende verlorene Oberflächen, die mit Gradientenabstieg viel einfacher herunterzusenden sind, was das Leben viel einfacher macht.

  • 00:40:00 In diesem Abschnitt lernen wir die Batch-Normalisierung kennen, eine Methode zur Normalisierung der Aktivierungen der Neuronen eines neuronalen Netzwerks durch Berechnung des Mittelwerts und der Standardabweichung der Ausgaben einer bestimmten Schicht. Diese Normalisierung bewirkt, dass das Standardverhalten des neuronalen Netzwerks normalisierte Aktivierungen aufweist, wodurch sie sich gut verhalten. Diese Methode verleiht dem Modell zwar keine Aussagekraft, ermöglicht aber bessere Gradienten und einen stärker normalisierten Wertebereich als Eingaben über alle Schichten des Netzwerks hinweg. Darüber hinaus lernen wir Ensembling als eine Technik kennen, die zur Verbesserung der Modellleistung verwendet wird, indem mehrere Modelle trainiert und ihre Vorhersagen gemittelt werden.

  • 00:45:00 In diesem Abschnitt behandelt der Vortrag zwei Techniken, die häufig beim Deep Learning verwendet werden, um Overfitting zu verringern: Dropout und Skip Connections. Dropout beinhaltet das zufällige Entfernen einer bestimmten Anzahl von Neuronen vor dem Training, um jedes Neuron zu zwingen, zu lernen, wie es alle Funktionen verwendet, die es vor ihm gab, wodurch es gezwungen wird, die gleiche Ausgabe wie die anderen Neuronen zu lernen. Im Gegensatz dazu ermöglichen Sprungverbindungen das Lernen einer Identitätsfunktion, die dabei hilft, Informationen zu verbreiten, ohne Rauschen oder Verwirrung hinzuzufügen; es beinhaltet das Erlernen von Nullen für alle Gewichte, wodurch trivialerweise gute Informationen an die letzte Schicht weitergegeben werden können, um sie korrekt zu klassifizieren. Beide Techniken, zusammen mit anderen, die in dieser Vorlesung besprochen werden, helfen, die Leistung zu steigern, indem sie Überanpassung verringern und beliebig tiefe Netzwerke zulassen.

  • 00:50:00 In diesem Abschnitt erklärt der Dozent, wie das Überspringen von Verbindungen ein nützliches Werkzeug beim Aufbau neuronaler Netze sein kann. Diese Verbindungen können hinzugefügt werden, um die Leistung zu steigern und Ihr Netzwerk zu verbessern. Der Dozent hatte keine Zeit, PyTorch vollständig zu diskutieren, aber es wird in den Hausaufgaben erklärt. Sie erklären, dass PyTorch wirklich einfach zu bedienen sein kann, wenn Sie bereits wissen, wie man numpy verwendet. Sie können Funktionen erstellen, die einen Wert aufnehmen und zurückgeben, wodurch der Wert des Gradienten bei einer bestimmten Eingabe berechnet werden kann. Der Dozent schließt ab, indem er das Wort für Fragen öffnet.