Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Vorlesung 4.3 – Die Softmax-Ausgabefunktion [Neuronale Netze für maschinelles Lernen]
Vorlesung 4.3 – Die Softmax-Ausgabefunktion [Neuronale Netze für maschinelles Lernen]
Lassen Sie uns nun näher auf das Thema der Softmax-Ausgabefunktion eingehen. Die Softmax-Funktion ist eine Technik, mit der sichergestellt wird, dass sich die Ausgaben eines neuronalen Netzwerks zu eins addieren, sodass sie eine Wahrscheinlichkeitsverteilung über sich gegenseitig ausschließende Alternativen darstellen können.
Bevor wir weiter diskutieren, wie man lernt, Wörter durch Merkmalsvektoren darzustellen, lassen Sie uns einen technischen Umweg machen. Bisher haben wir das quadratische Fehlermaß als Trainingskriterium für neuronale Netze verwendet, das für lineare Neuronen geeignet ist. Allerdings hat das quadratische Fehlermaß seine Grenzen.
Wenn beispielsweise die gewünschte Ausgabe 1 ist, die tatsächliche Ausgabe eines Neurons jedoch sehr nahe bei Null liegt, steht nur sehr wenig Gradient zur Verfügung, um Gewichtsaktualisierungen zu ermöglichen. Dies liegt daran, dass die Steigung des Neuronenausgangs nahezu horizontal verläuft, was trotz eines erheblichen Fehlers zu langsamen Gewichtsanpassungen führt.
Darüber hinaus ist es beim Zuweisen von Wahrscheinlichkeiten zu sich gegenseitig ausschließenden Klassenbezeichnungen entscheidend, dass die Ausgabe eins ergibt. Eine Antwort wie die Zuweisung einer Dreiviertel-Wahrscheinlichkeit sowohl für Klasse A als auch für Klasse B ist unsinnig. Daher müssen wir dem Netzwerk das Wissen vermitteln, dass sich diese Alternativen gegenseitig ausschließen.
Um diese Probleme anzugehen, benötigen wir eine andere Kostenfunktion, die sich gegenseitig ausschließende Klassen angemessen verarbeiten kann. Mit der Softmax-Funktion können wir dieses Ziel erreichen. Es handelt sich um eine kontinuierliche Version der Maximumfunktion, die sicherstellt, dass die Ausgaben der Softmax-Gruppe eine Wahrscheinlichkeitsverteilung darstellen.
In der Softmax-Gruppe erhält jede Einheit eine akkumulierte Eingabe, die als Logit bezeichnet wird, von der darunter liegenden Ebene. Die Ausgabe jeder Einheit, die als yi bezeichnet wird, hängt nicht nur von ihrem eigenen Logit ab, sondern auch von den von anderen Einheiten in der Softmax-Gruppe akkumulierten Logits. Mathematisch wird die Ausgabe des i-ten Neurons mithilfe der Gleichung e^zi dividiert durch die Summe derselben Menge für alle Neuronen in der Softmax-Gruppe berechnet.
Diese Softmax-Gleichung garantiert, dass die Summe aller yi gleich eins ist, was eine Wahrscheinlichkeitsverteilung darstellt. Darüber hinaus liegen die Werte von yi zwischen Null und Eins, was die Darstellung sich gegenseitig ausschließender Alternativen als Wahrscheinlichkeitsverteilung erzwingt.
Die Ableitung der Softmax-Funktion hat eine einfache Form, ähnlich der logistischen Einheit, was sie für Berechnungen geeignet macht. Die Ableitung der Ausgabe in Bezug auf die Eingabe eines einzelnen Neurons in der Softmax-Gruppe wird durch yi mal (1 – yi) angegeben.
Bei der Verwendung einer Softmax-Gruppe für Ausgaben ist die Bestimmung der geeigneten Kostenfunktion von entscheidender Bedeutung. Üblicherweise wird die negative logarithmische Wahrscheinlichkeit der richtigen Antwort, auch bekannt als Kreuzentropiekostenfunktion, verwendet. Diese Kostenfunktion zielt darauf ab, die logarithmische Wahrscheinlichkeit für die Bereitstellung der richtigen Antwort zu maximieren.
Um die Kreuzentropiekostenfunktion zu berechnen, summieren wir alle möglichen Antworten und weisen den falschen Antworten den Wert Null und der richtigen Antwort den Wert Eins zu. Durch die Berechnung der negativen logarithmischen Wahrscheinlichkeit erhalten wir die Kosten, die mit der richtigen Antwort verbunden sind.
Ein wesentlicher Vorteil der Kreuzentropiekostenfunktion ist ihr großer Gradient, wenn der Zielwert 1 ist und die Ausgabe nahe Null liegt. Selbst kleine Änderungen in der Ausgabe verbessern den Wert der Kostenfunktion erheblich. Beispielsweise ist ein Wert von eins zu einer Million deutlich besser als ein Wert von eins zu einer Milliarde, auch wenn der Unterschied winzig ist.
Um diesen Punkt weiter zu veranschaulichen, stellen Sie sich vor, Sie platzieren eine Wette auf der Grundlage der Annahme, dass die Antwort eins zu einer Million oder eins zu einer Milliarde ist. Wenn Sie mit einer Quote von eins zu einer Million wetten und falsch liegen, verlieren Sie eine Million Dollar. Wenn die Antwort umgekehrt eins zu einer Milliarde wäre, würde die gleiche Wette zu einem Verlust von einer Milliarde Dollar führen.
Diese Eigenschaft der Kreuzentropiekostenfunktion gewährleistet eine steile Ableitung, wenn die Antwort erheblich falsch ist, wodurch die Flachheit der Ausgabeänderung bei Änderungen der Eingabe ausgeglichen wird. Wenn wir diese Faktoren miteinander multiplizieren, erhalten wir die Ableitung der Kreuzentropiekostenfunktion in Bezug auf den Logit, der in die Ausgabeeinheit i geht. Für diese Berechnung wird die Kettenregel verwendet.
Die Ableitung der Kostenfunktion nach dem Output einer Einheit, multipliziert mit der Ableitung des Outputs nach dem Logit Zi, ergibt den tatsächlichen Output abzüglich des Zieloutputs. Die Steigung dieser Differenz beträgt eins oder minus eins, wenn die Ergebnisse und Ziele erheblich unterschiedlich sind, und die Steigung liegt nur dann nahe bei Null, wenn sie nahezu identisch sind, was darauf hinweist, dass eine korrekte Antwort erstellt wird.
Die Softmax-Ausgabefunktion wird verwendet, um sicherzustellen, dass die Ausgaben eines neuronalen Netzwerks eine Wahrscheinlichkeitsverteilung über sich gegenseitig ausschließende Alternativen darstellen. Durch die Verwendung der Softmax-Gleichung wird die Summe der Ausgaben auf eins beschränkt, was Wahrscheinlichkeiten für verschiedene Klassen angibt.
Die Verwendung des quadratischen Fehlermaßes als Kostenfunktion für das Training neuronaler Netze hat jedoch Nachteile, wie z. B. langsame Gewichtsanpassungen, wenn die gewünschte Ausgabe weit von der tatsächlichen Ausgabe entfernt ist. Um dieses Problem zu lösen, wird die Cross-Entropy-Cost-Funktion eingeführt. Es berechnet die negative logarithmische Wahrscheinlichkeit der richtigen Antwort und ergibt einen größeren Gradienten, wenn der Zielwert 1 ist und die Ausgabe nahe bei Null liegt. Diese Eigenschaft ermöglicht ein effizienteres Lernen und vermeidet die Zuweisung gleicher Wahrscheinlichkeiten für sich gegenseitig ausschließende Alternativen.
Die Softmax-Funktion bietet zusammen mit der Kreuzentropiekostenfunktion eine leistungsstarke Kombination zum Trainieren neuronaler Netze, um probabilistische Ausgaben zu erzeugen. Durch die Anpassung der Gewichte und Verzerrungen durch Backpropagation und stochastischen Gradientenabstieg kann das Netzwerk lernen, genaue Vorhersagen zu treffen und komplexe Beziehungen zwischen den Daten darzustellen.
Es ist wichtig zu beachten, dass diese Konzepte und Techniken die Grundlage für das Training neuronaler Netze bilden und in verschiedenen Bereichen anwendbar sind, einschließlich der Verarbeitung natürlicher Sprache, Computer Vision und Mustererkennung. Kontinuierliche Forschung und Fortschritte in diesen Bereichen tragen dazu bei, die Leistung und Fähigkeiten neuronaler Netze bei der Lösung realer Probleme zu verbessern.
Vorlesung 4.4 – Neuroprobabilistische Sprachmodelle
Vorlesung 4.4 – Neuroprobabilistische Sprachmodelle [Neuronale Netze für maschinelles Lernen]
In diesem Video untersuchen wir eine praktische Anwendung von Merkmalsvektoren, die Wörter darstellen, insbesondere in Spracherkennungssystemen. Ein gutes Verständnis dafür, was jemand als nächstes sagen könnte, ist entscheidend, um die Geräusche, die er macht, genau zu erkennen.
Die Spracherkennung steht vor Herausforderungen bei der genauen Identifizierung von Phonemen, insbesondere bei lauter Sprache, wo die akustische Eingabe oft mehrdeutig ist und mehrere Wörter gleich gut zum Signal passen können. Normalerweise bemerken wir diese Mehrdeutigkeit jedoch nicht, da wir uns auf die Bedeutung der Äußerung verlassen, um die richtigen Wörter zu hören. Dieser unbewusste Prozess der Spracherkennung unterstreicht die Notwendigkeit für Spracherkenner, wahrscheinliche nächste Wörter vorherzusagen.
Glücklicherweise können Wörter effektiv vorhergesagt werden, ohne den gesprochenen Inhalt vollständig zu verstehen. Die Trigramm-Methode ist ein Standardansatz zur Vorhersage der Wahrscheinlichkeiten verschiedener Wörter, die folgen können. Dabei werden die Häufigkeiten von Worttripeln in einem großen Textkorpus gezählt und anhand dieser Häufigkeiten die relativen Wahrscheinlichkeiten des nächsten Wortes angesichts der beiden vorherigen Wörter geschätzt.
Die Trigramm-Methode war bis vor kurzem ein hochmoderner Ansatz, da sie Wahrscheinlichkeiten basierend auf zwei vorhergehenden Wörtern liefert. Die Verwendung größerer Kontexte würde zu einer Explosion von Möglichkeiten und größtenteils zu Nullzählungen führen. In Fällen, in denen der Kontext nicht sichtbar ist, wie etwa bei „Dinosaurierpizza“, greift das Modell auf Vorhersagen einzelner Wörter zurück. Es ist wichtig, keine Null-Wahrscheinlichkeiten zuzuweisen, nur weil ein Beispiel noch nie zuvor aufgetreten ist.
Allerdings übersieht das Trigramm-Modell wertvolle Informationen, die bei der Vorhersage des nächsten Wortes helfen können. Wenn Sie beispielsweise die Ähnlichkeiten zwischen Wörtern wie „Katze“ und „Hund“ oder „zerquetscht“ und „abgeflacht“ verstehen, kann dies die Vorhersagegenauigkeit verbessern. Um diese Einschränkung zu überwinden, müssen Wörter in Merkmalsvektoren umgewandelt werden, die ihre semantischen und syntaktischen Merkmale erfassen. Durch die Verwendung der Merkmale vorheriger Wörter kann ein größerer Kontext (z. B. 10 vorherige Wörter) für die Vorhersage genutzt werden.
Joshua Bengio leistete Pionierarbeit bei diesem Ansatz mithilfe neuronaler Netze. Sein ursprüngliches Modell ähnelt dem Stammbaum-Netzwerk, wurde jedoch komplexer auf die Sprachmodellierung angewendet. Durch die Eingabe des Index eines Wortes und die Ausbreitung der Aktivität über verborgene Schichten kann das Netzwerk verteilte Darstellungen von Wörtern als Merkmalsvektoren lernen. Diese Vektoren werden dann verwendet, um mithilfe einer Softmax-Ausgabeschicht die Wahrscheinlichkeiten verschiedener Wörter vorherzusagen.
Eine weitere Verbesserung ist die Verwendung von Skip-Layer-Verbindungen, die Eingabewörter direkt mit Ausgabewörtern verbinden. Einzelne Eingabewörter enthalten wertvolle Informationen über mögliche Ausgabewörter. Bengios Modell schnitt zunächst etwas schlechter ab als Trigramme, erwies sich jedoch in Kombination mit Trigrammen als vielversprechend.
Seit Bengios Arbeit haben sich Sprachmodelle, die Merkmalsvektoren für Wörter verwenden, erheblich verbessert und übertreffen Trigrammmodelle. Bei der Verarbeitung einer großen Anzahl von Ausgabewörtern entsteht jedoch eine Herausforderung, da die Softmax-Ausgabeschicht möglicherweise eine beträchtliche Anzahl von Gewichtungen erfordert (z. B. Hunderttausende). Wenn die letzte verborgene Schicht zu groß ist, kann es zu einer Überanpassung kommen. Eine Reduzierung ihrer Größe führt jedoch zu einer genauen Vorhersage einer großen Anzahl von Wahrscheinlichkeiten.
Im nächsten Video werden wir alternative Ansätze zur Bewältigung der großen Anzahl ausgegebener Wörter untersuchen und dabei berücksichtigen, dass sowohl große als auch kleine Wahrscheinlichkeiten für Spracherkennungssysteme relevant sind.
Vorlesung 4.5 – Umgang mit vielen möglichen Ergebnissen
Vorlesung 4.5 – Umgang mit vielen möglichen Ausgaben [Neuronale Netze für maschinelles Lernen]
In diesem Video werden wir verschiedene Ansätze untersuchen, um die Notwendigkeit einer übermäßigen Anzahl von Ausgabeeinheiten in einem Softmax beim Umgang mit einem großen Vokabular zu vermeiden. Anstatt Hunderttausende Ausgabeeinheiten zur Ermittlung von Wortwahrscheinlichkeiten zu haben, können wir alternative Architekturen verwenden.
Ein Ansatz ist eine serielle Architektur, bei der wir Kontextwörter und ein Kandidatenwort eingeben. Indem wir das Netzwerk durchqueren, generieren wir eine Bewertung, die die Eignung des Kandidatenworts in diesem Kontext angibt. Bei diesem Ansatz muss das Netzwerk mehrmals ausgeführt werden, die meisten Berechnungen müssen jedoch nur einmal durchgeführt werden. Wir können dieselben Eingaben aus dem Kontext für verschiedene Kandidatenwörter wiederverwenden, und der einzige Teil, der neu berechnet werden muss, sind die spezifischen Eingaben des Kandidatenworts und die Endergebnisausgabe.
Um in dieser seriellen Architektur zu lernen, berechnen wir Bewertungen für jedes Kandidatenwort und wenden eine Softmax-Funktion an, um Wortwahrscheinlichkeiten zu erhalten. Durch den Vergleich der Wortwahrscheinlichkeiten mit ihren Zielwahrscheinlichkeiten (normalerweise eins für das richtige Wort und null für andere) können wir entropieübergreifende Flächenableitungen ableiten. Diese Ableitungen führen zu Gewichtsanpassungen, um die Punktzahl für das richtige Kandidatenwort zu erhöhen und die Punktzahl für hochrangige Konkurrenten zu verringern. Um die Effizienz zu optimieren, können wir einen kleineren Satz von Kandidatenwörtern berücksichtigen, die von einem anderen Prädiktor vorgeschlagen wurden, anstatt alle möglichen Kandidaten zu bewerten.
Eine weitere Methode zur Vermeidung eines großen Softmax besteht darin, Wörter in einer binären Baumstruktur zu organisieren. Dabei werden alle Wörter als Blätter im Baum angeordnet und der Kontext vorheriger Wörter verwendet, um einen Vorhersagevektor zu generieren. Durch den Vergleich dieses Vektors mit einem gelernten Vektor für jeden Knoten im Baum können wir die Wahrscheinlichkeit bestimmen, den rechten oder linken Zweig zu nehmen. Durch rekursives Durchlaufen des Baums können wir zum Zielwort gelangen. Beim Lernen müssen wir nur die Knoten entlang des richtigen Pfads berücksichtigen, wodurch die Rechenlast erheblich reduziert wird.
Ein anderer Ansatz für das Lernen von Wortmerkmalsvektoren besteht darin, vergangenen und zukünftigen Kontext zu nutzen. Mithilfe eines Wortfensters platzieren wir das richtige Wort oder ein zufälliges Wort in der Mitte des Fensters. Indem wir ein neuronales Netzwerk trainieren, um hohe Werte für das richtige Wort und niedrige Werte für zufällige Wörter auszugeben, können wir Merkmalsvektoren lernen, die semantische Unterscheidungen erfassen. Diese Merkmalsvektoren sind dann für verschiedene Aufgaben der Verarbeitung natürlicher Sprache nützlich.
Um die erlernten Merkmalsvektoren zu visualisieren, können wir sie mithilfe von Techniken wie t-SNE in einer zweidimensionalen Karte anzeigen. Diese Visualisierung hilft bei der Identifizierung ähnlicher Wörter und Cluster und liefert Einblicke in das Verständnis des neuronalen Netzwerks für Wortbedeutungen. Die erlernten Vektoren können semantische Beziehungen und Unterscheidungen aufdecken und die Macht kontextueller Informationen bei der Bestimmung von Wortbedeutungen demonstrieren.
Hier ist ein weiteres Beispiel für die zweidimensionale Kartendarstellung gelernter Merkmalsvektoren. In diesem Abschnitt der Karte können wir eine Ansammlung von Wörtern im Zusammenhang mit Spielen beobachten. Wörter wie „Spiele“, „Spiele“, „Rennen“, „Spieler“, „Mannschaften“ und „Vereine“ werden in Gruppen zusammengefasst, um auf ihre Bedeutungsähnlichkeit hinzuweisen. Darüber hinaus identifiziert es die zugehörigen Elemente von Spielen, einschließlich Preise, Pokale, Schalen, Medaillen und andere Belohnungen. Die Fähigkeit des neuronalen Netzwerks, diese semantischen Beziehungen zu erfassen, ermöglicht die Schlussfolgerung, dass, wenn ein Wort für einen bestimmten Kontext geeignet ist, wahrscheinlich auch andere Wörter innerhalb desselben Clusters geeignet sind.
Wenn wir zu einem anderen Teil der Karte gehen, stoßen wir auf einen Cluster, der Orten gewidmet ist. An der Spitze stehen verschiedene US-Bundesstaaten, gefolgt von Städten, vorwiegend in Nordamerika. Darüber hinaus zeigt die Karte andere Städte und Länder und demonstriert so das Verständnis des neuronalen Netzwerks für geografische Beziehungen. Beispielsweise verbindet es Cambridge mit Toronto, Detroit und Ontario, die alle zum englischsprachigen Kanada gehören, während Quebec mit Berlin und Paris gruppiert und damit dem französischsprachigen Kanada zugeordnet wird. Ebenso deutet es auf eine Ähnlichkeit zwischen dem Irak und Vietnam hin.
Sehen wir uns ein weiteres Beispiel auf der Karte an. Dieser Abschnitt konzentriert sich auf Adverbien und stellt Wörter wie wahrscheinlich, wahrscheinlich, möglicherweise und vielleicht vor, die eine ähnliche Bedeutung haben. Ebenso identifiziert es die semantischen Ähnlichkeiten zwischen vollständig, vollständig, vollständig und stark. Darüber hinaus erkennt es weitere Ähnlichkeitsmuster wie „was“ und „das“, „wer“ und „was“ und „wie“, „ob“ und „warum“.
Das Faszinierende an diesen erlernten Merkmalsvektoren ist, dass sie subtile semantische Nuancen allein durch die Analyse von Wortsequenzen aus Wikipedia erfassen, ohne explizite Anleitung. Diese Kontextinformationen spielen eine entscheidende Rolle beim Verständnis der Wortbedeutungen. Tatsächlich deuten einige Theorien darauf hin, dass dies einer der Hauptmechanismen ist, durch die wir Wortsemantik erwerben.
Zusammenfassend lässt sich sagen, dass diese unterschiedlichen Ansätze zum Umgang mit großen Vokabeln und zum Erlernen von Wortdarstellungen effiziente Alternativen zur traditionellen Softmax-Architektur bieten. Durch die Nutzung serieller Architekturen, Baumstrukturen oder Kontextinformationen können neuronale Netze aussagekräftige und ähnliche Wortdarstellungen generieren. Diese Darstellungen erweisen sich bei verschiedenen Aufgaben der Verarbeitung natürlicher Sprache als wertvoll und demonstrieren die Fähigkeit des Netzwerks, semantische Beziehungen und Unterscheidungen zwischen Wörtern zu erfassen.
Vorlesung 5.1 – Warum die Objekterkennung schwierig ist
Vorlesung 5.1 – Warum Objekterkennung schwierig ist [Neuronale Netze für maschinelles Lernen]
Das Erkennen von Objekten in realen Szenen stellt mehrere Herausforderungen dar, die aufgrund unserer angeborenen Kompetenz in dieser Aufgabe oft übersehen werden. Die Umwandlung von Pixelintensitäten in Objektbezeichnungen ist ein komplexer Prozess, der verschiedene Schwierigkeiten mit sich bringt. Ein großes Hindernis besteht darin, das Objekt von seiner Umgebung zu segmentieren, da uns die in der realen Welt verfügbaren Bewegungs- und Stereosignale fehlen. Aufgrund dieser Abwesenheit ist es schwierig zu bestimmen, welche Teile zum selben Objekt gehören. Darüber hinaus können Objekte teilweise von anderen Objekten verdeckt werden, was den Erkennungsprozess weiter erschwert. Interessanterweise verschleiern unsere außergewöhnlichen Sehfähigkeiten diese Probleme oft.
Eine weitere große Herausforderung bei der Objekterkennung ergibt sich aus dem Einfluss der Beleuchtung auf die Pixelintensitäten. Die Intensität eines Pixels hängt nicht nur vom Objekt selbst, sondern auch von den Lichtverhältnissen ab. Beispielsweise erzeugt eine schwarze Oberfläche bei hellem Licht intensivere Pixel als eine weiße Oberfläche bei schwacher Beleuchtung. Um ein Objekt zu erkennen, müssen wir diese unterschiedlichen Pixelintensitäten in Klassenbezeichnungen umwandeln, aber diese Variationen können aufgrund von Faktoren auftreten, die nichts mit der Art oder Identität des Objekts zu tun haben.
Objekte können auch Verformungen erfahren, was die Erkennung komplexer macht. Selbst für relativ einfache Objekte wie handgeschriebene Ziffern gibt es eine Vielzahl von Formen, die mit demselben Namen verbunden sind. Beispielsweise kann die Ziffer „2“ kursiv mit einem Höcker erscheinen oder eine größere Schleife und eine abgerundetere Form haben. Darüber hinaus wird die Klasse eines Objekts häufig eher durch seine Funktion als durch sein visuelles Erscheinungsbild definiert. Denken Sie an Stühle, die es in unzähligen Variationen gibt, vom Sessel bis zum modernen Design mit Stahlgestell und Holzrücken. Die visuellen Merkmale allein reichen möglicherweise nicht aus, um die Klasse zu bestimmen.
Variationen des Blickwinkels erschweren die Objekterkennung zusätzlich. Die Fähigkeit, ein dreidimensionales Objekt aus mehreren Perspektiven zu erkennen, führt zu Bildveränderungen, mit denen herkömmliche Methoden des maschinellen Lernens nur schwer umgehen können. Informationen über ein Objekt können sich über verschiedene Pixel hinweg verschieben, wenn sich das Objekt bewegt, während unser Blick fixiert bleibt. Diese Informationsübertragung zwischen Eingabedimensionen, die bei visuellen Aufgaben typischerweise Pixeln entspricht, kommt beim maschinellen Lernen nicht häufig vor. Die Behebung dieses Problems, das oft als „Dimension Hopping“ bezeichnet wird, ist für die Verbesserung der Erkennungsgenauigkeit von entscheidender Bedeutung. Ein systematischer Ansatz zur Lösung dieses Problems ist äußerst wünschenswert.
Zusammenfassend lässt sich sagen, dass das Erkennen von Objekten in realen Szenen zahlreiche Herausforderungen mit sich bringt. Um diese Schwierigkeiten zu überwinden, müssen Probleme im Zusammenhang mit Segmentierung, Beleuchtungsschwankungen, Verdeckung, Verformungen, Blickwinkeländerungen und der semantischen Definition von Objekten angegangen werden. Die Entwicklung robuster und systematischer Methoden, die diese Faktoren berücksichtigen, wird die Genauigkeit und Zuverlässigkeit von Objekterkennungssystemen verbessern.
Vorlesung 5.2 – Standpunktinvarianz erreichen
Vorlesung 5.2 – Standpunktinvarianz erreichen [Neuronale Netze für maschinelles Lernen]
In diesem Video werde ich mich mit dem Konzept der Blickpunktinvarianz befassen und verschiedene Ansätze erkunden, um dieser Herausforderung bei der Objekterkennung zu begegnen. Variationen des Blickwinkels stellen ein erhebliches Hindernis dar, da jedes Mal, wenn wir ein Objekt betrachten, es auf anderen Pixeln erscheint, wodurch sich die Objekterkennung von den meisten maschinellen Lernaufgaben unterscheidet. Trotz unserer natürlichen Begabung für diese Aufgabe müssen wir in den Bereichen Technik oder Psychologie noch weithin akzeptierte Lösungen finden.
Der erste Ansatz schlägt die Verwendung redundanter invarianter Merkmale vor. Diese Funktionen sollten Transformationen wie Translation, Rotation und Skalierung standhalten können. Beispielsweise wurde ein Paar annähernd paralleler Linien mit einem roten Punkt dazwischen als unveränderliches Merkmal vorgeschlagen, mit dem Silbermöwenbabys erkennen können, wo sie nach Nahrung picken sollen. Durch die Verwendung einer großen Menge invarianter Merkmale können wir diese eindeutig zu einem Objekt oder Bild zusammenfügen, ohne die Beziehungen zwischen Merkmalen explizit darzustellen.
Die Herausforderung entsteht jedoch bei der Bearbeitung von Erkennungsaufgaben. Das Extrahieren von Features aus mehreren Objekten kann dazu führen, dass Features aus Teilen verschiedener Objekte bestehen, was zu irreführenden Informationen bei der Erkennung führt. Daher ist es von entscheidender Bedeutung, die Bildung von Merkmalen aus Teilen verschiedener Objekte zu vermeiden.
Ein anderer Ansatz, der als „vernünftige Normalisierung“ bezeichnet wird, besteht darin, einen Kasten um das Objekt herum zu platzieren. Indem wir in diesem Feld einen Referenzrahmen definieren, können wir die Merkmale des Objekts relativ dazu beschreiben und so Invarianz erreichen. Unter der Annahme, dass das Objekt eine starre Form hat, eliminiert dieser Ansatz effektiv die Auswirkungen von Blickwinkeländerungen und mildert so das Dimensionssprungproblem. Die Box muss nicht unbedingt rechteckig sein; Es kann Translation, Rotation, Skalierung, Scherung und Dehnung berücksichtigen. Die Auswahl des geeigneten Felds stellt jedoch aufgrund möglicher Segmentierungsfehler, Okklusion und ungewöhnlicher Ausrichtungen eine Herausforderung dar. Die Bestimmung des richtigen Kastens hängt von unserer Kenntnis der Form des Objekts ab, wodurch ein Henne-Ei-Problem entsteht: Wir müssen die Form erkennen, um den Kasten richtig zu machen, aber wir brauchen den richtigen Kasten, um die Form zu erkennen.
Ein Brute-Force-Normalisierungsansatz beinhaltet die Verwendung gut segmentierter aufrechter Bilder während des Trainings, um Kästchen um die Objekte herum sinnvoll zu definieren. Beim Testen werden beim Umgang mit unübersichtlichen Bildern alle möglichen Kästchen an verschiedenen Positionen und Maßstäben untersucht. Dieser Ansatz wird häufig in der Bildverarbeitung für Aufgaben wie die Erkennung von Gesichtern oder Hausnummern in unsegmentierten Bildern verwendet. Es ist jedoch effizienter, wenn der Erkenner mit einigen Variationen in Position und Maßstab umgehen kann, was die Verwendung eines groben Rasters zum Ausprobieren verschiedener Boxen ermöglicht.
Die Blickpunktinvarianz ist eine große Herausforderung bei der Objekterkennung. Ansätze wie die Verwendung invarianter Merkmale, eine vernünftige Normalisierung mit Begrenzungsrahmen und eine Brute-Force-Normalisierung helfen dabei, die Auswirkungen von Standpunktvariationen abzuschwächen. Die Auswahl geeigneter Funktionen, die Bestimmung der richtigen Box und der Umgang mit unterschiedlichen Positionen und Maßstäben bleiben jedoch laufende Forschungsbemühungen im Bereich Computer Vision.
Vorlesung 5.3 – Faltungsnetze zur Ziffernerkennung
Vorlesung 5.3 – Faltungsnetze zur Ziffernerkennung [Neuronale Netze für maschinelles Lernen]
In diesem Video diskutieren wir Convolutional Neural Networks (CNNs) und ihre Anwendung bei der handschriftlichen Ziffernerkennung. CNNs waren in den 1980er Jahren ein großer Erfolg, insbesondere die tiefen Faltungsnetze von Yan LeCun, die sich durch die Erkennung von Handschrift auszeichneten und in der Praxis umgesetzt wurden. Diese Netzwerke gehörten zu den wenigen tiefen neuronalen Netzen dieser Zeit, die auf den verfügbaren Computern trainiert werden konnten und außergewöhnlich gute Leistungen erbrachten.
CNNs basieren auf dem Konzept replizierter Features. Da Objekte an unterschiedlichen Positionen innerhalb eines Bildes erscheinen können, ist ein an einer Stelle nützlicher Merkmalsdetektor wahrscheinlich auch an einer anderen Stelle nützlich. Um diese Idee zu nutzen, werden mehrere Kopien desselben Merkmalsdetektors an verschiedenen Positionen im Bild erstellt. Diese replizierten Merkmalsdetektoren teilen sich Gewichte, wodurch die Anzahl der zu erlernenden Parameter erheblich reduziert wird. Beispielsweise benötigen drei replizierte Detektoren mit 27 Pixeln nur neun verschiedene Gewichte.
In CNNs werden mehrere Feature-Maps verwendet, die jeweils aus replizierten Features bestehen. Diese replizierten Features müssen an verschiedenen Orten identisch sein, während verschiedene Karten lernen, unterschiedliche Features zu erkennen. Dieser Ansatz ermöglicht die Darstellung jedes Bildfelds durch verschiedene Arten von Merkmalen und verbessert so die Erkennungsfähigkeiten. Replizierte Features passen gut zur Backpropagation, da sie mit diesem Algorithmus einfach zu trainieren sind. Die Backpropagation kann geändert werden, um lineare Einschränkungen zwischen Gewichtungen zu berücksichtigen und so sicherzustellen, dass replizierte Feature-Detektoren effektiv erlernt werden.
Es herrscht häufig Verwirrung hinsichtlich der Leistung replizierter Merkmalsdetektoren. Während einige behaupten, dass sie Übersetzungsinvarianz erreichen, ist dies nicht ganz korrekt. Replizierte Merkmale erreichen Äquivalenz und nicht Invarianz in den Aktivitäten von Neuronen. Wenn beispielsweise ein Bild übersetzt wird, verschieben sich auch die aktivierten Neuronen entsprechend. Das durch replizierte Features erfasste Wissen ist jedoch unveränderlich. Wenn bekannt ist, dass ein Merkmal an einem Ort erkannt wird, kann es an einem anderen Ort erkannt werden. Um eine gewisse Translationsinvarianz einzuführen, können die Ausgaben replizierter Merkmalsdetektoren zusammengefasst werden, indem entweder der Durchschnitt oder das Maximum benachbarter Detektoren gebildet wird. Durch diesen Pooling-Prozess können jedoch präzise räumliche Informationen verloren gehen, was sich auf Aufgaben auswirkt, die auf genauen räumlichen Beziehungen beruhen.
Jan Lecun und seine Mitarbeiter demonstrierten die Leistungsfähigkeit von CNNs bei der handschriftlichen Ziffernerkennung und erzielten mit ihrer LeNet-5-Architektur beeindruckende Ergebnisse. LeNet-5 umfasste mehrere versteckte Layer und Feature-Maps sowie Pooling zwischen Layern. Es konnte überlappende Zeichen verarbeiten und erforderte vor der Eingabe keine Segmentierung. Die Trainingsmethodik nutzte einen vollständigen Systemansatz, bei dem Postleitzahlen als Ausgabe aus Eingabepixeln generiert wurden. Das Training wurde bereits vor seiner offiziellen Einführung nach einer Methode durchgeführt, die der maximalen Marge ähnelt. LeNet-5 erwies sich beim Lesen von Schecks in ganz Nordamerika als äußerst wertvoll.
Das Einbringen von Vorwissen in maschinelles Lernen, insbesondere in neuronale Netze, kann durch Netzwerkdesign, lokale Konnektivität, Gewichtsbeschränkungen oder geeignete neuronale Aktivitäten erfolgen. Dieser Ansatz orientiert das Netzwerk an einem bestimmten Problemlösungsansatz. Eine andere Methode besteht darin, synthetische Trainingsdaten auf der Grundlage von Vorkenntnissen zu generieren, wodurch das Netzwerk mehr Beispiele erhält, aus denen es lernen kann. Da Computer immer schneller werden, wird letzterer Ansatz immer praktikabler. Es ermöglicht die Optimierung, effektive Möglichkeiten zur Nutzung mehrschichtiger Netzwerke zu entdecken und möglicherweise bessere Lösungen zu erzielen, ohne die zugrunde liegenden Mechanismen vollständig zu verstehen.
Mithilfe synthetischer Daten wurden bei der handschriftlichen Ziffernerkennung mehrere Fortschritte erzielt. Durch die Kombination von Tricks wie der Generierung synthetischer Daten, dem Training großer Netzwerke auf Grafikprozessoren (GPUs) und der Erstellung von Konsensmodellen wurden erhebliche Verbesserungen erzielt. Beispielsweise reduzierte eine Gruppe unter der Leitung von Jürgen Schmidhuber in der Schweiz die Fehlerquote auf etwa 25 Fehler und näherte sich damit wahrscheinlich der menschlichen Fehlerquote an. Um die Leistung verschiedener Modelle zu bewerten, muss berücksichtigt werden, welche Fehler sie machen, anstatt sich ausschließlich auf numerische Metriken zu verlassen. Statistische Tests wie der McNemar-Test sorgen durch die Analyse spezifischer Fehler für mehr Sensitivität und ermöglichen so eine bessere Beurteilung der Modellüberlegenheit.
Beim Vergleich von Modellen anhand ihrer Fehlerraten ist es daher wichtig, die spezifischen Fehler zu berücksichtigen, die sie machen, und statistische Tests wie den McNemar-Test durchzuführen, um festzustellen, ob die Unterschiede statistisch signifikant sind. Ein bloßer Blick auf die Gesamtfehlerquoten liefert möglicherweise nicht genügend Informationen, um ein sicheres Urteil zu fällen.
Die Arbeit der Gruppe von Jürgen Schmidhuber in der Schweiz zeigte die Wirksamkeit der Wissensvermittlung durch synthetische Daten. Sie haben erhebliche Anstrengungen unternommen, um aufschlussreiche synthetische Daten zu generieren, indem sie reale Trainingsfälle transformierten, um zusätzliche Trainingsbeispiele zu erstellen. Durch das Training eines großen Netzwerks mit vielen Einheiten pro Schicht und vielen Schichten auf einer Grafikverarbeitungseinheit (GPU) konnten sie die Rechenleistung nutzen und eine Überanpassung vermeiden.
Ihr Ansatz kombinierte drei Schlüsseltechniken: die Generierung synthetischer Daten, das Training eines großen Netzwerks auf einer GPU und die Verwendung einer Konsensmethode mit mehreren Modellen zur Bestimmung der endgültigen Vorhersage. Durch diesen Ansatz erzielten sie beeindruckende Ergebnisse und reduzierten die Fehlerquote auf rund 25 Fehler, was mit der menschlichen Fehlerquote vergleichbar ist.
Beim Vergleich von Modellen mit unterschiedlichen Fehlerraten stellt sich eine interessante Frage: Wie stellen wir fest, ob ein Modell mit 30 Fehlern deutlich besser ist als ein Modell mit 40 Fehlern? Überraschenderweise hängt es von den spezifischen Fehlern jedes Modells ab. Der bloße Blick auf die Zahlen reicht nicht aus. Der McNemar-Test, ein statistischer Test, der sich auf spezifische Fehler konzentriert, bietet eine größere Sensitivität beim Vergleich von Modellen.
Wenn wir beispielsweise eine 2x2-Tabelle betrachten, können wir die Fälle untersuchen, in denen ein Modell es richtig macht, während das andere es falsch macht. Durch die Analyse der Verhältnisse dieser Fälle können wir die Bedeutung der Unterschiede zwischen den Modellen bestimmen. In einigen Fällen weist ein Modell möglicherweise eine geringere Fehlerquote auf, schneidet jedoch in den spezifischen Fällen, in denen das andere Modell erfolgreich ist, schlechter ab, sodass der Vergleich weniger aussagekräftig ist.
Daher ist es bei der Bewertung und dem Vergleich von Modellen wichtig, sowohl die Fehlerquoten als auch die spezifischen Fehler zu berücksichtigen. Statistische Tests wie der McNemar-Test können genauere Einblicke in die Leistungsunterschiede zwischen Modellen liefern. Dies hilft uns, fundierte Entscheidungen über die Modellauswahl und -verbesserung zu treffen.
Neben der Berücksichtigung von Fehlerraten und spezifischen Fehlern sind bei der Bewertung und dem Vergleich von Modellen noch weitere Faktoren zu berücksichtigen.
Datenqualität und -quantität: Die Qualität und Quantität der Trainingsdaten kann einen erheblichen Einfluss auf die Modellleistung haben. Modelle, die auf großen, vielfältigen und repräsentativen Datensätzen trainiert werden, lassen sich tendenziell besser verallgemeinern. Es ist wichtig sicherzustellen, dass die für Training und Bewertung verwendeten Daten die realen Szenarien, denen das Modell ausgesetzt ist, genau widerspiegeln.
Rechenressourcen: Die zum Trainieren und Bereitstellen eines Modells erforderlichen Rechenressourcen sind wesentliche Überlegungen. Einige Modelle erfordern möglicherweise umfangreiche Rechenleistung, beispielsweise Hochleistungs-GPUs oder spezielle Hardware, was sich auf ihre Praktikabilität und Skalierbarkeit auswirken kann.
Interpretierbarkeit: Je nach Anwendung kann die Interpretierbarkeit der Modellvorhersagen entscheidend sein. Einige Modelle, wie tiefe neuronale Netze, werden oft als Black Boxes betrachtet, was es schwierig macht, die Gründe für ihre Entscheidungen zu verstehen. Im Gegensatz dazu bieten andere Modelle wie Entscheidungsbäume oder lineare Modelle eine bessere Interpretierbarkeit. Die Wahl des Modells sollte sich an den Anforderungen des Problems und der Stakeholder orientieren.
Robustheit und Generalisierung: Die Leistung eines Modells sollte nicht nur anhand der Trainingsdaten, sondern auch anhand unsichtbarer Daten bewertet werden, um seine Generalisierungsfähigkeit zu beurteilen. Ein robustes Modell sollte bei verschiedenen Datenproben gut funktionieren und resistent gegen Rauschen, Ausreißer und gegnerische Angriffe sein.
Skalierbarkeit und Effizienz: Abhängig von den Anforderungen der Anwendung sind die Skalierbarkeit und Effizienz des Modells wichtige Überlegungen. Modelle, die große Datenmengen effizient verarbeiten oder Echtzeitvorhersagen treffen können, können in bestimmten Szenarien bevorzugt werden.
Ethische Überlegungen: Bei der Auswahl und dem Einsatz von Modellen müssen unbedingt ethische Implikationen berücksichtigt werden. Verzerrungen in den Daten oder den Vorhersagen des Modells, Fairness, Datenschutz und Sicherheitsbedenken sollten berücksichtigt werden, um eine verantwortungsvolle und gerechte Nutzung von KI-Systemen sicherzustellen.
Benutzer-Feedback und Fachwissen: Das Sammeln von Feedback von Endbenutzern und Fachexperten kann wertvolle Einblicke in die Leistung und Eignung eines Modells liefern. Ihre Eingaben können dazu beitragen, bestimmte Verbesserungsbereiche zu identifizieren oder Einschränkungen aufzudecken, die möglicherweise nicht durch automatisierte Bewertungsmetriken erfasst werden.
Durch die Berücksichtigung dieser Faktoren zusätzlich zu Fehlerraten und spezifischen Fehlern können wir umfassendere und fundiertere Entscheidungen bei der Bewertung und dem Vergleich von Modellen treffen.
Vorlesung 5.4 – Faltungsnetze zur Objekterkennung
Vorlesung 5.4 – Faltungsnetze zur Objekterkennung [Neuronale Netze für maschinelles Lernen]
Die Frage, ob die zur Erkennung handgeschriebener Ziffern entwickelten Netze auf die Erkennung von Objekten in hochauflösenden Farbbildern skaliert werden könnten, war schon immer Gegenstand von Spekulationen. Aufgrund verschiedener Faktoren wie der Umgang mit überladenen Szenen, der Segmentierung, dem 3D-Blickwinkel, mehreren Objekten und den Beleuchtungsvariationen galt dies als anspruchsvolle Aufgabe. In der Vergangenheit konzentrierten sich Forscher auf die Verbesserung der Fähigkeit von Netzwerken, handgeschriebene Ziffern zu erkennen, was einige dazu veranlasste, an der Übertragbarkeit ihrer Ergebnisse auf echte Farbbilder zu zweifeln.
Um diese Frage zu beantworten, wurde kürzlich ein Wettbewerb namens ImageNet veranstaltet, bei dem Computer-Vision-Systeme an einer Teilmenge von 1,2 Millionen hochauflösenden Farbbildern getestet wurden. Die Aufgabe bestand darin, die Bilder mit tausend verschiedenen Klassen korrekt zu beschriften. Den Systemen war es erlaubt, fünf Vorhersagen zu treffen, und sie galten als richtig, wenn eine der Vorhersagen mit der von einer Person vergebenen Bezeichnung übereinstimmte. Zusätzlich gab es eine Lokalisierungsaufgabe, bei der die Systeme einen Kasten um das erkannte Objekt platzieren mussten.
An dem Wettbewerb nahmen führende Computer-Vision-Gruppen verschiedener Institutionen teil, die komplexe mehrstufige Systeme verwendeten, die handabgestimmte frühe Stufen mit lernenden Algorithmen in der obersten Stufe kombinierten. Allerdings erwies sich die Aufgabe als sehr anspruchsvoll, da die Fehlerquote bei den besten Systemen zwischen 26 % und 27 % lag. Im Gegensatz dazu erreichte das tiefe neuronale Netzwerk von Alex Krizhevsky eine deutlich geringere Fehlerquote von 16 %.
Das Netzwerk von Alex Krizhevsky, das auf tiefen Faltungs-Neuronalen Netzen basiert, nutzte sieben verborgene Schichten und gleichgerichtete lineare Einheiten als Aktivierungsfunktionen. Das Netzwerk nutzte die Wettbewerbsnormalisierung innerhalb einer Schicht, um Intensitätsschwankungen zu bewältigen. Zur Verbesserung der Generalisierung wurden mehrere Techniken eingesetzt, darunter die Datenerweiterung mit Transformationen wie Downsampling und Reflexionen sowie die Verwendung von Dropout-Regularisierung in den oberen Schichten. Das Netzwerk wurde auf leistungsstarke Hardware, insbesondere Nvidia GTX 580-Grafikprozessoren, trainiert.
Die Ergebnisse des Wettbewerbs zeigten, dass das Netzwerk von Alex Krizhevsky andere Computer-Vision-Systeme deutlich übertraf. Sein Erfolg zeigte das Potenzial tiefer neuronaler Netze für die Objekterkennung in echten Farbbildern. Diese Netzwerke können Vorkenntnisse nutzen und umfangreiche Datensätze und Berechnungen verarbeiten. Der Einsatz effizienter Hardware und die Möglichkeit, Netzwerke auf mehrere Kerne zu verteilen, steigern ihre Leistungsfähigkeit zusätzlich. Daher wird erwartet, dass tiefe neuronale Netze weiter voranschreiten und zum Standardansatz für die Objekterkennung in statischen Bildern werden.
Ebenso haben tiefe neuronale Netze in verschiedenen anderen Bereichen beeindruckende Leistungen gezeigt. Beispielsweise waren sie bei Aufgaben der Verarbeitung natürlicher Sprache wie Sprachübersetzung, Stimmungsanalyse und Beantwortung von Fragen erfolgreich. Bei diesen Aufgaben lernen die Netzwerke, die Semantik und den Kontext des Textes zu verstehen und so präzise und aussagekräftige Antworten zu generieren.
Darüber hinaus wurden tiefe neuronale Netze auch bei der Spracherkennung eingesetzt, wo sie traditionelle Methoden übertrafen. Durch das Lernen aus großen Mengen gekennzeichneter Sprachdaten können diese Netzwerke gesprochene Wörter effektiv erkennen und mit hoher Genauigkeit transkribieren.
Im Gesundheitswesen haben tiefe neuronale Netze bemerkenswerte Fähigkeiten bei der medizinischen Bildanalyse bewiesen. Sie können bei der Diagnose von Krankheiten anhand medizinischer Bilder wie Röntgenaufnahmen, MRTs und CT-Scans helfen. Durch das Lernen aus einer riesigen Sammlung gekennzeichneter medizinischer Bilder können diese Netzwerke Anomalien, Tumore und andere medizinische Zustände mit einer Genauigkeit erkennen, die mit der von menschlichen Experten vergleichbar ist.
Der Erfolg tiefer neuronaler Netze lässt sich auf ihre Fähigkeit zurückführen, hierarchische Darstellungen von Daten automatisch zu lernen. Durch die schrittweise Extraktion von Merkmalen auf mehreren Abstraktionsebenen können diese Netzwerke komplexe Muster und Beziehungen in den Daten erfassen. Dieser Feature-Learning-Prozess hat in Kombination mit der Verfügbarkeit großer Datensätze und leistungsstarker Rechenressourcen den Weg für bedeutende Fortschritte in verschiedenen Bereichen geebnet.
Zusammenfassend lässt sich sagen, dass sich tiefe neuronale Netze bei einer Vielzahl von Aufgaben als äußerst effektiv erwiesen haben, darunter Objekterkennung, Verarbeitung natürlicher Sprache, Spracherkennung und medizinische Bildanalyse. Ihre Fähigkeit, aus großen Datensätzen zu lernen und automatisch aussagekräftige Darstellungen zu extrahieren, hat viele Bereiche revolutioniert. Da sich die Rechenressourcen weiter verbessern, können wir noch beeindruckendere Erfolge und weitere Fortschritte bei den Fähigkeiten tiefer neuronaler Netze erwarten.
Vorlesung 6.1 – Überblick über den Mini-Batch-Gradientenabstieg
Vorlesung 6.1 – Überblick über den Mini-Batch-Gradientenabstieg [Neuronale Netze für maschinelles Lernen]
In diesem Video besprechen wir das stochastische Gradientenabstiegslernen für neuronale Netze und konzentrieren uns dabei auf die Mini-Batch-Version, die in großen neuronalen Netzen weit verbreitet ist. Die Fehleroberfläche eines linearen Neurons bildet eine quadratische Schüssel, wobei die horizontalen Achsen die Gewichte und die vertikale Achse den Fehler darstellen. Bei mehrschichtigen nichtlinearen Netzwerken ist die Fehleroberfläche komplexer, wird aber lokal durch einen Bruchteil einer quadratischen Schüssel angenähert.
Bei Verwendung des vollständigen Batch-Lernens führt der Abstieg entlang der steilsten Steigungsrichtung möglicherweise nicht zum gewünschten Ziel. Die Richtung des steilsten Abstiegs verläuft oft fast senkrecht zur gewünschten Richtung, was zu Konvergenzproblemen führt. Dieses Problem bleibt in nichtlinearen mehrschichtigen Netzwerken bestehen, da die Fehleroberflächen dazu neigen, in einigen Richtungen stark gekrümmt und in anderen weniger gekrümmt zu sein.
Um dieses Problem anzugehen, wird der stochastische Gradientenabstieg (SGD) eingesetzt. Anstatt den Gradienten für den gesamten Datensatz zu berechnen, berechnet SGD den Gradienten für Teilmengen oder Mini-Batches der Daten. Dieser Ansatz bietet mehrere Vorteile, wie z. B. einen reduzierten Rechenaufwand für Gewichtsaktualisierungen und die Möglichkeit, Gradientenberechnungen für mehrere Trainingsfälle zu parallelisieren.
Die Verwendung von Mini-Chargen trägt dazu bei, unnötiges Schwappen des Gewichts zu vermeiden. Es ist wichtig, über Mini-Batches zu verfügen, die repräsentativ für den gesamten Datensatz sind, und solche zu vermeiden, die uncharakteristisch sind, z. B. alle Beispiele aus einer einzigen Klasse. Obwohl vollständige Gradientenalgorithmen verfügbar sind, wird Mini-Batch-Lernen aufgrund seiner Recheneffizienz im Allgemeinen für große und redundante Trainingssätze bevorzugt.
Der grundlegende Mini-Batch-Gradientenabstiegs-Lernalgorithmus umfasst das Schätzen einer anfänglichen Lernrate und das Überwachen der Netzwerkleistung. Wenn sich der Fehler verschlimmert oder schwankt, verringert sich die Lernrate. Fällt der Fehler zu langsam ab, kann die Lernrate erhöht werden. Es ist von Vorteil, die Anpassung der Lernrate basierend auf diesen Beobachtungen zu automatisieren. Gegen Ende des Lernvorgangs ist es häufig hilfreich, die Lernrate zu verringern, um durch Mini-Batch-Gradienten verursachte Gewichtsschwankungen auszugleichen. Validierungssätze werden verwendet, um zu beurteilen, wann die Lernrate verringert werden sollte, und um zu bestimmen, wann der Fehler nicht mehr kontinuierlich abnimmt.
Durch die sorgfältige Abstimmung und Anpassung der Lernrate während des gesamten Trainingsprozesses bietet der Mini-Batch-Gradientenabstieg einen effektiven Ansatz zum Trainieren großer neuronaler Netze anhand redundanter Datensätze.
Darüber hinaus ist anzumerken, dass es zwei Haupttypen von Lernalgorithmen für neuronale Netze gibt: Vollgradienten-Algorithmen und Mini-Batch-Algorithmen. Vollgradientenalgorithmen berechnen den Gradienten anhand aller Trainingsfälle und ermöglichen verschiedene Optimierungstechniken zur Beschleunigung des Lernens. Diese für glatte nichtlineare Funktionen entwickelten Methoden erfordern jedoch möglicherweise Modifikationen, um effektiv mit mehrschichtigen neuronalen Netzen zu funktionieren.
Andererseits ist Mini-Batch-Lernen für hochredundante und große Trainingssätze von Vorteil. Während Mini-Batches möglicherweise relativ groß sein müssen, bieten sie eine hohe Recheneffizienz. Die Verwendung von Mini-Batches ermöglicht die parallele Berechnung von Gradienten für mehrere Trainingsfälle gleichzeitig und nutzt dabei die Fähigkeiten moderner Prozessoren, wie z. B. Grafikprozessoren (GPUs).
Während des gesamten Trainingsprozesses ist es wichtig, ein Gleichgewicht mit der Lerngeschwindigkeit zu finden. Anpassungen der Lernrate sollten basierend auf der Leistung des Netzwerks und dem beobachteten Verhalten des Fehlers vorgenommen werden. Gegen Ende des Lernvorgangs kann eine Reduzierung der Lernrate dazu beitragen, einen endgültigen Satz von Gewichtungen zu erreichen, der einen guten Kompromiss darstellt und durch Mini-Batch-Gradienten verursachte Schwankungen glättet.
Validierungssätze spielen eine entscheidende Rolle bei der Überwachung des Netzwerkfortschritts. Durch Messen des Fehlers in einem separaten Validierungssatz kann man beurteilen, ob der Fehler dauerhaft nicht mehr abnimmt, und den geeigneten Zeitpunkt für die Anpassung der Lernrate bestimmen. Diese Validierungsbeispiele werden nicht für Schulungen oder Abschlusstests verwendet.
Der Mini-Batch-Gradientenabstiegs-Lernalgorithmus bietet einen praktischen und effizienten Ansatz zum Trainieren großer neuronaler Netze auf redundanten Datensätzen. Eine sorgfältige Anpassung der Lernrate, die Überwachung der Netzwerkleistung mithilfe von Validierungssätzen und die Verwendung repräsentativer Mini-Batches tragen zu erfolgreichen Trainingsergebnissen bei.
Vorlesung 6.2 – Eine Sammlung von Tricks für den Mini-Batch-Gradientenabstieg
Vorlesung 6.2 – Eine Reihe von Tricks für den Mini-Batch-Gradientenabstieg [Neuronale Netze für maschinelles Lernen]
In diesem Video besprechen wir verschiedene Probleme, die bei der Verwendung des stochastischen Gradientenabstiegs mit Mini-Batches auftreten. Es gibt zahlreiche Tricks, die die Leistung deutlich verbessern können, oft auch als „schwarze Kunst“ neuronaler Netze bezeichnet. In diesem Video werde ich einige der wichtigsten Tricks behandeln.
Beginnen wir mit dem ersten Problem: Gewichtsinitialisierung in einem neuronalen Netzwerk. Wenn zwei versteckte Einheiten die gleichen Gewichte und Voreingenommenheiten haben, erhalten sie immer den gleichen Gradienten und unterscheiden sich nie voneinander. Damit sie verschiedene Merkmalsdetektoren lernen können, müssen wir sie mit unterschiedlichen Gewichten initialisieren. Dies geschieht typischerweise durch die Verwendung kleiner Zufallsgewichte, um die Symmetrie zu brechen. Es ist wichtig zu beachten, dass die Größe der Anfangsgewichte nicht für alle Einheiten gleich sein sollte. Versteckte Einheiten mit größerem Fan-In (eingehende Verbindungen) tendieren dazu, mit größeren Gewichten gesättigt zu sein, daher werden in solchen Fällen kleinere Gewichte bevorzugt. Andererseits profitieren versteckte Einheiten mit kleinerem Fan-In von größeren Gewichten. Die Größe der Anfangsgewichte sollte proportional zur Quadratwurzel des Fan-Ins sein.
Ein weiterer wichtiger Faktor ist die Verschiebung der Eingaben. Das Hinzufügen eines konstanten Werts zu jeder Eingabekomponente kann einen erheblichen Einfluss auf die Lerngeschwindigkeit haben. Das Verschieben der Eingänge ist besonders effektiv, wenn der steilste Abstieg verwendet wird. Es wird empfohlen, jede Eingabekomponente so zu verschieben, dass sie im Durchschnitt der Trainingsdaten einen Mittelwert von Null aufweist.
Betrachten wir als Nächstes die Fehleroberfläche und ihre Beziehung zu den Gewichten und Trainingsfällen. In einigen Fällen, wenn die Gewichte unterschiedliche Trainingsfälle erfüllen, kann die Fehleroberfläche verlängert werden, was das Lernen erschwert. Indem wir jedoch von jeder Eingabekomponente einen konstanten Wert subtrahieren, können wir die Fehlerfläche in eine Kreisform umwandeln, was das Lernen erleichtert.
Ein weiterer zu berücksichtigender Faktor ist die Aktivierungsfunktion für versteckte Einheiten. Hyperbolische Tangenten, die zwischen -1 und 1 liegen, werden häufig bevorzugt, da sie zu versteckten Einheitsaktivitäten mit einem Mittelwert nahe Null führen. Dies kann ein schnelleres Lernen in nachfolgenden Schichten ermöglichen. Logistische Aktivierungsfunktionen haben jedoch Vorteile, da sie bei kleinen negativen Eingaben eine Ausgabe von Null liefern, sodass das Netzwerk Schwankungen dieser Eingaben ignorieren kann. Hyperbolische Tangenten erfordern größere Eingaben, um solche Schwankungen zu ignorieren.
Auch die Skalierung der Eingaben ist entscheidend für effektives Lernen. Indem wir die Eingabekomponenten so transformieren, dass sie über den gesamten Trainingssatz eine Einheitsvarianz mit einem typischen Wert von eins oder minus eins aufweisen, können wir die Fehleroberfläche verbessern. Durch die Skalierung der Eingaben wird sichergestellt, dass Gewichtsänderungen ähnliche Auswirkungen auf alle Eingabekomponenten haben, was zu einem ausgewogeneren Lernprozess führt.
Um das Mini-Batch-Lernen zu beschleunigen, sind vier Hauptmethoden zu berücksichtigen:
Momentum: Anstatt die Gewichte direkt basierend auf dem Gradienten zu ändern, nutzt Momentum den Gradienten, um die Geschwindigkeit der Gewichte zu beschleunigen. Dieser Ansatz ermöglicht es den Gewichten, Informationen aus früheren Farbverläufen beizubehalten.
Adaptive Lernraten: Die Verwendung einer separaten adaptiven Lernrate für jeden Parameter und deren Anpassung auf der Grundlage empirischer Messungen kann das Lernen verbessern. Wenn der Gradient ständig das Vorzeichen ändert, verringert sich die Lernrate. Bleibt der Gradient konstant, erhöht sich die Lernrate.
RMSprop: Diese Methode dividiert die Lernrate durch einen laufenden Durchschnitt der aktuellen Gradientengrößen. Es bewältigt effektiv eine Vielzahl von Farbverläufen, indem es diese entsprechend skaliert.
Vollständiges Batch-Lernen: Bei diesem Ansatz wird der gesamte Trainingssatz zum Lernen genutzt und fortschrittliche Optimierungstechniken eingesetzt, die Krümmungsinformationen berücksichtigen. Obwohl es effektiv sein kann, sind möglicherweise weitere Anpassungen erforderlich, um mit Mini-Chargen arbeiten zu können.
Dies sind nur einige der Techniken, die die Leistung des stochastischen Gradientenabstiegs mit Mini-Batches erheblich verbessern können.
Zusammenfassend haben wir mehrere wichtige Themen und Techniken im Zusammenhang mit dem stochastischen Gradientenabstieg mit Mini-Batches in neuronalen Netzen diskutiert. Diese Techniken dienen als „schwarze Kunst“ neuronaler Netze und können deren Leistung erheblich verbessern. Fassen wir noch einmal die wichtigsten Punkte zusammen:
Gewichtsinitialisierung: Damit versteckte Einheiten verschiedene Feature-Detektoren erlernen können, ist es wichtig, ihre Gewichte unterschiedlich zu initialisieren. Durch die Verwendung kleiner Zufallsgewichte, die die Symmetrie brechen, können wir sicherstellen, dass sich jede Einheit zunächst voneinander unterscheidet. Die Größe der Anfangsgewichte sollte proportional zur Quadratwurzel des Fan-Ins sein, was dabei hilft, einen guten Ausgangspunkt zu erreichen.
Verschieben von Eingaben: Das Verschieben der Eingaben durch Hinzufügen einer Konstante zu jeder Komponente kann einen erheblichen Einfluss auf die Lerngeschwindigkeit haben. Es ist vorteilhaft, jede Komponente so zu verschieben, dass die Eingabe im Durchschnitt den Wert Null hat. Dies kann durch Subtrahieren des Mittelwerts der Eingabewerte über die Trainingsdaten erreicht werden.
Eingaben skalieren: Die Skalierung der Eingabewerte ist eine weitere nützliche Technik beim stochastischen Gradientenabstieg. Das Transformieren der Eingaben so, dass jede Komponente über den gesamten Trainingssatz eine Einheitsvarianz aufweist, vereinfacht den Lernprozess. Die Neuskalierung der Eingaben hilft bei der Erstellung einer kreisförmigen Fehleroberfläche, wodurch der Gradientenabstieg effizienter wird.
Dekorrelieren von Eingabekomponenten: Das Dekorrelieren der Komponenten von Eingabevektoren verbessert das Lernen, indem Korrelationen zwischen Merkmalen entfernt werden. Die Hauptkomponentenanalyse ist eine wertvolle Methode, um dies zu erreichen. Indem wir Komponenten mit kleinen Eigenwerten entfernen und die verbleibenden Komponenten skalieren, können wir eine kreisförmige Fehleroberfläche erhalten, was den Gradientenabstieg erleichtert.
Häufige Probleme: Zu den häufigen Problemen, die beim Training neuronaler Netze auftreten, gehören hohe anfängliche Lernraten, die dazu führen, dass versteckte Einheiten stecken bleiben, langsames Lernen beim Starten mit kleinen Gewichten und eine vorzeitige Reduzierung der Lernrate. Es ist wichtig, bei der Anpassung der Lernrate ein Gleichgewicht zu finden, um ein optimales Lernen zu gewährleisten.
Beschleunigung des Mini-Batch-Lernens: Es gibt vier Hauptmethoden zur Beschleunigung des Mini-Batch-Lernens, die explizit auf schnelleres Lernen ausgelegt sind: Momentum, adaptive Lernraten, RMSprop und vollständiges Batch-Lernen mit Krümmungsinformationen. Diese Techniken nutzen verschiedene Mechanismen wie Impuls, adaptive Anpassungen und Gradientengrößen, um den Lernprozess zu beschleunigen.
Während diese Techniken die Leistung des stochastischen Gradientenabstiegs mit Mini-Batches in neuronalen Netzen erheblich verbessern, ist es wichtig, das spezifische Problem zu berücksichtigen und mit verschiedenen Ansätzen zu experimentieren, um die besten Ergebnisse zu erzielen. Das Gebiet der Optimierung bietet weitere fortgeschrittene Methoden, die es zu erkunden gilt, um das Lernen in neuronalen Netzen noch effizienter zu gestalten.
Damit sind die wichtigsten Punkte abgeschlossen, die in diesem Video zu den Herausforderungen und Techniken im Zusammenhang mit dem stochastischen Gradientenabstieg mit Mini-Batches in neuronalen Netzen behandelt werden.
Vorlesung 6.3 – Die Impulsmethode
Vorlesung 6.3 – Die Impulsmethode [Neuronale Netze für maschinelles Lernen]
In diesem Video werden wir verschiedene Probleme im Zusammenhang mit der Verwendung des stochastischen Gradientenabstiegs mit Mini-Batches diskutieren und einige Techniken zur Verbesserung seiner Wirksamkeit untersuchen. Diese Techniken werden oft als die „schwarze Kunst“ neuronaler Netze angesehen und wir werden einige der wichtigsten davon behandeln.
Lassen Sie uns zunächst das Problem der Gewichtsinitialisierung in einem neuronalen Netzwerk ansprechen. Wenn zwei versteckte Einheiten identische Gewichte und Bias haben, erhalten sie immer den gleichen Gradienten und können keine unterschiedlichen Merkmalsdetektoren lernen. Damit sie bestimmte Merkmale erlernen können, ist es wichtig, ihre Gewichte unterschiedlich zu initialisieren. Dies erreichen wir durch die Verwendung kleiner Zufallsgewichte, die die Symmetrie brechen. Darüber hinaus ist es von Vorteil, wenn die Anfangsgewichte unterschiedliche Größen haben, wenn man den Fan-In jeder versteckten Einheit berücksichtigt. Beispielsweise können größere Gewichte bei Einheiten mit einem starken Fan-In zu einer Sättigung führen, während kleinere Gewichte für Einheiten mit einem kleinen Fan-In geeignet sind. Als Faustregel gilt, dass die Größe der Anfangsgewichte proportional zur Quadratwurzel des Fan-Ins sein sollte.
Das Verschieben der Eingaben oder das Hinzufügen einer Konstante zu jeder Eingabekomponente kann überraschenderweise einen erheblichen Einfluss auf die Lerngeschwindigkeit haben. Diese Verschiebung hilft beim steilsten Abstieg, da sie die Fehleroberfläche erheblich verändern kann. Es wird häufig empfohlen, jede Eingabekomponente so zu verschieben, dass sie im gesamten Trainingssatz einen Durchschnittswert von Null aufweist.
Die Skalierung der Eingaben ist ein weiterer wichtiger Gesichtspunkt bei der Verwendung des steilsten Abstiegs. Bei der Skalierung werden die Eingabewerte transformiert, um sicherzustellen, dass jede Komponente über den gesamten Trainingssatz eine Einheitsvarianz aufweist, was sie zu typischen Werten von eins oder minus eins macht. Diese Skalierung ermöglicht ein besseres Fehleroberflächenverhalten und vermeidet eine starke Krümmung bei großen Eingabekomponenten und eine geringe Krümmung bei kleinen.
Das Dekorrelieren der Eingabekomponenten kann das Lernen erheblich erleichtern. Indem wir Korrelationen zwischen Eingabekomponenten entfernen, reduzieren wir Redundanz und verbessern die Lerneffizienz. Die Hauptkomponentenanalyse (PCA) ist eine häufig verwendete Technik zur Erzielung einer Dekorrelation. Dabei werden Komponenten mit kleinen Eigenwerten entfernt und die verbleibenden Komponenten skaliert, indem sie durch die Quadratwurzeln ihrer Eigenwerte dividiert werden. Dieser Prozess führt bei linearen Systemen zu einer kreisförmigen Fehlerfläche, was das Lernen vereinfacht.
Lassen Sie uns nun einige häufige Probleme ansprechen, die beim Training neuronaler Netze auftreten. Wenn mit einer übermäßig hohen Lernrate begonnen wird, kann dies dazu führen, dass verborgene Einheiten extreme Zustände erreichen, in denen ihre Ableitungen nahezu Null werden. Dies führt dazu, dass das Lernen stoppt und oft der Eindruck entsteht, in einem lokalen Minimum festzustecken. In Wirklichkeit ist das Netzwerk wahrscheinlich auf einem Plateau gefangen.
Eine weitere Herausforderung entsteht bei der Klassifizierung mithilfe des quadratischen Fehlers oder des Kreuzentropiefehlers. Zunächst lernt das Netzwerk schnell die beste Schätzstrategie, die darin besteht, die Ausgabeeinheit gleich dem erwarteten Anteil von Eins zu machen. Eine weitere Verbesserung über diese Schätzstrategie hinaus kann jedoch langsam sein, insbesondere bei tiefen Netzwerken und kleinen Anfangsgewichten.
Bei der Optimierung der Lernrate ist es wichtig, die richtige Balance zu finden. Eine zu frühe oder zu starke Reduzierung der Lernrate kann den Fortschritt behindern, während eine Reduzierung gegen Ende des Trainings dazu beitragen kann, die Leistung des Netzwerks zu stabilisieren.
Lassen Sie uns nun vier spezifische Methoden untersuchen, um das Mini-Batch-Lernen erheblich zu beschleunigen:
Momentum: Anstatt die Gewichte direkt basierend auf dem Gradienten zu ändern, nutzt Momentum den Gradienten, um die Geschwindigkeit der Gewichtsaktualisierungen zu aktualisieren. Diese Dynamik ermöglicht es dem Netzwerk, sich an frühere Verläufe zu erinnern, und beschleunigt das Lernen.
Adaptive Lernraten: Die Zuweisung einer separaten Lernrate für jeden Parameter und deren langsame Anpassung auf der Grundlage empirischer Messungen kann das Lernen verbessern. Wenn sich das Vorzeichen des Gradienten ständig ändert, was auf eine Oszillation hindeutet, verringert sich die Lernrate. Bleibt das Vorzeichen konstant und zeigt damit einen Fortschritt an, erhöht sich die Lernrate.
RMSprop: Bei dieser Methode werden die Gewichtsaktualisierungen durch einen laufenden Durchschnitt der aktuellen Gradientengrößen dividiert. Es passt die Gewichtsaktualisierungen dynamisch an die Größe der Steigungen an und ermöglicht so eine effektive Handhabung verschiedener Steigungsbereiche. RMSprop ist eine Mini-Batch-Anpassung von Rprop.