DE112017000670T5 - Beschleunigen eines Trainierens eines tiefen neuronalen Netzes mit einem inkonsistenten stochastischen Gradientenabfall - Google Patents

Beschleunigen eines Trainierens eines tiefen neuronalen Netzes mit einem inkonsistenten stochastischen Gradientenabfall Download PDF

Info

Publication number
DE112017000670T5
DE112017000670T5 DE112017000670.8T DE112017000670T DE112017000670T5 DE 112017000670 T5 DE112017000670 T5 DE 112017000670T5 DE 112017000670 T DE112017000670 T DE 112017000670T DE 112017000670 T5 DE112017000670 T5 DE 112017000670T5
Authority
DE
Germany
Prior art keywords
training
batch
batches
isgd
loss
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112017000670.8T
Other languages
English (en)
Inventor
Linnan WANG
Yi Yang
Renqiang Min
Srimat Chakradhar
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Laboratories America Inc
Original Assignee
NEC Laboratories America Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Laboratories America Inc filed Critical NEC Laboratories America Inc
Publication of DE112017000670T5 publication Critical patent/DE112017000670T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

Aspekte der vorliegenden Offenbarung beschreiben Techniken zum Trainieren eines faltenden neuronalen Netzes unter Verwendung eines Algorithmus für einen inkonsistenten stochastischen Gradientenabfall (ISGD). Eine Trainingsanstrengung zum Trainieren von Batches, verwendet durch den ISGD-Algorithmus, wird gemäß einem bestimmten Verlust für ein gegebenes Trainieren eines Batchs dynamisch eingestellt, welche in zwei Unterzustände klassifiziert sind - gut trainiert oder untertrainiert. Der ISGD-Algorithmus stellt mehr Iterationen für untertrainierte Batches zur Verfügung, während er Iterationen für gut trainierte reduziert.

Description

  • QUERVERWEIS AUF ZUGEHÖRIGE ANMELDUNGEN
  • Diese Anmeldung beansprucht den Vorteil der provisorischen US-Patentanmeldung mit der Serien-Nr. 62/291,554, eingereicht am 02/05/2016, welche durch Bezugnahme enthalten ist, als ob sie in ihrer gesamten Länge hierin dargelegt wäre.
  • TECHNISCHES GEBIET
  • Diese Offenbarung betrifft allgemein faltende neuronale Netze und Systeme, die daraus aufgebaut sind. Insbesondere gehört sie zu einem verbesserten Verfahren zum Trainieren faltender neuronaler Netze unter Nutzung eines inkonsistenten stochastischen Gradientenabfalls.
  • HINTERGRUND
  • Wie es bekannt ist, haben neuronale Netze großen Ausmaßes weit verbreitete Anwendung in einer Anzahl von technologischen Gebieten gefunden, einschließlich einer Verarbeitung natürlicher Sprache, einer Videobewegungsanalyse, Entscheidungssystemen und Arzneimitteldesign. Von besonderer Wichtigkeit für die Leistungsfähigkeit eines neuronalen Netzes - ist sein Trainieren.
  • Ein Trainieren eines riesigen neuronalen Netzes, das jedoch mit einer Nichtlinearität gesättigt ist, ist offenkundig bzw. notorisch schwierig. Beispielsweise kann es 10.000 Kerne einer zentralen Verarbeitungseinheit (CPU) für einige Tage dauern, das Trainieren eines Netzes mit einer Million Parametern zu beenden bzw. fertigzustellen.
  • Unter Vorgabe dieser Wichtigkeit und Schwierigkeit würden Systeme und Verfahren, die die Effizienz eines Trainierens eines neuronalen Netzes verbessern, ein willkommener Zusatz zum Stand der Technik sein.
  • ZUSAMMENFASSUNG
  • Ein Fortschritt im Stand der Technik wird gemäß Aspekten der vorliegenden Offenbarung gemacht, die auf Techniken zum Trainieren eines faltenden neuronalen Netzes unter Verwendung eines Algorithmus für einen inkonsistenten stochastischen Gradientenabfall (ISGD = Inconsistent Stochastic Gradient Descent) gerichtet ist. Eine Trainingsanstrengung zum Trainieren von Batches bzw. Stapeln, die durch den ISGD-Algorithmus verwendet werden, wird gemäß einem vorbestimmten Verlust für einen gegebenen Trainings-Batch dynamisch eingestellt, welche in zwei Unterzustände klassifiziert werden - gut trainiert oder untertrainiert.
  • In scharfem Kontrast zu Trainingsverfahren nach dem Stand der Technik stellt der ISGD-Algorithmus mehr Iterationen für untertrainierte Batchs zur Verfügung, während er Iterationen für gut trainierte reduziert. Als Ergebnis konvergiert ISGD viel schneller als Verfahren nach dem Stand der Technik, verbessert eine Genauigkeit und unterstützt große Batch-Größen.
  • Figurenliste
  • Ein vollständigeres Verstehen der vorliegenden Offenbarung kann durch Bezugnahme auf die beigefügte Zeichnung realisiert werden, in welcher:
    • 1 ein schematisches Blockdiagramm ist, das ein Trainingsschema eines neuronalen Netzes gemäß einem Aspekt der vorliegenden Offenbarung darstellt;
    • 2 ein schematisches Blockdiagramm ist, das ein Trainieren an einem Batch und ein Updaten von Lernparametern gemäß einem Aspekt der vorliegenden Offenbarung darstellt;
    • 3 eine Pseudocodeauflistung eines Algorithmus 1 - eines Verfahrens für einen inkonsistenten stochastischen Gradientenabfall, gemäß einem Aspekt der vorliegenden Offenbarung ist;
    • 4 eine Pseudocodeauflistung eines Algorithmus 2 - eines Verfahrens zum Lösen eines konservativen Unterproblems, um einen untertrainierten Batch (untertrainierte Batches) zu beschleunigen, gemäß einem Aspekt der vorliegenden Offenbarung ist;
    • 5 ein schematisches Blockdiagramm eines illustrativen Computersystems, auf welchem Verfahren der vorliegenden Offenbarung arbeiten können, gemäß einem Aspekt der vorliegenden Offenbarung ist;
    • 6(A) - 6(B) graphische Darstellungen von Verlustverfolgungen von 10 Einzelklassen und u.i.v. Batches in zwei kontrollierten Experimenten sind, wobei 6(A) Einzelklassenbatches zeigt: bi zieht zufällig 100 Bilder aus jeweiligen Kategorien von CIFAR-10, und 6(B) unabhängige identisch verteilte (u.i.v.) Batches gemäß einem Aspekt der vorliegenden Erfindung zeigt;
    • 7 eine graphische Darstellung ist, die eine Verlustverteilung eines Trainierens eines Netzes an CIFAR-10, wobei die Verluste durch Epochen angeordnet sind, gemäß Aspekten der vorliegenden Offenbarung darstellt;
    • 8 eine graphische Darstellung ist, die eine Identifikation eines untertrainierten Batchs während der Übertragung bzw. fliegend gemäß Aspekten der vorliegenden Offenbarung darstellt;
    • 9 ein schematisches Blockdiagramm ist, das eine Datenparallelisierung innerhalb von ISGD gemäß Aspekten der vorliegenden Offenbarung darstellt;
    • 10 eine Kurve ist, die eine vorhergesagte Trainingszeit unter zwei Systemkonfigurationen bei unterschiedlichen Batch-Größen gemäß Aspekten der vorliegenden Offenbarung darstellt;
    • 11(A)-11(E) graphische Darstellungen sind, die ein Trainieren an CIFAR darstellen, wobei: 11(A) eine ISGD-Verlustverteilung durch Epochen zeigt, 11(B) eine SGD-Verlustverteilung durch Epochen zeigt, 11 (C) STD der Verlustverteilung eines Batchs zeigt, 11(D) einen Durchschnittsverlust von 20 Batches zeigt, und 11(E) eine Validierungsgenauigkeit gemäß Aspekten der vorliegenden Offenbarung zeigt;
    • 12(A)-12(F) graphische Darstellungen sind, die eine Validierungsgenauigkeit und einen Trainingsverlust darstellen, wobei: 12(A) eine MNIST-Testgenauigkeit zeigt, 12(B) eine CIFAR-Testgenauigkeit zeigt, 12(C) eine ImageNet-Top-5-Genauigkeit zeigt, 12(D) einen MNIST-Trainingsfehler zeigt, 12(E) einen CIFAR-Trainingsfehler zeigt und 12(F) einen ImageNet-Trainingsfehler zeigt, und zwar gemäß Aspekten der vorliegenden Offenbarung;
    • 13(A)-13(C) graphische Darstellungen sind, die einen Effekt einer Batch-Größe auf eine gesamte Trainingszeit darstellen, wobei: 13(A) MNIST zeigt, 13(B) CIFAR zeigt und 13(C) ImageNet zeigt, und zwar gemäß Aspekten der vorliegenden Offenbarung;
    • 14(A)-14(B) graphische Darstellungen sind, die eine Validierungsgenauigkeit und die Trainingsausbreitungsprogression am ImageNet darstellen, trainiert mit dem beschleunigten Gradienten von Nesterov, wobei 14(A) ImageNet-Trainingsfehler zeigt und 14(B) ImageNet-Top-1-Genauigkeit zeigt, und zwar gemäß Aspekten der vorliegenden Offenbarung; und
    • 15 eine Tabelle ist, die eine Leistungsfähigkeit von ISGD für eine Anzahl von unterschiedlichen Szenarien darstellt.
  • Die illustrativen Ausführungsformen sind vollständiger durch die Figuren und eine detaillierte Beschreibung beschrieben. Ausführungsformen gemäß dieser Offenbarung können jedoch in verschiedenen Formen verkörpert sein und sind nicht auf spezifische oder illustrative Ausführungsformen beschränkt, die in der Zeichnung und der detaillierten Beschreiung beschrieben sind.
  • BESCHREIBUNG
  • Das Folgende stellt lediglich die Prinzipien der Offenbarung dar. Es wird somit eingesehen werden, dass Fachleute auf dem Gebiet verschiedene Anordnungen erfinden können, die, obwohl es hierin nicht explizit beschrieben oder gezeigt ist, die Prinzipien der Offenbarung verkörpern und innerhalb ihres Sinngehalts und Schutzumfangs enthalten sind.
  • Weiterhin ist beabsichtigt, dass alle Beispiele und bedingte Sprache, die hierin wiedergegeben sind, grundsätzlich ausdrücklich nur für pädagogische Zwecke sind, um den Leser beim Lesen der Prinzipien der Offenbarung und der Konzepte zu unterstützen, die durch den Erfinder (die Erfinder) zum weiteren Fördern des Standes der Technik beigetragen sind, und sie sind derart anzusehen, dass sie ohne Beschränkung auf solche spezifisch wiedergegebenen Beispiele und Konditionen sind.
  • Darüber hinaus ist beabsichtigt, dass alle Angaben hierin, die Prinzipien, Aspekte und Ausführungsformen der Offenbarung angeben, sowie spezifische Beispiele davon, sowohl strukturelle als auch funktionelle Äquivalente davon umfassen. Zusätzlich ist beabsichtigt, dass solche Äquivalente sowohl gegenwärtig bekannte Äquivalente als auch Äquivalente enthalten, die in der Zukunft entwickelt werden, d.h. irgendwelche Elemente, die entwickelt werden, die, ungeachtet einer Struktur, dieselbe Funktion durchführen.
  • Somit wird es beispielsweise von Fachleuten auf dem Gebiet wahrgenommen werden, dass irgendwelche Blockdiagramme hierin Konzeptansichten einer illustrativen Schaltung darstellen, die die Prinzipien der Offenbarung verkörpert. Gleichermaßen wird es wahrgenommen werden, dass irgendwelche Ablaufdiagramme, Flussdiagramme, Zustandsübergangsdiagramme, Pseudocodes und ähnliches verschiedene Prozesse darstellen, die im Wesentlichen in einem computerlesbaren Medium dargestellt und so durch einen Computer oder einen Prozessor ausgeführt werden können, gleichgültig ob ein solcher Computer oder Prozessor explizit gezeigt ist oder nicht.
  • Die Funktionen der verschiedenen Elemente, die in der Zeichnung gezeigt sind, einschließlich irgendwelcher funktioneller Blöcke, die als „Prozessoren“ bezeichnet sind, können durch die Verwendung von bestimmter Hardware sowie Hardware, die zum Ausführen von Software in Verbindung mit geeigneter Software fähig ist, zur Verfügung gestellt sein. Wenn sie durch einen Prozessor zur Verfügung gestellt sind, können die Funktionen durch einen einzelnen bestimmten Prozessor, durch einen einzelnen gemeinsam genutzten Prozessor oder durch eine Vielzahl von einzelnen Prozessoren, von welchen einige gemeinsam genutzt werden können, zur Verfügung gestellt sein. Darüber hinaus sollt eine explizite Verwendung des Ausdrucks „Prozessor“ oder „Steuerung“ nicht derart angesehen werden, dass er sich exklusiv auf Hardware bezieht, die Software ausführen kann, und kann implizit, ohne Beschränkung, Digitalsignalprozessor-(DSP-)Hardware, einen Netzwerkprozessor, eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA), einen Nurlesespeicher (ROM) zum Speichern von Software, einen Direktzugriffsspeicher (RAM) und einen nichtflüchtigen Speicher enthalten. Andere Hardware, herkömmlich und/oder kundenspezifisch, kann auch enthalten sein.
  • Softwaremodule oder einfach Module, die als Software impliziert sind, können hierin als irgendeine Kombination von Ablaufdiagrammelementen oder anderen Elementen dargestellt sein, die eine Leistungsfähigkeit von Prozessschritten und/oder textlicher Beschreibung anzeigen. Solche Module können durch Hardware ausgeführt werden, die ausdrücklich oder implizit gezeigt ist.
  • Solange hierin nichts anderes explizit spezifiziert ist, sind die die Zeichnung umfassenden Figuren nicht maßstäblich gezeichnet.
  • Anhand von irgendeinem zusätzlichen Hintergrund merken wir an, dass Berechnungstechnologien, die Terra-Gleit-Operationen-Pro-Sekunden (TFLOPs) zur Verfügung stellen, die Entwicklung von neuronalen Netzen und ihre Anwendung stark beschleunigt haben. Insbesondere - und wie es zuvor angemerkt ist, haben neuronale Netze großen Ausmaßes Systeme drastisch verbessert, die mit einer Verarbeitung natürlicher Sprache, Videobewegungsanalyse, Entscheidungssystemen und Medikamentenentwicklung assoziiert sind. Trotz einer solchen Verbesserung und Anwendbarkeit bleibt jedoch ein Trainieren eines großen neuronalen Netzes, das mit einer Nichtlinearität gesättigt ist, besonders schwierig. Beispielsweise dauert es 10.000 CPU-Kerne bis zu Tagen, um das Trainieren eines Netzes mit einer Million Parametern fertigzustellen. Solche Berechnungsherausforderungen haben die Wichtigkeit eines Verbesserns der Effizienz von gradientenbasierten Trainingsmethoden hervorgehoben - die im Stand der Technik weit verbreitet verwendet werden.
  • Wie es von Fachleuten auf dem Gebiet ohne weiteres verstanden werden wird, ist ein Trainieren eines neuronalen Netzes ein Typ eines Optimierungsproblems, das nach optimalen Parametern sucht, um eine beabsichtigte Funktion zu approximieren, die über eine finite bzw. endliche Trainingsgruppe definiert ist. Ein bemerkenswerter Aspekt eines Trainierens ist der riesige Lösungshyperraum, der durch Netzparameter im Überfluss definiert ist. Anhand eines Beispiels haben die letzten ImageNet-Wettbewerber eine Parametergröße einer Erhöhung eines faltenden neuronalen Netzes (CNN) auf n:109 gesehen. Ein Lösen eines Optimierungsproblems in diesem Maßstab ist verhindernd für die Optimierungsverfahren zweiter Ordnung, da die erforderliche Hesse-Matrix einer Größe 109 × 109 zu groß ist, um durch moderne Computerarchitekturen bewältigt zu werden. Als ein Ergebnis wird ein Gradientenabfall erster Ordnung allgegenwärtig zum Trainieren von neuronalen Netzen großen Maßstabs verwendet.
  • Wie es weiterhin von Fachleuten auf dem Gebiet verstanden werden wird, berechnet der standardmäßige vollständige Gradientenabfall (GD = Gradient Descent) erster Ordnung den Gradienten mit einer gesamten Datengruppe. Trotz des Berufens auf eine lineare Konvergenzrate eines vollständigen Gradientenabfalls (O(ρk), ρ<1) wird die Berechnung bezüglich einer Iteration mit der Größe einer Datengruppe linear größer. Dies macht das Verfahren ungeeignet für neuronale Netze, die mit dem unvermischten bzw. bloßen Volumen von bezeichneten Daten trainiert sind.
  • Um diese Aufgabe anzusprechen, wurde ein stochastisches Gradientenabfall-(SGD-)Verfahren aus einem Beobachten entwickelt, das eine Menge an Redundanz unter Trainingsbeispielen existiert. SGD arbeitet durch Approximieren der Datengruppe mit einem Batch bzw. Stapel von zufälligen Proben und verwendet den aus dem Batch berechneten stochastischen Gradienten, um das Modell upzudaten. Obwohl die Konvergenzrate von SGD, nämlich O ( 1 / b k + 1 / k ) ,
    Figure DE112017000670T5_0001
    wobei b die Batch-Größe ist, langsamer als GD ist, führt SGD ein Updaten des Modells viel schneller als GD in einer Periode durch, d.h. größer k. Als Ergebnis ist die schnellere Konvergenz bei SGD verglichen mit GD in der Praxis beobachtbar. Es ist anzumerken, dass SGD einen „süßen Spot“ zwischen einer guten Systemnutzung und schnellen Gradientenupdates trifft. Daher ist es ein populäres und effektives Verfahren geworden, um neuronale Netze großen Ausmaßes zu trainieren.
  • Eine Schlüsseloperation bei SGD besteht im Ziehen eines zufälligen Batchs aus der Datengruppe. Während eine solche Operation mathematisch einfach erscheint, ist es nichtsdestoweniger nicht trivial, sie an einer Datengruppe großen Ausmaßes zu implementieren, wie beispielsweise derjenigen von ImageNet. Wie es von Fachleuten auf dem Gebiet ohne weiteres eingesehen werden wird, ist eine Ingenieurapproximation nach dem Stand der Technik die pseudozufällige Abtastung festem Zyklus (FCPR-Abtastung) (die später in dieser Beschreibung definiert ist), welche Batches aus einer vorpermutierten Datengruppe wie einem Ring ausliest, z.B. d0 → d1 → d2 → d0 → d1 ..., wobei di einen Batch bezeichnet.
  • In diesem Fall empfängt jeder Batch dieselben Trainingsiterationen, da ein Batch das Netz exakt einmal in einer Epoche updatet. Es soll bitte beachtet werden, dass diese Ingenieurvereinfachung zulässt, dass Batches wiederholt in das Netz fließen, was unterschiedlich von der zufälligen Abtastung bei Statistiken ist. Jedoch ist es bekannt, dass die Gradientenvarianzen Batches beim Trainieren unterscheiden und Gradientenupdates von dem Batch mit großem Verlust mehr als diejenigen mit kleinem Verlust beitragen.
  • In dieser Beschreibung offenbaren wir ein Verfahren, das wir inkonsistenter stochastischer Gradientenabfall (ISGD) nennen, um die Trainingsanstrengung unter Batches neu auszugleichen. Die Inkonsistenz wird durch ungleiche Gradientenupdates an Batches berücksichtigt. ISGD misst den Trainingszustand eines Batchs durch den assoziierten Verlust. Bei irgendeiner Iteration t verfolgt ISGD die Verluste in Iterationen [t - nb, t], wobei nb die Anzahl von unterschiedlichen Batches in einer Datengruppe ist. Diese Verluste helfen beim Bilden einer dynamischen oberen Schwelle, um ein untertrainiertes Batch während des Trainings zu identifizieren. Wenn ein Verlust eines Batchs die Schwelle übersteigt, beschleunigt ISGD das Training an dem Batch durch Lösen eines neuen Unterproblems, das die Diskrepanz zwischen dem Verlust eines aktuellen Batchs und dem Mittel minimiert. Das Unterproblem enthält auch eine konservative Beschränkung, um ein Überschießen durch Begrenzen der Parameteränderung zu vermeiden.
  • Ein Schlüsselaspekt des Unterproblems besteht im Zulassen zusätzlicher Gradientenupdates an einem untertrainierten Batch, während noch die Nähe zu den aktuellen Netzparametern bleibt. Empirische Experimente zeigen, dass ISGD, insbesondere bei der Endstufe, viel besser als das Grundlinienverfahren SGD an verschiedenen Mainstream-Datengruppen und Netzen durchführt.
  • Für praktische Überlegungen erforschen wir auch einen Effekt einer Batch-Größe auf die Konvergenzrate mit anderen berücksichtigten Systemfaktoren. Ein Vergrößern der Batch-Größe beschleunigt die Konvergenz, aber sie fügt linear Berechnungen bezüglich einer Iteration hinzu. In dem Szenario, das ein Trainieren eines einzigen Knotens enthält, ist ein kleiner Batch favorisiert, um häufige Gradientenupdates sicherzustellen. In dem Szenario, das ein Training von mehreren Knoten enthält, verursacht es schwere Synchronisationen unter Knoten pro Iteration. Je mehr Gradientenupdates es gibt, um so höher sind Synchronisationskosten. In diesem Fall reduziert ein moderat großer Batch Gesamtkommunikationen, und es verbessert auch die Systemsättigung und den verfügbaren Parallelismus.
  • Wendet man sich nun der 1 zu, ist dort ein schematisches Blockdiagramm gezeigt, das eine Übersicht über ein Verfahren gemäß einem Aspekt der vorliegenden Offenbarung darstellt. Wie es oben angemerkt ist, und wiederholenswert ist, wird SGD weithin verwendet, um CNNs zu trainieren. Bei SGD wird eine gesamte Datengruppe in eine Gruppe von Batches partitioniert. SGD behandelt alle Batches identisch und trainiert jeden Batch iterativ in einer Epoche. Es ist bemerkenswert, dass die Kosten eines Trainierens individueller Batches sehr unterschiedlich sind, aufgrund von - teilweise - eines Abtastens einer Vorspannung, einer intrinsischen Bilddifferenz (von intrinsischen Bilddifferenzen), etc. Daher ist SGD sehr ineffizient.
  • In starkem Kontrast variiert unser inkonsistentes stochastisches Gradientenabfall-(ISGD-)Verfahren der momentanen Anmeldung die Anzahlen von Trainingsiterationen an Batches dynamisch. Mit ISGD wird ein Batch in zwei Zustände klassifiziert, nämlich gut trainiert oder untertrainiert. Dann verwendet ISGD mehr Iterationen auf untertrainierte Batches, während Iterationen für gut trainierte Batches reduziert werden.
  • Es ist anmerkenswert, dass ISGD viel schneller als SGD konvergiert. Weiterhin verbessert ISGD eine Genauigkeit, da ISGD mehr Training an untertrainierten Batches anwendet. Schließlich unterstützt ISGD große Batch-Größen, was, wie wir es zeigen werden, - äußerst nützlich bei Mehrfach-GPU-Systemen ist.
  • Kehrt man zurück zur 1, kann es beobachtet werden, dass bei einem Block 101 Bilddaten und ein Netz, das zu trainieren ist, eingegeben werden, eine maximale Anzahl von Trainingsepochen spezifiziert wird und dann in Blöcken 102 und 103 diese maximale Anzahl von Trainingsepochen fertiggestellt wird.
  • An dieser Stelle ist es nützlich, eine Anzahl von Ausdrücken als diejenigen Ausdrücke zu definieren, die hierin verwendet sind. Wie es bekannt ist und wie es hierin verwendet wird, ist eine Epoche ein Vorwärtsdurchlauf und ein Rückwärtsdurchlauf von allen Trainingsbeispielen. Eine Batch-Größe ist die Anzahl von Trainingsbeispielen in einem Vorwärts/Rückwärts-Durchlauf. Je größer die Batch-Größe ist, umso mehr Speicher ist erforderlich. Schließlich ist eine Iteration ein Durchlauf und ist eine Anzahl von Iterationen die Anzahl von Durchläufen. Jeder Durchlauf verwendet eine [Batch-Größe]-Anzahl von Beispielen. Um deutlich zu sein, ist ein Durchlauf ein Vorwärtsdurchlauf und ein Rückwärtsdurchlauf. Die Vorwärts- und Rückwärtsdurchläufe werden nicht unabhängig gezählt.
  • Wenn das Training fortschreitet, wird das Training auf einen Batch angewendet und werden geeignete Lernparameter upgedatet. Auf eine Beendigung hin wird ein weiterer Batch geholt und wird ein Training auf diesen Batch ebenso gut angewendet. Dieser Prozess fährt fort, bis es keine weiteren Batches zur Verarbeitung mehr gibt.
  • Bei einem Block 103 werden die gelernten Parameter unter Verwendung von Testdaten getestet und dieser Gesamtprozess wird wiederholt, bis die Anzahl von Epochen das Maximum erreicht. Bei einem Block 104 werden die Ausgangsparameter nach einem Training ausgegeben.
  • Während 1 einen Überblick über ein CNN-Training gemäß der vorliegenden Offenbarung zur Verfügung stellt, ist 2 ein schematisches Blockdiagramm, das mehr Details in Bezug auf die Operationen des Blocks 102 zur Verfügung stellt, die in 1 gezeigt sind. Während fortgesetzt Bezug genommen wird auf 2, kann es beobachtet werden, dass beim Block 201 ein Batch von Trainingsdaten eingegeben wird. Bei einem Block 202 wird ein Vorwärts- und Rückwärtstraining auf den eingegebenen Trainingsbatch angewendet. Ein Verlust wird bei einem Block 203 bestimmt, und wenn der Verlustwert eine Schwelle übersteigt oder eine maximale Anzahl von Iterationen mehr als ein Maximum ist, wird ein Training an diesem Batch fortgesetzt (Block 202). Wenn der Verlustwert niedriger als eine Schwelle ist oder die Anzahl von Iterationen geringer als eine maximale Anzahl ist, dann wird eine Rückkehr zum Gesamtprozess der 1 (Block 103/102) fortgesetzt.
  • Es ist an dieser Stelle bemerkenswert, dass ISGD ein untertrainiertes Batch basierend auf Verlustinformation identifizieren kann und dann mehr Training an einem untertrainierten Batch anwenden, um zuzulassen, dass es dem gut trainierten Batch (den gut trainierten Batches) hinterherjagt, so dass alle Batches eine ähnliche Trainingsgeschwindigkeit zeigen.
  • 3 ist eine Pseudocode-Auflistung eines Algorithmus 1 - eines inkonsistenten stochastischen Gradientenabfall-Verfahrens gemäß einem Aspekt der vorliegenden Offenbarung, während 4 eine Pseudocode-Auflistung eines Algorithmus 2 ist - eines Verfahrens, um ein konservatives Unterproblem zu lösen, um ein untertrainiertes Batch (untertrainierte Batches) zu beschleunigen. Wie es von Fachleuten auf dem Gebiet ohne weiteres eingesehen werden wird, können solche Algorithmen als Teil von Verfahren gemäß der vorliegenden Offenbarung vorteilhaft programmiert werden, um auf irgendeinem einer Vielfalt von Computersystemen auszuführen - einschließlich - und vorteilhaft - Multi- bzw. Mehrfachprozessoren. 5 ist ein schematisches Blockdiagramm eines illustrativen Computersystems, auf welchem Verfahren der vorliegenden Offenbarung arbeiten können.
  • Wie es sofort eingesehen werden kann, kann ein solches Computersystem in ein anderes System integriert sein und kann über diskrete Elemente oder eine oder mehrere integrierte Komponenten implementiert sein. Das Computersystem kann beispielsweise einen Computer umfassen, der irgendwelche einer Anzahl von Betriebssystemen laufen lässt. Die oben beschriebenen Verfahren der vorliegenden Offenbarung können auf dem Computersystem 500 als gespeicherte Programmsteuerungsanweisungen implementiert sein.
  • Das Computersystem 500 enthält einen Prozessor (Prozessoren) 510, einen Speicher 520, eine Speichervorrichtung 530 und eine Eingabe/Ausgabe-Struktur 540. Einer oder mehrere Busse 550 verbinden die Komponenten 510, 520, 530 und 540 typischerweise miteinander. Der Prozessor 510 kann ein einzelner oder mehrere Kerne sein. Zusätzlich kann das System mehrere Prozessoren enthalten, einschließlich Mehrfachkerne, Beschleuniger, etc. Noch weiterhin können Systeme großen Ausmaßes aus solchen Mehrfachkern-, Multiprozessorsystemen 500 gebildet sein, um irgendeinen erwünschten Parallelismus weiter zu erhöhen.
  • Der Prozessor 510 führt Anweisungen aus, bei welchen Ausführungsformen der vorliegenden Offenbarung Schritte umfassen können, die in einer oder mehreren der Zeichnungsfiguren beschrieben sind. Solche Anweisungen können in dem Speicher 520 oder der Speichervorrichtung 530 gespeichert werden. Daten und/oder Information können unter Verwendung von einer oder mehreren Eingabe/Ausgabe-Vorrichtungen empfangen und ausgegeben werden.
  • Der Speicher 520 kann Daten speichern und kann ein computerlesbares Medium sein, wie beispielsweise ein flüchtiger oder ein nichtflüchtiger Speicher. Die Speichervorrichtung 530 kann eine Speicherung für das System 500 zur Verfügung stellen, einschließlich beispielsweise der zuvor beschriebenen Verfahren. Bei verschiedenen Aspekten kann die Speichervorrichtung 530 eine Flash-Speichervorrichtung, ein Diskettenlaufwerk, eine optische Plattenvorrichtung oder eine Bandvorrichtung sein, unter Nutzung von magnetischen, optischen oder anderen Aufzeichnungstechnologien.
  • Die Eingabe/Ausgabe-Strukturen 540 können Eingabe/Ausgabe-Operationen zu anderen Systemen/Strukturen zur Verfügung stellen, mit welchen das System 500 kommunikativ gekoppelt ist.
  • Zugehörige Arbeit
  • Eine Vielzahl von Ansätzen ist vorgeschlagen worden, um ein „Vanillen“-SGD für ein Training eines neuronalen Netzes zu verbessern. Demgemäß beschreiben wir während eines Beschreibens der Ansätze nach dem Stand der Technik weiterhin, wie unser inkonsistentes Trainingsverfahren der momentanen Anmeldung grundsätzlich unterschiedlich von diesen existierenden Verfahren nach dem Stand der Technik ist.
  • Wie es bekannt ist, führt das stochastische Abtasten bei SGD eine Gradientenvarianz ein, was eine Konvergenzrate verlangsamt. Folglich haben Forscher versucht, verschiedene Varianzreduktionstechniken auf SGD anzuwenden, um die Konvergenzrate zu verbessern.
  • Stochastischer varianzreduzierter Gradient (SVRG) hält netzhistorische Parameter und Gradienten, um die Varianz einer Updateregel explizit zu reduzieren, jedoch arbeitet SVRG nur gut für die Feinabstimmung eines nicht konvexen neuronalen Netzes. Andere Ansätze haben Steuerungszufallsvariablen an SGD erforscht, während noch andere eine Wichtigkeitsabtastung erforscht haben. Diese Varianzreduktionstechniken werden jedoch selten bei neuronalen Netzen großen Ausmaßes verwendet, da sie den riesigen RAM-Raum verbrauchen, um die Zwischenvariablen zu speichern.
  • In scharfem Gegensatz zu diesen Ansätzen nach dem Stand der Technik stellt ISGD - welches der Gegenstand der vorliegenden Offenbarung ist - den negativen Effekt von Gradientenvarianzen ein und bildet keine Hilfsvariablen. Folglich und vorteilhaft ist ISGD viel speichereffizienter und praktischer als Varianzreduktionsverfahren nach dem Stand der Technik.
  • Momentum ist eine weithin erkannte Heuristik, um SGD zu verbessern. SGD oszilliert über dem schmalen Kamm, da der Gradient immer zu der anderen Seite zeigt, anstelle entlang der Klamm bzw. der Schlucht in Richtung zum Optimalen. Als Ergebnis neigt Momentum dazu, anzustoßen, was zu einer langsamen Konvergenz führt. Momentum dämpft Oszillationen in Richtungen einer starken Krümmung durch Kombinieren von Gradienten mit entgegengesetzten Vorzeichen und es baut eine Geschwindigkeit in Richtung zu einer Richtung auf, die konsistent mit den zuvor akkumulierten Gradienten ist. Fachleute auf dem Gebiet werden einsehen, dass die Update-Regel von Nesterovs beschleunigtem Gradienten ähnlich Momentum ist, aber der geringere unterschiedliche Update-Mechanismus zum Aufbauen der Geschwindigkeit resultiert in wichtigen Verhaltensunterschieden. Momentum knüpft an in der Richtung des akkumulierten Gradienten plus dem aktuellen Gradienten. Gegensätzlich dazu knüpft Nesterov beschleunigter Gradient an entlang dem vorherigen akkumulierten Gradienten, dann misst es den Gradienten bevor eine Korrektur durchgeführt wird. Dies verhindert, dass das Update schnell abfällt, um dadurch die Ansprechbarkeit bzw. Reaktionsfähigkeit zu erhöhen.
  • Vorteilhaft ist ISGD diesbezüglich grundsätzlich unterschiedlich von diesen Ansätzen, dass es die Trainingsdynamiken an Batches berücksichtigt. ISGD gleicht die Trainingsanstrengung über Batches neu aus, während Momentum und Nesterov beschleunigter Gradient die angemerkten Krümmungs-„Tricks“ wirksam einsetzen. Demgemäß - und von weiterem Vorteil - wird erwartet, dass ein inkonsistentes Training kompatibel mit beiden Verfahren ist.
  • Adagrad ist ein Verfahren, das eine Lernrate für die Parameter annimmt, was größere Updates für nicht häufige Parameter durchführt, und kleinere Updates für häufige Parameter. Es akkumuliert die quadratischen Gradienten im Nenner, was die Lernrate dramatisch schrumpfen lassen wird. Folglich sind RMSprop und Adadelta entwickelt worden, um das Problem zu lösen. Die Ansätze einer adaptiven Lernrate stellen das Ausmaß von Parameterupdates in Bezug auf die Updatehäufigkeit eines Parameters ein, um die Robustheit eines Trainierens zu erhöhen, während ISGD die Häufigkeit eines Gradientenupdates eines Batchs in Bezug auf den Verlust einstellt, um die Trainingseffizienz zu verbessern. Unter dieser Perspektive ist ISGD merklich unterschiedlich von den Ansätzen einer adaptiven Lernrate.
  • Wie es diese Offenbarung Fachleuten auf dem Gebiet ohne weiteres offensichtlich machen wird, spart sich ein inkonsistentes Training gemäß der vorliegenden Offenbarung eine größere Trainingsanstrengung an den Batches mit großem Verlust eher als an denjenigen mit kleinem Verlust. Eine motivierende Vernunft besteht darin, dass Gradientenupdates von den Batches mit kleinem Verlust weniger als diejenigen mit großem Verlust beitragen. Gleichermaßen haben Simo-Serra et al eine ähnliche Idee beim Trainieren des siamesischen Netzes angenommen, um tiefe Deskriptoren durch absichtliches Füttern des Netzes mit harten Trainingspaaren zu lernen, d.h. Paare ergeben große Verluste, und es wird erwiesen, dass ein solches Verfahren eine effektive Art ist, um die Leistungsfähigkeit zu verbessern. Und während sie die harten Paare manuell herauspicken, um das Netz zu füttern, identifiziert ISGD automatisch das harte Batch während des Trainings. Zusätzlich ist der Mechanismus einer Beschleunigung eines hartes Batchs von ISGD merklich unterschiedlich von dem Simo-Serra-Verfahren. ISGD löst ein Suboptimierungsproblem an dem harten Batch, um den Batchverlust zu reduzieren, und vermeidet vorteilhaft drastische Parameteränderungen, während das Simo-Serra-Verfahren einfach den Batch häufiger zuführt. Es ist zu beachten, dass es wichtig ist, die Parameteränderungen zu begrenzen, weil ein Überschießen eines Batchs zur Divergenz an anderen Batches führt. Demgemäß, und wie es von Fachleuten auf dem Gebiet erkannt werden wird, ist das ISGD-Verfahren gemäß der vorliegenden Offenbarung der erste Löser für ein neuronales Netz, um batchweise Trainingsdynamiken zu berücksichtigen, und hat folglich überraschende Leistungsfähigkeitsverbesserungen an einer Vielfalt von Datensätzen und Modellen in der realen Welt gezeigt.
  • Problemangabe
  • Dieser Abschnitt demonstriert die nicht einheitlichen batchweisen Trainingsdynamiken. Theoretisch weisen wir nach, dass der Beitrag von Gradientenupdates unter Batchs variiert, und zwar basierend auf der Analyse einer SGD-Konvergenzrate. Wir stellen auch die Hypothese auf, dass intrinsische Bildunterschiede und eine Abtastvorspannung Faktoren auf hoher Ebene für das Phänomen sind, und die Hypothese wird durch zwei gesteuerte Experimente verifiziert. Sowohl Theorien als auch Experimente unterstützen unseren Schluss, dass der Beitrag eines Gradientenupdates eines Batchs unterschiedlich ist.
  • Dann demonstrieren wir, dass das pseudozufällige Abtasten in festem Zyklus, das durch SGD verwendet wird, ineffizient ist, um dieses Problem zu handhaben. Insbesondere sind die konsistenten Gradientenupdates an allen Batches, ungeachtet ihrer Zustände, insbesondere am Ende eines Trainings verschwendet, und die Gradientenupdates an dem Batch mit kleinem Verlust könnte verwendet worden sein, um Batches mit großem Verlust zu beschleunigen.
  • Rekapitulierung eines CNN-Trainings
  • Wir formulieren das CNN-Training als das folgende Optimierungsproblem. Man lässt ψ eine Verlustfunktion mit einem Gewichtungsfaktor w als Funktionsparameter sein, was einen Batch von Bildern d als die Eingabe nimmt. Das Ziel eines CNN-Trainings besteht im Finden einer Lösung für das folgende Optimierungsproblem: m i n w   ψ w ( d ) + 1 2 λ PwP 2 2
    Figure DE112017000670T5_0002
  • Der zweite Ausdruck ist eine Gewichtungsverzögerung und λ ist ein Parameter, um seinen Beitrag einzustellen (normalerweise um 10-4). Der Zweck einer Gewichtungsverzögerung besteht im Benachteiligen der großen Parameter, so dass statisches Rauschen und irrelevante Komponenten von Gewichtungsvektoren unterdrückt werden.
  • Eine typische Trainingsiteration von CNN besteht aus einer Vorwärts- und Rückwärtsdurchführung. Die Vorwärtsdurchführung ergibt einen Verlust, der die Diskrepanz zwischen den aktuellen Vorhersagen und der Wahrheit misst. Die Rückwärtsdurchführung berechnet den Gradienten, von welchem das Negative zu der steilsten Abfallrichtung zeigt. Ein Gradientenabfall updatet das w wie folgt: w t = w t 1 η t ψ w ( d )
    Figure DE112017000670T5_0003
  • Ein Auswerten des Gradienten über die gesamte Datengruppe ist extrem teuer bzw. aufwendig, und zwar insbesondere für große Datensätze, wie beispielsweise ImageNet. Um diese Probleme zu lösen, wird SGD mit Mini-Batch vorgeschlagen, um den gesamten Datensatz mit einer kleinen zufällig gezogenen Probe di zu approximieren. Die Oberseite des SGD mit Mini-Batch ist die Effizienz einer Auswertung einer kleinen Probe bei der Gradientenberechnung, während die Unterseite der stochastische Gradient ist, der die Konvergenz verlangsamt.
  • Lasst uns einen Abtastraum bzw. Probenraum Ω definieren. Wenn ψw(dt) eine Zufallsvariable ist, die auf einem Wahrscheinlichkeitsraum (Ω, Σ, P) definiert ist, ist die neue Zielfunktion: m i n w   E { ψ w ( d t ) } = Ω ψ w ( d t ) d P + 1 2 λ PwP 2 2
    Figure DE112017000670T5_0004
    ändert sich die Update-Regel zu w t = w t 1 η t ψ w ( d t 1 )
    Figure DE112017000670T5_0005
    und gilt das Folgende: E { ψ w ( d t ) } = ψ w ( d )
    Figure DE112017000670T5_0006
  • Messen eines Trainingszustands mit Kreuzentropiefehler
  • Wir verwenden den Verlust, um den Trainingszustand eines Batchs zu berücksichtigen. Ein faltendes neuronales Netz ist eine Funktion von Rn → R, wovon die letzte Schicht eine Softmax-Verlustfunktion ist, die die Kreuzentropie zwischen den wahren Vorhersagewahrscheinlichkeiten p(x) und den geschätzten Vorhersagewahrscheinlichkeiten p̂(x) berechnet. Die Definition einer Softmax-Verlustfunktion eines Batchs bei einer Iteration t ist: ψ w t ( d t ) = i n b x p ( x ) log  p ^ ( x ) + 1 2 λ PwP 2 2
    Figure DE112017000670T5_0007
    wobei nb die Anzahl von Bildern in einem Batch ist und λ eine Gewichtungsverzögerung regelt. Da eine Gewichtungsverzögerung angewendet wird, schwankt der Verlust eines Batchs um eine geringe Anzahl, nachdem er vollständig trainiert ist.
  • Der durch die Kreuzentropie erzeugte Verlust ist ein zuverlässiger Indikator eines Batch-Trainingszustands. Ist ein Batch dt gegeben, misst die Kreuzentropie ψw t (dt) die Diskrepanz zwischen den geschätzten Wahrscheinlichkeiten und der Wahrheit. Bei der Bildklassifizierungsaufgabe ist die Wahrheit p(x) ein normalisierter Möglichkeitsvektor, der die meisten Nullen mit nur einem Skalar auf 1 eingestellt enthält. Der Index des Vektors entspricht einer Objektkategorie. Beispielsweise zeigt p(x) = [0,0,1,0,0] an, dass das Objekt zu der Kategorie 2 (Index startet ab 0) gehört. Das neuronale Netz erzeugt eine normalisierte Schätzungswahrscheinlichkeit p̂(x) und die Verlustfunktion erfasst nur das Ausmaß eines Durchführens der richtigen Vorhersage als die Nullen in einem p(x)-Versatz der unrichtigen Vorhersagen in p̂(x). Wenn p̂(x) nahe p(x) ist, ergibt die Verlustfunktion einen kleinen Wert. Wenn p̂(x) weit entfernt von p(x) ist, ergibt die Verlustfunktion einen großen Wert. Daher verwenden wir den Verlust eines Batchs, um den Trainingszustand eines Modells an ihm zu beurteilen. Intuitiv zeigt ein großer Verlust an, dass die meisten Vorhersagen, die durch das Netz an dem Batch durchgeführt sind, falsch sind, und das zusätzliche Training an dem Batch ist nötig.
  • Motivation: Nichteinheitliche Trainingsdynamiken von Batches
  • Die Gradientenvarianz ist die Quelle von batchweisen Trainingsvariationen. Der Vorteil eines Verwendens einer zufälligen Probe, um die Population zu approximieren, besteht in den signifikant geringeren Berechnungen bei einer Iteration, während die Unterseite der rauschige bzw. rauschbehaftete Gradient ist. Es ist bitte zu beachten, dass die Konvergenzrate in diesem Abschnitt durch Iterationen gemessen wird. Um die Trainingsdynamiken pro Iteration zu analysieren, müssen wir den Lyapunov-Prozess definieren: h t = Pw t w * P 2 2
    Figure DE112017000670T5_0008
  • Die Gleichung misst den Abstand zwischen der aktuellen Lösung wt und der optimalen Lösung w*. ht ist eine Zufallsvariable. Somit kann die Konvergenzrate von SGD unter Verwendung von Gl. 4 und Gl. 7 abgeleitet werden: h t + 1 h t = Pw t + 1 w * P 2 2 P w t w * P 2 2 = ( w t + 1 + w t 2 w * ) ( w t + 1 w t ) = ( 2 w t 2 w * η t ψ w ( d t ) ) ( η t ψ w ( d t ) ) = 2 η t ( w t w * ) ψ w ( d t ) + η t 2 ( ψ w ( d t ) ) 2
    Figure DE112017000670T5_0009
    wobei dt eine Zufallsprobe von d in dem Probenraum Ω ist und ht+1 - ht eine Zufallsvariable ist, die von der gezogenen Probe dt und der Lernrate ηt abhängt. Sie schlägt vor, wie weit ein Iterationsschritt in Richtung zu w* ist. Diese Gleichung demonstriert zwei wichtige Einsichten:
  • • Reduzieren von VAR{∇ψw(dt)} verbessert die Konvergenzrate. Die Erwartung von Gl. 8 ergibt die durchschnittliche Konvergenzrate bei der Genauigkeit einer Iteration. E { h t + 1 h t } = 2 η t ( w t w * ) E { ψ w ( d t ) } + η t 2 E { ( ψ w ( d t ) ) 2 } = 2 η t ( w t w * ) E { ψ w ( d t ) } + η t 2 ( E { ψ w ( d t ) } ) 2 + VAR { ψ w ( d t ) }
    Figure DE112017000670T5_0010
  • Um die Analyse von Gl. 9 zu vereinfachen, lasst uns annehmen, dass die Konvexität an ψw(dt) impliziert, dass h t + 1 h t < 0
    Figure DE112017000670T5_0011
    ( w t w * ) E { ψ w ( d t ) } < 0.
    Figure DE112017000670T5_0012
    wobei E{∇ψw(dt)} die nicht vorgespannte Schätzung von E{∇ψw(d)} ist. Daher wird ein Maximieren des Beitrags einer Iteration auf die Minimierung von VAR{∇ψw(dt)} reduziert. Die Richtung ist gut adressiert worden.
  • • Der Beitrag einer Iteration ht+1 - ht variiert in Bezug auf dt. Gemäß Gl. 8 ist die Varianz von ht+1 - ht: VAR { h t + 1 h t } = 4 η t 2 ( w t w * ) 2 VAR { ψ w ( d t ) } + η t 4 VAR { ( ψ w ( d t ) ) 2 } 2 η t 3 ( w t w * ) COV { ψ w ( d t ) , ψ w ( d t ) 2 }
    Figure DE112017000670T5_0013
  • Die Gleichung demonstriert VAR{ht+1 - ht} ≠ 0, was den Beitrag von Gradientenupdates als uneinheitlich impliziert. Es ist interessant anzumerken, dass das Bestimmen von Faktoren in dieser Gleichung ∇ψw(dt)2 und ∇ψw(dt) bei dt ungewiss ist, was eine Korrelation zwischen ht+1 - ht und dt vorschlägt. Diese eindeutige Einsicht motiviert uns, zu verstehen, welche Faktoren in dt die Konvergenzrate ht+1 - ht beeinträchtigen, und wie das Ladeausgleichsproblem beim Training zu adressieren ist. Obwohl es extensive Studien in Richtung zu der Varianzreduktion an ∇ψw(dt) gibt, ist in dieser Richtung wenig erforscht. Lasst uns den Verlust eines Batchs verwenden, um den Trainingszustand eines Modells an ihm zu messen. 6 stellt die Verlustverfolgungen von 10 separaten Batches während des Trainings dar. Es ist beobachtbar, dass die Verluste von Batches bei unterschiedlichen Raten degenerieren. Daher fördern die empirischen Beobachtungen und Gl. 12 uns, zu schließen, dass
    der Beitrag eines Gradientenupdates eines Batchs nicht einheitlich ist.
  • Dies erklärt auch die unterscheidenden bzw. ausgeprägten Trainingsdynamiken von Batches in 6. Gl. 12 schlägt vor, dass dt für den Anspruch kritisch ist. Wir führen eine Gruppe von empirischen Auswertungen durch, um zu verstehen, wie dt VAR{ht+i - ht} beeinflusst, und wir schlagen zwei Faktoren hoher Ebene vor, nämlich Abtasten einer Vorspannung und intrinsische Bilddifferenz, um das Phänomen zu erklären. Die Definitionen von diesen zwei Ausdrücken sind wie folgt:
  • Abtasten einer Vorspannung: Es ist eine Vorspannung, bei welcher eine Abtastung auf eine derartige Weise gesammelt wird, dass einige Elemente der beabsichtigten Population weniger wahrscheinlich als andere enthalten sind.
  • Intrinsische Bilddifferenz: Intrinsische Bilddifferenz zeigt an, dass Bilder von derselben Unterpopulation auch bei Pixeln unterschiedlich sind. Beispielsweise kann die Kategorie „Katze“ irgendwelche Bilder einer weißen Katze oder Bilder einer schwarzen Katze enthalten. Obwohl schwarze Katze und weiße Katze zu der Katzen-Unterpopulation gehören, sind sie bei Pixeln noch unterschiedlich.
  • Ein Abtasten einer Vorspannung ist der erste Faktor, um die Trainingsvariationen an Batches zu erklären. Wir berücksichtigen zwei Arten von einem Abtasten einer Vorspannung. Zuerst enthalten existierende Datensätze, wie beispielsweise Plätze oder ImageNet, eine ungeradzahlige Anzahl von Bildern in jeder Kategorie. Als Ergebnis ist es wahrscheinlicher, dass die dominierende Unterpopulation in einem Batch ausgewählt wird als andere. Als zweites kann das unzureichende Mischen an dem Datensatz zu Clustern bzw. Gruppen von Unterpopulationen führen. Wenn SGD sequentiell Bilder aus dem unzureichend permutierten Datensatz zieht, um einen zufällig gebildeten Batch auszubilden, ist eine Unterpopulation wahrscheinlicher enthalten als andere. In beiden Fällen sind sie konform mit der Definition eines Abtastens einer Vorspannung. Beispielsweise ist die Chance eines Abtastens von 1 aus [1, 1, 1, 0, 2, 3] höher als der Rest. Um den Anspruch zu unterstützen, synthetisierten wir 10 Einzelklassenbatches, die zufällig aus einer exklusiven Bildkategorie gezogen sind, in CIFAR-10.
  • Es ist zu beachten, dass CIFAR-10 10 unabhängige Bildkategorien enthält. Jeder Batch stellt eine eindeutige CIFAR-10-Kategorie dar, und sie sind stark verunreinigt mit einem Abtasten einer Vorspannung, da jeder Batch nur eine Unterpopulation enthält. 6(A) stellt die Verlustverfolgungen von zehn Einzelklassenbatches dar. Es ist offensichtlich zu sehen, dass die Verluste von zehn Batches sich unabhängig verschlechtern. Insbesondere sind Gradientenupdates vom gelben Batch effektiver als vom Purpur-Batch. Daher rechtfertigen diese Ergebnisse unseren Anspruch über ein Abtasten einer Vorspannung und die batchweise Trainingsvariation.
  • Eine intrinsische Bilddifferenz ist der zweite Faktor, um die Trainingsvariationen an Batches zu erklären. Um diesen Punkt zu substantiieren führen wir ein kontrolliertes Experiment an 10 unabhängigen identisch verteilten Batches durch. Ein Batch enthält 1000 Bilder und jeder Batch enthält 100 zufällig gezogene Bilder aus der Kategorie 0, 100 Bilder aus der Kategorie 1, ..., 100 Bilder aus der Kategorie 9. Diese Sequenz ist über Batches fest, um den potentiellen Ordnungseinfluss bzw. Auftragseinfluss zu eliminieren. In diesem Fall enthält jeder Batch dieselbe Anzahl von Bildern von 10 Unterpopulationen in CIFAR-10, und der einzige Unterschied zwischen ihnen sind die Pixel. Somit sehen wir diese Batches als unabhängig identisch verteilt an. Das Netz ist dasselbe wie dasjenige, das beim Abtasten einer Vorspannung verwendet ist. 6(B) stellt die Verlustverfolgungen von 10 u.i.v. Batches dar. Obwohl eine starke Korrelation durch das Training besteht, ist es noch klar, dass die Verluste von u.i.v. Batches sich mit getrennten Raten verschlechtern. Insbesondere ist der Verlust des Batchs 4 (grün) etwa 0,5, während der Batch 3 (purpur) etwa 1,3 bei der Epoche 400 ist. Es ist bitte zu beachten, dass diese Batches u.i.v. sind und es angenommen wird, dass sie nahezu identisch zum ursprünglichen Datensatz sind. Jedoch existieren die Trainingsvariationen noch, was den nicht einheitlichen Beitrag von Gradientenupdates von jeweiligen Batches anzeigt.
  • Probleme eines konsistenten Trainings bei SGD
  • SGD beruht auf einer Schlüsseloperation, die einen Batch aus dem gesamten Datensatz einheitlich zieht. Es ist bezüglich der Mathematik einfach, aber nicht trivial bei der Systemimplementierung. ImageNet, wie beispielsweise ILSVRC2012, enthält 1431167 256×256 RGB-Bilder hoher Auflösung, was sich auf etwa eine Gesamtgröße von 256 GB beläuft. Ein einheitliches Ziehen eines zufälligen Batchs aus der Binärdatei mit 256 GB enthält eine signifikante Zwangslage, wie beispielsweise ein Fehlen von TLB oder zufällige Platten-I/O-Operationen. Zusätzlich verschlechtert die dramatische Geschwindigkeitslücke zwischen Prozessor und Platte das Problem weiter. Existierende Frameworks für tiefes Lernen, wie beispielsweise Caffe oder Torch, erleichtern das Problem durch ein vorheriges Permutieren des gesamten Datensatzes vor einem Teilen in Batches: Permutieren{d} → d = { d0, d1, ..., dn-1, dn} = Ω. Während des Trainings holt jede Iteration einen Batch aus dem permutierten Datensatz Ω auf eine sequentielle Weise d0 → d1 → ... → dn; und erfolgt ein erneutes Starten eines Holens ab dem Beginn d0 nach dn, eines Erzeugens eines Batchauslesemusters in einem festen Kreis. Wir beziehen uns auf dieses Abtastverfahren als Festkreis-Pseudozufallsabtastung. Die zufälligen Auslesungen werden nach und nach auf sequentielle Auslesungen auf einer Platte reduziert. Daher ist ein FCPR-Abtasten weit verbreitet durch SGD angenommen. Man lässt nt die Größe eines Datensatzes sein und nb die Batch-Größe. Die Größe eines Abtastraums ist nd/nb und der Batch, der einer Iteration j zugeordnet ist, ist dt, wobei t = j   m o d * n d n b
    Figure DE112017000670T5_0014
  • Bei irgendeiner Iteration setzt das Modell immer einen festen Batch voraus, da der Batch in das Modell bei einer Iteration t+1. Epoche, ..., t+n. Epoche fließen wird. Wenn das Training eines Batchs durch das Gradientenupdate an sich selbst dominiert wird, ist der Verlust dieses Batchs vorherrschend bei einer Iteration t, t+1*Epoche, t+2*Epoche, ..., t+n*Epoche reduziert. Da der Beitrag von einem Gradientenupdate eines Batchs unterschiedlich ist, fördert ein wiederholtes Batchauslesemuster die unterscheidenden Trainingsgeschwindigkeiten von Batchs. Jedoch behandelt die FCPR-Abtastung bei SGD Batchs identisch.
  • Das Problem einer FCPR-Abtastung sind die konsistenten Gradientenupdates an Batches ungeachtet des Trainingszustands eines Modells. Es ist ineffizient, einen Batch mit geringem Verlust so häufig wie einen Batch mit großem Verlust upzudaten. 6(B) stellt der gelbe Batch als vollständig trainiert nach der Epoche 1600 dar, während der blaue Batch bis zur Epoche 2100 dies nicht ist. Während der Epochen [1600, 2100] bleibt der gelbe Batch über den größten Anteil an Zeit vollständig trainiert, was unnötige Trainingsiterationen an ihm anzeigt. Daneben verifizieren wir auch, dass der Beitrag eines Gradientenupdates eines Batchs unterschiedlich ist. Daher wird ein Regulieren der Trainingsiterationen in Bezug auf den Trainingszustand eines Modells an Batches die Effizienz von SGD verbessern.
  • Inkonsistenter stochastischer Gradientenabfall
  • In diesem Abschnitt präsentieren wir einen inkonsistenten stochastischen Gradientenabfall gemäß der vorliegenden Offenbarung, welche die Trainingsanstrengung in Bezug auf einen Trainingszustand eines Batchs auf vorteilhafte Weise neu ausgleicht. Die Inkonsistenz ist durch die nicht einheitlichen Gradientenupdates an Batches berücksichtigt. Die erste Frage ist, wie ein langsamer oder untertrainierter Batch während des Trainings dynamisch zu identifizieren ist. Wir modellieren das Training als einen stochastischen Prozess und wenden die obere Steuerungsgrenze an, um einen untertrainierten Batch dynamisch zu identifizieren. Die zweite Frage ist, wie ein untertrainierter Batch zu beschleunigen ist. Wir schlagen vor, dass eine neue Optimierung an den Batches gelöst wird, von welchem es das Ziel ist, das Training ohne dramatische Parameteränderungen zu beschleunigen. Für praktische Betrachtungen studieren wir auch die Effekte einer ISGD-Batch-Größe an der Konvergenzrate, Systemsättigungen und Synchronisierungskosten.
  • Identifizieren eines untertrainierten Batchs
  • ISGD modelliert das Training als einen stochastischen Prozess, der den Durchschnittsverlust von Batches langsam nach unten reduziert. Wir nehmen die Normalverteilung an dem Verlust eines Batchs in einer Epoche an. Die Gründe dafür sind, dass: 1) SGD eine geringe Lernrate (Ir) fordert, um zu konvergieren, und Ir normalerweise kleiner als 10-1 ist. Ir bestimmt die Schrittlänge, während der normalisierte Gradient die Schrittrichtung bestimmt. Der kleine Wert von Ir begrenzt den Beitrag, der durch ein Gradientenupdate gemacht wird, und somit besteht der Trainingsprozess im graduellen Reduzieren des Verlusts nach unten in Richtung zu einem lokalen Optimum. 2) Jeder Batch stellt den ursprünglichen Datensatz dar und es existiert eine starke Korrelation unter Batches beim Training. Dies impliziert, dass der Verlust eines Batchs nicht dramatisch unterschiedlich von dem Durchschnitt bei irgendeiner Iteration sein wird. 7 stellt die Verlustverteilung eines Trainierens eines Netzes an CIFAR-10 dar, wobei die Verluste durch Epochen angeordnet sind. Aus der Figur ist es gültig, die Normalverteilung an dem Verlust in einer Epoche anzunehmen. Daher schließen wir, dass
    das Training ein stochastischer Prozess ist, der das Mittel eines Fließens von Verlusten langsam kleiner wird, bis das Netz konvergiert.
  • Die 3σ-Steuerungsgrenze ist ein effektives Verfahren, um die Anomalitäten in einem statistischen Prozess zu überwachen. Da wir das Training als einen Prozess behandeln, der den Durchschnittsverlust von Batches erniedrigt, verwendet ISGD die obere Steuerungsgrenze, um anomale Batches mit großem Verlust im Fluge dynamisch zu identifizieren. Um die Grenze zu bekommen, berechnet ISGD zwei wichtige beschreibende Statistiken, nämlich den laufenden Durchschnittsverlust ψ̅ und die laufende Standardabweichung σψ während des Trainings. ISGD hält eine Warteschlange, um die Verluste zu speichern, die durch Iterationen erzeugt sind, in [t-nb, t], wobei nb die Größe eines Abtastraums ist (oder die Anzahl von Batches in einer Epoche). Die Warteschlange fungiert als ein Bewegungsfenster, das die Verlustinformation in der vorherigen Epoche verfolgt, um ψ̅ und σψ zu ergeben. ψ ¯ = 1 n b i = 1 n b ψ w t i ( d t i )
    Figure DE112017000670T5_0015
    σ ψ = 1 n b i = 1 n b [ ψ w t i ( d t i ) ψ ¯ ] 2
    Figure DE112017000670T5_0016
  • Da die Warteschlangenlänge bei nb fixiert ist und der Verlust eines Batchs eine Gleitkommazahl ist, sind die Berechnungen von ψ̅ und σψ und die Speicherkosten für die Warteschlange O(1) bei jeder Iteration t. Daher ist ISGD viel mehr speichereffizient als die Varianzreduktionsansätze, die zwischen Variablen derselben Größe als die Netzparameter erfordern. Mit ψ̅ und σψ ist die obere Steuerungsgrenze: l i m i t = ψ ¯ + 3 σ ψ
    Figure DE112017000670T5_0017
  • In diesem Fall nehmen wir die 3σ-Steuerungsgrenze an. Der Multiplizierer vor dem σψ spielt eine wichtige Rolle zwischen der Erforschung von neuen Batches und der Verbreitung des aktuellen Batchs. Es soll bitte später für eine ausführlichere Diskussion Bezug genommen werden auf die Diskussion des Algorithmus 1. Wenn der Verlust einer aktuellen Iteration t folgendes ist: ψ w t 1 ( d t ) > l i m i t
    Figure DE112017000670T5_0018
    betrachten wir dt als einen untertrainierten Batch.
  • 8 stellt ein Beispiel des ISGD-Verfahrens dar, um einen untertrainierten Batch im Flug zu identifizieren. Die blaue Linie ist der Verlust eines Batchs und die gelbe Linie ist der laufende Durchschnitt ψ̅ . Die grüne Linie ist die obere Steuerungsgrenze und die roten Punkte sind Ausreißer, die als untertrainiert betrachtet werden. Das Experiment wird mit AlexNet auf dem ImageNet durchgeführt, und es ist klar, dass ISGD die Batches mit großem Verlust bei dem Training mit dem vorgeschlagenen Ansatz erforderlich identifiziert.
  • Inkonsistentes Training
  • Wie es zuvor angegeben ist, besteht ein Kernkonzept des Trainingsmodells gemäß der vorliegenden Offenbarung im Spendieren von mehr Iterationen für die Batches mit großem Verlust als diejenigen mit kleinem Verlust. Das Batchauslesemuster bei ISGD ist ähnlich einer FCPR-Abtastung, aber mit dem folgenden wichtigen Unterschied. Wenn ein Batch einmal als untertrainiert identifiziert ist, bleibt ISGD an dem Batch, um das neue Unteroptimierungsproblem zu lösen, um das Training zu beschleunigen, und der Batch empfängt zusätzliche Trainingsiterationen innerhalb des Unterproblems. In diesem Fall kompromittiert ISGD nicht die Systemeffizienz einer FCPR-Abtastung, während es noch die Trainingsanstrengung über die Batches reguliert. Das neue Unterproblem ist: m i n w   ϕ w ( d t ) = 1 2 P ψ w ( d t ) l i m i t P 2 2 + ε 2 n w P w w t 1 P 2 2
    Figure DE112017000670T5_0019
    wobei nw die Anzahl von Gewichtungsparametern im Netz ist und ε ein Parameter für den zweiten Ausdruck ist. Der erste Ausdruck minimiert die Differenz zwischen dem Verlust eines aktuellen untertrainierten Batchs dt und der Steuerungsgrenze. Dies erfolgt, um den Beschleunigungseffekt zu erreichen. Der zweite Ausdruck ist eine konservative Beschränkung, um drastische Parameteränderungen zu vermeiden. Es ist bitte zu beachten, dass der zweite Ausdruck kritisch ist, weil ein Überschießen eines Batchs das Trainieren an anderen Batches negativ beeinflusst. Der Parameter ε stellt die konservative Beschränkung ein, und es ist empfohlen, dass sie 10-1 ist. Die Ableitung von Gl. 17 ist: ϕ w ( d t ) = [ ψ w ( d t ) l i m i t ] ψ w ( d t ) + ε ( w w t 1 ) n w
    Figure DE112017000670T5_0020
  • Es ist zu beachten, dass Grenzen wt-1 und dt Konstanten sind. Ein Lösen der Gl. 17 nimmt genau die signifikante Berechnung und den Kommunikationszusatz auf sich, was den Vorteil von ihm versetzt. In der Praxis approximieren wir die Lösung an das neue Unterproblem, Gl. 17, mit dem frühen Stoppen. Dies vermeidet die riesige Suchzeit, die beim Herumschweben bzw. Herumdrücken um die optimale Lösung verschwendet wird. Einige wenige Iterationen, wie beispielsweise 5, sind gut genug, um die Beschleunigungseffekte zu erreichen. Daher empfehlen wir ein Approximieren der Lösung durch das frühe Stoppen.
  • Der in 3 gezeigte Algorithmus 1 stellt die Basisprozeduren von ISGD dar. Da der Trainingszustand eines Batchs durch den Verlust gemessen wird, identifiziert ISGD einen Batch als untertrainiert, wenn der Verlust größer als die Steuerungsgrenze ψ̅ + 3*σψ ist (Linie 20). Eine strenge Grenze löst Gl. 17 häufiger aus. Dies erhöht eine Ausbreitung eines Batchs, es erniedrigt aber auch die Erforschung von Batches zu einem Netz in der festen Zeit. Daher ist eine enge Grenze auch nicht erwünscht. Ein weicher Spielraum, 2 oder 3 σψ, ist in der Praxis bevorzugt; und dieser Spielraum wird auch weithin bei einer statistischen Prozesssteuerung angewendet, um Anomalitäten in einem Prozess zu erfassen. Wir empfehlen Anwendern ein Einstellen des Spielraums gemäß dem spezifischen Problem. ISGD nimmt eine Verlustwarteschlange an, um die Verluste in einer Epoche dynamisch zu verfolgen, so dass der Durchschnittsverlust ψ̅ in O(1) berechnet wird (Linie 17). Die Verlustwarteschlange verfolgt Iterationen in der vorherigen Epoche; die Länge von ihr gleicht der Länge einer Epoche. Gleichermaßen erfolgt eine Berechnung von σψ auch in der O(1)-Zeit (Linie 18). Wir initiieren den Algorithmus 2 nicht, und zwar bis zur ersten Epoche, um eine zuverlässige Grenze aufzubauen (Linie 22 der Bedingung von Iter > n).
  • Der in 4 gezeigte Algorithmus 2 umreißt die Prozeduren, um das konservative Unterproblem an einem untertrainierten Batch zu lösen. Das konservative Unterproblem beschleunigt den untertrainierten Batch ohne drastische Gewichtsänderungen. Die Update-Gleichung in Linie 7 entspricht Gl. 18. Spezifisch ist [ψw(dt) - Grenze]∇ψw(dt) der Gradient von 1 2 P ψ w ( d t ) - G r e n z e   P 2 2 ,
    Figure DE112017000670T5_0021
    um das Trainieren eines untertrainierten Batchs zu beschleunigen. Der zweite Ausdruck ε n w ( w - w t - 1 )
    Figure DE112017000670T5_0022
    ist der Gradient von ε 2 n w Pw w t - 1 P 2 2 ,
    Figure DE112017000670T5_0023
    das signifikante Gewichtungsänderungen begrenzt. Die Grenze ist dieselbe obere Steuerungsschwelle im Alg. 1. Das Stopp spezifiziert die maximalen Näherungsiterationen, um das frühe Stoppen zu berücksichtigen. ζ ist eine konstante Lernrate.
  • Das Training des neuronalen Netzes muss die Lernrate nach und nach erniedrigen, um die Konvergenz sicherzustellen. Es ist eine allgemeine Taktik, die Lernrate in Bezug auf Trainingsiterationen zu erniedrigen. Die inkonsistenten Iterationen von ISGD erfordern eine neue Art, um die Lernrate zu führen. Stattdessen erniedrigt ISGD die Lernrate in Bezug auf den Durchschnittsverlust eines Datensatzes. Der Durchschnittsverlust ist besser als Iterationen, da er den Trainingszustand des Modells direkt berücksichtigt, während ein Berechnen des Durchschnittsverlustes eines Datensatzes teuer ist. Da der Durchschnittsverlust in Gl. 13 aus dem letzten Scan eines Datensatzes (oder Verlusten in einer Epoche) ist, ist es nahe dem Durchschnittsverlust eines Datensatzes. Somit verwenden wir den Durchschnittsverlust (Algorithmus 1, Linie 19), um die Lernrate zu führen.
  • Erweiterung auf andere SGD-Varianten
  • Es ist unkompliziert, das inkonsistente Training auf andere SGD-Varianten zu erweitern. Beispielsweise führt ein Momentum ein Update der Gewichtung mit den folgenden Gleichungen durch: v t + 1 = μ v t α ψ ( w t ) w t + 1 = w t + v t + 1
    Figure DE112017000670T5_0024
    und der beschleunigte Gradient von Nesterov folgt der Update-Regel von Folgendem: v t + 1 = μ v t α ψ ( w t + μ v t ) w t + 1 = w t + v t + 1
    Figure DE112017000670T5_0025
  • Um das inkonsistente Training zu diesen SGD-Varianten einzuführen, benötigen wir nur eine Änderung der Linie 21 des Algorithmus 1 gemäß Gl. 19 bzw. Gl. 20. Der Algorithmus 2 bleibt derselbe.
  • Paralleles ISGD
  • ISGD skaliert über das verteilte oder Mehrfach-GPU-System unter Verwendung von MPI-Stil-Kollektiven, wie beispielsweise Rundsenden, Reduzieren und Reduzieren von allem. Algorithmus 1 und Algorithmus 2 sind bereits die parallele Version, die durch die Kollektive in ihnen manifestiert sind.
  • 9 stellt das Datenparallelisierungsschema innerhalb von SGD dar. Lasst uns annehmen, dass es n Berechnungsknoten gibt, von welchen jeder eine GPU oder ein Server in einem Cluster ist. Jeder Knoten enthält ein Modellduplikat. Ein Knoten holt ein unabhängiges Segment des ursprünglichen Batchs, auf das als das Unterbatch Bezug genommen wird. Darauffolgend berechnen alle Knoten gleichzeitig Untergradienten und Unterverluste mit den zugeordneten Unter-Batches. Wenn die Berechnung einmal durchgeführt ist, reduziert der Algorithmus Untergradienten und Unterverluste (Linie 10-12 im Algorithmus 1) zu einem Masterknoten, um einen globalen Gradienten und Verlust zu erlangen. Dann updatet der Masterknoten Netzgewichtungen (Linie 21 im Algorithmus 3) und rundsendet (Linie 9 im Algorithmus 3) die letzten Gewichtungen. Daher trennt ISGD den Algorithmus von den Systemkonfigurationen durch Verwenden von MPI-Stil-Kollektiven. Da MPI ein industrieller und akademischer Standard ist, ist ISGD an verschiedenen heterogenen verteilten Systemen stark portierbar.
  • Batch-Größe und Konvergenzgeschwindigkeit
  • Eine Batch-Größe ist der Schlüsselfaktor für den Parallelismus von ISGD. Da Operationen an einem Batch unabhängig sind, bevorzugt ein Skalieren von ISGD an Systemen mit der massiven Rechenleistung einen ausreichend großen Batch. Eine unhandlich große Batch-Größe ist jedoch schädlich für die Konvergenzrate unter dem begrenzten Berechnungsbudget. Eine aktuelle Konvergenzratenanalyse verwendet Iterationen als die einzige Leistungsfähigkeitsmetrik, aber sie schlägt diesbezüglich fehl, die Tatsache zu berücksichtigen, dass eine Iteration mit schnellerem Algorithmus mehr Zeit kosten kann, als der langsamere Gegenpart. Somit ist es praktisch, die Konvergenzrate im Zeitbereich zu analysieren.
  • Lasst uns annehmen, dass die maximale Verarbeitungskapazität eines Systems C1 Bilder pro Sekunde ist und die Zeit, die auf Synchronisierungen verwendet wird, C2 Sekunden ist. Netzkosten sind eine Konstante, weil sie nur von der Größe eines Netzparameters abhängen. Ein Gradientenupdate kostet im Wesentlichen: t i t e r = t c o m   p + t c o m   m = n b C 1 + C 2
    Figure DE112017000670T5_0026
    wobei nb die Batch-Größe ist. Bei vorgegebener fester Zeit t ist die Anzahl von Gradientenupdates: T = t t i t e r
    Figure DE112017000670T5_0027
  • Nach T Gradientenupdates wird der Verlust begrenzt durch: ψ 1 n b T + 1 T
    Figure DE112017000670T5_0028
  • Lasst uns eine Gleichheit in Gl. 23 und der Ersatz-Gl. 22 annehmen. Es ergibt sich, dass Gl. 24, die einen Verlust ψ, eine Zeit t und Systemkonfigurationen C1 und C2 beherrscht: ψ t = t n b + C 1 C 2 n b C 1 + n b C 1 + C 2
    Figure DE112017000670T5_0029
  • 10 stellt die vorhergesagte Trainingszeit unter zwei Systemkonfigurationen dar, die durch Gl. 24 bei unterschiedlichen Batch-Größen nb ∈ (0,3000) berechnet sind. Durch Fixieren von ψ approximiert die Gleichung die gesamte Trainingszeit unter unterschiedlichen Batchs. Die Figur zeigt die optimale Batch-Größe des ersten und des zweiten Systems als 500 bzw. 1000. In diesem Fall benötigt ein schnelleres System einen größeren Batch. Die Leistungsfähigkeit von beiden Systemen verschlechtert sich danach. Als Ergebnis ist die optimale Batch-Größe ein Kompromiss zwischen Systemkonfigurationen und algorithmischen Konvergenzen.
  • Experimentell
  • In diesem Abschnitt demonstrieren wir die Leistungsfähigkeit eines inkonsistenten Trainings gegenüber SGD-Varianten, wie beispielsweise Momentum und Nesterov, an einer Vielfalt von weithin erkannten Datensätzen, einschließlich MNIST, CIFAR-10 und ImageNet. MNIST hat 60.000 handgeschriebene Ziffern im Bereich von 0 bis 9. CIFAR-10 hat 60.000 32x32 RGB-Bilder, die in 10 Klassen kategorisiert sind. ILSVRC 2012 ImageNet hat 1431167 256×256-RGB-Bilder, die 1000 Objektkategorien zeigen. Wir verwenden LeNet, Caffe CIFAR-10 Quick und AlexNet, um jeweils an MNIST, CIFAR-10 und ImageNet zu trainieren. Die Komplexität von Netzen ist proportional zur Größe von Datensätzen. Daher decken unsere Benchmark-Tests das CNN-Training in kleinem, mittlerem und großem Maßstab ab.
  • Wir führen die Experimente an einem Multi-GPU-System mit 4 NVIDIA-Maxwell TITAN X durch. Die CUDA-Version ist 7.5 der Compiler ist GCC 4.8.4. Die Maschine hat einen RAM mit 64 GB und SSD mit 1TB. CPU ist Xeon E5 4655 v3. Caffe ist mit der cuDNN-Version 4 aufgebaut. Die GPU-Maschine war exklusiv im Besitz von uns während des Benchmark-Tests.
  • Die durchschnittliche größte Genauigkeit und Zeit, die von dem Training mit ISGD und SGD an MNIST, CIFAR und ImageNet berichtet ist. IMP steht für die Verbesserung von ISGD gegenüber SGD. Die Daten werden von 10 Durchläufen gesammelt und ISGD führt SGD konsistent an 3 Datensätzen aus. Tabelle 1
    HR-Top/ Top-5-Genauigkeit Durchschnitts-Top/Top-5-Genauigkeit
    SGD ISGD IMP SGD ISGD IMP
    MNIST 99,08 % 99,19 % 0,11 % 99,05 % 99,17 % 0,12 %
    CIFAR 76,01 % 76,55 % 0,54 % 75,78 % 76,43 % 0,64 %
    ImageN 82,12 % 81,10 % 1,01 % 81,83 % 80,56 % 1,27 %
    Tabelle 1 Forts.
    Normalisierte Durchschnittszeit bis zu Top/Top-5-Genauigkeit
    SGD ISGD IMP
    MNIST 1 0,744 25,6 %
    CIFAR 1 0,722 22,78 %
    ImageN 1 0,8547 14,53 %
  • Qualitative Bewertung eines inkonsistenten Trainings
  • Dieser Abschnitt beabsichtigt, die Einflüsse eines inkonsistenten Trainings qualitativ zu bewerten. Der Zweck eines inkonsistenten Trainings besteht im erneuten Ausgleichen der Trainingsanstrengung über Batches, so dass der Batch mit großem Verlust mehr Training als derjenige mit kleinem Verlust empfängt. Um die Einflüsse von inkonsistentem Training qualitativ zu bewerten, untersuchen wir das Fortschreiten der Verlustverteilung, des Durchschnittsverlusts, der Standardabweichung einer Verlustverteilung eines Batchs sowie die Validierungsgenauigkeit. Wir stellen das Training mit Caffe CIFAR-10 Quick-Netz an einem CIFAR-10-Datensatz ein. Die Batch-Größe wird auf 2500 eingestellt, was 20 unabhängige Batches ergibt. 11(A) und 11(B) präsentieren die Verlustverteilung von 20 Batches beim Training. Wir arrangieren Verluste in Epochen, da der Löser einen Batch nur einmal in einer Epoche erforscht.
  • Das inkonsistente Training hat die folgenden Vorteile. 1) ISGD konvergiert schneller als SGD aufgrund der Verbesserung eines Trainingsmodells. Wir messen die Konvergenzrate durch den Durchschnittsverlust von Batches in einem Datensatz und das Verfahren ist konform mit der Trainingsdefinition in Gl. 3. Die Durchschnittsverlustdaten in 11(D) demonstrieren, dass ISGD schneller als SGD konvergiert. Gegensätzlich zu SGD gibt es den niedrigeren Durchschnittsverlust von ISGD nach Iter > 7000.
  • 11(D) stellt die bessere Genauigkeit von ISGD nach einem Testen 9 dar (11(E)). Die Validierungsgenauigkeit von ISGD in 11(e) ist auch über SGD, das heißt konsistent mit Daten in 11(D), dass der Durchschnittsverlust von ISGD unter dem Durchschnittsverlust von SGD beim Training ist. Dies rechtfertigt den Konvergenzvorteil eines inkonsistenten Trainings. 2) ISGD beschleunigt den Batch mit großem Verlust beim Fortschreiten eines Trainings dynamisch, um die Trainingslücke mit Batches mit kleinem Verlust zu reduzieren. Daher ist die Variation eines Trainingszustands eines Batchs kleiner als diejenige, die durch SGD trainiert ist. Es ist bitte zu beachten, dass wir den Trainingszustand eines Batchs mit seinem Verlust messen und die Variation eines Trainingszustands eines Batchs wird durch die Standardabweichung einer Verlustverteilung eines Batchs gemessen.
  • 11(C) stellt dar, dass das inkonsistente Training die Trainingsvariationen unter Batches erfolgreich dämpft. Wenn Iter ∈ [1000,6000], ist std einer Verlustverteilung eines Batchs von ISGD viel niedriger als SGD. Das Ergebnis ist auch konsistent mit der Verlustverteilung in 11(A) und 11(B), wobei die Verlustverteilung von SGD viel weiter als von ISGD bei Epoche ∈ [50,300] ist.
  • Leistungsfähigkeitsbewertungen
  • Der Aufbau von jeweiligen Vergleichen ISGD gegenüber SGD ist sorgfältig eingestellt worden, um das Einzelfaktorexperiment zu sein, d.h. der einzige Unterschied besteht im inkonsistenten Training. Einige Parameter von SGD beeinflussen die Trainingsleistungsfähigkeit stark, was ein Einstellen von unterschiedlichen Werten an ihnen die Glaubwürdigkeit von Experimenten gefährdet. Daher stellen wir sicher, dass die Parameter von SGD und ISGD in jeweiligen Vergleichen dieselben sind. Der erste Parameter, der berücksichtigt ist, ist die Lernrate. Die MNIST-Tests nehmen eine konstante Lernrate von 0,01 an und CIFAR-Tests nehmen eine konstante Lernrate von 0,001 an. Beide Fälle sind konsistent mit dem Löser, der in Caffe definiert ist. Caffe fixiert die Lernrate für diese zwei Fälle, weil Netze die zufriedenstellenden Genauigkeiten ergeben, 75 % an CIFAR und 99 % an MNIST, ohne die Lernrate zu schrumpfen. Da AlexNet Ir schrumpfen muss, hat die Lernrate von ihm 3 Möglichkeiten: Ir = 0,015, wenn der Durchschnittsverlust ψ̅ ∈[2,0, +∞], Ir = 0,0015, wenn ψ̅ in [1.2, 2.0] ist und Ir = 0,00015, wenn ψ̅ in [0,01.2] ist. Die Batch-Größe ist auch dieselbe für jeden Vergleich bei CIFAR, MNIST und ImageNet. Wir nehmen einen großen Batch an, um 4 GPUs vollständig zu sättigen. Für andere Parameter, wie beispielsweise die Gewichtungsverzögerung und das Momentum, sind sie auch durch alle Tests hindurch dieselben.
  • ISGD führt konsistent SGD in allen Tests durch, was die Effektivität eines inkonsistenten Trainings manifestiert. Es ist bitte zu beachten, dass beide Verfahren den Momentum-Ausdruck enthalten. Da eine Iteration von ISGD inkonsistent ist, testen wir jede andere 2, 6, 900 Sekunden (nur ein Zählen der Trainingszeit mit der Testzeit ausgeschlossen) für MNIST-, CIFAR- bzw. ImageNet-Tests. Die horizontale gestrichelte Linie stellt die Zielgenauigkeit dar und die gesamte Trainingszeit beginnt ab 0 bis zu dem Punkt, bei welchem die Validierungsgenauigkeit konsistent über der gestrichelten Linie ist. Beim ImageNet-Test demonstriert ISGD die um 14,94 % schnellere Konvergenz als ISGD. SGD dauert 21,4 Stunden, um die 81 % einer Top-5-Genauigkeit zu erreichen, während ISGD 18,2 Stunden dauert (13(C)). Beim CIFAR-Test demonstriert ISGD eine um 23,57 % schnellere Konvergenz als SGD. Die Top-Genauigkeit für das CIFAR-Quick-Netz, die über CIFAR-10 berichtet ist, beträgt 75 %. Nach 306 Sekunden ist die Testgenauigkeit von SGD ständig oberhalb von 75 %, während ISGD nur 234 Sekunden dauert (12(B)). Schließlich demonstriert ISGD eine um 28,57 % schnellere Konvergenz als SGD an einem MNIST-Datensatz. Es dauert bei SGD 56 Sekunden, um die 99% einer Top-Genauigkeit zu erreichen, während ISGD nur 40 Sekunden dauert. Da das Training im Wesentlichen ein stochastischer Prozess ist, unterzieht sich die Leistungsfähigkeit Änderungen. Wir wiederholen jeweilige Testfälle 10 mal und wir listen die Leistungsfähigkeitsdaten in Tabellen auf. 1. Die Ergebnisse gelten auch für die Konvergenzvorteile eines inkonsistenten Trainings.
  • Um die Leistungsfähigkeitsvorteile von ISGD zu erklären, verwenden wir auch den Trainingsdatensatz, um zu testen. Während der Trainingssatz von ImageNet 256 GB zu groß ist, um getestet zu werden, verwenden wir ψ̅ im Algorithmus 3, um den Trainingsfehler zu approximieren. 12(D), 12(E) und 12(F) demonstrieren den Trainingsfehler von ISGD als konsistent unterhalb von SGD. Die Ergebnisse demonstrieren den Vorteil eines inkonsistenten Trainings und sie erklären auch die gute Validierungsgenauigkeit von ISGD in 12(A), 12(B) und 12(C).
  • Das inkonsistente Training ist auch kompatibel mit dem beschleunigten Gradienten von Nesterov. 14(A) und 14(B) stellen die Validierungsgenauigkeit und den Fortschritt eines Trainingsverlusts am ImageNet dar, das mit dem beschleunigten Gradienten von Nesterov trainiert ist. Das inkonsistente Training schlägt das reguläre Nesterov-Verfahren. Wenn es auf 58% einer Top-1-Genauigkeit als die Schwelle eingestellt ist, dauert das inkonsistente Training 65 Tests, um die Schwelle zu überschreiten, während das reguläre 75 Tests dauert. Es ist bitte zu beachten, dass das Zeitintervall von zwei aufeinanderfolgenden Tests fest ist. Daher demonstrierte das inkonsistente Training den Leistungsfähigkeitsgewinn von 13,4%. Die Kompatibilität ist unter unserer Erwartung. Das Nesterov-Verfahren beschleunigt die Konvergenz durch Berücksichtigen der Krümmungsinformation, während ISGD das Training über Batches neu ausgleicht.
  • Zeitbereichs-Konvergenzrate in Bezug auf Batch-Größe an Multi-GPUs
  • 13(A)-13(C) stellen Konvergenzgeschwindigkeiten bei unterschiedlichen Batch-Größen an MNIST-, CIFAR- und ImageNet-Datensätzen dar. Die Figuren berücksichtigen die folgenden Schlüsse: 1) ein ausreichend großer Batch ist nötig, um das Multi-GPU zu trainieren. Das Einzel-GPU enthält nur Berechnungen tcompt, während das Multi-GPU-Training einen zusätzlichen Ausdruck für Synchronisierungen tcomm beinhaltet. Eine kleine Batch-Größe für das Einzel-GPU-Training ist favorisiert, um die häufigen Gradientenupdates sicherzustellen. Beim Multi-GPU-Training erhöhen sich die Kosten von Synchronisierungen linear mit der Anzahl von Gradientenupdates. Ein Erhöhen einer Batch-Größe verbessert die Konvergenzrate, wodurch weniger Iterationen und Synchronisierungen vorhanden sind. Daneben verbessert es auch Systemnutzungen und -sättigungen. Als eine Folge davon ist eine moderate Batch-Größe für das Multi-GPU-Training favorisiert, wie es in den 13(A)-13(C) angezeigt ist. 2) Eine unhandliche Batch-Größe verlangsamt die Konvergenz. Weil sich Berechnungen linear mit der Batch-Größe erhöhen, was die Anzahl von Gradientenupdates in einer beschränkten Zeit reduziert. Die abgesenkte Konvergenzgeschwindigkeit ist in der 13(A), 13(B) und 13(C) beobachtbar, wenn eine Batch-Größe jeweils auf 3000, 10.000, 3400 eingestellt ist.
  • Zusammenfassung
  • In dieser Offenbarung beschreiben wir ein inkonsistentes Training, um die Trainingsanstrengung in Bezug auf einen Trainingszustand von Batches dynamisch einzustellen. ISGD modelliert das Training als einen stochastischen Prozess und es verwendet Techniken in einer stochastischen Prozesssteuerung, um einen Batch mit großem Verlust im Flug bzw. während der Verarbeitung zu identifizieren. Dann löst ISGD ein neues Unterproblem, um das Training an dem untertrainierten Batch zu beschleunigen. Extensive Experimente an einer Vielfalt von Datensätzen und Modellen demonstrieren die vielversprechende Leistungsfähigkeit eines inkonsistenten Trainings.
  • An dieser Stelle werden, während wir diese Offenbarung unter Verwendung einiger spezifischer Beispiele präsentiert haben, Fachleute auf dem Gebiet erkennen, dass unsere Lehren nicht so beschränkt sind. Demgemäß sollte diese Offenbarung nur durch den Schutzumfang der hierzu beigefügten Ansprüche beschränkt sein.

Claims (7)

  1. Verfahren, umfassend: Trainieren, durch wenigstens eine Computervorrichtung, eines faltenden neuronalen Netzes (CNN) mit einem inkonsistenten stochastischen Gradientenabfall-(ISGD-)Algorithmus unter Verwendung eines Trainingsdatensatzes; wobei das Training ein Ausführen des ISGD-Algorithmus für eine Anzahl von Iterationen enthält.
  2. Verfahren nach Anspruch 1, wobei die Computervorrichtung eine Vielzahl von Prozessoren enthält und das Verfahren weiterhin ein Parallelisieren, durch die wenigstens eine Computervorrichtung, wenigstens eines Teilbereichs von irgendwelchen Berechnungen des inkonsistenten stochastischen Gradientenabfall-Algorithmus auf der Vielzahl von Prozessoren enthält.
  3. Verfahren nach Anspruch 2, das weiterhin ein Trainieren des CNN mit Batches von Trainingsdaten und ein Klassifizieren der Batches als untertrainierter Zustand oder als gut trainierter Zustand basierend auf einer Verlustbestimmung umfasst.
  4. Verfahren nach Anspruch 3, das weiterhin ein Fortfahren, um irgendwelche Batches zu trainieren, die als untertrainiert klassifiziert sind, bis ihr bestimmter Verlust unter eine vorbestimmte Schwelle fällt oder eine vorbestimmte Anzahl von Iterationen erreicht ist, umfasst.
  5. Verfahren nach Anspruch 3, das weiterhin ein erneutes Ausgleichen einer Trainingsanstrengung quer über Batches in Bezug auf einen gegebenen Trainingszustand eines Batchs umfasst.
  6. Verfahren nach Anspruch 4, wobei das fortgesetzte Training durch das folgende Problem definiert ist: m i n   w ϕ w ( d t ) = 1 2 P ψ w ( d t ) l i m i t P 2 2 + ε 2 n w Pw w t 1 P 2 2
    Figure DE112017000670T5_0030
    wobei nw die Anzahl von Gewichtungsparametern im Netz ist und ε ein Parameter für den zweiten Ausdruck ist und der erste Ausdruck den Unterschied zwischen dem Verlust eines aktuellen untertrainierten Batchs dt und einer Steuerungsgrenze minimiert.
  7. Verfahren nach Anspruch 3, wobei ein Batch als untertrainiert klassifiziert wird, wenn der Verlust größer als eine Steuerungsgrenze ist, die definiert ist durch: ψ ¯ + 3 σ ψ .
    Figure DE112017000670T5_0031
DE112017000670.8T 2016-02-05 2017-02-06 Beschleunigen eines Trainierens eines tiefen neuronalen Netzes mit einem inkonsistenten stochastischen Gradientenabfall Pending DE112017000670T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662291554P 2016-02-05 2016-02-05
US62/291,554 2016-02-05
US15/423,360 2017-02-02
US15/423,360 US10572800B2 (en) 2016-02-05 2017-02-02 Accelerating deep neural network training with inconsistent stochastic gradient descent
PCT/US2017/016637 WO2017136802A1 (en) 2016-02-05 2017-02-06 Accelerating deep neural network training with inconsistent stochastic gradient descent

Publications (1)

Publication Number Publication Date
DE112017000670T5 true DE112017000670T5 (de) 2018-10-25

Family

ID=59496441

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017000670.8T Pending DE112017000670T5 (de) 2016-02-05 2017-02-06 Beschleunigen eines Trainierens eines tiefen neuronalen Netzes mit einem inkonsistenten stochastischen Gradientenabfall

Country Status (4)

Country Link
US (1) US10572800B2 (de)
JP (1) JP6788019B2 (de)
DE (1) DE112017000670T5 (de)
WO (1) WO2017136802A1 (de)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018018451A (ja) * 2016-07-29 2018-02-01 富士通株式会社 機械学習方法、機械学習プログラム及び情報処理装置
US10963783B2 (en) * 2017-02-19 2021-03-30 Intel Corporation Technologies for optimized machine learning training
CN117709426A (zh) * 2017-02-24 2024-03-15 渊慧科技有限公司 训练机器学习模型的方法、系统和计算机存储介质
US11580361B2 (en) * 2017-04-24 2023-02-14 Intel Corporation Neural network training mechanism
CN107316083B (zh) * 2017-07-04 2021-05-25 北京百度网讯科技有限公司 用于更新深度学习模型的方法和装置
US11347964B2 (en) * 2017-08-07 2022-05-31 Renesas Electronics Corporation Hardware circuit
JP2019080232A (ja) * 2017-10-26 2019-05-23 株式会社Preferred Networks 勾配圧縮装置、勾配圧縮方法及びプログラム
WO2019083578A1 (en) * 2017-10-27 2019-05-02 Google Llc SYSTEMS AND METHODS FOR ENHANCED OPTIMIZATION OF AUTOMATIC LEARNING MODELS
CN108171318B (zh) * 2017-11-30 2022-05-27 河南大学 一种基于模拟退火—高斯函数的卷积神经网络集成方法
CN107945134B (zh) * 2017-11-30 2020-10-09 北京小米移动软件有限公司 图像处理方法及装置
WO2019121618A1 (en) * 2017-12-22 2019-06-27 Koninklijke Philips N.V. Accelerated data access for training
US11244243B2 (en) * 2018-01-19 2022-02-08 Hypernet Labs, Inc. Coordinated learning using distributed average consensus
US10878482B2 (en) 2018-01-19 2020-12-29 Hypernet Labs, Inc. Decentralized recommendations using distributed average consensus
US10884795B2 (en) 2018-04-26 2021-01-05 International Business Machines Corporation Dynamic accelerator scheduling and grouping for deep learning jobs in a computing cluster
US11120333B2 (en) 2018-04-30 2021-09-14 International Business Machines Corporation Optimization of model generation in deep learning neural networks using smarter gradient descent calibration
CN109034373B (zh) * 2018-07-02 2021-12-21 鼎视智慧(北京)科技有限公司 卷积神经网络的并行处理器及处理方法
CN110766152B (zh) * 2018-07-27 2023-08-04 富士通株式会社 用于训练深度神经网络的方法和装置
US11816575B2 (en) 2018-09-07 2023-11-14 International Business Machines Corporation Verifiable deep learning training service
US11853391B1 (en) * 2018-09-24 2023-12-26 Amazon Technologies, Inc. Distributed model training
CN111104767B (zh) * 2018-10-10 2021-10-01 北京大学 一种针对fpga的变精度随机梯度下降的结构及设计方法
JP6946255B2 (ja) * 2018-11-13 2021-10-06 株式会社東芝 学習装置、推定装置、学習方法およびプログラム
JP7283065B2 (ja) * 2018-12-07 2023-05-30 日本電信電話株式会社 推定装置、最適化装置、推定方法、最適化方法、及びプログラム
US11200438B2 (en) * 2018-12-07 2021-12-14 Dus Operating Inc. Sequential training method for heterogeneous convolutional neural network
WO2020123084A1 (en) * 2018-12-11 2020-06-18 Exxonmobil Research And Engineering Company Machine learning-augmented geophysical inversion
CN109737955A (zh) * 2018-12-14 2019-05-10 南京理工大学 一种海浪补偿系统的姿态预测方法
CN111598113A (zh) * 2019-02-20 2020-08-28 富士通株式会社 模型优化方法、数据识别方法和数据识别装置
CN109978177B (zh) * 2019-03-19 2023-06-23 腾讯科技(深圳)有限公司 模型训练方法、业务处理方法、装置及相关设备
US11093862B2 (en) 2019-03-21 2021-08-17 International Business Machines Corporation Locality aware data loading for machine learning
US10956357B2 (en) 2019-04-01 2021-03-23 International Business Machines Corporation Method for flexible, fast all-reduce on arbitrary tree topology
CN110378480B (zh) * 2019-06-14 2022-09-27 平安科技(深圳)有限公司 模型训练方法、装置及计算机可读存储介质
CN110378307B (zh) * 2019-07-25 2022-05-03 广西科技大学 基于深度学习的纹理图像方向场估计方法
US20210089899A1 (en) * 2019-09-19 2021-03-25 Lucinity ehf Federated learning system and method for detecting financial crime behavior across participating entities
US11227067B2 (en) 2019-09-19 2022-01-18 Lucinity ehf Autoencoder-based information content preserving data anonymization method and system
US11640552B2 (en) * 2019-10-01 2023-05-02 International Business Machines Corporation Two stage training to obtain a best deep learning model with efficient use of computing resources
CN111027668B (zh) * 2019-12-05 2023-04-07 深圳牛图科技有限公司 一种基于贪婪算法的神经网络自荐方法
CN111209815B (zh) * 2019-12-28 2023-08-22 杭州电子科技大学 一种基于动量优化的bp神经网络的非接触式疲劳驾驶检测方法
CN111160531B (zh) * 2019-12-30 2023-09-22 北京迈格威科技有限公司 神经网络模型的分布式训练方法、装置及电子设备
US11410083B2 (en) 2020-01-07 2022-08-09 International Business Machines Corporation Determining operating range of hyperparameters
CN111507530B (zh) * 2020-04-17 2022-05-31 集美大学 基于分数阶动量梯度下降的rbf神经网络船舶交通流预测方法
US11475304B2 (en) 2020-05-12 2022-10-18 International Business Machines Corporation Variational gradient flow
CN111860585A (zh) * 2020-06-11 2020-10-30 南京简凡科技有限公司 一种基于超声影像人工智能算法的脂肪肝自动检测方法
KR20220033713A (ko) * 2020-09-10 2022-03-17 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그 동작 방법
CN111967035B (zh) * 2020-10-23 2021-04-27 支付宝(杭州)信息技术有限公司 模型训练方法、装置和电子设备
CN113469341A (zh) * 2021-07-07 2021-10-01 河海大学 一种基于版本差异的流水线并行训练节点权重分配方法
CN114117906B (zh) * 2021-11-19 2024-05-10 山东大学 基于观测数据自编码的多尺度无监督地震波速反演方法
US11983162B2 (en) 2022-04-26 2024-05-14 Truist Bank Change management process for identifying potential regulatory violations for improved processing efficiency
CN114724009B (zh) * 2022-04-26 2022-09-27 北京拙河科技有限公司 一种基于改进的深度学习网络的图像识别方法及装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05159086A (ja) * 1991-12-03 1993-06-25 Nippon Telegr & Teleph Corp <Ntt> ニューラルネットワークの学習方式
US9443141B2 (en) * 2008-06-02 2016-09-13 New York University Method, system, and computer-accessible medium for classification of at least one ICTAL state
US20140156231A1 (en) * 2012-11-30 2014-06-05 Xerox Corporation Probabilistic relational data analysis
US9508347B2 (en) * 2013-07-10 2016-11-29 Tencent Technology (Shenzhen) Company Limited Method and device for parallel processing in model training
US10373047B2 (en) * 2014-02-28 2019-08-06 Educational Testing Service Deep convolutional neural networks for automated scoring of constructed responses
US10540587B2 (en) * 2014-04-11 2020-01-21 Google Llc Parallelizing the training of convolutional neural networks
US10540606B2 (en) 2014-06-30 2020-01-21 Amazon Technologies, Inc. Consistent filtering of machine learning data
US20170213150A1 (en) * 2016-01-25 2017-07-27 Osaro, Inc. Reinforcement learning using a partitioned input state space

Also Published As

Publication number Publication date
US20170228645A1 (en) 2017-08-10
JP2019509550A (ja) 2019-04-04
JP6788019B2 (ja) 2020-11-18
WO2017136802A1 (en) 2017-08-10
US10572800B2 (en) 2020-02-25

Similar Documents

Publication Publication Date Title
DE112017000670T5 (de) Beschleunigen eines Trainierens eines tiefen neuronalen Netzes mit einem inkonsistenten stochastischen Gradientenabfall
DE202019106182U1 (de) Neuronenarchitektursuche mit faktorisiertem hierarchischem Suchraum
DE102018111905A1 (de) Domänenspezifische Sprache zur Erzeugung rekurrenter neuronaler Netzarchitekturen
DE112022000106T5 (de) Verfahren zur Getriebefehlerdiagnose und Signalerfassung, eine Vorrichtung und ein elektronisches Gerät
DE102017125256A1 (de) Suche nach einer neuronalen Architektur
DE102018202497A1 (de) Technologien für optimiertes Maschinenlerntraining
EP3336800B1 (de) Bestimmen einer trainingsfunktion zum generieren von annotierten trainingsbildern
DE112016001796T5 (de) Feinkörnige bildklassifizierung durch erforschen von etiketten von einem bipartiten graphen
DE112018002822T5 (de) Klassifizieren neuronaler netze
DE202020101701U1 (de) Trainieren neuronaler Netze unter Verwendung von Datenvermehrungsstrategien
DE60004507T2 (de) Schnelle gruppierung durch spärlich bestückte datensätze
DE102013221057A1 (de) System und Verfahren für Batch-Auswertungs-Programme
DE202017105184U1 (de) Tiefes Maschinenlernen zum Ausführen einer Berührungsbewegungsvorhersage
DE102014113692A1 (de) Verdichtung von longitudinalen epa für eine verbesserte phänotypisierung
DE102014113988A1 (de) Erzeugungsvorrichtung, Erzeugungsverfahren und Programm
DE112023000011T5 (de) Ein primäres Frequenzmodulationssteuersystem der thermischen Stromerzeugungseinheit mit kleinen Störungen
DE102021004591A1 (de) Für Graphen vorgesehene neuronale Netzwerke für Datensätze mit Heterophilie
DE102021202189A1 (de) Maschinell erlernte anomalieerkennung
CN112085157B (zh) 基于神经网络和树模型的疾病预测方法及其装置
DE112019006156T5 (de) Erkennung und behandlung von unsachgemässen eingaben durch neuronale netzwerke
DE102019109631A1 (de) Tiefes komprimiertes netzwerk
DE112021004559T5 (de) System zur robusten vorhersage bei unregelmässigen zeitreihen in dialysepatientenakten
DE102022113243A1 (de) Score-basierte generative Modellierung im latenten Raum
DE112021005910T5 (de) Schnellere abdeckungskonvergenz mit automatischer testparameterabstimmung bei eingeschränkter zufallsverifikation
DE112020000202T5 (de) Komprimierungsvorrichtung für neuronale Netze

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication