Maschinelles Lernen und neuronale Netze - Seite 52

 

AlphaGo & AlphaGo Zero (DL 24)



AlphaGo & AlphaGo Zero (DL 24)

AlphaGo und AlphaGo Zero sind zwei Go-Play-Agenten, die von der Google-Tochter DeepMind entwickelt wurden. Diese Systeme kombinieren Deep Convolutional Neural Networks mit Self-Play-Reinforcement Learning, um erhebliche Fortschritte bei Go-Play-Algorithmen zu erzielen. Im Jahr 2016 war AlphaGo die erste Go-KI, die einen menschlichen Weltmeister besiegte. In diesem Video werden wir untersuchen, wie DeepMind diese Systeme erstellt hat, und wichtige Erkenntnisse aus den auf AlphaGo und AlphaGo Zero veröffentlichten Forschungsarbeiten diskutieren.

Go ist ein Spiel für zwei Spieler mit einfachen Regeln: Die Spieler platzieren abwechselnd schwarze und weiße Steine auf einer leeren Kreuzung des Spielbretts. Steine oder Steingruppen, die von gegnerischen Figuren umgeben sind, werden geschlagen und vom Spielfeld entfernt. Das Spiel endet, wenn beide Spieler passen, und die Punktzahl wird durch die Anzahl der umzingelten Steine und leeren Kreuzungen bestimmt.

Die Entwicklung eines KI-Algorithmus für Go erfordert die Planung mehrerer Schritte im Voraus. Schach-Engines wie Deep Blue erreichten dies, indem sie alle möglichen Zugsequenzen berücksichtigten und die daraus resultierenden Brettpositionen bewerteten. Allerdings ist die Beurteilung der Qualität einer Go-Board-Position aufgrund der Komplexität des Spiels und des höheren Verzweigungsfaktors schwieriger. Die Beschränkung des Suchraums auf vielversprechende Züge und die Bestimmung der Qualität der Brettpositionen waren wesentliche Probleme, die AlphaGo mithilfe von Deep Learning anging.

AlphaGo löste diese Probleme, indem es tiefe neuronale Netze trainierte, um den Wert und die Politik von Board-Zuständen abzuschätzen. Das Wertnetzwerk prognostiziert die Gewinnwahrscheinlichkeit aus einem bestimmten Zustand, während das Richtliniennetzwerk die Umzugsqualität schätzt. Diese Modelle leiten den Planungsalgorithmus, indem sie die Aufmerksamkeit auf vielversprechende Schritte beschränken und qualitativ hochwertige Schätzungen liefern.

Die Architektur von AlphaGo und AlphaGo Zero unterscheidet sich. Das ursprüngliche AlphaGo verwendete separate Richtlinien- und Wertnetzwerke, während AlphaGo Zero ein einziges Netzwerk mit separaten Köpfen für Richtlinien- und Wertausgaben verwendete. Beide Architekturen enthalten Restblöcke, um wichtige Informationen zum Platinenstatus zu extrahieren. Die Trainingsdaten für AlphaGo umfassten Spiele, die von Amateuren auf hohem Niveau gespielt wurden, während AlphaGo Zero ausschließlich Daten aus Selbstspielen verwendete.

Das Training des Wertschöpfungsnetzwerks ist relativ einfach und erfolgt mithilfe von Vorstandsstatusdarstellungen und Gewinn-/Verlustkennzeichnungen. Das Training des Richtliniennetzwerks ist komplexer, da es die Vorhersage der Bewegungsqualität erfordert. AlphaGo Zero verbesserte dies, indem es das Richtliniennetzwerk auf Schätzungen der Bewegungsqualität trainierte, die vom Suchalgorithmus während der Einführung generiert wurden. Im Laufe der Zeit lernt das politische Netzwerk, die Umzugsqualität mehrere Schritte in die Zukunft einzuschätzen.

Sowohl AlphaGo als auch AlphaGo Zero verwenden Monte Carlo Tree Search (MCTS) als Planungsalgorithmus. MCTS führt Rollouts durch, um Informationen über Bewegungssequenzwerte und Unsicherheiten zu sammeln. Der Suchalgorithmus nutzt die Richtlinien- und Wertnetzwerke, um den Board-Status auszuwerten und die Umzugsqualität abzuschätzen. Durch Self-Play-Reinforcement-Learning verbessern beide Systeme die Qualitätsschätzungen ihrer Netzwerke und werden zu stärkeren Go-Spielern.

Insgesamt stellt die Entwicklung von AlphaGo und AlphaGo Zero einen bedeutenden Meilenstein in der Go-Play-KI dar. Diese Systeme kombinieren Deep Learning mit Reinforcement Learning und Planungsalgorithmen, um im Go-Spiel bemerkenswerte Leistung und strategisches Spiel zu erzielen.

AlphaGo & AlphaGo Zero (DL 24)
AlphaGo & AlphaGo Zero (DL 24)
  • 2022.11.20
  • www.youtube.com
Davidson CSC 381: Deep Learning, Fall 2022
 

Berechnungsdiagramme (DL 25)



Berechnungsdiagramme (DL 25)

Der Schwerpunkt dieser Vorlesung liegt auf Rechengraphen, bei denen es sich um visuelle Darstellungen des Datenflusses und der Berechnungsabfolge in einem Programm handelt. Während Rechendiagramme üblicherweise zum Verständnis der Vorwärts- und Rückwärtsausbreitung in neuronalen Netzen verwendet werden, können sie auf jedes Programm angewendet werden. Indem sie die impliziten Operationen in einem neuronalen Netzwerk explizit machen, ermöglichen Berechnungsgraphen ein klareres Verständnis der beteiligten Berechnungen.

In einem Rechendiagramm stellt jeder Knoten eine Berechnung dar, beispielsweise das Multiplizieren von Gewichtungen mit Aktivierungen, das Summieren gewichteter Eingaben, das Berechnen von Aktivierungsfunktionen oder das Berechnen von Verlusten. Die Verbindungen zwischen Knoten stellen Abhängigkeiten zwischen Variablen im Programm dar. Indem wir wissen, wie man die Ableitung eines beliebigen Knotens im Diagramm bildet, können wir sowohl Vorwärts- als auch Rückwärtsausbreitungsschritte in einem neuronalen Netzwerk darstellen.

Um die partiellen Ableitungen zu berechnen, die für den Gradientenabstieg in einem neuronalen Netzwerk erforderlich sind, propagieren wir die Ableitungen mithilfe der Kettenregel rückwärts durch das Netzwerk. Bei jedem Schritt multiplizieren wir die Ableitung der aktuellen Operation mit der Ableitung des vorherigen Knotens. Wenn ein Knoten mehrere Ausgänge hat, summieren wir die Ableitungen, die von jedem Ausgang kommen.

Mit dem Rechendiagramm können wir die Ausgaben eines neuronalen Netzwerks berechnen und die partiellen Ableitungen des Verlusts für jedes Gewicht berechnen. Indem wir eine topologische Sortierung des Graphen rückwärts durcharbeiten und die Ableitungen weitergeben, können wir die partiellen Ableitungen für jeden Parameter im Netzwerk bestimmen.

In der Vorlesung werden auch Beispiele für Rechendiagramme vorgestellt, die veranschaulichen, wie Zwischenwerte und Ableitungen berechnet werden. Indem wir Funktionen in kleinere Berechnungen aufteilen und Zwischenwerten Namen zuweisen, können wir mithilfe des Rechendiagramms sowohl Funktionsausgaben als auch ihre partiellen Ableitungen berechnen.

Darüber hinaus können Rechengraphen nicht nur Skalarvariablen verarbeiten, sondern auch Variablen, die Vektoren, Matrizen oder Tensoren darstellen. Durch die Verwendung von Variablen, die höherdimensionalen Objekten entsprechen, wie etwa Aktivierungsvektoren und Gewichtsmatrizen, können wir Rechendiagramme auf dicht verbundene neuronale Netze und andere komplexe Berechnungen anwenden.

Um den Rechengraphen für ein dicht verbundenes neuronales Netzwerk zu erweitern, können wir Variablen einführen, die Aktivierungsvektoren oder Gewichtsmatrizen entsprechen. Benennen wir den Vektor der Aktivierungen auf dieser gesamten Ebene des Netzwerks als „a1“, gekennzeichnet durch ein Vektorhutsymbol (^). Ebenso können wir die Gewichte als Matrix W1 darstellen.

In diesem erweiterten Diagramm ist die Eingabe für jeden Knoten in der Ebene das Skalarprodukt des Aktivierungsvektors (a1) und der entsprechenden Gewichtsmatrix (W1). Wir können diese Operation als Matrixmultiplikation darstellen: a1 * W1.

Darüber hinaus können wir einen Bias-Vektor (b1) einführen, der jedem Knoten in der Ebene zugeordnet ist. Der Bias-Term wird elementweise zum Skalarprodukt aus Aktivierungen und Gewichten addiert, bevor eine Aktivierungsfunktion angewendet wird.

Als nächstes wenden wir elementweise eine Aktivierungsfunktion (z. B. ein Sigmoid oder ReLU) auf den resultierenden Vektor an. Bezeichnen wir diesen Vektor als „a2“ (mit einem Hutsymbol), der die Aktivierungen der nächsten Ebene darstellt.

Wir können diesen Vorgang für nachfolgende Schichten im neuronalen Netzwerk wiederholen, indem wir die Knoten mit Kanten verbinden und die Aktivierungen und Gewichte durch den Graphen verbreiten.

Um den Vorwärtsdurchlauf in diesem erweiterten Rechendiagramm zu berechnen, würden wir mit den Eingabewerten (z. B. Pixelintensitäten für ein Bild) beginnen und sie vorwärts durch das Diagramm weitergeben, wobei wir an jedem Knoten Matrixmultiplikationen, elementweise Additionen und Aktivierungsfunktionen anwenden bis wir die endgültige Ausgabe erhalten.

Bei der Backpropagation besteht das Ziel darin, die partiellen Ableitungen der Verlustfunktion in Bezug auf jedes Gewicht im Netzwerk zu berechnen. Indem wir den Rechengraphen erweitern, können wir den Gradientenfluss rückwärts durch das Netzwerk verfolgen und so diese partiellen Ableitungen mithilfe der Kettenregel effizient berechnen.

Bei der Backpropagation beginnen wir mit der Ableitung der Verlustfunktion in Bezug auf die endgültige Ausgabe und verwenden die Kettenregel, um sie rückwärts durch den Graphen zu propagieren. An jedem Knoten multiplizieren wir die eingehende Ableitung mit der Ableitung der entsprechenden Operation (Aktivierungsfunktion, Matrixmultiplikation usw.) in Bezug auf ihre Eingaben.

Indem wir diesem Prozess folgen, können wir die Gradienten für jedes Gewicht im Netzwerk berechnen, was uns ermöglicht, die Gewichte mithilfe von Optimierungsalgorithmen wie dem Gradientenabstieg und seinen Varianten zu aktualisieren.

Zusammenfassend lässt sich sagen, dass die Erweiterung des Rechendiagramms zur Darstellung eines dicht verbundenen neuronalen Netzwerks es uns ermöglicht, die Vorwärts- und Rückwärtsausbreitungsschritte zu visualisieren und zu berechnen. Es ermöglicht eine effiziente Berechnung der Gradienten und erleichtert die Optimierung des Netzwerks durch Gewichtsaktualisierungen.

Computation Graphs (DL 25)
Computation Graphs (DL 25)
  • 2020.09.29
  • www.youtube.com
Davidson CSC 381: Deep Learning, F'20, F'22
 

Automatische Differenzierung (DL 26)



Automatische Differenzierung (DL 26)

Die automatische Differentiation im Umkehrmodus (AD) ist eine Technik zur Berechnung der Gradienten von Funktionen. In Julia bietet die Zygote-Bibliothek automatische Differenzierungsfunktionen. Bei der Arbeit an großen maschinellen Lernprojekten in Julia wird häufig die auf Zygote basierende Flux-Deep-Learning-Bibliothek verwendet.

Zygote bietet eine „Gradienten“-Funktion, die eine andere Funktion und Eingabeargumente übernimmt und den Gradienten an diesen Punkten automatisch berechnet. Wenn beispielsweise eine Funktion und die Eingabe (1, 2, -1) gegeben sind, kann Zygote den Gradienten als (22, 4, -12) berechnen. Diese Funktion ist praktisch, ähnelt aber dem, was Sie möglicherweise in Project Zero implementiert haben.

Die Stärke der automatischen Differenzierung liegt in ihrer Fähigkeit, Gradienten für komplexere Funktionen zu berechnen. Betrachten wir zum Beispiel eine Funktion zur Berechnung des n-ten Elements der Fibonacci-Folge. Mit der Gradientenfunktion von Zygote können wir den Gradienten dieser Fibonacci-Funktion berechnen. Bei den Eingängen (0, 1, 12) beträgt die partielle Ableitung nach „a“ 89 und nach „b“ 144. Allerdings gibt es keine partielle Ableitung nach „n“, da es sich nicht um eine Stetigkeit handelt Variable in dieser Funktion.

Um zu verstehen, wie Zygote den Gradienten für solche Funktionen berechnet, können wir uns die automatische Differenzierung im Umkehrmodus ansehen. Im umgekehrten Modus AD wird ein Berechnungsgraph erstellt, während die Funktion ausgeführt wird, und partielle Ableitungen werden durch den Graphen rückwärts propagiert. Um dies zu erreichen, werden die numerischen Werte von Variablen durch Objekte ersetzt, die sowohl den Wert als auch zusätzliche Informationen für die Ableitungsberechnung speichern.

In diesen Objekten können zwei Arten von Informationen gespeichert werden: (1) der Wert der Variablen und ihrer partiellen Ableitungen in Bezug auf jede Eingabe (Vorwärtsmodus AD) oder (2) der Wert der Variablen und der vorhergehenden Variablen in der Berechnung und die Funktion, mit der ihr Wert berechnet wird (Umkehrmodus AD). Für Deep Learning ist der umgekehrte AD-Modus nützlicher, da er die Anzahl der Ausgaben (normalerweise eine) besser skaliert als die Anzahl der Eingaben (z. B. Gewichtsparameter in einem neuronalen Netzwerk).

Indem wir diese Auto-Diff-Objekte im Umkehrmodus erstellen und während der Funktionsauswertung ein Berechnungsdiagramm erstellen, können wir später eine Backpropagation durchführen. Die Zwischenvariablen speichern die Ergebnisse der Berechnungen und die übergeordneten Kanten in den Objekten zeigen Abhängigkeiten zwischen Knoten im Diagramm an. Der Rechengraph, einschließlich Funktionsknoten und Abhängigkeiten, wird implizit erstellt. Durch Anwenden der Kettenregel auf jeden Knoten können die Ableitungen rückwärts durch den Graphen propagiert werden.

Diese Sammlung von Auto-Diff-Objekten im Umkehrmodus mit ihren Werten, übergeordneten Elementen und Funktionen wird üblicherweise in einem Verlaufsband gespeichert. Mit diesem Ansatz lassen sich auch Funktionen mit komplexeren Zwischenberechnungen differenzieren, sofern die Ableitungen der Komponenten bekannt sind. Die Werte dieser Variablen können Skalare, Vektoren, Matrizen oder Tensoren sein, was die Differenzierung von Funktionen mit verschiedenen Datentypen ermöglicht.

Zusammenfassend lässt sich sagen, dass die automatische Differenzierung im umgekehrten Modus, die von Bibliotheken wie Zygote in Julia unterstützt wird, es uns ermöglicht, Gradienten für Funktionen effizient zu berechnen. Indem wir einen Berechnungsgraphen erstellen und Ableitungen durch ihn weitergeben, können wir den Prozess der Berechnung von Gradienten automatisieren und ihn so für Deep Learning und andere komplexe Anwendungen geeignet machen.

Automatic Differentiation (DL 26)
Automatic Differentiation (DL 26)
  • 2020.10.29
  • www.youtube.com
Davidson CSC 381: Deep Learning, F'20, F'22
 

Coursera Neural Networks for Machine Learning – Geoffrey Hinton – Vorlesung 1.1 – Warum brauchen wir maschinelles Lernen?



Vorlesung 1.1 – Warum brauchen wir maschinelles Lernen [Neuronale Netze für maschinelles Lernen]

Willkommen beim Coursera-Kurs über neuronale Netze für maschinelles Lernen! In diesem Kurs werden wir das faszinierende Gebiet der neuronalen Netze und ihre Anwendungen im maschinellen Lernen erkunden. Bevor wir uns mit den Feinheiten der Lernalgorithmen für neuronale Netze befassen, nehmen wir uns einen Moment Zeit, um die Bedeutung des maschinellen Lernens und seine Verwendungsmöglichkeiten zu besprechen und einige Beispiele zur Veranschaulichung seiner Fähigkeiten bereitzustellen.

Maschinelles Lernen ist notwendig, um komplexe Probleme zu lösen, die mit herkömmlichen Programmieransätzen nur schwer zu lösen sind. Beispielsweise ist das Erkennen eines dreidimensionalen Objekts aus verschiedenen Blickwinkeln, bei unterschiedlichen Lichtverhältnissen und in unübersichtlichen Szenen eine anspruchsvolle Aufgabe. Die Komplexität liegt darin, dass wir nicht vollständig verstehen, wie unser Gehirn eine solche Erkennung durchführt, was es schwierig macht, explizite Programme zur Lösung dieser Probleme zu schreiben. Selbst wenn wir das zugrunde liegende Programm aufdecken würden, könnte es äußerst kompliziert sein, es effektiv umzusetzen.

Ein weiteres Beispiel ist die Erkennung betrügerischer Kreditkartentransaktionen. Herkömmliche regelbasierte Systeme haben Schwierigkeiten, die Feinheiten von Betrugsmustern zu erfassen, da sie die Kombination zahlreicher unzuverlässiger Regeln erfordern, die sich im Laufe der Zeit ständig ändern. Maschinelles Lernen bietet einen alternativen Ansatz, indem es eine große Anzahl von Beispielen nutzt, die korrekte Ausgaben für gegebene Eingaben angeben. Ein lernender Algorithmus verarbeitet diese Beispiele, um ein Programm zu erstellen, das die Aufgabe effektiv löst. Das resultierende Programm sieht möglicherweise anders aus als herkömmliche handgefertigte Programme und enthält möglicherweise Millionen gewichteter Zahlen. Bei korrekter Implementierung lässt es sich jedoch gut auf neue Fälle übertragen und durch Umschulung anhand aktualisierter Informationen an sich ändernde Daten anpassen.

Maschinelles Lernen zeichnet sich durch die Erkennung von Mustern aus, beispielsweise von Objekten in realen Szenen, Gesichtsausdrücken oder gesprochenen Wörtern. Es ist auch hilfreich bei der Identifizierung von Anomalien, wie etwa ungewöhnlichen Abläufen bei Kreditkartentransaktionen oder anormalen Sensorwerten in einem Kernkraftwerk. Darüber hinaus ist maschinelles Lernen bei Vorhersageaufgaben wertvoll, etwa bei der Vorhersage von Aktienkursen oder der Vorhersage von Benutzerpräferenzen auf der Grundlage früherer Entscheidungen und des Verhaltens anderer.

In diesem Kurs verwenden wir die MNIST-Datenbank handgeschriebener Ziffern als Standardbeispiel, um viele Algorithmen für maschinelles Lernen zu erklären. Diese Datenbank ist weit verbreitet und ermöglicht einen effektiven Vergleich verschiedener Methoden. Durch die Verwendung solcher Aufgaben können wir die zugrunde liegenden Konzepte und Prinzipien des maschinellen Lernens besser verstehen.

Diese Beispiele kratzen nur an der Oberfläche der bemerkenswerten Fähigkeiten von maschinellem Lernen und neuronalen Netzen. Mit technologischen Fortschritten und leicht verfügbaren Rechenressourcen können komplexe Modelle für maschinelles Lernen effizient trainiert und eingesetzt werden. Diese Modelle haben das Potenzial, immer komplexere Aufgaben zu bewältigen und die Grenzen dessen, was wir mit maschinellem Lernen erreichen können, zu erweitern.

In diesem Kurs werden wir uns mit den Feinheiten neuronaler Netze befassen und ihre Architekturen, Trainingsalgorithmen und praktischen Implementierungstechniken diskutieren. Am Ende des Kurses verfügen Sie über fundierte Kenntnisse neuronaler Netze und sind in der Lage, diese auf eine Vielzahl von Problemen anzuwenden.

Begleiten Sie uns auf dieser spannenden Reise in die Welt der neuronalen Netze für maschinelles Lernen. Machen Sie sich bereit, Ihr Wissen zu erweitern, Ihre Fähigkeiten zu verbessern und das Potenzial dieser transformativen Technologie auszuschöpfen!

Lecture 1.1 — Why do we need machine learning [Neural Networks for Machine Learning]
Lecture 1.1 — Why do we need machine learning [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For more cool AI stuff, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton ...
 

Vorlesung 1.2 – Was sind neuronale Netze?



Vorlesung 1.2 – Was sind neuronale Netze [Neuronale Netze für maschinelles Lernen]

In diesem Video werde ich echte Neuronen im Gehirn besprechen, die als Grundlage für künstliche neuronale Netze dienen, die wir in diesem Kurs untersuchen werden. Obwohl wir uns im Verlauf des Kurses größtenteils nicht auf echte Neuronen konzentrieren werden, wollte ich zunächst einen kurzen Überblick geben.

Es gibt mehrere Gründe, zu untersuchen, wie Netzwerke von Neuronen rechnen können. Erstens hilft es uns, die Funktionsweise des Gehirns zu verstehen. Obwohl es logisch erscheint, Experimente direkt am Gehirn durchzuführen, handelt es sich um ein komplexes und empfindliches Organ, das Manipulationen nicht gut standhält. Daher sind Computersimulationen für das Verständnis empirischer Erkenntnisse unerlässlich.

Zweitens ermöglicht uns die Untersuchung neuronaler Netze, das Konzept der parallelen Berechnung zu verstehen, das von der Fähigkeit des Gehirns inspiriert ist, über ein riesiges Netzwerk relativ langsamer Neuronen zu rechnen. Das Verständnis dieser Art der parallelen Berechnung könnte zu Fortschritten bei Parallelcomputern führen, die sich erheblich von herkömmlichen seriellen Prozessoren unterscheiden. Es ist besonders effektiv für Aufgaben, bei denen das Gehirn hervorragende Leistungen erbringt, wie z. B. das Sehen, aber nicht gut geeignet für Aufgaben wie Multiplikation.

Der dritte Grund, der für diesen Kurs relevant ist, besteht darin, praktische Probleme mithilfe innovativer, vom Gehirn inspirierter Lernalgorithmen zu lösen. Diese Algorithmen können sehr wertvoll sein, auch wenn sie die Abläufe des Gehirns nicht genau nachahmen. Auch wenn wir nicht näher auf die Funktionsweise des Gehirns eingehen, dient es uns als Inspirationsquelle und weist darauf hin, dass große parallele Netzwerke von Neuronen komplexe Berechnungen durchführen können.

In diesem Video gebe ich weitere Einblicke in die Funktionsweise des Gehirns. Ein typisches kortikales Neuron besteht aus einem Zellkörper, einem Axon zum Senden von Nachrichten an andere Neuronen und einem dendritischen Baum zum Empfangen von Nachrichten von anderen Neuronen. An der Stelle, an der sich das Axon eines Neurons mit dem dendritischen Baum eines anderen Neurons verbindet, finden wir eine Synapse. Wenn sich eine Aktivitätsspitze entlang des Axons ausbreitet, injiziert sie Ladung in das postsynaptische Neuron.

Ein Neuron erzeugt Spitzen, wenn die in seinem Dendritenbaum empfangene Ladung eine Region namens Axonhügel depolarisiert. Sobald das Neuron depolarisiert ist, sendet es entlang seines Axons eine Spitze aus, bei der es sich im Wesentlichen um eine Depolarisationswelle handelt.

Synapsen selbst haben eine interessante Struktur. Sie enthalten Vesikel, die mit Botenstoffen gefüllt sind. Wenn eine Spitze das Axon erreicht, löst sie die Migration und Freisetzung dieser Vesikel in den synaptischen Spalt aus. Sendermoleküle diffundieren durch den synaptischen Spalt und binden an Rezeptormoleküle auf der Membran des postsynaptischen Neurons. Diese Bindung verändert die Form der Moleküle und erzeugt Löcher in der Membran, die es bestimmten Ionen ermöglichen, in das postsynaptische Neuron hinein oder aus ihm heraus zu strömen und dadurch seinen Depolarisationszustand zu ändern.

Synapsen sind im Vergleich zum Computerspeicher relativ langsam, bieten aber Vorteile gegenüber dem Arbeitsspeicher in Computern. Sie sind klein, stromsparend und anpassungsfähig. Anpassungsfähigkeit ist von entscheidender Bedeutung, da sie es Synapsen ermöglicht, ihre Stärken durch Nutzung lokal verfügbarer Signale zu ändern. Diese Anpassungsfähigkeit erleichtert das Lernen und die Fähigkeit, komplizierte Berechnungen durchzuführen.

Dann stellt sich die Frage: Wie entscheiden Synapsen, wie sie ihre Stärke ändern? Welche Regeln gelten für ihre Anpassung? Dies sind wesentliche Überlegungen.

Zusammenfassend lässt sich sagen, dass das Gehirn über Neuronen funktioniert, die Eingaben von anderen Neuronen erhalten. Nur ein kleiner Teil der Neuronen erhält Eingaben von sensorischen Rezeptoren. Neuronen kommunizieren innerhalb des Kortex, indem sie Aktivitätsspitzen übertragen. Die Wirkung einer Eingabe auf ein Neuron hängt von dessen synaptischem Gewicht ab, das positiv oder negativ sein kann. Diese synaptischen Gewichte passen sich an und ermöglichen dem gesamten Netzwerk, verschiedene Berechnungen zu erlernen und durchzuführen, beispielsweise Objekterkennung, Sprachverständnis, Planung und motorische Kontrolle.

Das Gehirn besteht aus etwa 10^11 Neuronen mit jeweils etwa 10^4 synaptischen Gewichten. Folglich enthält das Gehirn eine immense Anzahl synaptischer Gewichte, von denen viele innerhalb von Millisekunden zu laufenden Berechnungen beitragen. Dadurch steht dem Gehirn im Vergleich zu modernen Workstations eine höhere Bandbreite zum Speichern von Wissen zur Verfügung.

Ein weiterer faszinierender Aspekt des Gehirns ist seine Modularität. Verschiedene Regionen des Kortex spezialisieren sich letztendlich auf unterschiedliche Funktionen. Sinneseindrücke werden genetisch auf bestimmte Regionen gerichtet und beeinflussen deren letztendliche Funktionalität. Lokale Schädigungen des Gehirns führen zu spezifischen Auswirkungen, wie zum Beispiel dem Verlust des Sprachverständnisses oder der Objekterkennung. Die Flexibilität des Gehirns zeigt sich darin, dass Funktionen als Reaktion auf frühe Schäden in andere Teile des Gehirns verlagert werden können. Dies deutet darauf hin, dass der Kortex einen flexiblen, universellen Lernalgorithmus enthält, der sich aufgrund seiner Erfahrung an bestimmte Aufgaben anpassen kann.

Zusammenfassend lässt sich sagen, dass das Gehirn, sobald es gelernt hat, schnelle parallele Berechnungen durchführt, kombiniert mit bemerkenswerter Flexibilität. Es ähnelt einem FPGA, bei dem standardmäßige parallele Hardware aufgebaut wird und nachfolgende Informationen die spezifische durchzuführende parallele Berechnung bestimmen. Herkömmliche Computer erreichen Flexibilität durch sequentielle Programmierung. Dies erfordert jedoch schnelle zentrale Prozesse, um auf Programmzeilen zuzugreifen und langwierige sequentielle Berechnungen durchzuführen.

Lecture 1.2 — What are neural networks [Neural Networks for Machine Learning]
Lecture 1.2 — What are neural networks [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

Vorlesung 1.3 – Einige einfache Modelle von Neuronen



Vorlesung 1.3 – Einige einfache Modelle von Neuronen [Neuronale Netze für maschinelles Lernen]

Ich werde einige einfache Modelle von Neuronen beschreiben, darunter lineare Neuronen, Schwellenneuronen und komplexere Modelle. Diese Modelle sind einfacher als echte Neuronen, ermöglichen uns aber dennoch die Erstellung neuronaler Netze für maschinelles Lernen. Wenn wir komplexe Systeme verstehen wollen, müssen wir sie vereinfachen und idealisieren, um ihre Funktionsweise zu verstehen. Dabei werden unwesentliche Details entfernt und Mathematik und Analogien angewendet. Während es wichtig ist, wesentliche Eigenschaften nicht zu übersehen, kann es wertvoll sein, Modelle zu untersuchen, von denen bekannt ist, dass sie falsch sind, die aber in der Praxis dennoch nützlich sind. Beispielsweise verwenden neuronale Netze häufig Neuronen, die reale Werte anstelle diskreter Spitzen kommunizieren, obwohl sich reale kortikale Neuronen anders verhalten.

Der einfachste Neuronentyp ist das lineare Neuron, das rechnerische Einschränkungen aufweist, aber Einblicke in komplexere Neuronen bietet. Sein Output wird durch einen Bias und die gewichtete Summe der Input-Aktivitäten bestimmt. Ein Diagramm aus Bias und gewichteten Aktivitäten bildet eine gerade Linie. Im Gegensatz dazu senden binäre Schwellenneuronen, die von McCulloch und Pitts eingeführt wurden, einen Aktivitätsschub, wenn die gewichtete Summe einen Schwellenwert überschreitet. Diese Spitzen stellen Wahrheitswerte dar, die Neuronen kombinieren, um ihren eigenen Wahrheitswert zu erzeugen. Während Logik einst als wichtigstes Paradigma zum Verständnis des Geistes galt, geht man heute davon aus, dass das Gehirn verschiedene unzuverlässige Beweisquellen kombiniert, was die Logik weniger geeignet macht.

Neuronen mit binärer Schwelle können durch zwei äquivalente Gleichungen beschrieben werden. Der Gesamt-Input ist die Summe der Input-Aktivitäten multipliziert mit Gewichtungen, und der Output ist eins, wenn der Gesamt-Input über dem Schwellenwert liegt. Alternativ enthält die Gesamteingabe einen Bias-Term und die Ausgabe ist Eins, wenn die Gesamteingabe über Null liegt. Ein gleichgerichtetes lineares Neuron kombiniert Eigenschaften linearer Neuronen und binärer Schwellenneuronen. Es berechnet eine linear gewichtete Summe, wendet jedoch eine nichtlineare Funktion an, um die Ausgabe zu bestimmen. Die Ausgabe ist Null, wenn die Summe unter Null liegt, und gleich der Summe, wenn sie über Null liegt, was zu einer nichtlinearen, aber linearen Ausgabe über Null führt.

Sigmoidneuronen werden häufig in künstlichen neuronalen Netzen verwendet. Sie liefern eine reelle Ausgabe, die eine glatte und begrenzte Funktion der gesamten Eingabe ist. Häufig wird die Logistikfunktion verwendet, bei der der Output eins dividiert durch eins plus dem negativen Exponenten des gesamten Inputs ist. Bei großen positiven Eingaben ist die Ausgabe eins, während bei großen negativen Eingaben die Ausgabe Null ist. Die Sigmoidfunktion weist glatte Ableitungen auf, was das Lernen in neuronalen Netzen erleichtert.

Stochastische binäre Neuronen verwenden dieselben Gleichungen wie logistische Einheiten, aber anstatt die Wahrscheinlichkeit als reelle Zahl auszugeben, treffen sie eine probabilistische Entscheidung und geben entweder Eins oder Null aus. Die Wahrscheinlichkeit stellt die Wahrscheinlichkeit dar, dass eine Spitze entsteht. Wenn die Eingabe sehr positiv ist, wird wahrscheinlich eine Eins erzeugt, während eine sehr negative Eingabe wahrscheinlich eine Null ergibt. Gleichgerichtete lineare Einheiten folgen einem ähnlichen Prinzip, führen jedoch zu Zufälligkeiten bei der Spitzenerzeugung. Die Ausgabe einer gleichgerichteten linearen Einheit stellt die Rate der erzeugten Spitzen dar, und die tatsächlichen Spitzenzeiten werden durch einen zufälligen Poisson-Prozess innerhalb der Einheit bestimmt.

Dieses stochastische Verhalten in binären Neuronen und gleichgerichteten linearen Einheiten führt intrinsische Zufälligkeit in das neuronale Netzwerk ein. Während die Rate der Spitzenproduktion deterministisch ist, wird der tatsächliche Zeitpunkt der Spitzen zu einem zufälligen Prozess. Diese Zufälligkeit verleiht dem System Variabilität und Stochastik.

Das Verständnis dieser verschiedenen Neuronenmodelle bietet uns eine Reihe von Rechenmöglichkeiten. Lineare Neuronen sind rechnerisch begrenzt, können aber Einblicke in komplexere Systeme bieten. Binäre Schwellenneuronen ermöglichen eine Entscheidungsfindung auf der Grundlage von Schwellenwertvergleichen. Gleichgerichtete lineare Neuronen kombinieren Linearität und Nichtlinearität und ermöglichen so gleichzeitig Entscheidungsfindung und lineare Verarbeitung. Sigmoid-Neuronen liefern glatte, begrenzte Ausgaben und werden aufgrund ihrer differenzierbaren Natur häufig in neuronalen Netzen verwendet. Stochastische binäre Neuronen und gleichgerichtete lineare Einheiten führen Zufälligkeit in das System ein, was eine probabilistische Entscheidungsfindung ermöglicht und Variabilität einführt.

Durch die Kombination verschiedener Neuronentypen in neuronalen Netzen können wir leistungsstarke Modelle für maschinelle Lernaufgaben erstellen. Diese Netzwerke können aus Daten lernen, ihre Gewichtungen und Tendenzen anpassen und auf der Grundlage erlernter Muster Vorhersagen oder Klassifizierungen treffen. Das Verständnis der Prinzipien und Verhaltensweisen dieser Neuronenmodelle hilft uns, effektive neuronale Netze zu entwerfen und zu trainieren.

Es ist jedoch wichtig zu bedenken, dass es sich bei diesen Neuronenmodellen um vereinfachte Abstraktionen realer Neuronen im Gehirn handelt. Das Gehirn ist ein unglaublich komplexes und dynamisches System, und diese Modelle dienen als Näherungswerte zur Erfassung bestimmter Aspekte der neuronalen Verarbeitung. Auch wenn sie möglicherweise nicht die volle Komplexität echter Neuronen erfassen, bieten sie nützliche Werkzeuge zum Aufbau von Rechenmodellen und zur Erzielung beeindruckender maschineller Lernfähigkeiten.

Die Untersuchung verschiedener Modelle von Neuronen, darunter lineare Neuronen, Schwellenneuronen, gleichgerichtete lineare Neuronen, Sigmoidneuronen und stochastische binäre Neuronen, ermöglicht es uns, verschiedene rechnerische Eigenschaften und Verhaltensweisen zu verstehen. Diese Modelle bilden die Grundlage für den Aufbau neuronaler Netze und ermöglichen uns die Durchführung vielfältiger maschineller Lernaufgaben. Obwohl sie vereinfacht sind, bieten sie wertvolle Einblicke in die Funktionsweise neuronaler Systeme.

Lecture 1.3 — Some simple models of neurons [Neural Networks for Machine Learning]
Lecture 1.3 — Some simple models of neurons [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

Vorlesung 1.4 – Ein einfaches Lernbeispiel



Vorlesung 1.4 – Ein einfaches Lernbeispiel [Neuronale Netze für maschinelles Lernen]

In diesem Beispiel für maschinelles Lernen untersuchen wir ein einfaches neuronales Netzwerk, das lernt, Ziffern zu erkennen. Während des gesamten Prozesses werden Sie mithilfe eines einfachen Lernalgorithmus Zeuge der Entwicklung der Gewichte.

Unser Fokus liegt auf der Schulung eines unkomplizierten Netzwerks zur Erkennung handgeschriebener Formen. Das Netzwerk besteht aus zwei Schichten: Eingabeneuronen, die Pixelintensitäten darstellen, und Ausgabeneuronen, die Klassen darstellen. Das Ziel besteht darin, dass das Ausgabeneuron, das einer bestimmten Form entspricht, aktiv wird, wenn diese Form präsentiert wird.

Jedes aktive Pixel „stimmt“ für die Formen, zu denen es gehört, und diese Stimmen haben unterschiedliche Intensitäten. Die Form mit den meisten Stimmen gewinnt, vorausgesetzt, es besteht Konkurrenz zwischen den Ausgabeeinheiten. Auf diesen Wettbewerbsaspekt werden wir in einer späteren Vorlesung näher eingehen.

Zur Visualisierung der Gewichte benötigen wir eine Anzeige, die Tausende von Gewichten aufnehmen kann. Anstatt die Gewichte auf einzelne Verbindungen zwischen Eingabe- und Ausgabeeinheiten zu schreiben, erstellen wir kleine Karten für jede Ausgabeeinheit. Diese Karten stellen die Stärke der Verbindungen von Eingabepixeln mithilfe schwarzer und weißer Blobs dar. Die Fläche jedes Blobs gibt die Größe an, während die Farbe das Vorzeichen der Verbindung darstellt.

Zunächst werden den Gewichten kleine Zufallswerte zugewiesen. Um die Gewichte zu verbessern, werden wir dem Netzwerk Daten präsentieren und es trainieren, die Gewichte entsprechend anzupassen. Wenn ein Bild angezeigt wird, erhöhen wir die Gewichtungen von den aktiven Pixeln auf die richtige Klasse. Um jedoch zu verhindern, dass die Gewichte übermäßig groß werden, dekrementieren wir auch die Gewichte von den aktiven Pixeln auf die Klasse, die das Netzwerk vermutet. Dieser Schulungsansatz hilft dem Netzwerk, die richtigen Entscheidungen zu treffen, anstatt bei seinen anfänglichen Tendenzen zu verharren.

Nachdem wir dem Netzwerk mehrere hundert Trainingsbeispiele gezeigt haben, beobachten wir erneut die Gewichte. Sie beginnen, regelmäßige Muster zu bilden. Mit weiteren Trainingsbeispielen verändern sich die Gewichte weiter und stabilisieren sich schließlich. Zu diesem Zeitpunkt ähneln die Gewichte Vorlagen für die Formen. Beispielsweise dienen die Gewichte in der Einheit „Eins“ als Vorlage für die Identifizierung von Einsen. In ähnlicher Weise konzentrieren sich die Gewichtungen in der Einheit „Neun“ auf die Unterscheidung zwischen Neunen und Siebenen auf der Grundlage des Vorhandenseins oder Fehlens spezifischer Merkmale.

Es ist erwähnenswert, dass dieser Lernalgorithmus aufgrund der Einfachheit des Netzwerks nur eine begrenzte Fähigkeit zur Formenunterscheidung erreichen kann. Die erlernten Gewichte fungieren effektiv als Vorlagen, und das Netzwerk bestimmt den Gewinner anhand der Überlappung zwischen der Vorlage und der Tinte. Dieser Ansatz greift jedoch angesichts der Komplexität der Variationen handgeschriebener Ziffern zu kurz. Um dieses Problem anzugehen, müssen wir Merkmale extrahieren und ihre Anordnung analysieren, da ein einfacher Vorlagenabgleich ganzer Formen das Problem nicht ausreichend lösen kann.

Zusammenfassend demonstriert das Beispiel das Training eines einfachen neuronalen Netzwerks zum Erkennen von Ziffern. Während sich die Gewichte des Netzwerks weiterentwickeln und Vorlagen für die Formen ähneln, werden die Grenzen dieses Ansatzes deutlich, wenn man sich den komplizierten Variationen handgeschriebener Ziffern gegenübersieht.

Lecture 1.4 — A simple example of learning [Neural Networks for Machine Learning]
Lecture 1.4 — A simple example of learning [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

Vorlesung 1.5 – Drei Arten des Lernens



Vorlesung 1.5 – Drei Arten des Lernens [Neuronale Netze für maschinelles Lernen]

In diesem Video werde ich drei Haupttypen des maschinellen Lernens diskutieren: überwachtes Lernen, verstärkendes Lernen und unüberwachtes Lernen. Der Schwerpunkt des Kurses liegt in der ersten Hälfte hauptsächlich auf überwachtem Lernen und in der zweiten Hälfte auf unbeaufsichtigtem Lernen. Aus Zeitgründen können wir das Thema Reinforcement Learning leider nicht behandeln.

Beim überwachten Lernen geht es darum, eine Ausgabe anhand eines Eingabevektors vorherzusagen. Das Ziel besteht darin, eine reelle Zahl oder eine Klassenbezeichnung genau vorherzusagen. Bei der Regression geht es um reelle Zahlen, beispielsweise die Vorhersage von Aktienkursen, während es bei der Klassifizierung um die Zuweisung von Bezeichnungen geht, beispielsweise um die Unterscheidung zwischen positiven und negativen Fällen oder das Erkennen handgeschriebener Ziffern. Überwachtes Lernen basiert auf einer Modellklasse, bei der es sich um eine Reihe von Kandidatenmodellen handelt, die durch Funktionen dargestellt werden, die Eingaben mithilfe numerischer Parameter (W) auf Ausgaben abbilden. Diese Parameter werden angepasst, um die Diskrepanz zwischen der vorhergesagten Ausgabe (Y) und der korrekten Ausgabe (t) zu minimieren.

Reinforcement Learning konzentriert sich auf die Auswahl von Aktionen oder Aktionssequenzen, um die erhaltenen Belohnungen zu maximieren. Aktionen werden auf der Grundlage gelegentlicher Belohnungen ausgewählt und das Ziel besteht darin, die erwartete Summe zukünftiger Belohnungen zu maximieren. Ein Abzinsungsfaktor wird typischerweise eingesetzt, um unmittelbare Belohnungen gegenüber entfernten Belohnungen zu priorisieren. Reinforcement Learning stellt aufgrund verzögerter Belohnungen und der begrenzten Informationen, die durch skalare Belohnungen übermittelt werden, Herausforderungen dar.

Beim unüberwachten Lernen, das in der zweiten Hälfte des Kurses ausführlich behandelt wird, geht es darum, nützliche interne Darstellungen von Eingabedaten zu entdecken. Viele Jahre lang wurde das unbeaufsichtigte Lernen zugunsten des Clusterings vernachlässigt, da es schwierig war, die Ziele des unbeaufsichtigten Lernens zu definieren. Unüberwachtes Lernen dient jedoch verschiedenen Zwecken, einschließlich der Schaffung interner Darstellungen, die für nachfolgendes überwachtes oder verstärkendes Lernen nützlich sind. Ziel ist es, kompakte, niedrigdimensionale Darstellungen hochdimensionaler Eingaben wie Bilder zu generieren, indem zugrunde liegende Mannigfaltigkeiten identifiziert werden. Unüberwachtes Lernen kann mithilfe erlernter Merkmale auch wirtschaftliche Darstellungen liefern, wobei Eingaben in binären oder spärlichen Codes ausgedrückt werden können. Darüber hinaus umfasst unüberwachtes Lernen Clustering, das als Extremfall der Suche nach spärlichen Merkmalen mit einem Merkmal pro Cluster angesehen werden kann.

Dieses Video behandelt die drei Haupttypen des maschinellen Lernens: überwachtes Lernen, verstärkendes Lernen und unüberwachtes Lernen. Während sich überwachtes Lernen auf die Vorhersage von Ergebnissen konzentriert, geht es beim bestärkenden Lernen um die Maximierung von Belohnungen durch Aktionsauswahl. Unüberwachtes Lernen zielt darauf ab, nützliche interne Darstellungen zu entdecken, beispielsweise niedrigdimensionale Darstellungen oder erlernte Merkmale, und umfasst die Identifizierung zugrunde liegender Cluster.

Lecture 1.5 — Three types of learning [Neural Networks for Machine Learning]
Lecture 1.5 — Three types of learning [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

Vorlesung 2.1 – Arten neuronaler Netzwerkarchitekturen



Vorlesung 2.1 – Arten neuronaler Netzwerkarchitekturen [Neuronale Netzwerke für maschinelles Lernen]

Neuronale Netze können unterschiedliche Arten von Architekturen haben, die sich darauf beziehen, wie die Neuronen verbunden sind. Die in praktischen Anwendungen am häufigsten verwendete Architektur ist ein Feed-Forward-Neuronales Netzwerk, bei dem Informationen von Eingabeeinheiten über verborgene Schichten zu Ausgabeeinheiten fließen. Andererseits sind wiederkehrende neuronale Netze interessanter, da sie einen zyklischen Informationsfluss ermöglichen und so ein Langzeitgedächtnis und komplexe Dynamiken ermöglichen. Das Training rekurrenter Netzwerke ist aufgrund ihrer Komplexität eine Herausforderung, aber die jüngsten Fortschritte haben dazu geführt, dass sie trainierbarer sind und beeindruckende Aufgaben bewältigen können.

Eine andere Art von Architektur sind symmetrisch verbundene Netzwerke, bei denen die Gewichtungen zwischen den Einheiten in beide Richtungen gleich sind. Diese Netzwerke folgen einer Energiefunktion und sind im Vergleich zu rekurrenten Netzwerken einfacher zu analysieren. Allerdings sind sie in ihren Fähigkeiten eingeschränkter und können keine Zyklen abbilden.

In vorwärtsgerichteten neuronalen Netzen berechnet jede Schicht Transformationen zwischen Eingabe und Ausgabe, was zu neuen Darstellungen auf jeder Schicht führt. Auf die Aktivitäten von Neuronen in jeder Schicht werden nichtlineare Funktionen angewendet, um Ähnlichkeiten und Unähnlichkeiten zwischen Eingaben zu erfassen. Im Gegensatz dazu nutzen wiederkehrende neuronale Netze gerichtete Zyklen in ihrem Verbindungsgraphen, was komplexe Dynamiken und sequentielle Datenmodellierung ermöglicht. In jedem Zeitschritt werden die gleichen Gewichte verwendet, und die Zustände der verborgenen Einheiten bestimmen die Zustände des nächsten Zeitschritts.

Rekurrente neuronale Netze haben die Fähigkeit, sich Informationen über einen langen Zeitraum in ihren verborgenen Zuständen zu merken, es ist jedoch eine Herausforderung, ihnen beizubringen, diese Fähigkeit zu nutzen. Neuere Algorithmen haben jedoch beim Training wiederkehrender Netze erhebliche Fortschritte gemacht. Diese Netzwerke können für Aufgaben wie die Vorhersage des nächsten Zeichens in einer Sequenz, die Generierung von Text oder die Modellierung sequenzieller Daten verwendet werden.

Insgesamt können neuronale Netzwerkarchitekturen in ihren Verbindungen und Fähigkeiten variieren und von Feed-Forward-Netzwerken für einfache Berechnungen bis hin zu wiederkehrenden Netzwerken für Speicher und komplexe Dynamik reichen.

Lecture 2.1 — Types of neural network architectures [Neural Networks for Machine Learning]
Lecture 2.1 — Types of neural network architectures [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

Vorlesung 2.2 – Perzeptrone: Neuronale Netze der ersten Generation



Vorlesung 2.2 – Perzeptrone: neuronale Netze der ersten Generation [Neuronale Netze für maschinelles Lernen]

Perzeptrone, eine Klasse von Algorithmen für maschinelles Lernen, wurden erstmals in den frühen 1960er Jahren untersucht. Anfangs erwiesen sie sich als Lerngeräte als vielversprechend, doch Minsky und Papert enthüllten später ihre Grenzen, was zu einem Rückgang ihrer Beliebtheit führte. Minsky und Papert zeigten, dass Perzeptrone in ihrer Fähigkeit, komplexe Muster bei statistischen Mustererkennungsaufgaben zu lernen, eher eingeschränkt sind.

Im Bereich der statistischen Mustererkennung wird ein Standardansatz zur Mustererkennung verfolgt. Zunächst werden die rohen Eingabedaten verarbeitet und in einen Satz oder Vektor von Funktionsaktivierungen umgewandelt. Diese Konvertierung erfolgt mithilfe vordefinierter Programme, die auf gesundem Menschenverstand basieren und bei denen menschliches Fachwissen bestimmt, welche Funktionen für die jeweilige Aufgabe relevant sind. Es ist wichtig zu beachten, dass diese Vorverarbeitungsphase kein Lernen beinhaltet. Die Auswahl geeigneter Funktionen ist ein entscheidender Schritt und erfordert oft Versuch und Irrtum. Verschiedene Funktionen werden ausprobiert und ihre Wirksamkeit bewertet. Durch diesen iterativen Prozess wird schließlich eine Reihe von Merkmalen identifiziert, die es der nachfolgenden Lernphase ermöglichen, das Problem effektiv zu lösen.

Die Lernphase bei der statistischen Mustererkennung umfasst die Bestimmung der Gewichtungen, die jeder Funktionsaktivierung zugeordnet sind. Diese Gewichte stellen die Beweiskraft dar, die jedes Merkmal für oder gegen die Hypothese liefert, dass die aktuelle Eingabe zu einem bestimmten Muster oder einer bestimmten Klasse gehört. Durch Summieren der gewichteten Funktionsaktivierungen wird ein Gesamtbeweiswert ermittelt, der mit einem Schwellenwert verglichen wird. Wenn die Beweise den Schwellenwert überschreiten, wird der Eingabevektor als positives Beispiel für das erkannte Muster klassifiziert.

Perzeptrone sind eine spezielle Art statistischer Mustererkennungssysteme. Während es verschiedene Arten von Perzeptronen gibt, besteht die Standardform, die von Rosenblatt als Alpha-Perzeptron bezeichnet wird, aus Eingabeeinheiten, die in Merkmalsaktivierungen umgewandelt werden. Diese Transformation ähnelt möglicherweise dem Verhalten von Neuronen, es ist jedoch wichtig zu beachten, dass diese Phase des Systems kein Lernen beinhaltet. Sobald die Funktionsaktivierungen vorliegen, werden die Gewichte mithilfe eines Lernalgorithmus gelernt.

Bekanntheit erlangten Perzeptrone in den 1960er Jahren durch die Arbeit von Frank Rosenblatt, der sie ausführlich untersuchte und in seinem Buch „Principles of Neurodynamics“ beschrieb. Das Buch stellte verschiedene Arten von Perzeptronen vor und war voller innovativer Ideen. Einer der bemerkenswertesten Beiträge war ein leistungsstarker Lernalgorithmus im Zusammenhang mit Perzeptronen, der hohe Erwartungen an deren Fähigkeiten weckte.

Die anfängliche Begeisterung für Perzeptrone stieß jedoch auf Skepsis, als sich herausstellte, dass ihr Lernalgorithmus Grenzen hatte. Beispielsweise wurden übertriebene Behauptungen über ihre Fähigkeit aufgestellt, zwischen teilweise verdeckten Bildern von Panzern und Lastwagen zu unterscheiden. Diese Behauptungen wurden widerlegt, als sich herausstellte, dass die Perzeptrone lediglich die Gesamtintensität der Pixel maßen, eine Aufgabe, die Menschen mit größerer Empfindlichkeit ausführen. Ein solches Missverständnis schädigte den Ruf des Perzeptrons und führte zu Zweifeln an der Wirksamkeit neuronaler Netzwerkmodelle insgesamt.

Im Jahr 1969 veröffentlichten Minsky und Papert ein bahnbrechendes Buch mit dem Titel „Perceptrons“, in dem sie die Fähigkeiten von Perceptrons kritisch analysierten und ihre Grenzen hervorhoben. Allerdings hat das breitere Feld der künstlichen Intelligenz diese Einschränkungen fälschlicherweise auf alle neuronalen Netzwerkmodelle übertragen. Die vorherrschende Überzeugung war, dass Minsky und Papert bewiesen hatten, dass neuronale Netzwerkmodelle unpraktisch und nicht in der Lage seien, komplexe Aufgaben zu lernen. In Wirklichkeit waren die Ergebnisse von Minsky und Papert spezifisch für die von ihnen untersuchten Perzeptrone und machten das Potenzial neuronaler Netze als Ganzes nicht ungültig.

Es ist erwähnenswert, dass das Perzeptron-Konvergenzverfahren, das wir gleich untersuchen werden, auch heute noch häufig für Aufgaben mit großen Merkmalsvektoren verwendet wird. Tatsächlich nutzen große Unternehmen wie Google Perzeptron-basierte Algorithmen, um Ergebnisse auf der Grundlage umfangreicher Funktionen vorherzusagen.

Die Entscheidungseinheit in einem Perzeptron ist ein binäres Schwellenneuron, ein Neuronentyp, der bereits in neuronalen Netzwerkmodellen anzutreffen ist. Um unser Verständnis aufzufrischen, berechnen diese Neuronen eine gewichtete Summe der von anderen Neuronen empfangenen Eingaben, fügen einen Bias-Term hinzu und erzeugen eine Ausgabe von eins, wenn die Summe Null übersteigt, andernfalls erzeugen sie eine Ausgabe von Null.

Um den Lernprozess zu vereinfachen, können Verzerrungen als Gewichtungen behandelt werden, indem jeder Eingabevektor um eine zusätzliche Eingabe mit dem konstanten Wert eins erweitert wird. Dadurch wird die Verzerrung als Gewichtung in diese zusätzliche Eingabezeile integriert, wodurch die Notwendigkeit einer separaten Lernregel für Verzerrungen entfällt. Im Wesentlichen entspricht der Bias einem Gewicht, dessen Wert das Negativ des Schwellenwerts ist.

Lassen Sie uns nun den Lernvorgang des Perzeptrons untersuchen, der überraschend leistungsfähig ist und garantiert zu einer Lösung führt. Es ist jedoch wichtig, einige Vorbehalte hinsichtlich der Garantie zu berücksichtigen, auf die später noch eingegangen wird.

Zunächst fügen wir in jeden Eingabevektor eine zusätzliche Komponente mit dem Wert eins ein. Wir können uns dann auf die Gewichte konzentrieren und die Verzerrungen ignorieren, da sie jetzt als Gewichte in der zusätzlichen Eingabezeile behandelt werden. Schulungsfälle werden gemäß einer Richtlinie ausgewählt, die sicherstellt, dass jeder Fall innerhalb eines angemessenen Zeitrahmens ausgewählt wird, obwohl die genaue Definition von „angemessener Zeit“ je nach Kontext variieren kann.

Nachdem wir einen Trainingsfall ausgewählt haben, bewerten wir die vom Perzeptron erzeugte Ausgabe und vergleichen sie mit der erwarteten Ausgabe. Wenn die Ausgabe korrekt ist, was darauf hinweist, dass die Entscheidung des Perzeptrons mit der gewünschten Klassifizierung übereinstimmt, lassen wir die Gewichte unverändert. Wenn die Ausgabe jedoch falsch ist, passen wir die Gewichte anhand der folgenden Regeln an:

  1. Wenn die Ausgabe Null ist, obwohl sie Eins sein sollte (dh das Perzeptron weist eine Eingabe fälschlicherweise zurück), addieren wir den Eingabevektor zum Gewichtsvektor des Perzeptrons.
  2. Wenn die Ausgabe eins ist, obwohl sie Null sein sollte (dh das Perzeptron akzeptiert fälschlicherweise eine Eingabe), subtrahieren wir den Eingabevektor vom Gewichtsvektor des Perzeptrons.

Bemerkenswert ist, dass dieses einfache Lernverfahren garantiert einen Satz von Gewichten findet, der für jeden Trainingsfall die richtige Ausgabe liefert. Allerdings muss eine wichtige Bedingung erfüllt sein: Es muss ein zulässiger Satz von Gewichten vorhanden sein, der alle Trainingsfälle korrekt klassifizieren kann. Leider gibt es für viele interessante Probleme möglicherweise keinen solchen praktikablen Satz von Gewichten.

Die Existenz eines zulässigen Gewichtssatzes hängt stark von der Wahl der verwendeten Merkmale ab. Bei vielen Problemen besteht die entscheidende Herausforderung darin, die am besten geeigneten Merkmale zur Erfassung der relevanten Muster zu bestimmen. Wenn die richtigen Funktionen ausgewählt werden, wird der Lernprozess machbar und effektiv. Wenn andererseits unzureichende Funktionen ausgewählt werden, wird das Lernen unmöglich und der Schwerpunkt verlagert sich auf die Auswahl der Funktionen.

Zusammenfassend lässt sich sagen, dass Perzeptrone eine bedeutende Rolle in der frühen Entwicklung neuronaler Netzwerkmodelle spielten. Während Minsky und Papert ihre Grenzen aufdeckten, ist es wichtig zu beachten, dass ihre Ergebnisse spezifisch für die von ihnen untersuchten Perzeptrone waren und das breitere Potenzial neuronaler Netze nicht außer Kraft setzten. Das Perzeptron-Konvergenzverfahren bleibt ein wertvolles Werkzeug, insbesondere für Aufgaben mit großen Merkmalsvektoren. Der Schlüssel zu einer erfolgreichen Mustererkennung liegt jedoch in der Auswahl geeigneter Merkmale, da die Verwendung der richtigen Merkmale den Lernprozess erheblich erleichtert, während die Verwendung unzureichender Merkmale das Lernen unmöglich machen kann.

Lecture 2.2 — Perceptrons: first-generation neural networks [Neural Networks for Machine Learning]
Lecture 2.2 — Perceptrons: first-generation neural networks [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...