Maschinelles Lernen und neuronale Netze - Seite 42

 

Vorlesung 13 – Unsicherheit im Deep Learning – Agustinus Kristiadi



Numerik von ML 13 – Unsicherheit im Deep Learning – Agustinus Kristiadi

Das Video erörtert Unsicherheiten beim Deep Learning, insbesondere bei den Gewichtungen neuronaler Netze, und die Bedeutung der Einbeziehung von Unsicherheiten aufgrund des Problems des asymptotischen Overconfidence, bei dem neuronale Netze Vorhersagen mit hoher Zuverlässigkeit für Out-of-Distribution-Beispiele liefern, mit denen nicht klassifiziert werden sollte Sicherheit. Das Video bietet Einblicke in die Verwendung von Größen zweiter Ordnung, insbesondere Krümmungsschätzungen, um Unsicherheit in tiefe neuronale Netzwerke zu bringen, indem eine Gaußsche Verteilung verwendet wird, um die Gewichte der letzten Schicht anzunähern, und die Hesse-Matrix, um die Krümmung des neuronalen Netzwerks zu schätzen. Das Video diskutiert auch den Bayes'schen Formalismus und LaPlace-Approximationen zur Auswahl von Modellen und Parametern neuronaler Netze.

Im zweiten Teil des Vortrags diskutiert Agustinus Kristiadi in diesem Video verschiedene Möglichkeiten, Unsicherheit in Deep-Learning-Modelle einzuführen. Eine Technik beinhaltet die Verwendung linearisierter Laplace-Approximationen, um ein neuronales Netzwerk in ein Gaußsches Modell umzuwandeln. Ein weiterer Ansatz ist das Out-of-Distribution-Training, bei dem Unsicherheit in Regionen hinzugefügt wird, die nicht vom ursprünglichen Trainingssatz abgedeckt werden. Kristiadi betont, wie wichtig es ist, Unsicherheit hinzuzufügen, um ein übermäßiges Vertrauen in das Modell zu vermeiden, und schlägt vor, probabilistische Maßnahmen zu verwenden, um die Kosten für die Suche nach dem idealen Seitenzahn zu vermeiden. Diese Techniken werden in einem bevorstehenden Kurs über probabilistisches maschinelles Lernen weiter untersucht.

  • 00:00:00 In diesem Abschnitt erklärt der Referent das Thema des Vortrags, bei dem es darum geht, Unsicherheit in maschinelles Lernen zu bringen und wie man Berechnungen durchführt, um dies zu erreichen. Die Vorlesung verwendet Erkenntnisse aus früheren Vorlesungen, insbesondere bei der Lösung von Integralen und der Verwendung von bayesianischem Deep Learning, um Unsicherheiten zu erhalten. Der Referent erörtert dann die Bedeutung von Unsicherheiten in tiefen neuronalen Netzen und das Problem des asymptotischen Overconfidence, bei dem das neuronale Netz Vorhersagen mit hoher Zuverlässigkeit für Out-of-Distribution-Beispiele liefert, die nicht mit solcher Sicherheit klassifiziert werden sollten. Ziel der Vorlesung ist es, Einblicke in die Verwendung von Größen zweiter Ordnung, insbesondere von Krümmungsschätzungen, zu geben, um Unsicherheit in tiefe neuronale Netze zu bringen.

  • 00:05:00 In diesem Abschnitt erörtert Agustinus Kristiadi die Unsicherheit beim Deep Learning, insbesondere in Klassifikationsnetzwerken, die ReLU-Nichtlinearitäten verwenden. Er präsentiert eine grundlegende Eigenschaft von reellen Klassifikatoren: Wenn die Logit-Schicht eine lineare Kombination vorheriger Schichten mit ReLU-Nichtlinearitäten ist, ist die Ausgabe des Netzwerks immer noch eine stückweise lineare Funktion, die durch die Kombination vorheriger Schichten definiert ist. Das Weggehen von den Trainingsdaten in diesem Raum führt zu einem Bereich, in dem der Klassifikator eine lineare Eingabe in die Softmax-Ausgabe hat, und mit Wahrscheinlichkeit eins unterscheidet sich die Verstärkung für jede lineare Ausgabefunktion. Wenn Sie sich in diesen Regionen weit genug bewegen, führt dies zu einem beliebig hohen Vertrauen für eine Klasse, was visuell im Diagramm von drei linearen Ausgabemerkmalen in Rot beobachtet werden kann.

  • 00:10:00 In diesem Abschnitt erklärt Agustinus Kristiadi die grundlegende Eigenschaft echter Klassifikatoren, die ein hohes Vertrauen in bestimmte Klassen schafft, und warum sie nicht einfach durch Umtrainieren von Gewichten behoben werden kann. Die Lösung besteht darin, den Gewichtungen des neuronalen Netzwerks Unsicherheit hinzuzufügen, und dazu benötigen wir eine bayessche Interpretation des neuronalen Netzwerks, die durch Maximieren der Exponentialfunktion der Funktion erreicht werden kann, die während des Trainings minimiert wird. Das bedeutet, dass Deep Learning bereits Bayessche Inferenz durchführt, aber nur der Modus des Posteriors berechnet wird, was problematisch sein kann. Eine übliche Einstellung für überwachte Probleme mit kontinuierlichen Ausgaben ist der Regularisierer für quadratischen Verlust und Gewichtsverlust, der dem Setzen eines Gaußschen Priors auf die Gewichte und einer Gaußschen Wahrscheinlichkeit auf die Daten entspricht.

  • 00:15:00 In diesem Abschnitt erörtert der Referent die Unsicherheit beim Deep Learning und die Bayes'sche Interpretation tiefer neuronaler Netze. Der Sprecher merkt an, dass die für Vorhersagen benötigte vollständige A-posteriori-Verteilung unlösbar ist. Während Monte-Carlo-Ansätze theoretisch fundiert sind, sind sie zeitaufwändig und können diejenigen benachteiligen, die geduldige Inferenz durchführen. Daher plädiert der Referent für den billigstmöglichen Weg, Integrale zu berechnen: automatische Differentiation gekoppelt mit linearer Algebra. Der Referent teilt das überraschende Ergebnis, dass jedes gaußsche Näherungsmaß auch nur für die Gewichte der letzten Schicht des Netzwerks das Problem des Overconfidence bereits teilweise löst, wie in einem Theorem gezeigt wird. Der Sprecher betont, dass es keine Rolle spielt, ob die Wahrscheinlichkeitsverteilung auf den Gewichten korrekt ist, das Hinzufügen eines beliebigen Wahrscheinlichkeitsmaßes auf den Gewichten kann das Vertrauensproblem heilen.

  • 00:20:00 In diesem Abschnitt erläutert der Referent, wie eine Gaußsche Verteilung auf die Gewichte der letzten Schicht in der Klassifizierungsschicht eines tiefen neuronalen Netzwerks angewendet werden kann, um das Problem der Unsicherheit bei der Klassifizierung zu lösen. Der Sprecher geht davon aus, dass jede Kovarianz der Gaußschen Verteilung verwendet werden kann, da sie keine Rolle spielt, und der Mittelwert der Verteilung durch die trainierten Gewichte des tiefen neuronalen Netzwerks gegeben ist. Der Sprecher verwendet dann die Gaußsche Verteilung, um das Problem aus der vorherigen Folie zu lösen, indem er das Integral des weichen Max über F von Theta bei X Stern approximiert. Die David-Makai-Näherung wird verwendet, um das weiche Max über der abgeleiteten Variablen zu berechnen, die die mittlere Vorhersage der Ausgabe hat, die das Netzwerk sonst hätte. Die blauen Linien in der Visualisierung, die diese Annäherung darstellen, sind von eins weg begrenzt, was eine Lösung für Unsicherheiten bei der Klassifizierung bietet.

  • 00:25:00 In diesem Abschnitt erörtert Agustinus Kristiadi die Bedeutung von Unsicherheit beim Deep Learning, insbesondere im Hinblick auf die Gewichtungen neuronaler Netze. Er argumentiert, dass es wichtig ist, zu berücksichtigen, dass wir die Gewichte nicht genau kennen, und zu vermeiden, anzunehmen, dass wir etwas wissen, wenn wir dies nicht tun, da dies zu Problemen führen kann. Mathematische Annäherungen wie Linearisierung und Verwendung einer Gaußschen Verteilung für die Gewichte können vorgenommen werden, und es wurde bewiesen, dass es in Ordnung ist, solange wir noch so wenig unsicher sind. Die Wahl von Sigma kann mit automatischer Differenzierung mit Krümmungsschätzungen erfolgen, was die schnellste und billigste Methode ist.

  • 00:30:00 In diesem Abschnitt erklärt Agustinus Kristiadi, wie wir die Hesse-Matrix verwenden können, um eine Gaußsche Annäherung zu bilden, nachdem wir den Modus der Verlustfunktion durch Deep Learning gefunden haben. Die Hesse-Matrix, die die Ableitung zweiter Ordnung der Verlustfunktion enthält, wird verwendet, um Näherungen zu konstruieren. Obwohl die Gaußsche Näherung lokal und nicht perfekt ist, ist sie vollständig analytisch, was sie zu einer günstigen Näherung macht. Um diese Annäherung zu nutzen, benötigen wir ein trainiertes neuronales Netzwerk, und sobald das Netzwerk trainiert ist, können wir den Hessian an diesem Punkt mit AutoDiff erhalten, einem geschlossenen Prozess, der einfach funktioniert.

  • 00:35:00 In diesem Abschnitt erörtert der Referent das Konzept der Unsicherheit beim Deep Learning und wie es anhand der Hesse-Matrix bewertet werden kann. Die hessische Matrix kann nach dem Training des tiefen neuronalen Netzwerks berechnet werden und bietet eine Möglichkeit, die Unsicherheit abzuschätzen, ohne die Kosten für den Handel des Netzwerks zu erhöhen. Der Referent merkt auch an, dass dieser Ansatz es ermöglicht, die Punktschätzung beizubehalten, was für praktische Anwendungen nützlich sein kann. Es gibt jedoch Nachteile, wie z. B. dass die Hessische Berechnung teuer ist und Annäherungen erforderlich sind, um sie handhabbar zu machen. Die verallgemeinerte Gauß-Newton-Matrix ist eine solche Näherung, die in der Praxis verwendet werden kann.

  • 00:40:00 In diesem Abschnitt erörtert Agustinus Kristiadi die Unsicherheit beim Deep Learning und wie der Gauss-Newton Hessian (GNG) verwendet werden kann, um die Krümmung eines neuronalen Netzwerks abzuschätzen. Er erklärt, dass das GNG positiv semidefinit ist und eine schöne Verbindung zur Linearisierung hat, die in Kombination mit der Laplace-Näherung zu einem nachvollziehbaren Modell führen kann. Dieses Modell kann zur Regression verwendet werden und erzeugt einen Gaußschen Prozess, dessen mittlere Funktion durch die Ausgabe des neuronalen Netzwerks gegeben ist.

  • 00:45:00 In diesem Abschnitt diskutiert der Referent Unsicherheiten beim Deep Learning, insbesondere bei neuronalen Netzen. Sie stellen fest, dass die Kernvarianzfunktion gegeben ist, indem der Modus der Verlustfunktion in der Jacobi-Funktion des Netzwerks gefunden wird, wobei das innere Produkt mit der Umkehrung der Hesse-Funktion genommen wird. Der Referent erwähnt, dass dieses Verfahren in Form einer einfachen Näherung, die von David Pinkai entwickelt wurde, zur Klassifizierung verwendet werden kann. Der Prozess umfasst das Definieren der Verlustfunktion, das Berechnen der Hessefunktion der Verlustfunktion und der Jacobifunktion des trainierten Netzwerks in Bezug auf die Gewichte. Schließlich ergibt die Kombination der beiden in einem Produkt eine Vorhersagefunktion für f von x Stern, die immer noch nicht linear in x, aber linear im Gewichtsraum ist. Der Referent betont, dass dieser Prozess dazu beitragen kann, Selbstüberschätzung zu vermeiden, insbesondere in Fällen von Klassifizierungen.

  • 00:50:00 In diesem Abschnitt diskutiert Agustinus Kristiadi den Bayes'schen Formalismus und wie er beim Deep Learning nützlich sein kann. Indem wir das Netzwerk in seinen Gewichten linearisieren und die Laplace-Approximation verwenden, können wir das hartnäckige Integral über die Posterior-Funktion auf eine vereinfachte Form der Posterior- und der Verlustfunktion reduzieren. Dieser Prozess kann uns ein Maß dafür liefern, wie gut unser Modell zu den Daten passt, was bei der Anpassung von Parametern oder Aspekten des Modells nützlich ist. Indem wir die Beweise für die Daten berechnen, können wir das Modell mit den höchsten Beweisen auswählen und dasjenige auswählen, das näher an den Daten liegt.

  • 00:55:00 In diesem Abschnitt erörtert der Referent, wie LaPlace-Approximationen verwendet werden, um Modelle und Parameter eines neuronalen Netzwerks auszuwählen. Der Sprecher erklärt, dass der Hesse-Wert von der Form der Verlustfunktion abhängt und dass die Verlustfunktion schmaler werden kann, wenn Sie mehr Schichten hinzufügen, was zu einer besseren Anpassung führt. Der Sprecher zeigt einen Plot, der zeigt, dass etwa zwei bis vier Schichten wahrscheinlich die beste Wahl sind. Der Redner erörtert auch, dass der Occam-Faktor nicht so einfach ist wie bei Gaußschen Prozessen, da der Hesse-Faktor einen nicht trivialen Einfluss darauf hat, wie gut das Modell die Daten erklären kann. Der Referent zeigt dann eine Visualisierung eines tiefen neuronalen Netzwerks mit Linearisierungs-LaPlace-Approximation für ein Klassifizierungsproblem und erklärt, wie Sie einen vorherigen Präzisionsparameter verwenden können, um das Vertrauen des Modells zu beeinflussen. Abschließend erörtert der Referent, wie LaPlace-Näherungen verwendet werden können, um diskrete Entscheidungen wie die Anzahl der Schichten oder einen Parameter wie die vorherige Position unter Verwendung des Gradientenabstiegs auszuwählen.

  • 01:00:00 In diesem Abschnitt erörtert der Referent Unsicherheiten beim Deep Learning und wie diese mithilfe linearisierter Laplace-Approximationen angegangen werden können. Dieses Verfahren beinhaltet die Verwendung eines probabilistischen Ansatzes, um die vorherige Position der Schichten zu bestimmen, wenn die Anzahl der Schichten eines Netzwerks ausgewählt wird. Während dieser Prozess gut zum Auswählen einer vorherigen Position funktioniert, funktioniert er möglicherweise nicht so gut für andere Aufgaben, wie z. B. das Auswählen der Anzahl von Schichten. Der Redner geht dann auf die linearisierte Laplace-Näherung ein und wie sie als Black-Box-Tool verwendet werden kann, um ein tiefes neuronales Netzwerk in ein Gaußsches Modell umzuwandeln, um mit Unsicherheit umzugehen. Abschließend erörtert der Redner eine Möglichkeit, das Problem mit Modellen zu beheben, die keine Unsicherheit bezüglich ihrer Gewichte haben, was das Hinzufügen einer einfachen Lösung zum Netzwerk beinhaltet.

  • 01:05:00 In diesem Abschnitt erörtert Agustinus Kristiadi das Problem des Hinzufügens einer unbegrenzten Anzahl von Gewichtungen, um der unendlichen Komplexität von Daten in tiefen neuronalen Netzen Rechnung zu tragen. Er erklärt, dass das Hinzufügen einer unendlichen Anzahl von Funktionen das Problem lösen würde, und zeigt, dass es keine kostspielige Aufgabe sein muss, den Überblick über die unendliche Anzahl von Funktionen zu behalten. Asymptotisch wird die Unsicherheit zur maximalen Entropie Ding 1 über C, ohne das Modell komplexer zu machen.

  • 01:10:00 In diesem Abschnitt erklärt der Referent, wie Unsicherheit zu Deep Learning hinzugefügt werden kann, um Vorhersagen zu verbessern, insbesondere in Bereichen, in denen es wenig Trainingsdaten oder gegnerische Eingaben gibt. Der Ansatz besteht darin, den Mittelwert des Netzwerks zu trainieren und dann Einheiten hinzuzufügen, die die Punktvorhersage nicht ändern, aber Unsicherheit hinzufügen, die verschoben und skaliert werden kann. Diese Technik wird Out-of-Distribution-Training genannt und kann unter Verwendung einer Längenskala erreicht werden, die auf der Breite der Daten basiert, um einen ungefähren Gaußschen Prozess zu definieren. Die Kosten für das Hinzufügen von Unsicherheit sind vernachlässigbar, und es fügt nur einen Rückhalt hinzu, der das Vertrauen verringert, wenn die Daten weit von den Trainingsdaten entfernt sind.

  • 01:15:00 In diesem Abschnitt erörtert der Referent, wie Unsicherheit in ein Deep-Learning-Modell eingeführt werden kann. Eine Möglichkeit, dies zu tun, ist das Out-of-Distribution-Training, bei dem ein neuer Datensatz mit Bildern erstellt wird, die nicht die Objekte enthalten, die im ursprünglichen Trainingssatz verwendet wurden. Das Netzwerk wird dann darauf trainiert, in diesen Regionen unsicher zu sein. Durch Definieren einer Verlustfunktion, die den Verlust außerhalb der Verteilung enthält, kann der Hessische Wert der Krümmungsschätzung der Verlustfunktion, bei der die Art des Verlusts gefunden wird, angepasst werden, um das gewünschte Maß an Unsicherheit zu erzeugen. Der Referent merkt auch an, dass die Einführung von Unsicherheit beim Deep Learning wichtig ist, da dies dazu beitragen kann, Pathologien und übermäßiges Vertrauen in das Modell zu verhindern.

  • 01:20:00 In diesem Abschnitt erörtert der Referent das Konzept, Unsicherheit zu einem Klassifikator hinzuzufügen, ohne seine grundlegende Struktur zu ändern. Die Linearisierung des Netzwerks im Gewichtsraum kann dies ermöglichen, und durch die Berechnung der Jacobi- und Hesse-Funktion der Verlustfunktion können wir ein tiefes neuronales Netzwerk in einen Gaußschen Prozess umwandeln. Mit dieser Technik kann dem Netzwerk eine Funktionalität hinzugefügt werden, wie z. B. ein asymptotisch kalibriertes Vertrauen. Der Referent betont die Bedeutung des probabilistischen Trainings und die Verwendung von Wahrscheinlichkeitsmaßen beim maschinellen Lernen ohne die Notwendigkeit einer vollständigen Nachverfolgung. Dieser Ansatz kann Probleme wie Selbstüberschätzung lösen und gleichzeitig die Kosten für die Suche nach dem idealen Seitenzahn vermeiden. Abschließend schlägt der Referent vor, dass die Verwendung dieser Techniken im kommenden Kurs über probabilistisches maschinelles Lernen weiter untersucht wird.
 

Vortrag 14 -- Fazit -- Philipp Hennig



Numerik von ML 14 -- Fazit -- Philipp Hennig

Philipp Hennig gibt eine Zusammenfassung des Kurses „Numerik des maschinellen Lernens“ und betont die Bedeutung der Lösung mathematischer Probleme im maschinellen Lernen im Zusammenhang mit der numerischen Analyse, wie Integration, Optimierung, Differentialgleichungen und lineare Algebra. Er erörtert die Komplexität der Durchführung linearer Algebra an einem Datensatz und wie sie sich auf die Verarbeitungseinheit und die Festplatte bezieht. Hennig behandelt auch Themen wie den Umgang mit Datensätzen nichttrivialer Größe, Algorithmen zur Lösung linearer Systeme, das Lösen partieller Differentialgleichungen und das Schätzen von Integralen. Abschließend erkennt er die Schwierigkeit beim Training tiefer neuronaler Netze und die Notwendigkeit von Lösungen zur Überwindung des Stochastizitätsproblems an.

Im Abschluss seiner Vortragsreihe betont Philipp Hennig, wie wichtig es ist, über das bloße Trainieren von Machine-Learning-Modellen hinauszugehen und zu wissen, wie viel das Modell weiß und was es nicht weiß. Er spricht über das Schätzen der Krümmung der Verlustfunktion, um Unsicherheitsschätzungen für tiefe neuronale Netze zu erstellen, und die Bedeutung, probabilistisch zu sein, aber aufgrund der Rechenkomplexität nicht unbedingt in jedem Fall das Bayes-Theorem anzuwenden. Hennig betont auch die Bedeutung der numerischen Berechnung beim maschinellen Lernen und die Notwendigkeit, neue datenzentrierte Berechnungsmethoden zu entwickeln. Abschließend bittet er um Feedback zum Kurs und bespricht die bevorstehende Prüfung.

  • 00:00:00 In diesem Abschnitt bietet Philipp Hennig eine Zusammenfassung des gesamten Kurses „Numerik des maschinellen Lernens“, der seiner Meinung nach aufgrund der Variation der Inhalte von verschiedenen Dozenten von entscheidender Bedeutung ist. Er erklärt, dass es beim maschinellen Lernen im Wesentlichen darum geht, mathematische Probleme zu lösen, die keine geschlossenen Lösungen haben, im Gegensatz zur klassischen KI, die Algorithmen beinhaltet. Die Probleme beim maschinellen Lernen beziehen sich auf die numerische Analyse und umfassen Integration, Optimierung, Differentialgleichungen und lineare Algebra. Hennig betont, wie wichtig es ist, die Komplexität linearer Algebra an einem Datensatz zu verstehen und wie sie für die Verarbeitungseinheit und die Festplatte relevant ist.

  • 00:05:00 In diesem Abschnitt erörtert Philipp Hennig die Rolle der linearen Algebra beim maschinellen Lernen und insbesondere bei der Gaußschen Prozessregression. Er erklärt, dass wir, um eine prädiktive Verteilung zu lernen, die einen Mittelwert und eine Kovarianz hat, ein lineares Gleichungssystem lösen müssen, bei dem eine Matrix multipliziert mit einem Vektor invertiert wird. Es gibt viele Algorithmen zum Lösen solcher linearer Systeme, einschließlich des klassischen Algorithmus namens Cholesky-Zerlegung, der als iteratives Verfahren angesehen werden kann, das die Inverse der Matrix konstruiert. Hennig merkt an, dass diese Annäherung als Schätzung für die Inverse der Matrix verwendet werden kann, ihre Qualität jedoch je nach Datenreihenfolge variieren kann.

  • 00:10:00 In diesem Abschnitt erklärt Philipp Hennig, wie linear teuer es ist, einen Datensatz in zufälliger Reihenfolge durchzugehen und Teile davon von der Festplatte zu laden, während der Rest ignoriert wird. Er vergleicht diese Methode mit dem, was die Schüler in einem probabilistischen maschinellen Lernkurs lernen, der darin besteht, zwei verschiedene lineare Optimierungsprobleme zu lösen, um eine Gleichung zu lösen. Er hebt auch hervor, dass endliche Unsicherheiten auftreten, die zwei Unsicherheitsquellen verursachen, einschließlich des endlichen Datensatzes und begrenzter Berechnungen, die keine vollständige Lösung liefern.

  • 00:15:00 In diesem Abschnitt des Videos erklärt Philipp Hennig die Komplexität der Lösung linearer Probleme in der Bayes'schen Einfluss-Gauß'schen Prozessregression. Das Kostenniveau im Basisfall ist viel subtiler als das, was die meisten Menschen vielleicht gelernt haben. Die vier wichtigsten Erkenntnisse daraus sind, dass Sie sich entscheiden können, nicht den gesamten Datensatz zu betrachten, sondern einen Cholesky-ähnlichen Algorithmus verwenden können, der eine Schätzung der Kosten linear im Datensatz und quadratisch in der Anzahl der Iterationen liefert, die Sie verwenden können ein effizienterer Algorithmus, der schnell konvergiert, aber in jeder Iteration quadratisch teuer ist, oder Sie können sich für Cholesky entscheiden, das kubische Kosten in der Anzahl der Datenpunkte ergibt.

  • 00:20:00 In diesem Abschnitt erörtert Hennig die Bedeutung des richtigen Umgangs mit Datensätzen nicht trivialer Größe und die Entscheidung, wie sie effizient verarbeitet werden können. Er erläutert auch den Umgang mit unendlich dimensionalen Datensätzen, insbesondere in Bezug auf Systeme, die sich im Laufe der Zeit entwickeln, sowie den Algorithmus, der für lineare zeitabhängige und zeitinvariante Probleme verwendet wird, bekannt als Kalman-Filterung und -Glättung. Hennig hebt hervor, dass diese Art von Algorithmus sowohl einfach niedergeschrieben als auch linear teuer in der Anzahl der Zeitschritte ist. Er betont auch, wie wichtig es ist, die niedrigen Ebenen der Rechenhierarchie zu verstehen, da sie zur Beschleunigung der Leistung in Algorithmen auf höherer Ebene verwendet werden können.

  • 00:25:00 In diesem Abschnitt des Videos diskutiert Philipp Hennig den glatteren Algorithmus, der als Buchhaltungsalgorithmus dient, der alle früheren Variablen in der Kette über die Beobachtungen informiert, die er in der Zukunft gemacht hat. Er spricht auch darüber, wie schnell Algorithmen auf Situationen angewendet werden können, in denen Beobachtungen keine lineare Gaußsche Transformation des Zustandsraums sind, und über die Dynamik des erweiterten Kalman-Filters. Hennig geht auch auf die algorithmischen Landschaften und die Struktur dieses Frameworks ein, das sehr flexibel ist und verwendet werden kann, um einen leistungsfähigen Algorithmus zum Lösen von Differentialgleichungen zu konstruieren.

  • 00:30:00 In diesem Abschnitt erörtert Philipp Hennig, wie algebraische implizite Gleichungen, kontinuierliche Gruppensymmetrien und partielle Differentialgleichungen alle in derselben algorithmischen Sprache wie gewöhnliche Differentialgleichungen im maschinellen Lernen enthalten sein können. Er erwähnt auch den Wert der Einbeziehung von Beobachtungen eines Systems, wie z. B. das Messen des Weges, den es nahm, oder das Wissen, wo es begann und endete, um unbekannte Werte in Teilen des Zustandsraums zu bestimmen. Hennig stellt fest, dass mit zunehmender Vielfalt der Simulationspakete ein umfassendes Wissen über Simulationsmethoden weniger erforderlich ist, da die Simulationsmethode im Wesentlichen als Filter angesehen werden kann.

  • 00:35:00 In diesem Abschnitt des Videos erläutert Philipp Hennig, wie die Methoden des maschinellen Lernens Informationen verwalten, und stellt fest, dass es keinen wirklichen Unterschied zwischen Informationen gibt, die von einer Festplatte oder einem am Computer angebrachten Sensor stammen. und Informationen, die vom Programmierer kommen, der sie als algebraische Gleichung niedergeschrieben hat. Er erwähnt auch, dass der Informationsoperator als Schnittstelle zwischen dem Benutzer und dem Algorithmusdesigner fungiert. Er erklärt auch, wie man partielle Differentialgleichungen löst, was im Wesentlichen dasselbe ist wie das Filtern von Simulationsmethoden, indem er die Gaußsche Prozessregression verwendet. Er stellt jedoch fest, dass, wenn die partielle Differentialgleichung nicht linear ist, sie nicht mit einem Filter gelöst werden kann.

  • 00:40:00 In diesem Abschnitt fasst Philipp Hennig den Abschluss der Reihe „Numerics of ML“ zusammen, die sich mit Differentialgleichungen und Integration im maschinellen Lernen befasst. Er spricht zuerst über Gaußsche Prozessinferenz mit Funktionen, die aufgrund der Natur von Funktionenräumen komplex sein können. Durch Beobachtung nichtlinearer Funktionen und Anwendung verschiedener Informationsquellen, wie partielle Differentialgleichungen und Grenzwerte, können sie jedoch in einem großen Gaußschen Prozess-Inferenzschema kombiniert werden, was zu einer quantifizierten Darstellung des dynamischen Systems führt. Hennig fährt dann mit der Integration in der probabilistischen Inferenz fort, wo er den Monte-Carlo-Algorithmus einführt, der ein unverzerrter Schätzer ist, der langsam konvergiert, aber auf jeder integrierbaren Funktion funktioniert.

  • 00:45:00 In diesem Abschnitt diskutiert Philipp Hennig die besten Ansätze zur Schätzung von Integralen für maschinelles Lernen. Er schlägt vor, dass die Rate, mit der eine Schätzung des Integrals zum wahren Wert des Integrals konvergiert, 1 über der Quadratwurzel der Anzahl der Abtastungen ist, was vom verwendeten Algorithmus abhängt. Die Bayessche Quadratur, ein Algorithmus, der viel Zeit mit der Modellierung des Integranden verbringt, kann jedoch sehr gut funktionieren, insbesondere bei niedrigdimensionalen Problemen, und viel schneller als Monte Carlo konvergieren, sogar superpolynomial schnell. Hennig schlägt vor, dass das Erstellen von Algorithmen, die nur für eine kleine Klasse von Problemen gut funktionieren, für jede Instanz dieses Problems besser funktionieren kann, aber außerhalb dieser Klasse schlecht brechen kann. Letztendlich hängt der beste Algorithmus von der Art des zu lösenden Problems ab.

  • 00:50:00 In diesem Abschnitt untersucht Philipp Hennig die Herausforderungen zeitgenössischer numerischer Probleme des maschinellen Lernens, insbesondere die Frage des Trainings tiefer neuronaler Netze. Obwohl viele Optimierer verfügbar sind, sind sie grundsätzlich frustrierend und ineffizient, erfordern ständiges Babysitting und Hyperparameter-Tuning und funktionieren nicht immer. Während es bei der Optimierung früher darum ging, einen Knopf zu drücken und zu beobachten, wie der Algorithmus perfekt funktioniert, erfordert maschinelles Lernen heute ein Team von über 100 Personen, um große Sprachmodelle zu verwalten, was eine ineffiziente Nutzung von Ressourcen bedeutet. Das Hauptproblem ist die Stochastik, und es gibt noch keine bekannte elegante Lösung für dieses Problem, obwohl es die gesamte Gemeinschaft des maschinellen Lernens antreibt.

  • 00:55:00 In diesem Abschnitt schließt Philipp Hennig die Vorlesung zur Unsicherheit in der Berechnung ab, indem er die Schwierigkeit beim Training tiefer neuronaler Netze betont. Obwohl Mini-Batch-Gradienten aufgrund endlicher Daten und Berechnungen ausgewertet werden, verringert das erhebliche Rauschen, das durch diesen Prozess eingeführt wird, tatsächlich die Leistung von Optimierungsalgorithmen. Hennig erklärt, dass die Lösung dieses Problems das Training tiefer neuronaler Netze viel schneller machen und die Zukunft des maschinellen Lernens verändern würde. In der Zwischenzeit können wir immer noch verfügbare Ressourcen wie Krümmungsschätzungen verwenden, um neue Algorithmen und Techniken zu konstruieren.

  • 01:00:00 In diesem Abschnitt erörtert Philipp Hennig die Notwendigkeit, beim maschinellen Lernen mehr zu tun, als nur duale Netze zu trainieren, und wie wichtig es ist, zu wissen, wie viel das Modell weiß und was es nicht weiß. Hennig erklärt, dass die Schätzung der Krümmung der Verlustfunktion dazu beitragen kann, mithilfe der Laplace-Näherung auf einfache Weise Unsicherheitsschätzungen für tiefe neuronale Netze zu erstellen. Dies kann für verschiedene Anwendungsfälle verwendet werden und kann mit einer Linearisierung des Netzwerkgewichtungsraums kombiniert werden, um jedes tiefe neuronale Netzwerk ungefähr in einen gaußschen prozessparametrischen gaußschen Regressionsalgorithmus zu verwandeln. Hennig betont, dass es zwar wichtig ist, probabilistisch zu sein, es aber nicht notwendig ist, das Theorem von Bayes in jedem Fall anzuwenden, da es zu rechenintensiv sein kann. Stattdessen ist es ein besserer Ansatz, schnelle Lösungen zu finden, die einen Mehrwert bieten, ohne zu rechenintensiv zu sein.

  • 01:05:00 In diesem Abschnitt betont Philipp Hennig die Bedeutung der numerischen Berechnung beim maschinellen Lernen. Er erklärt, dass numerische Berechnungen aktive Agenten sind, die mit einer Datenquelle interagieren und aktiv entscheiden müssen, wie sie die erhaltenen Daten verwenden. Indem diese Verbindung ernst genommen wird, können neue datenzentrische Berechnungsmethoden entwickelt werden, die flexibler, einfacher zu verwenden und leichter auf verschiedene Einstellungen zu verallgemeinern sind. Hennig betont auch, wie wichtig es ist, zu verstehen, wie numerische Algorithmen funktionieren, um ein besserer Ingenieur für maschinelles Lernen zu werden. Abschließend bittet er um Feedback zum Kurs und bespricht die bevorstehende Prüfung.
 

Support Vector Machine (SVM) in 7 Minuten - Fun Machine Learning



Support Vector Machine (SVM) in 7 Minuten - Fun Machine Learning

Das Video erklärt Support Vector Machines (SVM), einen Klassifizierungsalgorithmus, der für Datensätze mit zwei Klassen verwendet wird und eine Entscheidungsgrenze oder Hyperebene basierend auf den Extremen des Datensatzes zeichnet. Es wird auch erörtert, wie SVM für nichtlinear trennbare Datensätze verwendet werden kann, indem sie mit einem Kernel-Trick in höherdimensionale Merkmalsräume umgewandelt werden. Das Video identifiziert die Vorteile von SVM wie Effektivität in hochdimensionalen Räumen, Speichereffizienz und die Möglichkeit, verschiedene Kernel für benutzerdefinierte Funktionen zu verwenden. Das Video identifiziert jedoch auch die Nachteile des Algorithmus, wie z. B. eine schlechte Leistung, wenn die Anzahl der Merkmale größer ist als die Anzahl der Stichproben, und das Fehlen direkter Wahrscheinlichkeitsschätzungen, die eine teure Kreuzvalidierung erfordern.

  • 00:00:00 In diesem Abschnitt lernen wir Support Vector Machines (SVM) kennen und wie sie verwendet werden können, um Datensätze mit zwei Klassen zu klassifizieren. Der SVM-Algorithmus betrachtet die Extreme der Datensätze und zeichnet eine Entscheidungsgrenze oder Hyperebene in der Nähe der Extrempunkte im Datensatz. Im Wesentlichen ist der Support-Vector-Machine-Algorithmus eine Grenze, die die beiden Klassen am besten trennt. Anschließend erfahren wir etwas über nichtlinear trennbare Datensätze und wie SVMs sie mit einem Kernel-Trick in höherdimensionale Merkmalsräume umwandeln können. Beliebte Kernel-Typen sind Polynom-Kernel, Radial-Basis-Function-Kernel (RBF) und Sigmoid-Kernel. Die Auswahl des richtigen Kernels ist jedoch eine nicht triviale Aufgabe und kann von der jeweiligen Aufgabe abhängen.

  • 00:05:00 In diesem Abschnitt werden die Vor- und Nachteile von Support Vector Machines (SVM) diskutiert. SVM ist in hochdimensionalen Räumen effektiv und verwendet eine Teilmenge von Trainingspunkten in der Entscheidungsfunktion, wodurch es speichereffizient wird. Für die Entscheidungsfunktion können verschiedene Kernel spezifiziert werden, einschließlich benutzerdefinierter Kernel, und SVM kann in verschiedenen Anwendungen verwendet werden, wie z. B. medizinische Bildgebung, Finanzindustrie und Mustererkennung. Zu den Nachteilen von SVM gehören jedoch eine schlechte Leistung, wenn die Anzahl der Merkmale größer ist als die Anzahl der Stichproben, und das Fehlen direkter Wahrscheinlichkeitsschätzungen, die eine teure Kreuzvalidierung erfordern.
 

The Deep Learning Revolution – Geoffrey Hinton – Vortrag des RSE-Präsidenten 2019



„The Deep Learning Revolution“ – Geoffrey Hinton – Vortrag des RSE-Präsidenten 2019

Geoffrey Hinton, bekannt als „Godfather of Deep Learning“, spricht über die Geschichte und Entwicklung von Deep Learning und neuronalen Netzen, die Herausforderungen und aufregenden Möglichkeiten der Nutzung von Deep Learning zur Schaffung von Maschinen, die auf die gleiche Weise wie menschliche Gehirne lernen können, und die Tricks und Techniken, die Backpropagation effektiver gemacht haben. Er beschreibt auch den Erfolg neuronaler Netze bei der Spracherkennung und Computer Vision, die Entwicklung neuronaler Netze für Computer Vision und unüberwachtes Vortraining sowie ihre Wirksamkeit bei der Sprachmodellierung und maschinellen Übersetzung. Abschließend hebt er den Wert des Analogieschlusses hervor und erörtert seine Theorie der „Kapseln“ und der Verknüpfung von Wissen zu einem Modell, das Teile des Ganzen vorhersagt.

Geoffrey Hinton, ein Pionier im Bereich Deep Learning, hält einen Vortrag, in dem er sich für die Integration von assoziativen Erinnerungen, schnellgewichtigen Erinnerungen und mehreren Zeitskalen in neuronale Netze einsetzt, um langfristiges Wissen und vorübergehende Speicherung zu ermöglichen, was für echtes Denken erforderlich ist. Darüber hinaus diskutiert er den Balanceakt zwischen früheren Überzeugungen und Daten, das Potenzial des unüberwachten Lernens, die Effizienz von Faltungsnetzen beim Erkennen von Objekten unter Einbeziehung von Standpunktwissen und translationaler Äquivarianz sowie die Notwendigkeit, symbolisches Denken mit konnektionistischen Netzwerken wie Transformatoren zu kombinieren Netzwerke. Er spricht auch das Problem unbewusster Vorurteile beim maschinellen Lernen an und glaubt, dass sie leichter behoben werden können als menschliche Vorurteile, indem Vorurteile identifiziert und korrigiert werden. Abschließend betont er die Notwendigkeit von mehr Finanzierung und Unterstützung für junge Forscher im Bereich der KI.

  • 00:00:00 Wenn Sie mit Deep Learning vertraut sind, haben Sie Professor Geoffrey Hinton, bekannt als „Godfather of Deep Learning“, viel zu verdanken, der 1978 in Edinburgh in künstlicher Intelligenz promoviert und dafür zahlreiche Preise gewonnen hat Beiträge zum maschinellen Lernen. Im ersten Teil seines Vortrags geht er auf die Geschichte von Deep Learning und neuronalen Netzen ein und wie sie sich im Laufe der Jahre entwickelt haben. Er spricht auch über die Herausforderungen und spannenden Möglichkeiten des Einsatzes von Deep Learning zur Schaffung von Maschinen, die auf die gleiche Weise lernen können wie das menschliche Gehirn.

  • 00:05:00 In diesem Abschnitt spricht Geoffrey Hinton über die beiden Paradigmen der künstlichen Intelligenz, die seit den frühen 1950er Jahren existierten. Einer war der von Logik inspirierte Ansatz, der Intelligenz als Manipulation symbolischer Ausdrücke unter Verwendung symbolischer Regeln ansah. Der andere Ansatz hingegen glaubte, dass die Essenz der Intelligenz darin bestand, die Stärken von Verbindungen in einem neuronalen Netzwerk zu lernen. Dieser Ansatz konzentrierte sich mehr auf Lernen und Wahrnehmung als der Fokus des anderen Ansatzes auf Argumentation. Diese unterschiedlichen Ansätze führten zu unterschiedlichen Ansichten interner Repräsentationen und entsprechenden Möglichkeiten, einen Computer dazu zu bringen, das zu tun, was Sie wollen. Hinton vergleicht die intelligente Designmethode mit der Trainings- oder Lernstrategie, bei der einem Computer viele Beispiele gezeigt werden.

  • 00:10:00 In diesem Abschnitt des Videos erklärt Geoffrey Hinton, wie die Deep-Learning-Revolution zustande kam, die mit dem Training von Neuronennetzwerken begann, um komplexe Funktionen über viele Ebenen zu lernen. Es werden idealisierte Neuronen verwendet, die lineare und nichtlineare Funktionen modellieren. Inzwischen haben Trainingsnetzwerke unterschiedliche Methoden, einschließlich überwachtem und nicht überwachtem Training, wobei Backpropagation der effizienteste Algorithmus des letzteren ist. Schließlich weist er darauf hin, dass Deep Learning beinhaltet, das Netzwerk zu stören, um den Effekt zu messen, und dann das Netzwerk bei Bedarf zu ändern, was weitaus effizienter ist als der evolutionäre Ansatz, angesichts unbekannter Variablen zu stören.

  • 00:15:00 In diesem Abschnitt des Vortrags erörtert Dr. Hinton die Optimierungstechnik der Backpropagation, die den Gradienten der Gewichtungen basierend auf der Diskrepanz zwischen der tatsächlichen Antwort und der richtigen Antwort für eine kleine Gruppe von Trainingsbeispielen berechnet. Er erläutert den Prozess der Aktualisierung der Gewichtungen basierend auf dem Gradienten und die Verwendung des stochastischen Gradientenabstiegs zur Optimierung des Prozesses. Dr. Hinton fährt dann fort, die Tricks und Techniken zu diskutieren, die die Backpropagation effektiver gemacht haben, einschließlich der Verwendung von Momentum und kleineren Lernraten für die größeren Gradienten, und kommt schließlich zu dem Schluss, dass die Verwendung dieser Tricks trotz Hunderter von veröffentlichten Zeitschriftenartikeln so gut wie alles ist auf ausgefeilteren Methoden. Schließlich stellt er fest, dass in den 1990er Jahren das Fehlen geeigneter Initialisierungstechniken für neuronale Netze und kleinere Datensätze dazu führte, dass neuronale Netze in der Community für maschinelles Lernen vorübergehend aufgegeben wurden.

  • 00:20:00 In diesem Abschnitt diskutiert Geoffrey Hinton, eine führende Persönlichkeit im Bereich Deep Learning, die Geschichte der Deep-Learning-Forschung und die Herausforderungen, denen sich Forscher auf diesem Gebiet gegenübersehen. Er beschreibt, wie in den frühen Tagen der Backpropagation viele Artikel abgelehnt oder kritisiert wurden, weil sie sich auf unbeaufsichtigtes Lernen konzentrierten, was nicht zum vorherrschenden Paradigma des Computersehens passte. Hinton argumentiert jedoch, dass unüberwachtes Lernen in Kombination mit Techniken wie Dropout ein Schlüsselfaktor dafür war, dass Back Propagation für Deep Networks funktioniert, und seitdem dazu beigetragen hat, den Bereich des Deep Learning zu revolutionieren.

  • 00:25:00 In diesem Abschnitt erläutert Hinton den Erfolg neuronaler Netze bei der Spracherkennung und Computer Vision. Die erste große Anwendung von Deep Learning war die Spracherkennung, bei der ein Frontend eine akustische Modellierung durchführt, indem es den mittleren Rahmen eines Spektrogramms nimmt und identifiziert, welches Phonem eine Person auszudrücken versucht. Die erste kommerziell relevante Anwendung von Deep Learning in großem Maßstab war die Spracherkennung, wo ein neuronales Front-End-Netz hochgradig abgestimmte Techniken von IBM und anderen Stellen übertraf. Ein weiteres bedeutendes Ereignis war der ImageNet-Wettbewerb im Jahr 2012, bei dem ein tiefes neuronales Netzwerk deutlich niedrigere Fehlerraten als herkömmliche Computer-Vision-Techniken erzielte.

  • 00:30:00 In diesem Abschnitt erörtert Professor Geoffrey Hinton die Entwicklung neuronaler Netze für Computer Vision, maschinelle Übersetzung und unbeaufsichtigtes Vortraining und wie die Computer Vision Community zunächst skeptisch gegenüber dem Erfolg dieser neuronalen Netze war. Er spricht weiter über weiche Aufmerksamkeit und Transformatoren und wie letzteres besser für Kovarianzen geeignet ist, wodurch es empfindlicher für Dinge wie Augen wird, die einander gleich sind, und wie unüberwachtes Vortraining die neuronalen Netze zwingen kann, Informationen darüber zu erfassen was die Wörter um ein Wort herum Ihnen sagen können, was dieses Wort bedeuten muss.

  • 00:35:00 In diesem Abschnitt erklärt Hinton den Unterschied zwischen der Verwendung von Convolutional Neural Nets und Transformers für Verarbeitungsaufgaben natürlicher Sprache, wie z. B. die Begriffsklärung basierend auf dem Kontext. Während konvolutionelle neuronale Netze die Wörter um das Zielwort herum verwenden, um seine Darstellung zu ändern, trainieren Transformatoren ein Netzwerk durch Back-Schlucht-Derivate, um zu lernen, einen Wortvektor in eine Abfrage, einen Schlüssel und einen Wert umzuwandeln, die verwendet werden, um sich um andere Wörter zu kümmern und aktivieren Sie die entsprechende Darstellung. Transformer haben sich bei der Sprachmodellierung und der maschinellen Übersetzung als sehr effektiv erwiesen und wurden zur Entwicklung von Methoden wie Burt verwendet, die unüberwachtes Lernen verwenden, um Worteinbettungen durch die Wahrscheinlichkeit des nächsten Wortfragments zu lernen.

  • 00:40:00 In diesem Abschnitt des Vortrags diskutiert Hinton ein Experiment namens "GPT-2", das Text erzeugen kann, der aussieht, als wäre er von einem Menschen geschrieben worden. Das GPT-2-Modell, das eineinhalb Milliarden Parameter enthält, wurde mit Milliarden von Textwörtern trainiert und kann kohärente und verständliche Geschichten produzieren. Hinton spekuliert, dass diese Art der Argumentation keine richtige logikbasierte Argumentation ist, sondern eher eine intuitive Argumentation. Er weist auch darauf hin, dass es schwierig ist zu wissen, wie viel das Modell wirklich versteht, und er fragt sich, ob das Modell nur große Mengen an Assoziationen durchführt oder ob es ein bisschen mehr als das versteht.

  • 00:45:00 In diesem Abschnitt hebt Geoffrey Hinton den Wert des Analogieschlusses und seine Rolle bei der Verbesserung der Denkfähigkeit hervor. Er vergleicht sequentielles Denken mit intuitivem Denken im Kontext des Spiels AlphaGo und erklärt, dass sowohl Intuition als auch logisches Denken notwendig sind, um fundierte Entscheidungen zu treffen. Hinton diskutiert auch, wie konvolutionelle neuronale Netze die Effizienz verbessert haben, aber Objekte nicht auf die gleiche Weise erkennen wie Menschen, was zu dem Schluss führt, dass Menschen Koordinatenrahmen verwenden und Beziehungen zwischen Teilen und dem Ganzen eines Objekts verstehen, um es zu erkennen. Dies unterstreicht die Notwendigkeit von Einblicken in die Architektur neuronaler Netze, um deren Erkennung von Objekten zu verbessern.

  • 00:50:00 In diesem Abschnitt verwendet Hinton eine Aufgabe, um die Abhängigkeit des räumlichen Verständnisses von Koordinatensystemen zu veranschaulichen. Er präsentiert einen Drahtgitterwürfel und bittet den Betrachter, ohne Verwendung eines Koordinatenrahmens auf die Ecken zu zeigen, was zeigt, dass Menschen dazu neigen, an Würfel relativ zu ihrem Koordinatensystem zu denken. Hinton diskutiert dann seine Theorie der "Kapseln", die Neuronen gruppiert, die lernen, Fragmente von Formen darzustellen, und jedem Fragment einen Koordinatenrahmen auferlegt, um die intrinsische Geometrie zu erfassen. Er plant, diese Kapseln unbeaufsichtigt zu trainieren, um Formwissen zu erfassen.

  • 00:55:00 In diesem Abschnitt erörtert Hinton die Verknüpfung von Wissen mit einem Modell, das Teile aus dem Ganzen vorhersagt. Das Modell wird von einem Transformer trainiert, der sich die bereits extrahierten Teile ansieht, diese Teile nimmt und versucht vorherzusagen, welche Ganzheiten diese Teile erklären würden. Der Transformer ist gut darin, Korrelationen zwischen Dingen zu finden und kann vorhersagen, welche Objekte dort sein könnten und welche Posen sie haben. Hinton gibt ein Beispiel, bei dem dem Modell Quadrate und Dreiecke beigebracht werden und sie später in neuen Bildern erkennen können. Das Modell kann auch darauf trainiert werden, Hausnummern zu erkennen, ohne dass jemals Etiketten angezeigt werden.

  • 01:00:00 In diesem Abschnitt lernen wir das Potenzial des unüberwachten Lernens und die verschiedenen Arten von Neuronen kennen, die besser funktionieren könnten als die derzeit verwendete skalare Nichtlinearität. Der Referent fordert die Studenten auf, nicht alles zu glauben, was sie hören, und ermutigt dazu, das in 50 Jahren erworbene Wissen umzulenken, um herauszufinden, wie man das richtige Substrat für eine bestimmte Verarbeitung erhält. Der Q&A-Teil erörtert die Möglichkeit, sich allein auf die schnellsten Systeme für die Intelligenz und die Kohärenz des Gedächtnisses eines Transformators zu verlassen.

  • 01:05:00 In diesem Abschnitt antwortet Hinton auf eine Frage zu unbewussten Vorurteilen beim maschinellen Lernen und vergleicht sie mit Vorurteilen bei Menschen. Er glaubt, dass maschinelles Lernen zwar voreingenommen sein kann, aber viel einfacher zu beheben ist als menschliche Voreingenommenheit, da Vorurteile beim maschinellen Lernen identifiziert und korrigiert werden können, indem die Gewichtungen eingefroren und gemessen werden, gegen wen die Vorurteile gerichtet sind. Darüber hinaus spricht er über Erklärbarkeit beim maschinellen Lernen und spricht sich gegen die Gesetzgebung aus, dass Systeme erklärbar sein müssen, bevor sie verwendet werden können, da diese großen neuronalen Netze Milliarden von Gewichten gelernt haben, die nicht prägnant erklärt werden können. Er räumt jedoch ein, dass Forscher diese Systeme besser verstehen wollen und ermutigt ältere Forscher, Mittel für jüngere Forscher bereitzustellen.

  • 01:10:00 In diesem Abschnitt diskutiert Geoffrey Hinton die Idee, dass, wenn wir translationale Äquivarianz und mehr Standpunktwissen in Faltungsnetze einbinden, diese bei der Objekterkennung und Generalisierung effizienter sein könnten. Darüber hinaus spricht er über die Notwendigkeit, symbolisches Denken mit konnektionistischen Netzwerken wie Transformatornetzwerken zu kombinieren. Hinton glaubt, dass die Implementierung von assoziativen Erinnerungen, schnellen Erinnerungen und die Tatsache, dass jede Synapse mehrere Zeitskalen hat, langfristiges Wissen und vorübergehende Speicherung ermöglichen kann, was für echtes Denken notwendig ist.

  • 01:15:00 In diesem Abschnitt antwortet der Sprecher auf eine Frage dazu, wie neuronale Netze basierend auf vergangenen oder aktuellen Erfahrungen aktualisiert werden. Er schlägt vor, ein assoziatives Gedächtnis zu verwenden, das durch den aktuellen Zustand aktiviert wird, anstatt sich auf eine Rückwärtsausbreitung durch die Zeit einzulassen. Er stellt klar, dass jede Synapse mehrere Zeitskalen haben sollte, um Provisorien zu speichern. Die Diskussion bewegt sich dann zum Thema Halluzination in Systemen mit vorherigen Überzeugungen. Der Redner glaubt, dass es für solche Systeme entscheidend ist, das richtige Gleichgewicht zwischen früheren Überzeugungen und Daten zu finden. Schließlich diskutiert er seine Ambivalenz gegenüber der Backpropagation und erklärt, dass es zwar das Richtige ist, aber überrascht ist, dass nur eine Milliarde Gewichte eine ziemlich gute Übersetzung leisten können, wobei das menschliche Gehirn viel mehr enthält.

  • 01:20:00 In diesem Abschnitt des Videos erörtert der Sprecher, dass unsere aktuelle KI-Technologie möglicherweise nicht so intelligent ist, wie wir denken, und dass der Fokus auf der Lösung dieses Problems liegen sollte. Sie gehen auch auf das Human Brain Project ein, das mit europäischen Mitteln finanziert wurde, und fragen sich, ob es die KI-Entwicklung unterstützen oder behindern wird. Der Referent lobt den Dozenten auch dafür, dass er komplexe Konzepte für Laien leicht verständlich erklären kann und für mehr Förderung und Unterstützung für junge Forscher im Bereich der KI wirbt.
 

Machine Learning From Scratch Vollständiger Kurs



Machine Learning From Scratch Vollständiger Kurs

Modelle für maschinelles Lernen selbst zu implementieren, ist eine der besten Möglichkeiten, sie zu beherrschen. Obwohl es wie eine herausfordernde Aufgabe erscheint, ist es für die meisten Algorithmen oft einfacher, als Sie sich vorstellen können. In den nächsten 10 Tagen werden wir Python und gelegentlich Numpy für spezifische Berechnungen verwenden, um jeden Tag einen maschinellen Lernalgorithmus zu implementieren.

Sie finden den Code in unserem GitHub-Repository: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch

GitHub - AssemblyAI-Examples/Machine-Learning-From-Scratch: Implementation of popular ML algorithms from scratch
GitHub - AssemblyAI-Examples/Machine-Learning-From-Scratch: Implementation of popular ML algorithms from scratch
  • AssemblyAI-Examples
  • github.com
This repository contains the code developed in the Machine Learning from scratch course on YouTube by AssemblyAI. It includes the implementations of popular ML algorithms.
 

Wie ChatGPT tatsächlich funktioniert



Wie ChatGPT tatsächlich funktioniert

ChatGPT ist ein maschinelles Lernmodell, das schädliche Inhalte in Chat-Gesprächen korrekt identifizieren kann. Seine Architektur basiert auf menschlichen Eingaben, und seine Mängel werden skizziert. Außerdem werden Leseempfehlungen gegeben.

  • 00:00:00 ChatGPT ist ein Chatbot, der entwickelt wurde, um die Fehlausrichtungsprobleme des Modells zu mindern. Es verwendet bestärkendes Lernen aus menschlichem Feedback, um ein vortrainiertes Modell zu optimieren.

  • 00:05:00 ChatGPT ist ein maschinelles Lernmodell, das schädliche Inhalte in Chat-Konversationen korrekt identifizieren kann. Seine Architektur basiert auf menschlichen Eingaben, und seine Mängel werden skizziert. Außerdem werden Leseempfehlungen gegeben.
 

Wie man KNN von Grund auf mit Python implementiert

Code: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch/tree/main/01%20KNN



Wie man KNN von Grund auf mit Python implementiert

Im Video mit dem Titel „How to implement KNN from scratch with Python“ erklärt der Referent, wie man mit Python einen KNN-Classifier von Grund auf neu erstellt. Sie decken die Schritte zur Implementierung des Algorithmus ab, z. B. die Berechnung des Abstands zwischen dem neuen Datenpunkt und anderen Punkten im Datensatz, die Auswahl der k nächstgelegenen Punkte und die Bestimmung des Labels für die Klassifizierung oder des Durchschnitts für die Regression. Der Referent implementiert den Algorithmus mithilfe einer Klasse in Python und demonstriert seine erfolgreiche Implementierung am Iris-Datensatz mit einer Genauigkeitsrate von 96 %. Sie laden die Zuschauer auch ein, sich den Code in ihrem Github-Repository anzusehen und Fragen im Kommentarbereich zu stellen.

  • 00:00:00 In diesem Abschnitt lernen wir den Algorithmus k Nearest Neighbors (k-NN), seine Funktionsweise und die erforderlichen Schritte zur Implementierung des Algorithmus in Python kennen. k-NN ist ein entfernungsbasierter Algorithmus, bei dem die nächsten k Datenpunkte basierend auf ihrer Entfernung zum neuen Datenpunkt ausgewählt werden. Dieser Wert von k wird vom Benutzer bestimmt und kann sowohl für Regressions- als auch für Klassifizierungsprobleme verwendet werden. Der Algorithmus beginnt mit der Berechnung des Abstands zwischen dem neuen Datenpunkt und anderen Datenpunkten im Datensatz. Dann werden die k nächsten Punkte ausgewählt und der Durchschnitt ihrer Werte für die Regression genommen oder das Etikett mit dem Mehrheitsvotum wird für die Klassifizierung bestimmt. Wir sehen auch, wie der Algorithmus mithilfe einer Klasse in Python mit einer Anpassungs- und Vorhersagefunktion und einer Hilfsfunktion zur Berechnung der Entfernung zwischen zwei Punkten implementiert wird.

  • 00:05:00 In diesem Abschnitt erklärt der Referent, wie man mit Python einen KNN-Klassifikator von Grund auf neu erstellt. Beginnend mit der Bogensortiermethode zum Sortieren des Entfernungsarrays fahren sie mit der Auswahl der k nächsten Nachbarn fort, erhalten die häufigste Klassenbezeichnung und geben die häufigste Bezeichnung zurück. Anschließend implementieren sie diesen Klassifikator im Iris-Datensatz, um Blumenarten zu klassifizieren und eine Genauigkeitsrate von 96 % zu erreichen, was die erfolgreiche Implementierung von KNN demonstriert. Der Redner lädt die Zuschauer ein, den in ihrem Github-Repository verfügbaren Code zu überprüfen und im Kommentarbereich Fragen zu stellen.
Machine-Learning-From-Scratch/01 KNN at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
Machine-Learning-From-Scratch/01 KNN at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
  • AssemblyAI-Examples
  • github.com
Implementation of popular ML algorithms from scratch - Machine-Learning-From-Scratch/01 KNN at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
 

So implementieren Sie die lineare Regression von Grund auf mit Python

Code: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch/tree/main/02%20Linear%20Regression



So implementieren Sie die lineare Regression von Grund auf mit Python

Dieses Video behandelt den Prozess der Implementierung einer linearen Regression von Grund auf mit Python. Der Referent erklärt, wie man mithilfe des mittleren quadratischen Fehlers die am besten passende Linie findet und wie man die Gewichte und Verzerrungen mit Gradientenabstieg berechnet. Der Referent erörtert auch, wie sich die Lernrate auf die Konvergenz auswirkt, und zeigt, wie das Modell mit der Datensatzfunktion von scikit-learn getestet werden kann. Sie beheben auch einen Tippfehler im Code und passen die Lernrate an, um die Anpassung der Vorhersagelinie zu verbessern. Der Code wird auf GitHub geteilt und Zuschauer sind eingeladen, Fragen zu stellen.

  • 00:00:00 In diesem Abschnitt liegt der Schwerpunkt auf der linearen Regression, bei der es darum geht, das Muster eines bestimmten Datensatzes zu verstehen und eine lineare Linie zu zeichnen, die so gut wie möglich zu den Daten passt. Der mittlere quadratische Fehler wird verwendet, um den Fehler der Linie für alle Datenpunkte zu berechnen, und die am besten passende Linie wird durch Berechnen der Werte für die Parameter des Modells oder der Gewichtung und der systematischen Abweichung gefunden, die den minimalen mittleren quadratischen Fehler unter Verwendung des Gradientenabstiegs ergeben. Die Lernrate wird verwendet, um zu steuern, wie schnell oder langsam in die Richtung zu gehen, die uns der Gradientenabstieg vorschreibt, wobei eine niedrige Lernrate zu einer langsamen Annäherung an einen minimalen Fehler führen kann, während eine hohe Lernrate zu einem Herumspringen im Luftraum führen kann und das Versagen, das Minimum zu finden. Während des Trainings werden die Gewichtung und die Abweichung mit null initialisiert, und der Gleichung wird ein Datenpunkt zum Vorhersagen oder Schätzen gegeben
    das Ergebnis, und der Fehler der Gleichung wird berechnet, was es einfacher macht, die Gradienten durch Matrixmultiplikation mit allen Datenpunkten zu berechnen. Während des Testens sagt ein trainiertes Modell Ergebnisse anhand der Gleichung voraus.

  • 00:05:00 In diesem Abschnitt implementiert der Sprecher die lineare Regression von Grund auf mit Python. Der Sprecher initialisiert die Lernrate, legt einen Standardwert für die Anzahl der Iterationen fest und definiert die Gewichtungen und Bias als Null. Der Sprecher fährt dann fort, das Ergebnis vorherzusagen, indem er das Skalarprodukt von x mit den Gewichtungen bildet und die Vorspannung hinzufügt. Um die Ableitungen zu berechnen, verwendet der Sprecher eine einfache Gleichung und aktualisiert dann die Gewichtungen und Bias, indem er die Gradienten berechnet. Schließlich fasst der Sprecher die Unterschiede zwischen den Vorhersagen und den tatsächlichen Werten zusammen, und der Prozess wird für eine Reihe von Iterationen bis zur Konvergenz wiederholt.

  • 00:10:00 In diesem Abschnitt erläutert der Referent, wie man das lineare Regressionsmodell trainiert und Vorhersagen unter Verwendung der gegebenen Klasse trifft. Die Aktualisierung der Gewichtungen und Bias erfolgt durch Subtrahieren der Lernrate multipliziert mit den Ableitungen der Gewichte bzw. Bias. Um mehrere Iterationen zum Ausführen des Algorithmus durchzuführen, wird eine for-Schleife hinzugefügt, um den Algorithmus über den Datensatz auszuführen. Abschließend zeigt der Referent, wie die Effizienz des linearen Regressionsalgorithmus mithilfe der Datensatzfunktion von Scikit-Learn getestet werden kann, indem eine Linie angepasst wird, die zu einer guten Leistung führt, und der mittlere quadratische Fehler für die Vorhersagen berechnet wird. Aufgrund einer falschen Skalarproduktberechnung tritt ein Dimensionsfehler auf, der durch Abrufen der Transponierten von x behoben wird.

  • 00:15:00 In diesem Abschnitt behebt der Moderator einen Tippfehler im Code und verwendet ihn, um ein lineares Regressionsmodell zu erstellen, das die y-Werte basierend auf den x-Werten aus einem bestimmten Datensatz vorhersagt. Dann visualisieren sie die Vorhersagelinie und stellen fest, dass sie zwar gut passt, aber verbessert werden könnte. Der Präsentator beschließt, die Lernrate anzupassen, und führt das Modell erneut aus, um eine bessere Übereinstimmung zu erzielen. Sie teilen den Code auf GitHub und laden Zuschauer ein, bei Bedarf Fragen zu stellen.
Machine-Learning-From-Scratch/02 Linear Regression at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
Machine-Learning-From-Scratch/02 Linear Regression at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
  • AssemblyAI-Examples
  • github.com
Implementation of popular ML algorithms from scratch - Machine-Learning-From-Scratch/02 Linear Regression at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
 

Wie man die logistische Regression mit Python von Grund auf neu implementiert

Code: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch/tree/main/03%20Logistic%20Regression



Wie man die logistische Regression mit Python von Grund auf neu implementiert

Das Video erklärt, wie Sie die logistische Regression von Grund auf mit Python implementieren, indem Sie die Sigmoid-Funktion verwenden, um Wahrscheinlichkeiten und Kreuzentropie als Fehlerfunktion zu erstellen. Der Kursleiter gibt schrittweise Anweisungen zum Berechnen von Vorhersagen, Gradienten und Aktualisieren von Verzerrungen durch Iterationen. Sie demonstrieren auch, wie ein Brustkrebsdatensatz geladen und der logistische Regressionsklassifikator trainiert wird, um vorherzusagen, ob ein Tumor bösartig oder gutartig ist. Das Video endet mit der Bewertung der Genauigkeit des Modells mithilfe einer benutzerdefinierten Funktion. Insgesamt ist die Implementierung erfolgreich und beweist, dass der logistische Regressionsalgorithmus gut funktioniert.

  • 00:00:00 In diesem Abschnitt behandelt das Video die logistische Regression und wie sie mithilfe der Sigmoidfunktion Wahrscheinlichkeiten anstelle spezifischer Werte erstellt. Anstelle des mittleren quadratischen Fehlers verwendet die logistische Regression die Kreuzentropie für ihre Fehlerfunktion. Um den Gradientenabstieg zu verwenden, muss der Gradient der Fehlerfunktion in Bezug auf Gewichtung und Bias berechnet werden. Die Lernrate wird verwendet, um zu bestimmen, wie schnell man sich der durch den Gradienten vorgegebenen Richtung annähert. Während des Tests wird die Wahrscheinlichkeit berechnet und das Etikett wird basierend auf der höchsten Wahrscheinlichkeit ausgewählt. Die Implementierung der logistischen Regression ähnelt der linearen Regression, jedoch mit der Initialisierung von Gewichtungen und Bias als Null.

  • 00:05:00 In diesem Abschnitt des Videos erklärt der Kursleiter, wie die logistische Regression mit Python implementiert wird, indem eine Sigmoid-Funktion verwendet wird, um die Ergebnisse vorherzusagen. Der Prozess umfasst die Berechnung der Vorhersagen aus dem Produkt der Gewichtungen und der x-Werte plus Bias, deren Umwandlung in eine Sigmoidfunktion, um die Ergebnisse zu erhalten, und die Berechnung der Gradienten. Der Kursleiter demonstriert, wie der Gradient für die Abweichung berechnet und durch Iterationen aktualisiert wird. Der Abschnitt beinhaltet auch, wie man eine Inferenz mit logistischer Regression durchführt, indem man die Wahrscheinlichkeit erhält und die Bezeichnung basierend auf den Werten der Vorhersagen auswählt.

  • 00:10:00 In diesem Abschnitt demonstriert der Kursleiter, wie die logistische Regression von Grund auf mit Python implementiert wird. Sie erklären den Prozess Schritt für Schritt und zeigen, wie man Wahrscheinlichkeiten und Klassenbezeichnungen mit der Sigmoidfunktion berechnet und wie man die Lernrate anpasst, um bessere Ergebnisse zu erzielen. Der Ausbilder lädt auch einen Brustkrebsdatensatz von Scikit-learn und trainiert den logistischen Regressionsklassifikator, um basierend auf den Merkmalen des Datensatzes vorherzusagen, ob ein Tumor bösartig oder gutartig ist. Schließlich bewerten sie die Genauigkeit des Algorithmus und demonstrieren, wie er mit einer benutzerdefinierten Funktion berechnet wird. Insgesamt ist die Umsetzung gelungen und zeigt, dass der selbstgebaute Algorithmus recht gut funktioniert.
Machine-Learning-From-Scratch/03 Logistic Regression at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
Machine-Learning-From-Scratch/03 Logistic Regression at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
  • AssemblyAI-Examples
  • github.com
Implementation of popular ML algorithms from scratch - Machine-Learning-From-Scratch/03 Logistic Regression at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
 

Wie man Entscheidungsbäume von Grund auf mit Python implementiert

Code: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch/tree/main/04%20Decision%20Trees



Wie man Entscheidungsbäume von Grund auf mit Python implementiert

Das Video bietet eine Schritt-für-Schritt-Anleitung zum Erstellen eines Entscheidungsbaums von Grund auf mit Python. Der Referent erklärt das Konzept von Entscheidungsbäumen, wie sie funktionieren und wie sie aufgebaut sind. Sie diskutieren Abbruchkriterien, die Grow-Tree-Funktion, die Hilfsfunktionen „meistgebräuchliches Label“, „Informationsgewinn“, „Entropie“ und „Split“ sowie die Vorhersagefunktion. Der Referent demonstriert auch, wie man Informationsgewinn, gewichtete Entropie und Genauigkeit berechnet. Darüber hinaus testen sie das Entscheidungsbaummodell und stellen den Zuschauern einen Link zu ihrem GitHub-Repository zur Verfügung, in dem der Code verfügbar ist.

  • 00:00:00 In diesem Abschnitt lernen wir Entscheidungsbäume kennen, wie sie funktionieren und aufgebaut sind. Entscheidungsbäume werden erstellt, um einen Datensatz darzustellen, wobei jeder Datenpunkt in Blattknoten unterteilt ist, die entweder „Ja“ oder „Nein“ darstellen. Die Knoten zwischen den Blattknoten werden Zweige genannt und sie werden basierend auf Merkmalen wie Merkmalen unterteilt, die zeigen, ob sich der Datenpunkt in der östlichen oder westlichen Nachbarschaft befindet. Der Informationsgewinn wird als die Entropie des Elternteils und der gewichtete Durchschnitt der Entropie der Kinder berechnet, und das Entscheidungsbaummodell wird basierend auf den signifikantesten Informationsgewinnen trainiert. Zuletzt besprechen wir Stoppkriterien, die verwendet werden, um zu entscheiden, wann der Aufbau des Entscheidungsbaums beendet werden soll.

  • 00:05:00 In diesem Abschnitt erörtert der Redner Möglichkeiten, einen Entscheidungsbaum zu stoppen, bevor alle möglichen Blattknoten analysiert werden, einschließlich des Festlegens einer maximalen Tiefe oder einer minimalen Anzahl von Stichproben, die ein Knoten haben muss. Der Referent stellt dann zwei Klassen vor, die für die Implementierung des Entscheidungsbaums verwendet werden: eine Node-Klasse und eine DecisionTree-Klasse. Die Knotenklasse enthält Informationen über das Merkmal, mit dem der Knoten geteilt wurde, und den Wert des Knotens. Die DecisionTree-Klasse enthält Methoden zum Anpassen des Baums an x- und y-Werte, zum Vorhersagen neuer Daten und zum Festlegen von Stoppkriterien wie der Mindestanzahl von Stichproben und der maximalen Tiefe. Insgesamt geht der Referent Schritt für Schritt vor, um die Implementierung eines Entscheidungsbaums von Grund auf in Python zu skizzieren.

  • 00:10:00 In diesem Abschnitt erörtert der Sprecher die Implementierung der Grow-Tree-Funktion, die die Hauptfunktion ist, die den Entscheidungsbaum rekursiv aufbaut. Die Funktion übernimmt die x- und y-Werte und prüft, ob die Anzahl der Merkmale die Anzahl der tatsächlichen Merkmale nicht überschreitet. Die Funktion überprüft zuerst die Stoppkriterien und fährt dann fort, die beste Teilung zu finden, untergeordnete Knoten zu erstellen und die Grow-Tree-Funktion erneut aufzurufen. Wenn die Stoppkriterien erfüllt sind, erstellt die Funktion einen neuen Blattknoten und gibt ihn mit dem Wertparameter zurück. Der Redner erörtert auch eine Hilfsfunktion, die als "häufigste Bezeichnung" bezeichnet wird, die die Datenstruktur des Zählers verwendet und die häufigste Bezeichnung im Datensatz zurückgibt.

  • 00:15:00 In diesem Abschnitt erläutert das Video, wie Entscheidungsbäume von Grund auf mit Python implementiert werden. Der Kursleiter demonstriert, wie eine Hilfsfunktion erstellt wird, um den besten Schwellenwert und die beste Funktion zum Erstellen einer neuen Teilung zu finden. Diese Funktion verwendet numpy, um eine Gruppe von Features zufällig auszuwählen, um eine neue Teilung zu erstellen. Sobald die Hilfsfunktion den Schwellenwert unter allen möglichen Aufteilungen gefunden hat, berechnet sie den Informationsgewinn, um zu bestimmen, ob er besser ist als der bisher berechnete beste Gewinn. Schließlich werden der beste Teilungsindex und -schwellenwert zurückgegeben.

  • 00:20:00 In diesem Abschnitt des Videos erstellt der Sprecher eine Hilfsfunktion namens "Informationsgewinn", um den Informationsgewinn zu berechnen, und definiert eine weitere Hilfsfunktion namens "Entropie", um die Entropie des Elternteils basierend auf den übergebenen Werten zu berechnen Sie erklären, dass die Entropie des übergeordneten Elements als Summe von px mal log 2 von px berechnet wird, und sie verwenden einen numpy-Trick, um die Vorkommen jedes Werts zu zählen und durch die Gesamtzahl der Werte zu dividieren, um das p von x zu erhalten . Als Nächstes erstellt der Sprecher eine weitere Hilfsfunktion namens „Split“, um herauszufinden, welche Indizes nach links und welche nach rechts gehen, und demonstriert, wie numpy argwhere funktioniert.

  • 00:25:00 In diesem Abschnitt des Videos erklärt der Moderator, wie die gewichtete Entropie der Kinder eines Entscheidungsbaums mit Python berechnet wird. Nachdem man die Länge der y-Werte und die linken und rechten Indizes erhalten hat, kann die Entropie der Kinder unter Verwendung der Formel für den gewichteten Durchschnitt berechnet werden. Dazu gehört, die Anzahl der Samples in jedem untergeordneten Knoten zu ermitteln, dividiert durch die Gesamtzahl der Samples, diese mit der Entropie jedes Knotens zu multiplizieren und dann die Ergebnisse zu addieren, um die Entropie der untergeordneten Knoten zu erhalten. Mit diesen Informationen kann dann der Informationsgewinn berechnet werden, indem die Parent-Entropie abzüglich der Child-Entropie genommen wird, die dann an den gesamten Entscheidungsbaum zurückgegeben wird.

  • 00:30:00 In diesem Abschnitt des Videos erklärt der Moderator, wie die Vorhersagefunktion für den Entscheidungsbaumklassifizierer implementiert wird. Die Hilfsfunktion traverse_tree wird hier verwendet, um den Baum rekursiv zu durchlaufen und den Wert des Blattknotens zurückzugeben, wenn er erreicht ist. Wenn der Wert des Merkmals kleiner oder gleich dem Schwellenwert ist, wird die linke Seite des Baums zum Durchlaufen übergeben, und andernfalls wird die rechte Seite des Baums zum Durchlaufen übergeben. Die Werte werden zurückgegeben und dann vor der Ausgabe in ein numpy-Array umgewandelt. Der Entscheidungsbaumklassifizierer wird dann mit dem Brustkrebsdatensatz getestet und die Vorhersagefunktion wird verwendet, um Vorhersagen zu generieren, die an eine Genauigkeitsmetrik weitergegeben werden.

  • 00:35:00 In diesem Abschnitt testet der Moderator das Entscheidungsbaummodell, das er mit Python von Grund auf neu erstellt hat. Sie berechnen zunächst die Genauigkeit des Modells anhand der Vorhersagen und der Testdaten. Sie finden auch zwei Fehler im Code – einen in der Initialisierung des Knotens und den anderen in der Traverse-Tree-Funktion. Nachdem sie die Fehler behoben haben, führen sie die Testdaten erneut aus und erhalten eine Genauigkeit von 0,91. Sie übergeben dann dem Modell verschiedene Argumente und erhalten eine etwas bessere Genauigkeit. Schließlich lädt der Moderator die Zuschauer ein, Fragen zu stellen, und stellt einen Link zu seinem GitHub-Repository bereit, in dem der Code verfügbar ist.
Machine-Learning-From-Scratch/04 Decision Trees at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
Machine-Learning-From-Scratch/04 Decision Trees at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
  • AssemblyAI-Examples
  • github.com
Implementation of popular ML algorithms from scratch - Machine-Learning-From-Scratch/04 Decision Trees at main · AssemblyAI-Examples/Machine-Learning-From-Scratch