Startseite
Think
Themen
Backpropagation
Veröffentlicht: 2. Juli 2024
Mitwirkende: Dave Bergmann, Cole Stryker
Backpropagation ist eine Technik des maschinellen Lernens, die für die Optimierung künstlicher neuronaler Netze unerlässlich ist. Sie erleichtert die Verwendung von Gradientenabstiegs-Algorithmen zur Aktualisierung der Netzgewichtungen. Auf diese Weise „lernen“ die Deep Learning-Modelle, die die Grundlage der modernen künstlichen Intelligenz (KI) bilden.
Backpropagation ist die Abkürzung für „Backward Propagation of Error“ (Rückwärtsausbreitung von Fehlern) und eine elegante Methode, um zu berechnen, wie sich Änderungen an den Gewichten oder Verzerrungen eines neuronalen Netzes auf die Genauigkeit von Modellvorhersagen auswirken. Sie ist unerlässlich für die Verwendung von überwachtem Lernen, halbüberwachtem Lernen oder selbstüberwachtem Lernen, um neuronale Netze zu trainieren.
Während Äquivalente und Vorgänger der Backpropagation bereits seit den 1960er Jahren unabhängig voneinander in unterschiedlichen Zusammenhängen vorgeschlagen wurden, veröffentlichten David E. Rumelhart, Geoffrey Hinton und Ronald J. Williams als Erste den formalen Lernalgorithmus. Ihre Arbeit von 1986 mit dem Titel „Learning representations by back-propagating errors“ lieferte die Ableitung des Backpropagation-Algorithmus, wie er in einem modernen Kontext des maschinellen Lernens verwendet und verstanden wird.
Die Logik der Backpropagation besteht darin, dass die Neuronenschichten in künstlichen neuronalen Netzen im Wesentlichen eine Reihe verschachtelter mathematischer Funktionen sind. Während des Trainings werden diese miteinander verbundenen Gleichungen in eine weitere Funktion eingebettet: eine „Verlustfunktion“, die die Differenz (oder den „Verlust“) zwischen dem gewünschten Output (oder „Ground Truth“) für eine bestimmte Eingabe und dem tatsächlichen Output des neuronalen Netzes misst.
Wir können daher die „Kettenregel“, ein Prinzip der Analysis aus dem 17.Jahrhundert, anwenden, um den Anteil zu berechnen, mit dem jedes Neuron zum Gesamtverlust beiträgt. Auf diese Weise können wir die Auswirkungen von Änderungen auf jede Variable – das heißt auf jede Gewichtung oder Verzerrung – innerhalb der Gleichungen, die diese Neuronen darstellen, berechnen.
Mathematisch gesehen arbeitet die Backpropagation rückwärts von der Ausgabe, um den „Gradienten“ der Verlustfunktion effizient zu berechnen: einen Vektor von Ableitungen für jede Gleichung im Netz. Dieser Gradient teilt Optimierungsalgorithmen wie „Gradientenabstieg“ mit, welche Gleichungen und in welche Richtung sie angepasst werden sollen, um Verluste zu reduzieren.
Diese drei miteinander verwobenen Prozesse – eine Verlustfunktion, die Modellfehler über verschiedene Eingaben hinweg verfolgt, die Rückwärtsausbreitung dieses Fehlers, um zu sehen, wie verschiedene Teile des Netzwerks zum Fehler beitragen, und die Gradientenabstiegsalgorithmen, die die Modellgewichte entsprechend anpassen – stellen die Art und Weise dar, auf die Deep-Learning-Modelle „lernen“. Daher ist Backpropagation von grundlegender Bedeutung für das Training neuronaler Netzmodelle, von den einfachsten mehrschichtigen Perzeptronen bis hin zu den komplexen tiefen neuronalen Netzarchitekturen, die für generative KI verwendet werden.
Während die meisten Unternehmen sich über die Ergebnisse, die sie von generativer KI erwarten, im Klaren sind, kann die Wahl des falschen Modells Ihr Unternehmen stark beeinträchtigen. Erkunden Sie in diesem E-Book ein Framework für die Modellauswahl, um Leistungsanforderungen mit Kosten, Risiken, Bereitstellungs- sowie Stakeholder-Anforderungen in Einklang zu bringen.
Da der Prozess der Backpropagation für das Training neuronaler Netze so grundlegend ist, erfordert eine hilfreiche Erklärung des Prozesses ein tieferes Verständnis davon, wie neuronale Netze Vorhersagen treffen.
Vor allem ist es nützlich, den Zweck und den Kontext von „Gewichten“ und „Verzerrungen“ zu verstehen: die anpassbaren Modellparameter, die durch Backpropagation und Gradientenabstieg optimiert werden.
Neuronale Netze zielen darauf ab, die Struktur des menschlichen Gehirns in etwa nachzuahmen. Sie bestehen aus vielen miteinander verbundenen Knoten (oder Neuronen), die in Schichten angeordnet sind. Neuronale Netze treffen Vorhersagen, sobald die ursprünglichen Eingabedaten das gesamte Netz „vorwärts durchlaufen“ haben.
Neuronen in der „Eingabeschicht“ erhalten Eingabedaten, in der Regel als Vektoreinbettung, wobei jedes Eingangsneuron ein individuelles Merkmal des Eingabevektors erhält. Beispielsweise hat ein Modell, das mit Graustufenbildern mit 10x10 Pixeln arbeitet, in der Regel 100 Neuronen in seiner Eingabeschicht, wobei jedes Eingabeneuron einem einzelnen Pixel entspricht. Neuronale Netze benötigen daher typischerweise Eingaben mit fester Größe, obwohl Techniken wie Pooling oder Normalisierung eine gewisse Flexibilität bieten können.
In einem standardmäßigen vorwärtsgerichteten (Feedforward) neuronalen Netz ist jedes Neuron in der Eingabeschicht mit jedem der Neuronen in der folgenden Schicht verbunden, die ihrerseits mit den Neuronen in der nächsten Schicht verbunden sind, und so weiter bis zur Ausgabeschicht, in der endgültige Vorhersagen getroffen werden. Die Zwischenschichten zwischen der Eingabe- und der Ausgabeschicht, die versteckten Schichten des Netzwerks, sind der Ort, an dem der Großteil des „Lernens“ stattfindet.
Während einige spezialisierte neuronale Netzarchitekturen, wie z. B. eine Mischung aus Expertenmodellen oder konvolutionale neuronale Netze, Variationen, Ergänzungen oder Ausnahmen zu dieser einfachen Anordnung mit sich bringen, verwenden alle neuronalen Netze diese Kernstruktur.
Obwohl jedes Neuron eine Eingabe von jedem Knoten der vorherigen Schicht erhält, wird nicht allen diesen Eingaben die gleiche Bedeutung beigemessen. Jede Verbindung zwischen zwei Neuronen erhält ein eindeutiges „Gewicht“: ein Multiplikator, der den Beitrag eines Neurons zu einem Neuron in der folgenden Schicht erhöht oder verringert.
Jedem einzelnen Neuron kann auch eine „Verzerrung“ (Bias) zugewiesen werden: ein konstanter Wert, der zur Summe der gewichteten Eingaben der Neuronen in der vorherigen Schicht hinzugefügt wird.
Das ultimative Ziel der Backpropagation und des Gradientenabstiegs ist es, die Gewichte und Verzerrungen zu berechnen, die zu den besten Modellvorhersagen führen. Neuronen, die Datenmerkmalen entsprechen, die signifikant mit genauen Vorhersagen korrelieren, erhalten eine höhere Gewichtung; andere Verbindungen können eine Gewichtung erhalten, die gegen Null geht.
Moderne tiefe neuronale Netze, die oft über Dutzende von versteckten Schichten verfügen, die jeweils viele Neuronen enthalten, können Tausende, Millionen oder – im Falle der meisten großen Sprachmodelle (Large Language Models, LLMs) – Milliarden solcher anpassbaren Parameter umfassen.
Jedes Neuron ist so konfiguriert, dass es eine mathematische Operation, eine sogenannte „Aktivierungsfunktion“, an der Summe unterschiedlich gewichteter Eingaben durchführt, die es von Knoten in der vorherigen Schicht erhält. Aktivierungsfunktionen führen „Nichtlinearität“ ein und ermöglichen es dem Modell, komplexe Muster in Eingabedaten zu erfassen und Gradienten zu erzeugen, die optimiert werden können. Wenn nur lineare Aktivierungsfunktionen verwendet werden, wird das neuronale Netz im Grunde zu einem linearen Regressionsmodell reduziert.
Zu den gängigen Aktivierungsfunktionen in neuronalen Netzen gehören:
Stellen Sie sich eine hypothetische versteckte Einheit z mit einer tanh-Aktivierungsfunktion und einem Verzerrungsterm t in der zweiten Schicht eines neuronalen Netzes mit 3 Eingabeknoten, a, b und c, in seiner Eingabeschicht vor. Jede der Verbindungen zwischen den Eingabeknoten und dem Knoten z hat eine eindeutige Gewichtung, w. Wir können den Ausgabewert, den der Knoten z an die Neuronen in der nächsten Schicht weitergibt, mit der vereinfachten Gleichung z = tanh(waz*a + wbz*b + wcz*c + t) beschreiben.
Das Neuron z ist mit Neuronen in der nächsten Schicht verbunden. Diese Gleichung für z ist daher Teil der Aktivierungsfunktionen in der nächsten Schicht und damit auch Teil jeder Aktivierungsfunktion für jegliche Neuronen in den nachfolgenden Schichten.
Wie in den folgenden Abschnitten erläutert wird, ist Backpropagation ein bemerkenswert schneller und effizienter Algorithmus, um das massive Netz miteinander verbundener Variablen und Gleichungen in einem neuronalen Netzwerk zu entwirren.
Um die Effizienz von Backpropagation zu veranschaulichen, vergleicht Michael Nielsen sie in seinem Online-Lehrbuch „Neural Networks and Deep Learning“ mit einer einfachen und intuitiven Alternative zur Berechnung des Gradienten der Verlustfunktion eines neuronalen Netzes.
Wie Nielsen erklärt, kann man die Auswirkungen von Änderungen an einem bestimmten Gewicht wj im Netz leicht abschätzen, indem man einfach einen Vorwärtsdurchlauf für zwei leicht unterschiedliche Werte von wj durchführt, während alle anderen Parameter unverändert bleiben, und den resultierenden Verlust für jeden Durchlauf vergleicht. Indem Sie diesen Prozess in einer einfachen Gleichung formalisieren und einige Codezeilen in Python implementieren, können Sie diesen Prozess für jedes Gewicht im Netz automatisieren.
Stellen Sie sich nun aber vor, dass Ihr Modell 1 Million Gewichte enthält, was für ein modernes Deep-Learning-Modell recht bescheiden wäre. Um den gesamten Gradienten zu berechnen, müssten Sie 1.000.001 Vorwärtsdurchläufe durch das Netzwerk durchführen: einen, um einen Referenzwert zu etablieren, und dann einen weiteren Durchlauf, um die Änderungen an jedem der Million Gewichte auszuwerten.
Backpropagation kann dasselbe Ziel in 2 Durchläufen erreichen: 1 Vorwärtsdurchlauf und 1 Rückwärtsdurchlauf.
Um die Funktionsweise von Backpropagation zu vereinfachen, ist es hilfreich, zunächst kurz auf einige grundlegende mathematische Konzepte und Terminologie einzugehen.
Die Kettenregel ist für die Berechnung der Ableitungen von Aktivierungsfunktionen in neuronalen Netzen unerlässlich. Diese setzen sich aus den Ausgaben der Aktivierungsfunktionen anderer Neuronen in den vorherigen Schichten zusammen.
Obwohl die Logik hinter der Backpropagation relativ einfach ist, können die Mathematik und die Notation sehr komplex werden, insbesondere für diejenigen, die mit der Variablenrechnung nicht vertraut sind.
Die Backpropagation arbeitet rückwärts vom Output des Modells und wendet die „Kettenregel“ an, um den Einfluss von Änderungen an jedem einzelnen Parameter des neuronalen Netzes auf den Gesamtfehler der Modellvorhersagen zu berechnen.
Abstrakt ausgedrückt besteht der Zweck der Backpropagation darin, ein neuronales Netz zu trainieren, um durch überwachtes Lernen bessere Vorhersagen zu treffen. Grundsätzlich besteht das Ziel der Backpropagation darin, zu bestimmen, wie die Modellgewichte und Verzerrungen angepasst werden sollten, um den Fehler zu minimieren, der durch eine „Verlustfunktion“ gemessen wird.
Auf einer technischen, mathematischen Ebene besteht das Ziel der Backpropagation darin, den Gradienten der Verlustfunktion in Bezug auf jeden der einzelnen Parameter des neuronalen Netzes zu berechnen. Einfacher ausgedrückt: Backpropagation verwendet die Kettenregel, um die Geschwindigkeit zu berechnen, mit der sich der Verlust als Reaktion auf eine Änderung einer bestimmten Gewichtung (oder einer Verzerrung) im Netz ändert.
Im Allgemeinen umfasst das Training neuronaler Netze mit Backpropagation die folgenden Schritte:
Neuronale Netze geben Vorhersagen durch Vorwärtsausbreitung (Forward Propagation) aus. Die Forward Propagation ist im Wesentlichen eine lange Reihe verschachtelter Gleichungen, wobei die Outputs der Aktivierungsfunktionen einer Schicht von Neuronen als Input für die Aktivierungsfunktionen der Neuronen in der nächsten Schicht dienen.
Das Modelltraining beginnt in der Regel mit einer zufälligen Initialisierung von Gewichtungen und Verzerrungen. Modell-Hyperparameter wie die Anzahl der verborgenen Schichten, die Anzahl der Knoten in jeder Schicht und die Aktivierungsfunktionen für bestimmte Neuronen werden manuell konfiguriert und unterliegen keinem Training.
In jedem Vorwärtsdurchlauf wird eine Eingabe aus dem Trainingsdatensatz abgetastet. Die Knoten der Eingabeschicht erhalten den Eingabevektor, und jeder übergibt seinen Wert – multipliziert mit einer zufälligen Anfangsgewichtung – an die Knoten der ersten verborgenen Schicht. Die verborgenen Einheiten nehmen die gewichtete Summe dieser Ausgabewerte als Eingabe für eine Aktivierungsfunktion, deren Ausgabewert (bedingt durch ein zufälliges Anfangsgewicht) als Eingabe für die Neuronen in der nächsten Schicht dient. Dies setzt sich bis zur Ausgabeschicht fort, wo eine endgültige Vorhersage erfolgt.
Betrachten Sie dieses vereinfachte Beispiel eines neuronalen Netzes, das Eingaben in eine von 5 Kategorien einteilt:
In einem gut trainierten Netzwerk wird dieses Modell durchweg einen hohen Wahrscheinlichkeitswert für die richtige Klassifizierung und niedrige Wahrscheinlichkeitswerte für die anderen, falschen Klassifizierungen ausgeben. Dieses neuronale Netz ist jedoch noch nicht trainiert. Zu diesem Zeitpunkt haben seine Gewichtungen und Verzerrungen zufällige Anfangswerte, sodass seine Vorhersagen im Allgemeinen ungenau sind.
Nach jedem Vorwärtsdurchlauf misst eine „Verlustfunktion“ die Differenz (oder „Verlust“) zwischen der vorhergesagten Ausgabe des Modells für eine bestimmte Eingabe und den richtigen Vorhersagen (oder „Ground Truth“) für diese Eingabe. Mit anderen Worten, es misst, wie stark sich die tatsächliche Ausgabe des Modells von der gewünschten Ausgabe unterscheidet.
Beim überwachten Lernen, das gekennzeichnete Daten verwendet, wird die Ground Truth durch manuelle Anmerkungen bereitgestellt. Beim selbstüberwachten Lernen, das Teile von ungekennzeichneten Datenproben und Aufgabenmodellen maskiert oder transformiert, indem sie rekonstruiert werden, dient die ursprüngliche Stichprobe als Ground Truth.
Das Ziel dieser Verlustfunktion ist es, Ungenauigkeit so zu quantifizieren, dass sowohl die Art als auch das Ausmaß des Fehlers in der Ausgabe des Modells für jede Eingabe angemessen widergespiegelt werden. Verschiedene mathematische Formeln für Verluste eignen sich am besten für bestimmte Aufgaben: Varianten des mittleren quadratischen Fehlers eignen sich beispielsweise gut für Regressionsprobleme, während Varianten des Kreuzentropieverlusts gut für die Klassifizierung geeignet sind.
Da die Verlustfunktion die Ausgabe eines neuronalen Netzes als Eingabe nimmt und diese Ausgabe des neuronalen Netzes eine zusammengesetzte Funktion ist, die viele verschachtelte Aktivierungsfunktionen einzelner Neuronen umfasst, führt die Differenzierung der Verlustfunktion zur Differenzierung des gesamten neuronalen Netzes. Zu diesem Zweck wird bei der Backpropagation die Kettenregel verwendet.
„Verlustfunktion“, „Kostenfunktion“ oder „Fehlerfunktion“?
Es lohnt sich, kurz darauf hinzuweisen, dass in einigen Zusammenhängen die Begriffe Kostenfunktion oder Fehlerfunktion anstelle von Verlustfunktion verwendet werden, wobei „Kosten“ oder „Fehler“ den Begriff „Verlust“ ersetzen.
Auch wenn in der Literatur zum maschinellen Lernen jedem Begriff eine eigene Nuance zugewiesen wird, sind sie im Allgemeinen austauschbar.1 Eine Zielfunktion ist ein weiter gefasster Begriff für eine solche Bewertungsfunktion, die wir entweder minimieren oder maximieren wollen. Verlustfunktion, Kostenfunktion oder Fehlerfunktion beziehen sich speziell auf Terme, die wir minimieren wollen.
Ausgehend von der letzten Schicht differenziert ein „Rückwärtsdurchlauf“ die Verlustfunktion, um zu berechnen, wie jeder einzelne Parameter des Netzwerks zum Gesamtfehler für eine einzelne Eingabe beiträgt.
Um auf unser früheres Beispiel des Klassifizierungsmodells zurückzukommen: Wir beginnen mit den 5 Neuronen in der letzten Schicht, die wir Schicht L nennen. Der Softmax-Wert jedes Ausgabeneurons stellt die Wahrscheinlichkeit (von 1) dar, dass eine Eingabe zu ihrer Kategorie gehört. In einem perfekt trainierten Modell hätte das Neuron, das die korrekte Klassifizierung darstellt, einen Ausgabewert nahe 1 und die anderen Neuronen einen Ausgabewert nahe 0.
Im Moment konzentrieren wir uns auf die Ausgabeeinheit, die die korrekte Vorhersage darstellt, die wir Lc nennen.Die Aktivierungsfunktion von Lcist eine zusammengesetzte Funktion, die viele verschachtelte Aktivierungsfunktionen des gesamten neuronalen Netzes von der Eingabeschicht bis zur Ausgabeschicht enthält. Die Minimierung der Verlustfunktion würde bedeuten, dass im gesamten Netz Anpassungen vorgenommen werden müssten, die den Output der Aktivierungsfunktion von Lc näher an 1 bringen.
Um dies zu tun, müssen wir wissen, wie sich eine Änderung in den vorherigen Schichten auf die eigene Ausgabe von Lc auswirkt. Mit anderen Worten, wir müssen die partiellen Ableitungen der Aktivierungsfunktion von Lc finden.
Die Ausgabe der Aktivierungsfunktion von Lc hängt von den Beiträgen ab, die sie von Neuronen in der vorletzten Schicht erhält, die wir Schicht L-1 nennen.Eine Möglichkeit, die Ausgabe von Lc zu ändern, besteht darin, die Gewichtungen zwischen den Neuronen in L-1 und Lc zu ändern. Indem wir die partielle Ableitung jeder L-1-Gewichtung in Bezug auf die anderen Gewichtungen berechnen, können wir sehen, wie das Erhöhen oder Verringern einer von ihnen die Ausgabe von Lc näher an (oder weiter entfernt von) 1 bringt.
Aber das ist nicht die einzige Möglichkeit, die Ausgabe von Lc zu verändern. Die Beiträge, die Lc von L-1-Neuronen erhält, werden nicht nur durch die Gewichtungen bestimmt, die auf die Ausgabewerte von L-1 angewendet werden, sondern durch die tatsächlichen Ausgabewerte (vor der Gewichtung) selbst. Die Ausgabewerte der L-1-Neuronen wiederum werden durch Gewichtungen beeinflusst, die auf die Eingaben angewendet werden, die sie von L-2 erhalten.Wir können also die Aktivierungsfunktionen in L-1 differenzieren, um die partiellen Ableitungen der Gewichtungen zu finden, die auf die Beiträge von L-2 angewendet werden. Diese partiellen Ableitungen zeigen uns, wie sich jede Änderung an einer L-2-Gewichtung auf die Ausgaben in L-1 auswirkt, was sich anschließend auf den Ausgangswert von Lc und damit auf die Verlustfunktion auswirken würde.
Nach der gleichen Logik könnten wir auch die Ausgabewerte beeinflussen, die L-1-Neuronen von L-2-Neuronen erhalten, indem wir die Beiträge anpassen, die L-2-Neuronen von Neuronen in L-3 erhalten. Wir finden also die partiellen Ableitungen in L-3 und so weiter, wobei wir diesen Prozess rekursiv wiederholen, bis wir die Eingabeschicht erreicht haben. Wenn wir fertig sind, haben wir den Gradienten der Verlustfunktion: einen Vektor ihrer partiellen Ableitung für jeden Gewichtungs- und Verzerrungsparameter im Netz.
Wir haben jetzt einen Vorwärts- und einen Rückwärtsdurchlauf für ein einzelnes Trainingsbeispiel abgeschlossen. Unser Ziel ist es jedoch, das Modell so zu trainieren, dass es gut auf neue Eingaben verallgemeinert werden kann. Dazu muss es an einer großen Anzahl von Datenpunkten trainiert werden, die die Vielfalt und den Umfang der Eingaben widerspiegeln, für die das Modell nach dem Training Vorhersagen machen soll.
Jetzt, da wir die Gradienten der Verlustfunktion in Bezug auf jeden Gewichtungs- und Verzerrungsparameter im Netz haben, können wir die Verlustfunktion minimieren – und somit das Modell optimieren –, indem wir die Modellparameter mithilfe des Gradientenabstiegs aktualisieren.
Wenn Sie sich auf dem Gradienten der Verlustfunktion nach unten bewegen – also absteigen –, verringert sich der Verlust. Da der Gradient, den wir während der Backpropagation berechnet haben, die partiellen Ableitungen für jeden Modellparameter enthält, wissen wir, in welche Richtung wir jeden unserer Parameter „stufen“ müssen, um den Verlust zu reduzieren.
Jede Hoch- oder Abstufung spiegelt das „Lernen“ des Modells aus seinen Trainingsdaten wider. Unser Ziel ist es, die Gewichtungen iterativ zu aktualisieren, bis wir den minimalen Gradienten erreicht haben. Das Ziel von Gradientenabstiegsalgorithmen ist es, die spezifischen Parameteranpassungen zu finden, die uns am effizientesten den Gradienten hinunterbringen.
Lernrate
Die Größe jeder Hoch- oder Abstufung ist ein einstellbarer Hyperparameter, der als Lernrate bezeichnet wird.Die Wahl des richtigen Lerntempos ist wichtig für ein effizientes und effektives Training.
Sie wissen bereits, dass die Aktivierungsfunktionen in einem neuronalen Netz nicht linear sind. Einige Gradienten können ungefähr U-förmig sein: Wenn Sie in eine Richtung gehen, bewegen Sie sich auf dem Gradienten nach unten, aber wenn Sie in diese Richtung weitergehen, bewegen Sie sich schließlich auf dem Gradienten nach oben.
Eine niedrige Lernrate stellt sicher, dass wir immer in die richtige Richtung hoch- oder abstufen, aber die Berechnung so vieler Änderungen ist zeitaufwändig und rechenintensiv. Eine hohe Lernrate ist rechnerisch effizient, birgt aber das Risiko, dass das Minimum überschritten wird.
Batch-Größe
Eine weitere Überlegung beim Gradientenabstieg ist, wie oft die Gewichtungen aktualisiert werden sollen. Eine Möglichkeit besteht darin, die Gradienten für jedes Beispiel im Trainingsdatensatz zu berechnen, dann einen Durchschnitt dieser Gradienten zu bilden und ihn zum Aktualisieren der Parameter zu verwenden. Der Prozess wird iterativ in einer Reihe von Trainingsepochen wiederholt, bis sich die Fehlerquote stabilisiert hat. Diese Methode ist der Batch-Gradientenabstieg.
Wenn der Trainingsdatensatz sehr groß ist – wie es beim Deep Learning typischerweise der Fall ist –, führt der Batch-Gradientenabstieg zu unerschwinglich langen Verarbeitungszeiten. Das Berechnen von Gradienten für Millionen von Beispielen für jede Iteration von Gewichtungsaktualisierungen wird ineffizient. Beim stochastischen Gradientenabstieg (SGD) verwendet jede Epoche ein einziges Trainingsbeispiel für jeden Schritt. Der Verlust kann zwar von Epoche zu Epoche schwanken, nähert sich aber bei vielen Aktualisierungen schnell einem Minimum an.
Der Mini-Batch-Gradientenabstieg stellt einen Mittelweg dar. Trainingsbeispiele werden zufällig in Batches mit fester Größe abgetastet, und ihre Gradienten werden dann berechnet und gemittelt. Dies verringert die Speicheranforderungen des Batch-Gradientenabstiegs und reduziert gleichzeitig die relative Instabilität von SGD.
Trainieren, prüfen, optimieren und implementieren Sie generative KI, Foundation Models und maschinelles Lernen problemlos und erstellen Sie KI-Anwendungen in einem Bruchteil der Zeit und zu einem Bruchteil der Daten.
Stellen Sie sich die Art und Weise, wie Sie mit KI arbeiten, neu vor: Unser vielfältiges, globales Team von mehr als 20.000 KI-Experten kann Ihnen dabei helfen, KI und Automatisierung in Ihrem Unternehmen schnell und sicher zu entwerfen und zu skalieren, indem es mit unserer eigenen IBM watsonx-Technologie und einem offenen Ökosystem von Partnern arbeitet, um jedes KI-Modell in jeder Cloud bereitzustellen, geleitet von Ethik und Vertrauen.
Multiplizieren Sie mit unserer KI- und Datenplattform der nächsten Generation die Leistungsfähigkeit von KI.
Erlernen Sie die Grundlagen zum Aufbau neuronaler Netze, auch ohne die Hilfe von Frameworks, die die Verwendung möglicherweise erleichtern.
Lesen Sie mehr über Deep Learning, einen Teilbereich des maschinellen Lernens, bei dem mehrschichtige neuronale Netze verwendet werden, um die komplexe Entscheidungsfähigkeit des menschlichen Gehirns zu simulieren. Deep Learning bildet die Grundlage der meisten KI-Anwendungen in unserem heutigen Leben.
Erkunden Sie einige der wichtigsten Aspekte von KI und ihrer Teilbereiche, einschließlich einer kurzen Geschichte und grundlegender Konzepte, die Sie von den Anfängen prädiktiver Algorithmen bis hin zu Meilensteinen des modernen Deep Learning führen.
¹ „Deep Learning“, Goodfellow et al, MIT Press, 2016.