Maschinelles Lernen und neuronale Netze - Seite 53

 

Vorlesung 2.3 – Eine geometrische Sicht auf Perzeptrone



Vorlesung 2.3 – Eine geometrische Sicht auf Perzeptrone [Neuronale Netze für maschinelles Lernen]

In diesem Video werden wir uns mit dem geometrischen Verständnis dafür befassen, wie Perzeptrone lernen. Dazu müssen wir im Gewichtsraum denken, einem hochdimensionalen Raum, in dem jeder Punkt einer bestimmten Konfiguration aller Gewichte entspricht. In diesem Raum können wir Trainingsfälle als Ebenen darstellen, und der Lernprozess beinhaltet die Positionierung des Gewichtsvektors auf der richtigen Seite aller Trainingsebenen.

Für diejenigen, die sich in Mathematik nicht so gut auskennen, kann dies eine größere Herausforderung sein als der vorherige Stoff. Es kann erforderlich sein, ausreichend Zeit zu investieren, um den bevorstehenden Inhalt zu verstehen, insbesondere wenn Sie nicht mit dem Nachdenken über Hyperebenen in hochdimensionalen Räumen vertraut sind. Sie müssen sich mit der Visualisierung eines 14-dimensionalen Raums vertraut machen, indem Sie zunächst einen dreidimensionalen Raum visualisieren und sich dann hörbar an die Dimensionalität erinnern. Es mag seltsam erscheinen, aber es ist eine gängige Praxis, um das Verständnis zu erleichtern.

Beim Umgang mit Hyperebenen in einem 14-dimensionalen Raum steigt die Komplexität deutlich an, ähnlich wie beim Übergang von einem 2D-Raum in einen 3D-Raum. Es ist wichtig zu verstehen, dass ein 14-dimensionaler Raum riesig und komplex ist. Vor diesem Hintergrund konzentrieren wir uns zunächst auf den Kraftraum.

Der Gewichtsraum ist ein Raum, der für jedes Gewicht im Perzeptron eine Dimension hat. Ein Punkt im Gewichtsraum stellt eine spezifische Konfiguration aller Gewichte dar, vorausgesetzt, wir haben den Schwellenwert eliminiert. Jeder Trainingsfall kann als Hyperebene dargestellt werden, die durch den Ursprung im Gewichtsraum verläuft. Folglich entsprechen Punkte in diesem Raum Gewichtsvektoren, während Trainingsfälle Ebenen entsprechen.

Für einen bestimmten Trainingsfall müssen die Gewichte auf einer Seite der Hyperebene liegen, um die richtige Ausgabe zu erzeugen. Lassen Sie uns dieses Konzept anhand eines Beispiels veranschaulichen. Stellen Sie sich einen Trainingsfall vor, bei dem die richtige Antwort eins ist. Der Gewichtsvektor muss auf derselben Seite der Hyperebene liegen wie die durch den Trainingsvektor angegebene Richtung. Jeder Gewichtsvektor auf dieser Seite hat einen Winkel mit dem Eingabevektor von weniger als 90 Grad, was zu einem positiven Skalarprodukt führt. Da wir den Schwellenwert eliminiert haben, gibt das Perzeptron einen aus und liefert die richtige Antwort.

Wenn umgekehrt ein Gewichtsvektor auf der falschen Seite der Ebene liegt, übersteigt sein Winkel mit dem Eingabevektor 90 Grad, was zu einem negativen Skalarprodukt führt. Folglich gibt das Perzeptron Null aus, was zu einer falschen Antwort führt.

Zusammenfassend lässt sich sagen, dass Gewichtsvektoren auf einer Seite der Ebene die richtige Antwort liefern, während diejenigen auf der anderen Seite die falsche Antwort liefern. Betrachten wir nun einen anderen Trainingsfall, bei dem die richtige Antwort Null ist.

In diesem Fall führt jeder Gewichtsvektor, der mit dem Eingabevektor einen Winkel von weniger als 90 Grad bildet, zu einem positiven Skalarprodukt, was dazu führt, dass das Perzeptron eins ausgibt, was zu einer falschen Antwort führt. Umgekehrt ergeben Gewichtsvektoren auf der anderen Seite der Ebene mit einem Winkel von mehr als 90 Grad ein Skalarprodukt kleiner als Null, und das Perzeptron gibt Null aus, was die korrekte Antwort liefert.

Lassen Sie uns diese beiden Trainingsfälle in einem einzigen Bild des Kraftraums kombinieren. Der Gewichtsraum wird überfüllt und es entsteht ein Kegel möglicher Gewichtsvektoren. Jeder Gewichtsvektor innerhalb dieses Kegels liefert für beide Trainingsfälle die richtige Antwort. Es ist erwähnenswert, dass die Existenz eines solchen Kegels nicht garantiert ist. Es kann vorkommen, dass keine Gewichtsvektoren für alle Trainingsfälle die richtigen Antworten liefern. Wenn jedoch solche Gewichtsvektoren existieren, bilden sie einen Kegel.

Der Lernalgorithmus berücksichtigt die Trainingsfälle einen nach dem anderen und passt den Gewichtsvektor so an, dass er schließlich innerhalb dieses Kegels liegt. Es ist wichtig zu beachten, dass, wenn wir zwei gute Gewichtungsvektoren haben, die für alle Trainingsfälle funktionieren, ihr Durchschnitt ebenfalls innerhalb des Kegels liegt. Dies impliziert, dass das Problem konvex ist und der Durchschnitt zweier Lösungen selbst eine Lösung ist. Konvexe Lernprobleme vereinfachen den Prozess beim maschinellen Lernen.

Das Verständnis des Gewichtsraums und der Beziehung zwischen Gewichtsvektoren und Trainingsfällen bietet einen geometrischen Einblick in die Art und Weise, wie Perzeptrone lernen. Ziel ist es, einen Gewichtsvektor zu finden, der innerhalb des Kegels möglicher Lösungen liegt und eine korrekte Klassifizierung für alle Trainingsfälle gewährleistet.

Lecture 2.3 — A geometrical view of perceptrons [Neural Networks for Machine Learning]
Lecture 2.3 — A geometrical view of perceptrons [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.4 – Warum das Lernen funktioniert



Vorlesung 2.4 – Warum das Lernen funktioniert [Neuronale Netze für maschinelles Lernen]

In diesem Video wollen wir einen Beweis dafür vorlegen, dass das Perzeptron-Lernverfahren letztendlich dazu führt, dass die Gewichte innerhalb des Kegels möglicher Lösungen konvergieren. Ich möchte jedoch betonen, dass sich dieser Kurs in erster Linie auf technische Aspekte und nicht auf strenge Beweise konzentriert. Während des gesamten Kurses wird es nur wenige Beweise geben. Dennoch liefert das Verständnis, wie Perzeptrone letztendlich die richtige Antwort finden, wertvolle Erkenntnisse.

Um unseren Beweis zu konstruieren, werden wir unser geometrisches Verständnis des Gewichtsraums und des Perzeptron-Lernprozesses nutzen. Wir gehen von der Existenz eines zulässigen Gewichtsvektors aus, der für alle Trainingsfälle die richtige Antwort liefert. Im Diagramm wird dies durch den grünen Punkt dargestellt.

Die Kernidee unseres Beweises besteht darin, dass jedes Mal, wenn das Perzeptron einen Trainingsfall falsch klassifiziert, der aktuelle Gewichtsvektor so aktualisiert wird, dass er allen möglichen Gewichtsvektoren näher kommt. Wir können den quadrierten Abstand zwischen dem aktuellen Gewichtsvektor und einem möglichen Gewichtsvektor als Summe eines quadrierten Abstands entlang der Linie des Eingabevektors (Definition des Trainingsfalls) und eines anderen quadrierten Abstands orthogonal zu dieser Linie messen. Der orthogonale quadratische Abstand bleibt konstant, während der Abstand entlang der Linie des Eingabevektors abnimmt.

Obwohl diese Behauptung vielversprechend erscheint, stoßen wir auf ein Problem, das durch den zulässigen Goldgewichtsvektor im Diagramm veranschaulicht wird. Er liegt genau auf der rechten Seite der Ebene, die durch einen der Trainingsfälle definiert wird, während der aktuelle Gewichtsvektor auf der falschen Seite liegt. Darüber hinaus ist der Eingabevektor relativ groß, was dazu führt, dass die Addition des Eingabevektors den aktuellen Gewichtsvektor weiter vom Gold-Gewichtungsvektor entfernt. Damit scheitert unser ursprünglicher Anspruch.

Wir können dies jedoch beheben, indem wir das Konzept eines großzügig zulässigen Gewichtsvektors einführen. Diese Gewichtsvektoren klassifizieren nicht nur alle Trainingsfälle korrekt, sondern tun dies auch mit einem Spielraum, der gleich oder größer als die Länge des Eingabevektors für jeden Fall ist. Innerhalb des Kegels zulässiger Lösungen befindet sich ein weiterer Kegel großzügig zulässiger Lösungen.

Mit dieser Anpassung wird unser Beweis gültig. Wir können nun behaupten, dass jedes Mal, wenn das Perzeptron einen Fall falsch klassifiziert, der quadratische Abstand zu allen großzügig zulässigen Gewichtsvektoren mindestens um die quadratische Länge des Eingabevektors abnimmt. Dieses Update stellt sicher, dass der Gewichtsvektor näher an die großzügig realisierbaren Lösungen heranrückt.

Auch wenn wir hier keinen formalen Beweis liefern, zeigt diese informelle Skizze den Konvergenzprozess. Wenn die Eingabevektoren nicht unendlich klein sind, verringert sich der quadratische Abstand zu allen großzügig zulässigen Gewichtsvektoren nach einer endlichen Anzahl von Fehlern um mindestens die quadratische Länge des Eingabevektors. Folglich muss der Gewichtsvektor letztendlich innerhalb des zulässigen Bereichs liegen, vorausgesetzt, er existiert. Es muss nicht unbedingt im großzügig machbaren Bereich liegen, aber zumindest im machbaren Bereich, um weitere Fehler zu vermeiden.

Zusammenfassend ist dies ein informeller Überblick über den Beweis, der zeigt, dass das Perzeptron-Konvergenzverfahren funktioniert. Es ist jedoch wichtig zu beachten, dass der gesamte Beweis auf der Annahme beruht, dass ein großzügig zulässiger Gewichtsvektor existiert. Wenn ein solcher Vektor nicht existiert, bricht der Beweis zusammen.

Lecture 2.4 — Why the learning works [Neural Networks for Machine Learning]
Lecture 2.4 — Why the learning works [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.5 – Was Perzeptrone nicht können



Vorlesung 2.5 – Was Perzeptrone nicht können [Neuronale Netze für maschinelles Lernen]

In diesem Video werden wir die Einschränkungen von Perzeptronen untersuchen, die sich aus den verwendeten Funktionstypen ergeben. Die Wirksamkeit von Perzeptronen hängt stark von der Wahl der Funktionen ab. Mit den richtigen Eigenschaften können Perzeptrone unglaublich vielseitig sein, aber mit den falschen Eigenschaften sind ihre Lernfähigkeiten stark eingeschränkt. Diese Einschränkung führte in der Vergangenheit dazu, dass Perzeptrone in Ungnade fielen. Es unterstreicht die Herausforderung, die entsprechenden Funktionen zu erlernen, was den entscheidenden Aspekt des Lernprozesses darstellt.

Aber auch ohne Lernfunktionen können Perzeptrone noch viel erreichen. Bei Aufgaben wie der Bestimmung der Plausibilität eines englischen Satzes könnte man beispielsweise zahlreiche Merkmale manuell definieren und deren Gewichtungen lernen, um die Wahrscheinlichkeit zu bestimmen, dass ein Satz grammatikalisch korrekt ist. Dennoch werden Lernfunktionen auf lange Sicht notwendig.

In den späten 1960er und frühen 1970er Jahren erlebte die Perzeptronforschung Rückschläge, als man entdeckte, dass Perzeptrone erhebliche Einschränkungen aufwiesen. Durch die manuelle Auswahl von Funktionen und die Einbindung ausreichender Funktionen können Perzeptrone nahezu jede Aufgabe bewältigen. Wenn wir beispielsweise binäre Eingabevektoren berücksichtigen und separate Funktionseinheiten erstellen, die auf der Grundlage bestimmter binärer Eingabevektoren aktiviert werden, können wir eine beliebige Unterscheidung binärer Eingabevektoren erreichen. Dieser Ansatz ist jedoch für die Problemlösung in der Praxis unpraktisch, da er eine übermäßige Anzahl von Funktionseinheiten erfordert, was eine Verallgemeinerung erschwert. Der Versuch, aus einer Teilmenge von Fällen zu verallgemeinern und dabei andere zu ignorieren, ist zwecklos, da für die verbleibenden Fälle neue Merkmalseinheiten erforderlich wären und die Bestimmung der Gewichtungen für diese neuen Merkmalseinheiten nach Abschluss der manuellen Auswahl eine Herausforderung darstellt.

Es gibt strenge Einschränkungen dafür, was Perzeptrone lernen können, sobald die Merkmalseinheiten und ihre Gewichte festgelegt wurden. Schauen wir uns ein klassisches Beispiel an, um diese Einschränkungen zu verstehen. Wir möchten feststellen, ob eine binäre Schwellenwert-Entscheidungseinheit lernen kann, zu erkennen, ob zwei Merkmale den gleichen Wert haben. Wir haben zwei positive Fälle und zwei negative Fälle, die jeweils durch Einzelbitmerkmale mit Werten von entweder 1 oder 0 definiert sind. Die positiven Fälle treten auf, wenn beide Merkmale aktiviert sind (1) oder wenn beide Merkmale deaktiviert sind (0), während die negativen Fälle auftreten Fälle treten auf, wenn eine Funktion aktiviert ist (1) und die andere deaktiviert ist (0). Die Aufgabe scheint einfach zu sein, aber algebraisch kann bewiesen werden, dass es unmöglich ist, alle vier durch diese Eingabe-Ausgabe-Paare gebildeten Ungleichungen zu erfüllen. Folglich ist es nicht möglich, Gewichte zu finden, die es dem Perzeptron ermöglichen, in allen vier Fällen die richtige Ausgabe zu liefern.

Diese Einschränkung kann auch geometrisch verstanden werden. Wir stellen uns einen Datenraum vor, in dem jeder Punkt einen Datenpunkt darstellt und Gewichtsvektoren Ebenen senkrecht zu den Datenpunkten definieren. Um richtig zu unterscheiden, sollte die Gewichtsebene die positiven Fälle von den negativen Fällen trennen. Es gibt jedoch Sätze von Trainingsfällen, die nicht linear trennbar sind, was bedeutet, dass keine Hyperebene die Fälle, bei denen die Ausgabe 1 sein sollte, von denen, bei denen die Ausgabe 0 sein sollte, korrekt trennen kann. Diese Unfähigkeit, Fälle korrekt zu trennen, wird als „Satz von“ bezeichnet Trainingsfälle, die nicht linear trennbar sind.“

Ein weiteres verheerendes Beispiel für Perzeptrone ist das Erkennen von Mustern, die ihre Identität behalten, selbst wenn sie mit Wraparound übersetzt werden. Perzeptrone können nicht zwischen Mustern mit der gleichen Pixelanzahl unterscheiden, wenn die Unterscheidung mit übersetzten und umbrochenen Mustern funktionieren muss. Diese Einschränkung wird deutlich, wenn man die Muster A und B betrachtet. Muster A hat vier „Ein“-Pixel, die in einer Barcode-ähnlichen Form angeordnet sind, und Muster B hat auch vier „Ein“-Pixel, die unterschiedlich angeordnet sind. Bei der Übersetzung mit Wraparound können Perzeptrone nicht lernen, zwischen diesen Mustern zu unterscheiden. Das Gruppeninvarianztheorem von Minsky und Papert besagt, dass Perzeptrone Muster unter Übersetzung nicht erkennen können, wenn ein Wraparound zulässig ist. Dieser Satz war in der Geschichte der Perzeptrone besonders bedeutsam, da die Mustererkennung darauf abzielt, Muster trotz Transformationen wie der Übersetzung zu identifizieren.

Das Theorem ergab, dass Perzeptrone, wie sie ursprünglich formuliert wurden, nicht in der Lage sind, Mustererkennungsaufgaben zu bewältigen, die eine Übersetzungsinvarianz mit Wraparound erfordern. Diese Einschränkung schränkte ihre praktischen Anwendungen stark ein und führte in den späten 1960er und frühen 1970er Jahren zu einem Rückgang des Interesses und der Forschung an Perzeptronen. Es ist jedoch wichtig zu beachten, dass diese Einschränkungen nur für einschichtige Perzeptrone mit binären Schwellenwerteinheiten gelten. Das Gebiet der künstlichen neuronalen Netze entwickelte sich weiter und überwand diese Einschränkungen mit der Entwicklung fortschrittlicherer Modelle wie mehrschichtigen Perzeptronen (MLPs) und Faltungs-Neuronalen Netzen (CNNs). MLPs führen versteckte Schichten zwischen den Eingabe- und Ausgabeschichten ein und ermöglichen so komplexere und flexiblere Darstellungen von Features. Durch die Integration nichtlinearer Aktivierungsfunktionen und den Einsatz von Techniken wie Backpropagation zur Gewichtsanpassung können MLPs die lineare Trennbarkeitsbeschränkung einschichtiger Perzeptrons überwinden.

CNNs hingegen wurden speziell entwickelt, um das Problem der Mustererkennung und Bildklassifizierung anzugehen. Sie verwenden eine hierarchische Struktur mit Faltungsschichten, die lokale Merkmale extrahieren, und Pooling-Schichten, die räumliche Invarianz erfassen. CNNs haben bemerkenswerte Erfolge bei Aufgaben wie Bilderkennung, Objekterkennung und Verarbeitung natürlicher Sprache gezeigt.

Die Einschränkungen von Perzeptronen verdeutlichten die Bedeutung des Merkmalslernens, der Nichtlinearität und hierarchischer Darstellungen in neuronalen Netzen. Nachfolgende Fortschritte auf diesem Gebiet haben zur Entwicklung ausgefeilterer Modelle mit verbesserten Lernfähigkeiten und breiteren Anwendungen geführt.

Während Perzeptrone nur begrenzt in der Lage sind, komplexe Funktionen zu erlernen und bestimmte Mustererkennungsaufgaben zu bewältigen, wurden diese Einschränkungen durch die Entwicklung fortschrittlicherer neuronaler Netzwerkarchitekturen behoben. MLPs und CNNs haben neben anderen Modellen die Einschränkungen einschichtiger Perzeptrons überwunden und sind zu leistungsstarken Werkzeugen in verschiedenen Bereichen der künstlichen Intelligenz geworden.

Lecture 2.5 — What perceptrons can't do [Neural Networks for Machine Learning]
Lecture 2.5 — What perceptrons can't do [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 3.1 – Erlernen der Gewichte eines linearen Neurons



Vorlesung 3.1 – Erlernen der Gewichte eines linearen Neurons [Neuronale Netze für maschinelles Lernen]

In seinem Video wird der Lernalgorithmus für ein lineares Neuron vorgestellt, der etwas anderes erreicht als der Lernalgorithmus für ein Perzeptron. In einem Perzeptron nähern sich die Gewichte immer einem guten Satz von Gewichten an, während in einem linearen Neuron die Ausgaben immer näher an die Zielausgaben heranrücken.

Das Perzeptron-Konvergenzverfahren stellt sicher, dass die Änderung der Gewichte uns einem guten Satz an Gewichten näher bringt. Diese Garantie kann jedoch nicht auf komplexere Netzwerke ausgeweitet werden, da die Mittelung zweier guter Gewichtssätze zu einem schlechten Gewichtssatz führen kann. Daher verwenden wir für mehrschichtige neuronale Netze nicht das Perzeptron-Lernverfahren und auch der Nachweis der Verbesserung während des Lernens ist anders.

Mehrschichtige neuronale Netze, oft auch Multi-Layer-Perceptrons (MLPs) genannt, erfordern einen anderen Ansatz, um Fortschritte anzuzeigen. Anstatt zu zeigen, dass die Gewichtungen einem guten Gewichtungssatz näherkommen, zeigen wir, dass die tatsächlichen Ausgabewerte den Zielausgabewerten näher kommen. Dies gilt auch für nichtkonvexe Probleme, bei denen die Mittelung der Gewichte zweier guter Lösungen keine gute Lösung ergibt.

Der Lernalgorithmus für ein lineares Neuron wird anhand eines Spielzeugbeispiels veranschaulicht. Dabei beginnt man mit zufälligen Schätzungen der Portionspreise und passt diese Schätzungen dann iterativ an die beobachteten Preise an. Der iterative Ansatz verwendet die Delta-Regel, um die Gewichte basierend auf der Lernrate, der Anzahl der Portionen und dem Restfehler zu aktualisieren.

Die Delta-Regel wird abgeleitet, indem das Fehlermaß nach einem der Gewichte differenziert wird. Die Lernregel besagt, dass die Änderung einer Gewichtung gleich der Lernrate multipliziert mit dem Eingabewert und der Differenz zwischen Soll- und Ist-Ausgaben ist. Durch die iterative Anwendung der Delta-Regel können die Gewichte angepasst werden, um den Fehler zu minimieren.

Das Lernverfahren mit der Delta-Regel garantiert nicht, dass sich die einzelnen Gewichte immer verbessern. Die Differenz zwischen den Ziel- und den geschätzten Ergebnissen nimmt jedoch tendenziell zu. Die Lernrate bestimmt die Lerngeschwindigkeit, und bei einer ausreichend kleinen Lernrate können sich die Gewichte der besten Näherung für die gegebenen Trainingsfälle annähern.

Es ist wichtig zu beachten, dass der Lernprozess selbst bei linearen Systemen langsam sein kann, insbesondere wenn die Eingabedimensionen stark korrelieren. In solchen Fällen wird es schwierig zu bestimmen, wie viel Gewicht den einzelnen Eingabedimensionen beigemessen werden soll. Darüber hinaus besteht eine Ähnlichkeit zwischen der Online-Version der Delta-Regel und der Perzeptron-Lernregel, bei der der Gewichtsvektor basierend auf dem Eingabevektor und dem Fehler angepasst wird. Allerdings berücksichtigt die Delta-Regel die Lernrate und den Restfehler. Die Wahl einer geeigneten Lernrate ist entscheidend für stabiles und effizientes Lernen.

Der für das lineare Neuron beschriebene iterative Lernprozess kann zu einer Lösung konvergieren, die das Fehlermaß minimiert. Es ist jedoch wichtig zu beachten, dass es möglicherweise keine perfekte Lösung gibt, die genau den gewünschten Ergebnissen für alle Trainingsfälle entspricht. Stattdessen besteht das Ziel darin, einen Satz von Gewichten zu finden, der die beste Näherung bietet und das Fehlermaß über alle Trainingsfälle hinweg minimiert. Indem wir die Lernrate ausreichend klein machen und den Lernprozess lange genug andauern lassen, können wir uns dieser besten Näherung nähern.

Die Lerngeschwindigkeit kann selbst bei linearen Systemen variieren. Wenn zwei Eingabedimensionen stark korrelieren, wird es schwierig zu bestimmen, wie viel Gewicht jeder Eingabedimension beigemessen werden sollte. Wenn beispielsweise die Anzahl der Portionen Ketchup und Chips immer gleich ist, kann es lange dauern, bis der Lernprozess den Preis jeder Komponente richtig zuordnet.

Interessanterweise gibt es einen Zusammenhang zwischen der Delta-Regel und der Lernregel für Perzeptrone. Die Online-Version der Delta-Regel, bei der die Gewichte nach jedem Trainingsfall aktualisiert werden, weist Ähnlichkeiten mit der Perzeptron-Lernregel auf. Beim Perzeptron-Lernen wird der Gewichtsvektor um den Eingabevektor erhöht oder verringert, jedoch nur, wenn ein Fehler auftritt. In der Online-Version der Delta-Regel wird der Gewichtsvektor ebenfalls durch den Eingabevektor angepasst, jedoch sowohl durch den Restfehler als auch durch die Lernrate skaliert.

Eine Herausforderung bei der Verwendung der Delta-Regel ist die Auswahl einer geeigneten Lernrate. Wenn die Lernrate zu groß ist, kann das System instabil werden, was die Konvergenz zu einer Lösung erschwert. Wenn andererseits die Lernrate zu gering ist, kann es unnötig lange dauern, bis der Lernprozess einen sinnvollen Satz an Gewichten erreicht.

Der Lernalgorithmus für ein lineares Neuron zielt darauf ab, den Fehler zwischen den Zielausgaben und den tatsächlichen Ausgaben zu minimieren. Es passt die Gewichte iterativ mithilfe der Delta-Regel an, die die Lernrate, die Eingabewerte und die Differenz zwischen den Ziel- und tatsächlichen Ausgaben berücksichtigt. Obwohl der Lernprozess langsam sein kann und sich die Gewichte möglicherweise nicht einzeln verbessern, besteht das Gesamtziel darin, die beste Näherung für die gegebenen Trainingsfälle zu erreichen.

Lecture 3.1 — Learning the weights of a linear neuron [Neural Networks for Machine Learning]
Lecture 3.1 — Learning the weights of a linear neuron [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 3.2 – Die Fehleroberfläche für ein lineares Neuron



Vorlesung 3.2 – Die Fehleroberfläche für ein lineares Neuron [Neuronale Netze für maschinelles Lernen]

In diesem Video untersuchen wir die Fehleroberfläche eines linearen Neurons, die Einblicke in den Lernprozess bietet. Durch die Visualisierung dieser Oberfläche können wir ein geometrisches Verständnis dafür gewinnen, wie Gewichte in einem linearen Neuron gelernt werden. Der von uns betrachtete Raum ähnelt dem in Perzeptronen verwendeten Gewichtsraum, weist jedoch eine zusätzliche Dimension auf.

Stellen Sie sich einen Raum vor, in dem die horizontalen Abmessungen die Gewichte und die vertikalen Abmessungen den Fehler darstellen. In diesem Bereich werden unterschiedliche Gewichtseinstellungen als Punkte auf der horizontalen Ebene dargestellt, und die Höhe jedes Punkts entspricht dem mit dieser Gewichtseinstellung verbundenen Fehler, summiert über alle Trainingsfälle. Bei einem linearen Neuron definieren die Fehler für jede Gewichtseinstellung eine Fehleroberfläche, die die Form einer quadratischen Schüssel annimmt. Ein vertikaler Querschnitt der Fehlerfläche ergibt immer eine Parabel, während ein horizontaler Querschnitt eine Ellipse bildet. Es ist wichtig zu beachten, dass dieses Verhalten nur für lineare Systeme mit quadratischem Fehler gilt. Wenn wir zu mehrschichtigen nichtlinearen neuronalen Netzen übergehen, wird die Fehleroberfläche komplexer.

Während die Gewichte innerhalb eines angemessenen Bereichs bleiben, bleibt die Fehleroberfläche glatt, kann jedoch zahlreiche lokale Minima aufweisen. Um das Lernen zu erleichtern, verwenden wir die Delta-Regel, bei der die Ableitung des Fehlers nach den Gewichten berechnet wird. Das Anpassen der Gewichte proportional zu dieser Ableitung entspricht der Durchführung des steilsten Abstiegs auf der Fehleroberfläche. Betrachtet man die Fehlerfläche von oben, erkennt man elliptische Konturlinien. Die Delta-Regel führt uns senkrecht zu diesen Höhenlinien. Beim Batch-Lernen, bei dem der Gradient über alle Trainingsfälle berechnet wird, führt uns die Delta-Regel in die richtige Richtung. Wir können jedoch auch Online-Lernen einsetzen, bei dem die Gewichte nach jedem Trainingsfall aktualisiert werden, ähnlich wie bei Perzeptronen. In diesem Fall bewegt uns die Gewichtsänderung in Richtung der durch die Trainingsfälle gebildeten Einschränkungsebenen.

Indem wir zwischen den Trainingsfällen wechseln, können wir uns im Zickzack auf den Lösungspunkt zubewegen, an dem sich die Einschränkungslinien schneiden, und so die Gewichte angeben, die beide Fälle erfüllen. Darüber hinaus ermöglicht uns die Untersuchung der Fehleroberfläche, die Bedingungen zu verstehen, die zu langsamem Lernen führen. Wenn die Ellipse, die die Konturlinien darstellt, stark verlängert ist, was der Fall ist, wenn die Linien, die zwei Trainingsfällen entsprechen, nahezu parallel sind, weist der Gradient eine ungünstige Eigenschaft auf. Der Gradient wird groß in die Richtung, in der wir uns nicht weit bewegen wollen, und klein in die Richtung, in der wir deutliche Fortschritte machen wollen. Diese Nichtübereinstimmung behindert effizientes Lernen und macht es schwierig, die schluchtartige Struktur der Fehleroberfläche entlang ihrer Längsachse zu durchqueren.

Die Visualisierung der Fehleroberfläche eines linearen Neurons liefert wertvolle Einblicke in den Lernprozess. Das Verständnis der Geometrie der Oberfläche hilft uns, das Verhalten der Delta-Regel und ihre Auswirkungen auf die Lerngeschwindigkeit zu verstehen.

Lecture 3.2 — The error surface for a linear neuron [Neural Networks for Machine Learning]
Lecture 3.2 — The error surface for a linear neuron [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 3.3 – Gewichte des logistischen Ausgabeneurons lernen


Vorlesung 3.3 – Lerngewichte logistischer Ausgabeneuronen [Neuronale Netze für maschinelles Lernen]

Um die Lernregel von einem linearen Neuron auf mehrschichtige Netzwerke nichtlinearer Neuronen auszudehnen, müssen wir zwei Schritte unternehmen. Zunächst müssen wir die Lernregel für ein einzelnes nichtlineares Neuron, insbesondere ein logistisches Neuron, verallgemeinern. Während als Beispiel logistische Neuronen verwendet werden, könnten auch andere Arten nichtlinearer Neuronen eingesetzt werden.

Ein logistisches Neuron berechnet seinen Logit, der als z bezeichnet wird und die Summe seines Bias und der gewichteten Summe seiner Eingabezeilen ist. Die mit y bezeichnete Ausgabe ist eine glatte nichtlineare Funktion des Logit. In der Grafik ist zu erkennen, dass die Funktion gegen Null geht, wenn z groß und negativ ist, gegen Eins geht, wenn z groß und positiv ist, und dazwischen glatte und nichtlineare Änderungen aufweist. Die Kontinuität der Logistikfunktion bietet praktische Ableitungen für das Lernen. Um die Ableitungen eines logistischen Neurons in Bezug auf die Gewichte zu erhalten (was für das Lernen von entscheidender Bedeutung ist), berechnen wir zunächst die Ableitung des Logits selbst in Bezug auf ein Gewicht. Diese Ableitung lässt sich vereinfacht auf den Wert in der Eingabezeile zurückführen, der als xi bezeichnet wird. Ebenso ist die Ableitung des Logit nach xi das Gewicht wi.

Die Ableitung der Ausgabe nach dem Logit kann durch die Ausgabe selbst ausgedrückt werden. Insbesondere wenn die Ausgabe als y dargestellt wird, ist dy/dz durch y * (1 - y) gegeben. Die mathematische Ableitung dieses Ergebnisses wird auf der nächsten Folie bereitgestellt und erfordert langwierige, aber unkomplizierte Berechnungen. Nachdem wir die Ableitung der Ausgabe nach dem Logit und die Ableitung des Logit nach dem Gewicht erhalten haben, können wir nun die Ableitung der Ausgabe nach dem Gewicht bestimmen. Durch Anwendung der Kettenregel haben wir dz/dw als xi und dy/dz als y * (1 - y). Folglich gelangen wir zu einer Lernregel für ein logistisches Neuron, die der Delta-Regel sehr ähnelt.

Die Änderung des Fehlers, bezeichnet als de/dwi, wenn wir eine Gewichtung ändern, wird durch Summieren des Produkts aus dem Wert auf einer Eingabezeile (xin) und dem Residuum, das die Differenz dazwischen darstellt, über alle Trainingsfälle (n) ermittelt die Zielausgabe und die tatsächliche Ausgabe des Neurons. Es gibt jedoch einen zusätzlichen Term, der sich aus der Steigung der logistischen Funktion ergibt, nämlich yn * (1 - yn). Mit dieser geringfügigen Modifikation der Delta-Regel gelangen wir zur Gradientenabstiegs-Lernregel für das Training eines logistischen Neurons.

Durch die Anwendung der Gradientenabstiegs-Lernregel auf ein logistisches Neuron können wir mehrschichtige Netzwerke nichtlinearer Neuronen effektiv trainieren. Dies erweitert die Lernregel über lineare Systeme hinaus und ermöglicht uns die Bewältigung komplexerer Aufgaben. Um zu verstehen, wie diese Lernregel im Kontext mehrschichtiger Netzwerke funktioniert, betrachten wir als Beispiel ein einfaches zweischichtiges Netzwerk. Wir haben eine Eingabeschicht mit mehreren Neuronen und eine Ausgabeschicht mit einem einzelnen Logistikneuron. Die Gewichte zwischen den Schichten werden mit W und die Bias mit b bezeichnet.

Der Lernprozess umfasst zwei Schritte. Zuerst berechnen wir die Ausgabe des Netzwerks für eine gegebene Eingabe. Dies geschieht durch die Weiterleitung der Eingaben durch das Netzwerk, die Anwendung der logistischen Funktion auf die Gesamteingabe (Logit) jedes Neurons und das Erhalten der endgültigen Ausgabe. Als nächstes berechnen wir die Gradienten des Fehlers in Bezug auf die Gewichte mithilfe der Kettenregel. Ausgehend von der Ausgabeschicht berechnen wir die Ableitung des Fehlers in Bezug auf die Ausgabe, die einfach die Differenz zwischen der Zielausgabe und der tatsächlichen Ausgabe des Netzwerks ist. Anschließend verbreiten wir diesen Fehlergradienten rückwärts durch das Netzwerk und multiplizieren ihn mit der Ableitung der logistischen Funktion an jedem Neuron, um die Gradienten auf der verborgenen Schicht zu erhalten. Schließlich aktualisieren wir die Gewichte mithilfe der berechneten Gradienten und einer Lernrate. Die Lernrate bestimmt die Schrittgröße bei der Gewichtsaktualisierung und kann angepasst werden, um die Lerngeschwindigkeit zu steuern. Die Gewichtsaktualisierung folgt der Gleichung: ΔW = Lernrate * Fehlergradient * Eingabe, wobei ΔW die Änderung der Gewichte darstellt.

Dieser Prozess der Vorwärtsausbreitung, Fehlerrückausbreitung und Gewichtsaktualisierung wird iterativ für eine festgelegte Anzahl von Epochen wiederholt oder bis das Netzwerk das gewünschte Leistungsniveau erreicht. Durch die iterative Anpassung der Gewichte lernt das Netzwerk nach und nach, bessere Vorhersagen zu treffen oder Eingaben genauer zu klassifizieren. Es ist wichtig zu beachten, dass die Lernregel, die wir für logistische Neuronen besprochen haben, auch auf andere Arten nichtlinearer Aktivierungsfunktionen verallgemeinert werden kann. Der Schlüssel besteht darin, die Ableitungen der Aktivierungsfunktionen genau zu berechnen, um die Fehlergradienten effektiv durch das Netzwerk zu verbreiten.

Indem wir die Lernregel von linearen Neuronen auf logistische Neuronen erweitern und auf mehrschichtige Netzwerke anwenden, können wir komplexe nichtlineare Modelle trainieren. Dadurch können wir eine Vielzahl von Aufgaben lösen, darunter Mustererkennung, Klassifizierung und Regression, indem wir die Gewichte basierend auf den Fehlergradienten iterativ anpassen.

Lecture 3.3 — Learning weights of logistic output neuron [Neural Networks for Machine Learning]
Lecture 3.3 — Learning weights of logistic output neuron [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 3.4 – Der Backpropagation-Algorithmus



Vorlesung 3.4 – Der Backpropagation-Algorithmus [Neuronale Netze für maschinelles Lernen]

Nachdem wir nun die vorbereitenden Schritte behandelt haben, wollen wir uns mit der zentralen Frage des Erlernens mehrerer Funktionsebenen befassen. In diesem Video beschreiben wir abschließend den Backpropagation-Algorithmus, der in den 1980er Jahren aufkam und ein wachsendes Interesse an neuronalen Netzen auslöste.

Bevor wir uns mit der Backpropagation befassen, wollen wir zunächst einen anderen Algorithmus besprechen, der nicht so effektiv, aber erwähnenswert ist. Sobald wir wissen, wie man die Gewichte einer Logistikeinheit lernt, besteht die nächste Herausforderung darin, die Gewichte versteckter Einheiten zu lernen. Neuronale Netze ohne versteckte Einheiten sind hinsichtlich der Eingabe-Ausgabe-Zuordnungen, die sie modellieren können, begrenzt. Während eine Schicht handcodierter Funktionen, beispielsweise in einem Perzeptron, die Leistungsfähigkeit des Netzwerks steigert, bleibt das Entwerfen dieser Funktionen für eine neue Aufgabe ein schwieriger und manueller Prozess.

Im Idealfall möchten wir die Feature-Design-Schleife automatisieren, sodass der Computer gute Features finden kann, ohne dass menschliche Erkenntnisse oder wiederholte Versuche und Irrtümer erforderlich sind. Hier kommt mir das Konzept des Lernens durch Verändern der Gewichte in den Sinn. Das zufällige Verändern eines Gewichts ähnelt einer Mutation, und wir können beobachten, ob dadurch die Leistung des Netzwerks verbessert wird. Wenn sich die Leistung verbessert, speichern wir diese Gewichtsveränderung, was einer Form des verstärkenden Lernens ähnelt.

Diese Methode ist jedoch äußerst ineffizient. Um zu beurteilen, ob die Änderung einer Gewichtung das Netzwerk verbessert, sind mehrere Vorwärtsdurchläufe für einen repräsentativen Satz von Trainingsfällen erforderlich. Die Auswirkungen einer Gewichtsveränderung anhand eines einzelnen Trainingsfalls zu beurteilen, ist unzureichend. Darüber hinaus verschlimmern große Gewichtungsänderungen mit fortschreitendem Lernen die Situation tendenziell, da die richtigen relativen Werte zwischen den Gewichten entscheidend sind. Gegen Ende des Lernprozesses ist es nicht nur zeitaufwändig, jede Gewichtsveränderung auszuwerten, sondern die Änderungen selbst müssen auch klein sein.

Es gibt etwas bessere Möglichkeiten, Störungen zum Lernen zu nutzen. Ein Ansatz besteht darin, alle Gewichte parallel zu stören und dann den Leistungszuwachs mit den Gewichtsänderungen zu korrelieren. Diese Methode bringt jedoch keine wesentliche Verbesserung. Die Herausforderung liegt in der Notwendigkeit zahlreicher Versuche mit unterschiedlichen zufälligen Störungen aller Gewichte, um die Auswirkung der Änderung eines Gewichts inmitten des durch die Änderung der anderen verursachten Rauschens zu isolieren.

Ein alternativer Ansatz, der eine gewisse Verbesserung zeigt, besteht darin, die Aktivitäten versteckter Einheiten anstelle der Gewichte zufällig zu stören. Sobald festgestellt wird, dass die Störung der Aktivität einer versteckten Einheit in einem bestimmten Trainingsfall die Leistung verbessert, können die Gewichtsänderungen berechnet werden. Da es weniger Aktivitäten als Gewichte gibt, wird der Algorithmus effizienter. Allerdings übertrifft die Backpropagation diese Methoden immer noch an Effizienz, und zwar um einen Faktor, der der Anzahl der Neuronen im Netzwerk entspricht.

Die Kernidee der Backpropagation besteht darin, dass wir zwar nicht wissen, was die verborgenen Einheiten tun sollen (daher der Begriff „versteckt“), wir aber berechnen können, wie schnell sich der Fehler ändert, wenn wir die Aktivität einer verborgenen Einheit in einem bestimmten Trainingsfall ändern. Anstatt die Aktivitäten verborgener Einheiten als gewünschte Zustände zu verwenden, verwenden wir die Fehlerableitungen in Bezug auf die Aktivitäten. Da jede verborgene Einheit mehrere Ausgabeeinheiten beeinflussen kann, müssen ihre Effekte kombiniert werden, was effizient möglich ist.

Um den Backpropagation-Algorithmus für einen einzelnen Trainingsfall zusammenzufassen, definieren wir zunächst den Fehler als die quadrierte Differenz zwischen den Zielwerten der Ausgabeeinheiten und den vom Netzwerk erzeugten tatsächlichen Werten. Indem wir diesen Fehler differenzieren, erhalten wir den Ausdruck dafür, wie sich der Fehler in Bezug auf die Ausgabe einer Ausgabeeinheit ändert. Anschließend können wir die Fehlerableitungen für die verborgenen Einheiten berechnen, indem wir die Auswirkungen aller ausgehenden Verbindungen von der verborgenen Einheit unter Verwendung der zuvor berechneten Fehlerableitungen der darüber liegenden Ebene summieren.

Der Backpropagation-Algorithmus ermöglicht es uns, die Fehlerableitungen effizient von einer Schicht zur vorherigen Schicht zu übertragen. Sobald wir die Fehlerableitungen für die verborgenen Einheiten haben, können wir die Fehlerableitungen für die Gewichte, die in eine verborgene Einheit kommen, leicht berechnen. Dies erfolgt durch Multiplikation der Fehlerableitung in Bezug auf die gesamte von der Einheit empfangene Eingabe mit der Aktivität der Einheit in der darunter liegenden Schicht. Die berechneten Fehlerableitungen für die Gewichte stellen dar, wie sich der Fehler ändert, wenn wir ein bestimmtes Gewicht ändern.

Lassen Sie uns nun die Schritte des Backpropagation-Algorithmus für einen einzelnen Trainingsfall skizzieren:

  1. Definieren Sie den Fehler als die quadrierte Differenz zwischen den Zielwerten und den tatsächlichen Ausgabewerten des Netzwerks.

  2. Berechnen Sie die Fehlerableitung in Bezug auf die Ausgabe jeder Ausgabeeinheit, indem Sie die Kettenregel anwenden, bei der die Ableitung der Ausgabe in Bezug auf die Gesamteingabe mit der Fehlerableitung in Bezug auf die Ausgabe multipliziert wird.

  3. Berechnen Sie die Fehlerableitung in Bezug auf die Ausgabe jeder verborgenen Einheit, indem Sie die Auswirkungen aller ausgehenden Verbindungen von der verborgenen Einheit summieren. Dies beinhaltet die Multiplikation der Gewichtung jeder Verbindung mit der in der darüber liegenden Ebene berechneten Fehlerableitung.

  4. Wiederholen Sie Schritt 3 für alle verborgenen Schichten und verbreiten Sie die Fehlerableitungen rückwärts durch das Netzwerk.

  5. Berechnen Sie die Fehlerableitungen für die Gewichte, die in jede Einheit eingehen. Dies erfolgt durch Multiplikation der Fehlerableitung in Bezug auf die gesamte von der Einheit empfangene Eingabe mit der Aktivität der Einheit in der darunter liegenden Schicht.

Indem wir diese Schritte befolgen, können wir die Fehlerableitungen für alle Gewichte im Netzwerk basierend auf einem einzigen Trainingsfall effizient berechnen. Der Backpropagation-Algorithmus ermöglicht es uns zu verstehen, wie sich die Änderung jedes Gewichts auf den Gesamtfehler auswirkt, und erleichtert den Lernprozess. Das Verständnis und die Implementierung des Backpropagation-Algorithmus sind entscheidend für das Training tiefer neuronaler Netze mit mehreren Funktionsebenen. Während diese Erklärung möglicherweise ein sorgfältiges Studium erfordert, ist das Verständnis der zugrunde liegenden Konzepte und Berechnungen für die effektive Nutzung der Backpropagation beim Training neuronaler Netzwerke von entscheidender Bedeutung.

Nachdem wir mithilfe des Backpropagation-Algorithmus die Fehlerableitungen für alle Gewichte im Netzwerk berechnet haben, können wir diese Informationen verwenden, um die Gewichte zu aktualisieren und die Leistung des Netzwerks zu verbessern. Dieser Vorgang wird als Gewichtsanpassung oder Gewichtsaktualisierung bezeichnet. Bei der Gewichtsaktualisierung wird in der Regel ein Optimierungsalgorithmus wie etwa ein Gradientenabstieg verwendet, um die Gewichte iterativ in die Richtung anzupassen, die den Fehler minimiert. Die Grundidee besteht darin, jedes Gewicht zu aktualisieren, indem ein kleiner Bruchteil seiner entsprechenden Fehlerableitung subtrahiert und mit einem Lernratenparameter multipliziert wird.

Die Lernrate bestimmt die Schrittgröße im Gewichtsraum und beeinflusst die Konvergenzgeschwindigkeit des Trainingsprozesses. Die Wahl einer geeigneten Lernrate ist wichtig, um ein stabiles und effizientes Lernen zu gewährleisten. Eine zu große Lernrate kann dazu führen, dass die Gewichte divergieren, während eine zu kleine Lernrate zu einer langsamen Konvergenz führen kann. Während des Gewichtsaktualisierungsprozesses ist es üblich, die Gewichte in kleinen Mengen oder sogar jeweils nur für ein einzelnes Trainingsbeispiel zu aktualisieren. Dieser Ansatz ist als stochastischer Gradientenabstieg oder Mini-Batch-Gradientenabstieg bekannt und trägt dazu bei, den Lernprozess zu beschleunigen und zu vermeiden, dass man in lokalen Optima stecken bleibt.

Der Gewichtungsaktualisierungsprozess wird normalerweise für mehrere Epochen wiederholt, wobei jede Epoche aus dem Durchlaufen des gesamten Trainingsdatensatzes besteht. Dadurch kann das Netzwerk die Gewichtungen basierend auf den akkumulierten Fehlern mehrerer Trainingsbeispiele schrittweise anpassen und so seine Generalisierungsleistung verbessern. Es ist wichtig zu beachten, dass Backpropagation und Gewichtsaktualisierung während der Trainingsphase eines neuronalen Netzwerks durchgeführt werden. Sobald das Netzwerk trainiert ist, kann es für Vorhersagen zu neuen, unsichtbaren Daten verwendet werden, indem einfach die Eingabe durch das Netzwerk geleitet und die Ausgabe erhalten wird.

Backpropagation und die Fähigkeit, mehrere Funktionsebenen zu lernen, waren entscheidend für den Erfolg von Deep Learning. Mit dem Backpropagation-Algorithmus können neuronale Netze automatisch komplexe Darstellungen von Daten lernen und so eine Vielzahl von Aufgaben lösen, darunter Bild- und Spracherkennung, Verarbeitung natürlicher Sprache und mehr.

Der Backpropagation-Algorithmus ist eine leistungsstarke Technik zur effizienten Berechnung von Fehlerableitungen in neuronalen Netzen mit mehreren Schichten. Indem wir die Fehlerinformationen rückwärts durch das Netzwerk weiterleiten, können wir bestimmen, wie sich Änderungen der Gewichte auf den Gesamtfehler auswirken. Diese Informationen werden dann verwendet, um die Gewichtungen iterativ zu aktualisieren, sodass das Netzwerk lernen und seine Leistung im Laufe der Zeit verbessern kann.

Lecture 3.4 — The backpropagation algorithm [Neural Networks for Machine Learning]
Lecture 3.4 — The backpropagation algorithm [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 3.5 – Verwendung der Ableitungen aus der Backpropagation



Vorlesung 3.5 – Verwendung der Ableitungen der Backpropagation [Neuronale Netze für maschinelles Lernen]

Um in mehrschichtigen neuronalen Netzen effizient zu lernen, ist es entscheidend, die Fehlerableitungen für alle Gewichte zu ermitteln. Es müssen jedoch noch mehrere andere Überlegungen berücksichtigt werden, um ein Lernverfahren vollständig zu spezifizieren.

Eine dieser Überlegungen besteht darin, die Häufigkeit von Gewichtsaktualisierungen zu bestimmen und eine Überanpassung bei Verwendung eines großen Netzwerks zu verhindern. Der Backpropagation-Algorithmus berechnet effizient die Ableitungen für jedes Gewicht basierend auf einem einzelnen Trainingsfall, es handelt sich jedoch nicht um einen vollständigen Lernalgorithmus. Um ein geeignetes Lernverfahren zu entwickeln, müssen zusätzliche Faktoren spezifiziert werden.

Optimierungsprobleme spielen eine Rolle, wenn die Gewichtsableitungen verwendet werden, um einen optimalen Satz von Gewichten zu ermitteln. Eine Frage ist, wie oft die Gewichte aktualisiert werden sollten. Ein Ansatz besteht darin, die Gewichte nach jedem Trainingsfall zu aktualisieren, was aufgrund unterschiedlicher Fehlerableitungen zu einem Zickzackmuster führt. Im Durchschnitt können jedoch kleine Gewichtsveränderungen in die richtige Richtung führen. Alternativ besteht das vollständige Batch-Training darin, die gesamten Trainingsdaten durchzugehen, die Fehlerableitungen einzelner Fälle zusammenzufassen und einen kleinen Schritt in diese Richtung zu machen. Dieser Ansatz kann jedoch rechenintensiv sein, insbesondere wenn die Anfangsgewichte schlecht sind. Mini-Batch-Lernen bietet einen Kompromiss, indem eine kleine Stichprobe von Trainingsfällen zufällig ausgewählt wird, um die Gewichte zu aktualisieren. Dies reduziert die Zickzackbewegung und ist dennoch recheneffizient, weshalb es häufig zum Training großer neuronaler Netze auf großen Datensätzen verwendet wird.

Die Bestimmung des Ausmaßes von Gewichtsaktualisierungen ist ein weiteres Optimierungsproblem. Anstatt manuell eine feste Lernrate auszuwählen, ist es oft sinnvoller, die Lernrate anzupassen. Wenn beispielsweise der Fehler schwankt, kann die Lernrate reduziert werden, wohingegen bei stetigen Fortschritten die Lernrate erhöht werden kann. Es ist sogar möglich, verschiedenen Verbindungen im Netzwerk unterschiedliche Lernraten zuzuweisen, damit einige Gewichtungen schneller lernen als andere. Darüber hinaus kann es sinnvoll sein, alternative Richtungen zu erkunden, die zu einer besseren Konvergenz führen, anstatt sich strikt an die Richtung des steilsten Abstiegs zu halten. Allerdings kann es schwierig sein, diese alternativen Richtungen zu finden.

Die zweite Gruppe von Problemen bezieht sich darauf, wie gut sich die erlernten Gewichte auf unbekannte Fälle übertragen lassen. Trainingsdaten enthalten sowohl Informationen über Regelmäßigkeiten als auch zwei Arten von Rauschen. Bei der ersten Art handelt es sich um unzuverlässige Zielwerte, was normalerweise ein untergeordnetes Problem darstellt. Die zweite Art sind Stichprobenfehler, bei denen aufgrund der ausgewählten spezifischen Trainingsfälle zufällige Regelmäßigkeiten auftreten können. Modelle können nicht zwischen zufälligen Regelmäßigkeiten und echten Regelmäßigkeiten unterscheiden, die sich gut verallgemeinern lassen. Daher neigen Modelle dazu, beide Arten von Regelmäßigkeiten zu erfüllen, was zu einer schlechten Verallgemeinerung führt, wenn das Modell zu komplex ist.

Um der Überanpassung entgegenzuwirken, wurden verschiedene Techniken für neuronale Netze und andere Modelle entwickelt. Zu diesen Techniken gehören die Gewichtsabnahme, bei der die Gewichte klein oder auf Null gehalten werden, um das Modell zu vereinfachen, und die Gewichtsverteilung, bei der viele Gewichte den gleichen Wert haben, um die Komplexität zu reduzieren. Beim frühzeitigen Stoppen wird ein gefälschter Testsatz während des Trainings überwacht und gestoppt, wenn sich die Leistung des gefälschten Testsatzes zu verschlechtern beginnt. Bei der Modellmittelung werden mehrere neuronale Netze trainiert und ihre Vorhersagen gemittelt, um Fehler zu reduzieren. Die Bayes'sche Anpassung neuronaler Netze ist eine Form der Modellmittelung, die Bayes'sche Prinzipien berücksichtigt. Dropout ist eine Technik, die die Robustheit des Modells erhöht, indem versteckte Einheiten während des Trainings zufällig weggelassen werden. Generatives Vortraining, ein fortgeschrittenerer Ansatz, wird später im Kurs besprochen.

Das Erhalten von Fehlerableitungen für alle Gewichte in einem mehrschichtigen Netzwerk ist für effizientes Lernen von entscheidender Bedeutung. Um jedoch ein vollständiges Lernverfahren zu entwickeln, müssen andere Faktoren wie die Häufigkeit der Gewichtsaktualisierung, die Verhinderung einer Überanpassung, Optimierungstechniken und die Verallgemeinerung auf unbekannte Fälle berücksichtigt und berücksichtigt werden.

Lecture 3.5 — Using the derivatives from backpropagation [Neural Networks for Machine Learning]
Lecture 3.5 — Using the derivatives from backpropagation [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 4.1 – Lernen, das nächste Wort vorherzusagen



Vorlesung 4.1 – Lernen, das nächste Wort vorherzusagen [Neuronale Netze für maschinelles Lernen]

Die kommenden Videos konzentrieren sich auf die Verwendung des Backpropagation-Algorithmus, um die Bedeutung eines Wortes durch Merkmalsdarstellung zu lernen. In dieser Einführung beginnen wir mit einem einfachen Fall aus den 1980er Jahren, um zu veranschaulichen, wie relationale Informationen mithilfe von Backpropagation in Merkmalsvektoren umgewandelt werden können.

Der Fall betrifft zwei Stammbäume, einen englischen und einen italienischen, mit ähnlicher Struktur. Indem wir die Informationen in diesen Stammbäumen als Aussagen unter Verwendung spezifischer Beziehungen (z. B. Sohn, Tochter, Vater, Mutter) ausdrücken, können wir die Aufgabe, diese relationalen Informationen zu lernen, als das Finden von Regelmäßigkeiten innerhalb einer Reihe von Tripeln betrachten.

Anstatt nach symbolischen Regeln zu suchen, können wir ein neuronales Netzwerk verwenden, um diese Informationen zu erfassen, indem wir aus den ersten beiden Termen den dritten Term eines Tripels vorhersagen. Die Architektur des Netzwerks besteht aus mehreren Schichten, die darauf ausgelegt sind, interessante Darstellungen zu lernen. Wir verschlüsseln die Informationen mithilfe einer neutralen Darstellung und stellen so sicher, dass alle Personen als eigenständige Einheiten behandelt werden.

Das Netzwerk lernt, indem es eine Reihe von Vorschlägen trainiert und die Gewichte mithilfe von Backpropagation schrittweise anpasst. Wir können die verborgene Schicht untersuchen, die für die Kodierung von Person Eins verantwortlich ist, um die erlernten Darstellungen zu verstehen. Verschiedene Einheiten in dieser Ebene offenbaren Merkmale wie die Nationalität, die Generation und den Zweig des Familienstammbaums der Person.

Diese Funktionen sind nützlich für die Vorhersage der Ausgabeperson, da sie Regelmäßigkeiten in der Domäne erfassen. Das Netzwerk erkennt diese Merkmale selbstständig und ohne explizite Anleitung. Die mittlere Schicht des Netzwerks kombiniert die Merkmale der Eingabeperson und die Beziehungsmerkmale, um die Merkmale der Ausgabeperson vorherzusagen.

Die Leistung des Netzwerks kann beurteilt werden, indem man es an unvollständigen Tripeln testet und beobachtet, wie gut es verallgemeinert. Mit begrenzten Trainingsdaten wird eine gute Genauigkeitsrate für eine 24-Wege-Auswahl erreicht. Wenn es auf einem größeren Datensatz trainiert wird, kann es aus einem kleineren Teil der Daten verallgemeinern.

Während es sich bei dem hier vorgestellten Beispiel um einen Spielzeugfall handelt, können wir in der Praxis ähnliche Techniken auf Datenbanken anwenden, die Millionen relationaler Fakten enthalten. Indem wir ein Netzwerk trainieren, um Merkmalsvektordarstellungen von Entitäten und Beziehungen zu entdecken, können wir die Datenbank effektiv bereinigen und validieren.

Anstatt den dritten Term aus den ersten beiden vorherzusagen, können wir die Wahrscheinlichkeit der Richtigkeit einer Tatsache auch anhand mehrerer Terme abschätzen. Dieser Ansatz erfordert Beispiele für sowohl richtige als auch falsche Fakten für das Training.

Durch den Einsatz von Backpropagation und neuronalen Netzen können wir aus relationalen Informationen sinnvolle Darstellungen lernen und Vorhersagen treffen oder die Plausibilität von Fakten in einer Datenbank bewerten.

Um ein neuronales Netzwerk zu trainieren, um die Wahrscheinlichkeit der Richtigkeit einer Tatsache abzuschätzen, ist ein Datensatz erforderlich, der eine Vielzahl korrekter Fakten und eine zuverlässige Quelle falscher Fakten enthält. Indem das Netzwerk mit korrekten Beispielen präsentiert und zu einem hohen Output ermutigt wird und es mit falschen Beispielen konfrontiert wird und zu einem niedrigen Output ermutigt wird, kann es lernen, zwischen plausiblen und unplausiblen Fakten zu unterscheiden.

Dieser Ansatz bietet ein leistungsstarkes Tool zum Bereinigen von Datenbanken. Das Netzwerk kann potenziell falsche oder verdächtige Fakten kennzeichnen und so weitere Untersuchungen und Überprüfungen ermöglichen. Wenn in der Datenbank beispielsweise angegeben ist, dass Bach im Jahr 1902 geboren wurde, könnte das Netzwerk dies aufgrund der Beziehungen und anderer damit zusammenhängender Fakten, die es erfahren hat, als höchst unglaubwürdig einstufen.

Mit der Weiterentwicklung der Computerleistung und der Verfügbarkeit riesiger Datenbanken mit Millionen relationaler Fakten ist die Anwendung neuronaler Netze zur Entdeckung von Merkmalsvektordarstellungen praktischer geworden. Indem wir die Fähigkeit neuronaler Netze nutzen, komplexe Muster und Beziehungen zu lernen, können wir wertvolle Erkenntnisse gewinnen und auf der Grundlage der erlernten Darstellungen Vorhersagen treffen.

Es ist erwähnenswert, dass das hier diskutierte Beispiel in den 1980er Jahren durchgeführt wurde, um die Fähigkeiten von Backpropagation und neuronalen Netzen zu demonstrieren. Seitdem hat das Gebiet erhebliche Fortschritte gemacht und Forscher haben ähnliche Techniken auf verschiedene Bereiche angewendet, darunter die Verarbeitung natürlicher Sprache, Computer Vision und Empfehlungssysteme.

Zusammenfassend lässt sich sagen, dass die Verwendung des Backpropagation-Algorithmus und neuronaler Netze zum Erlernen von Merkmalsdarstellungen aus relationalen Informationen einen leistungsstarken Ansatz zum Verstehen und Erstellen von Vorhersagen auf der Grundlage komplexer Datensätze darstellt. Indem wir das Netzwerk anhand von Beispielen richtiger und falscher Fakten trainieren, können wir seine Fähigkeiten nutzen, um die Qualität von Datenbanken zu validieren und zu verbessern und sie so zuverlässiger und nützlicher für verschiedene Anwendungen zu machen.

Lecture 4.1 — Learning to predict the next word [Neural Networks for Machine Learning]
Lecture 4.1 — Learning to predict the next word [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 4.2 – Ein kurzer Ausflug in die Kognitionswissenschaft



Vorlesung 4.2 – Ein kurzer Ausflug in die Kognitionswissenschaft [Neuronale Netze für maschinelles Lernen]

In der Kognitionswissenschaft gibt es seit langem eine Debatte über die Beziehung zwischen Merkmalsvektordarstellungen und relationalen Darstellungen von Konzepten. Da diese Debatte für Ingenieure nicht besonders interessant ist, können sie diese Diskussion überspringen.

Die Merkmalstheorie geht davon aus, dass Konzepte durch eine Reihe semantischer Merkmale definiert werden, was für die Erklärung von Ähnlichkeiten zwischen Konzepten und für maschinelles Lernen nützlich ist. Andererseits argumentiert die strukturalistische Theorie, dass die Bedeutung eines Konzepts in seinen Beziehungen zu anderen Konzepten liegt, was eine relationale Graphendarstellung begünstigt.

In den 1970er Jahren nutzte Marvin Minsky die Einschränkungen von Perzeptronen, um für die Darstellung relationaler Graphen zu plädieren. Beide Seiten der Debatte gelten jedoch als falsch, da sie die Theorien als Rivalen betrachten, obwohl sie tatsächlich integriert werden können.

Neuronale Netze können relationale Graphen mithilfe von Vektoren semantischer Merkmale implementieren. Beim Lernen von Stammbäumen gibt das neuronale Netzwerk Informationen ohne explizite Rückschlussregeln weiter. Die Antwort ist für das Netzwerk aufgrund des Einflusses probabilistischer Mikromerkmale und ihrer Wechselwirkungen intuitiv offensichtlich.

Während für bewusstes Denken explizite Regeln verwendet werden, geht es bei einem Großteil unseres gesunden Menschenverstandes und analogen Denkens darum, die Antwort „einfach zu sehen“, ohne bewusste Zwischenschritte vorzunehmen. Selbst beim bewussten Denken besteht Bedarf an einer Möglichkeit, schnell anwendbare Regeln zu identifizieren, um einen unendlichen Regress zu vermeiden.

Die Implementierung eines relationalen Graphen in einem neuronalen Netzwerk ist nicht so einfach wie die Zuweisung von Neuronen zu Graphknoten und Verbindungen zu binären Beziehungen. Verschiedene Arten von Beziehungen und ternäre Beziehungen stellen Herausforderungen dar. Die genaue Methode zur Implementierung relationalen Wissens in einem neuronalen Netzwerk ist noch ungewiss, aber es ist wahrscheinlich, dass mehrere Neuronen an der Darstellung jedes Konzepts beteiligt sind und eine verteilte Darstellung bilden, bei der viele-zu-viele-Zuordnungen zwischen Konzepten und Neuronen bestehen.

In einer verteilten Darstellung werden wahrscheinlich mehrere Neuronen verwendet, um jedes Konzept darzustellen, und jedes Neuron kann an der Darstellung mehrerer Konzepte beteiligt sein. Dieser als verteilte Darstellung bekannte Ansatz ermöglicht eine flexiblere und effizientere Kodierung von konzeptionellem Wissen in neuronalen Netzen.

Die spezifischen Implementierungsdetails zur Darstellung relationalen Wissens in einem neuronalen Netzwerk werden jedoch noch untersucht. Die Annahme, dass ein Neuron einem Knoten im relationalen Graphen entspricht und Verbindungen binäre Beziehungen darstellen, reicht nicht aus. Beziehungen gibt es in unterschiedlichen Arten und Ausprägungen, und neuronale Verbindungen haben nur Stärke, ihnen fehlt jedoch die Fähigkeit, verschiedene Beziehungstypen zu erfassen.

Darüber hinaus müssen auch ternäre Beziehungen wie „A ist zwischen B und C“ berücksichtigt werden. Der optimale Ansatz zur Integration relationalen Wissens in ein neuronales Netzwerk ist noch ungewiss, und die laufende Forschung zielt darauf ab, diese Herausforderung anzugehen.

Dennoch deuten die Beweise darauf hin, dass eine verteilte Darstellung an der Darstellung von Konzepten durch neuronale Netze beteiligt ist. Dieser Ansatz ermöglicht die Flexibilität und Fähigkeit, mit verschiedenen Konzepten und ihren Beziehungen umzugehen, und ebnet den Weg für eine anspruchsvollere kognitive Modellierung und ein besseres Verständnis im Bereich der Kognitionswissenschaft.

Lecture 4.2 — A brief diversion into cognitive science [Neural Networks for Machine Learning]
Lecture 4.2 — A brief diversion into cognitive science [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...