DE112018005205T5 - Komprimierung von vollständig verbundenen / wiederkehrenden Schichten von einem oder mehreren tiefen Netzen durch Durchsetzen von räumlicher Lokalität für Gewichtsmatrizen und erwirken von Frequenzkomprimierung - Google Patents

Komprimierung von vollständig verbundenen / wiederkehrenden Schichten von einem oder mehreren tiefen Netzen durch Durchsetzen von räumlicher Lokalität für Gewichtsmatrizen und erwirken von Frequenzkomprimierung Download PDF

Info

Publication number
DE112018005205T5
DE112018005205T5 DE112018005205.2T DE112018005205T DE112018005205T5 DE 112018005205 T5 DE112018005205 T5 DE 112018005205T5 DE 112018005205 T DE112018005205 T DE 112018005205T DE 112018005205 T5 DE112018005205 T5 DE 112018005205T5
Authority
DE
Germany
Prior art keywords
components
computer
subcomponents
data
component
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
DE112018005205.2T
Other languages
English (en)
Inventor
Jungwook CHOI
Pritish Narayanan
Chia-Yu Chen
Kailash Gopalakrishnan
Suyog Gupta
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112018005205T5 publication Critical patent/DE112018005205T5/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
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/02Computing arrangements based on specific mathematical models using fuzzy logic

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)
  • Image Analysis (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Ein System mit einem Hauptspeicher, in dem durch einen Computer ausführbare Komponenten gespeichert sind, und einem Prozessor, der die durch einen Computer ausführbaren Komponenten ausführt, verringert die Datengröße im Zusammenhang mit einem Trainieren eines neuronalen Netzes durch Ausnutzung einer räumlichen Lokalität zu Gewichtsmatrizen und Erwirken von Frequenztransformation und Komprimierung. Eine Empfangskomponente empfängt Daten des neuronalen Netzes in Form einer komprimierten Frequenzbereichs-Gewichtsmatrix. Eine Segmentierungskomponente segmentiert die Ausgangsgewichtsmatrix in ursprüngliche Teilkomponenten, wobei jeweilige ursprüngliche Teilkomponenten räumliche Gewichte aufweisen. Eine Abtastkomponente wendet eine verallgemeinerte Gewichtsverteilung auf die jeweiligen ursprünglichen Teilkomponenten an, um jeweilige normalisierte Teilkomponenten zu erzeugen. Eine Transformationskomponente wendet eine Transformation auf die jeweiligen normalisierten Teilkomponenten an. Eine Beschneidungskomponente abschneidet hochfrequente Gewichte der jeweiligen transformierten normalisierten Teilkomponenten, um einen Satz von niederfrequenten normalisierten Teilkomponenten hervorzubringen, um eine komprimierte Darstellung der ursprünglichen Teilkomponenten zu erzeugen.

Description

  • TECHNISCHES GEBIET
  • Die gegenständliche Offenbarung betrifft im Allgemeinen eine Verringerung der Datengröße im Zusammenhang mit einem Trainieren eines oder mehrerer neuronaler Netze, indem Gewichtsmatrizen eine räumliche Lokalität auferlegt und eine Frequenzkomprimierung erwirkt wird.
  • HINTERGRUND
  • Neuronale Netze gewinnen im Zusammenhang mit dem Sammeln und Verschieben kritischer Daten aus der physischen Welt und dem Verarbeiten derartiger Daten in der digitalen Welt rasch an Boden. In den letzten zehn Jahren hat die Verwendung von auf „Deep Learning (DL)“ beruhenden neuronalen Netzen verschiedene Fachbereiche revolutioniert, darunter Spracherkennung, Bilderkennung, Verarbeitung natürlicher Sprache, Entschlüsselung des Erbguts und viele andere Bereiche. Dieser rasche Fortschritt wurde durch eine Verfügbarkeit enormer Mengen an gekennzeichneten Daten (labeled data) in derartigen Bereichen in Verbindung mit verbesserten Datenverarbeitungsfähigkeiten ermöglicht, die von hochleistungsfähigen grafischen Verarbeitungseinheiten (GPUs, graphical processing units) bereitgestellt werden. Trotz verschiedener beeindruckender technologischer Fortschritte kann es Tage oder Wochen dauern, verteilte neuronale Netze (DNNs, distributed neural networks) zu trainieren, selbst auf hochmoderner Hardware. Darüber hinaus kann die Datenübertragungsbandbreite angesichts der großen Anzahl von trainierbaren Modellparametern (auch als Gewichte bekannt) häufig eine Anzahl von verteilten Lernern begrenzen, was eine Vollauslastung verhindern kann. Zwei wesentliche Gründe dafür, dass ein Trainieren von neuronalen Netzen lange dauern kann, bestehen darin, dass die neuronalen Netze häufig umfangreich sind und Millionen von zu optimierenden Parametern (als Gewichte bezeichnet) enthalten; und angesichts der Unmenge von Parametern sind oft Hunderttausende von Beispielen erforderlich, um ein neuronales Netz zu trainieren, was erhebliche Verarbeitungs-, Speicher- und Datenübertragungsressourcen verbrauchen kann.
  • Aktuelle Datenverarbeitungssysteme sind üblicherweise mit einer Verarbeitungseinheit und einem Hauptspeicher ausgerüstet. Selbst bei hocheffizienten und leistungsstarken Computerverarbeitungseinheiten (CPUs, computer processing units) kann es zu Situationen kommen, in denen sich ein Engpass zwischen der CPU und dem Hauptspeicher bildet - dies wird als „Prozessor-Hauptspeicher-Engpass“ bezeichnet (auch als Von-Neumann-Engpass bezeichnet). Der CPU müssen kontinuierlich Daten zugeführt werden, damit sie mit optimaler Kapazität läuft. Ein Verringern der Datenmenge, die zwischen der CPU und dem Hauptspeicher oder zwischen einem zentralisierten Parameter-Server und mehreren verteilten Datenverarbeitungsknoten übermittelt wird, kann die Effizienz und Leistungsfähigkeit eines neuronalen Netzes erheblich verbessern. Um ein typisches neuronales Netz zu trainieren, würde man im Allgemeinen Gewichte auf vollständige Zufallszahlen initialisieren und dann das Netz trainieren lassen. In dem Bemühen, einen derartigen Prozess zu verbessern, wird beim Initialisieren eine räumliche Lokalität (wo Gewichte in einer bestimmten Region einander ähnlich sind) für Gewichtsmatrizen durchgesetzt, anstatt Gewichte in Schichten jedes neuronalen Netzes auf Zufallszahlen zu initialisieren, was eine Frequenzkomprimierung ermöglicht. Bei räumlicher Lokalität gibt es in bestimmten Regionen häufig geringfügige Veränderungen von einem Gewicht zu einem anderen; durch Frequenztransformation können die Daten in eine kleine Anzahl von niederfrequenten Komponenten aufgeteilt werden. In diesem Zusammenhang kann ein Entwickeln von ,Deep-Learning-freundlichen' Komprimierungstechniken zum Verringern des Speicherbedarfs und folglich des Bandbreitenbedarfs für ein Transportieren von Gewichtsmatrizen sowohl Software- als auch Hardware-Frameworks für Deep Learning beschleunigen. Ein faltendes neuronales Netz (CNN, convolutional neural network) bezieht sich auf Datenverarbeitungssysteme, die von biologischen neuronalen Netzen inspiriert sind und lernen, Aufgaben durch Betrachten von Beispielen im Allgemeinen ohne aufgabenspezifische Programmierung zu erledigen. Ein Ziel eines Ansatzes mit neuronalen Netzen ist es, Probleme auf die gleiche Weise zu lösen wie ein menschliches Gehirn. Im Laufe der Zeit konzentrierte sich die Aufmerksamkeit auf ein Angleichen an bestimmte geistige Fähigkeiten, was zu Abweichungen von der Biologie führte, wie zum Beispiel Rückwärtspropagierung (z.B. ein Verfahren zum Berechnen des Gradienten einer Verlustfunktion (bringt z.B. Kosten hervor, die einem bestimmten Zustand zugehörig sind) in Bezug auf Gewichte in dem CNN) oder ein Weitergeben von Informationen in umgekehrter Richtung und ein Anpassen des Netzes, um derartige Informationen widerzuspiegeln. Bei der Bilderkennung könnten CNNs zum Beispiel lernen, Bilder zu identifizieren, die Gesichtsmerkmale enthalten, indem sie Beispielbilder analysieren, die manuell als „Gesichtsmerkmal“ oder „kein Gesichtsmerkmal“ gekennzeichnet wurden, und die Analyseergebnisse zum Identifizieren von Gesichtern in anderen Bildern verwenden. In künstlichen Netzen mit mehreren verborgenen Schichten können Ausgangsschichten Basiselemente erkennen (z.B. eine Pupille in einem Auge, eine Iris, Wimpern, usw.), und die Ausgabe wird an tiefere Schichten weitergeleitet, die abstraktere Verallgemeinerungen durchführen (z.B. Auge, Mund...) und so weiter, bis letzte Schichten eine komplexe Objekterkennung durchführen (z.B. Gesicht). CNNs werden häufig in Anwendungen eingesetzt, die mit einem herkömmlichen Computeralgorithmus unter Verwendung regelbasierter Programmierung nur schwer auszudrücken sind.
  • Um künstliche neuronale Datenverarbeitung besser zu verstehen, ist es hilfreich, zunächst zu wissen, wie ein herkömmlicher ,serieller' Computer und dessen Software Informationen verarbeiten. Ein serieller Computer weist einen zentralen Prozessor auf, der eine Anordnung von Speicherplätzen adressieren kann, an denen Daten und Befehle gespeichert sind. Es werden Berechnungen durchgeführt, indem der Prozessor eine Anweisung sowie für die Anweisung erforderliche Daten aus Speicheradressen ausliest, die Anweisung wird dann ausgeführt, und Ergebnisse werden an einem festgelegten Speicherplatz gespeichert. In einem seriellen System (und auch in einem parallelen Standardsystem) sind Berechnungsschritte deterministisch, sequenziell und logisch, und ein Zustand einer gegebenen Variablen kann von einem Arbeitsschritt zu einem anderen verfolgt werden. Im Vergleich dazu sind CNNs nicht sequentiell oder nicht unbedingt deterministisch. Es gibt keine komplexen zentralen Prozessoren, sondern stattdessen gibt es viele einfache, die im Allgemeinen nichts weiter tun, als eine gewichtete Summe von Eingaben von anderen Prozessoren zu verwenden. CNNs führen keine programmierten Anweisungen aus; sie reagieren parallel (z.B. entweder simuliert oder tatsächlich) auf ein Muster von Eingaben, die ihnen dargelegt werden.
  • Folglich gibt es nach dem Stand der Technik den Bedarf, sich dem oben genannten Problem zu widmen.
  • KU RZDARSTELLU NG
  • Gemäß einem ersten Aspekt stellt die vorliegende Erfindung ein System zum Komprimieren von Daten während eines Trainierens eines neuronalen Netzes bereit, aufweisend: einen Hauptspeicher, in dem durch einen Computer ausführbare Komponenten und Daten des neuronalen Netzes gespeichert sind; einen Prozessor, der in dem Hauptspeicher gespeicherte, durch einen Computer ausführbare Komponenten ausführt, wobei die durch einen Computer ausführbaren Komponenten Folgendes aufweisen: eine Empfangskomponente, die Daten des neuronalen Netzes in Form einer Gewichtsmatrix empfängt; eine Segmentierungskomponente, welche die Gewichtsmatrix in ursprüngliche Teilkomponenten segmentiert, wobei jeweilige ursprüngliche Teilkomponenten räumliche Gewichte aufweisen; eine Abtastkomponente, die eine verallgemeinerte Gewichtsverteilung auf die jeweiligen ursprünglichen Teilkomponenten anwendet, um jeweilige normalisierte Teilkomponenten zu erzeugen; eine Transformationskomponente, die eine Transformation auf die jeweiligen normalisierten Teilkomponenten anwendet; und eine Beschneidungskomponente, die hochfrequente Gewichte der jeweiligen transformierten normalisierten Teilkomponenten abschneidet, um einen Satz von niederfrequenten normalisierten Teilkomponenten zu erzeugen, um eine komprimierte Darstellung der ursprünglichen Teilkomponenten zu erzeugen.
  • Gemäß einem weiteren Aspekt stellt die vorliegende Erfindung ein auf einem Computer ausgeführtes Verfahren bereit, das ein Einsetzen eines Prozessors und eines Hauptspeichers zum Ausführen von durch einen Computer ausführbaren Komponenten zum Durchführen der folgenden Schritte aufweist: Empfangen von Daten eines neuronalen Netzes in Form einer Gewichtsmatrix; Segmentieren der Gewichtsmatrix in ursprüngliche Teilkomponenten, wobei jeweilige ursprüngliche Teilkomponenten räumliche Gewichte aufweisen; Anwenden einer verallgemeinerten Gewichtsverteilung auf die jeweiligen ursprünglichen Teilkomponenten, um jeweilige normalisierte Teilkomponenten zu erzeugen; Anwenden einer Transformation auf die jeweiligen normalisierten Teilkomponenten; und Abschneiden von hochfrequenten Gewichten der jeweiligen transformierten normalisierten Teilkomponenten, um einen Satz von niederfrequenten normalisierten Teilkomponenten zu erzeugen.
  • Gemäß einem weiteren Aspekt stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Komprimieren von Daten während eines Trainierens eines neuronalen Netzes bereit, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium aufweist, das durch einen Verarbeitungsschaltkreis gelesen werden kann und auf dem Befehle zur Ausführung durch den Verarbeitungsschaltkreis gespeichert sind, um ein Verfahren zum Durchführen der Schritte der Erfindung durchzuführen.
  • Gemäß einem weiteren Aspekt stellt die vorliegende Erfindung ein auf einem durch einen Computer lesbaren Medium gespeichertes Computerprogramm bereit, das in den internen Hauptspeicher eines digitalen Computers ladbar ist und Software-Code-Abschnitte zum Durchführen der Schritte des Verfahrens, wenn das Programm auf einem Computer ausgeführt wird, aufweist.
  • Das Folgende ist eine Kurzdarstellung, um ein grundlegendes Verständnis einer oder mehrerer Ausführungsformen der Erfindung bereitzustellen. Diese Kurzdarstellung soll nicht Schlüsselelemente oder wichtige Elemente identifizieren oder irgendeinen Umfang der konkreten Ausführungsformen oder irgendeinen Umfang der Ansprüche darstellen. Sie dient lediglich dazu, Konzepte in einer vereinfachten Form als Einleitung zu der später dargestellten ausführlicheren Beschreibung darzustellen. In einer oder mehreren hierin beschriebenen Ausführungsformen sind Systeme, auf einem Computer ausgeführte Verfahren, Vorrichtungen und/oder Computerprogrammprodukte beschrieben, welche die Herstellung eines Endprodukts unter Verwendung von neuronalen Netzen in einem bestimmten Kontext ermöglichen.
  • Gemäß einer Ausführungsform weist ein System zum Komprimieren von Daten während eines Trainierens eines neuronalen Netzes, Folgendes auf: einen Hauptspeicher, in dem durch einen Computer ausführbare Komponenten und Daten des neuronalen Netzes gespeichert sind; einen Prozessor, der in dem Hauptspeicher gespeicherte, durch einen Computer ausführbare Komponenten ausführt, wobei die durch einen Computer ausführbaren Komponenten Folgendes aufweisen: eine Empfangskomponente, die Daten des neuronalen Netzes in Form einer Gewichtsmatrix empfängt; eine Segmentierungskomponente, welche die Gewichtsmatrix in ursprüngliche Teilkomponenten segmentiert, wobei jeweilige ursprüngliche Teilkomponenten räumliche Gewichte aufweisen; eine Abtastkomponente, die eine verallgemeinerte Gewichtsverteilung auf die jeweiligen ursprünglichen Teilkomponenten anwendet, um jeweilige normalisierte Teilkomponenten zu erzeugen; eine Transformationskomponente, die eine Transformation auf die jeweiligen normalisierten Teilkomponenten anwendet; und eine Beschneidungskomponente, die hochfrequente Gewichte der jeweiligen transformierten normalisierten Teilkomponenten abschneidet, um einen Satz von niederfrequenten normalisierten Teilkomponenten zu erzeugen, um eine komprimierte Darstellung der ursprünglichen Teilkomponenten zu erzeugen.
  • Gemäß noch einer anderen Ausführungsform weist ein auf einem Computer ausgeführtes Verfahren ein Einsetzen eines Prozessors und eines Hauptspeichers zum Ausführen von durch einen Computer ausführbaren Komponenten zum Durchführen der folgenden Schritte auf: Initialisieren einer Gewichtsmatrix, die in ursprüngliche Teilkomponenten segmentiert ist, wobei jeweilige ursprüngliche Teilkomponenten räumliche Gewichte aufweisen; Anwenden einer verallgemeinerten Gewichtsverteilung auf die jeweiligen ursprünglichen Teilkomponenten, um jeweilige normalisierte Teilkomponenten zu erzeugen; Anwenden einer Transformation auf die jeweiligen normalisierten Teilkomponenten; Erzeugen von nieder- und hochfrequenten Gewichten; und Abschneiden der hochfrequenten Gewichte der jeweiligen transformierten normalisierten Teilkomponenten, um einen Satz von komprimierten, normalisierten Teilkomponenten zu erzeugen.
  • Eine andere Ausführungsform umfasst ein Computerprogrammprodukt, auf dem die oben genannten, durch einen Computer ausführbaren Komponenten gespeichert sind.
  • Figurenliste
  • Die vorliegende Erfindung wird nun lediglich beispielhaft unter Bezugnahme auf bevorzugte Ausführungsformen beschrieben, wie in den folgenden Figuren veranschaulicht ist:
    • 1 veranschaulicht ein Blockschaubild eines Beispielsystems, das eine oder mehrere Transformationen verwendet und Gewichtsmatrizen eine räumliche Lokalität auferlegt, um komprimierte, dichte, niederfrequente Gewichte zum Trainieren von neuronalen Netzen zu erzeugen, gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
    • 2 veranschaulicht einen Prozess, der eine oder mehrere Transformationen verwendet und Gewichtsmatrizen eine räumliche Lokalität auferlegt, um komprimierte, dichte, niederfrequente Gewichte zum Trainieren von neuronalen zu erzeugen, gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
    • 3 veranschaulicht den Prozessablaufplan, der Gewichtsmatrizen eine räumliche Lokalität auferlegt, um komprimierte, dichte, niederfrequente Gewichte zum Trainieren von neuronalen Netzen zu erzeugen, gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
    • 4 veranschaulicht ein Modell, das ein Verarbeiten von Daten auf mehrere Lerner verteilt, so dass die jeweiligen Lerner über eine individuelle Ausfertigung eines neuronalen Netzes und über Beispiele verfügen, die sie gemäß einer Umsetzung trainieren können, und dass sie während des Trainierens Gewichtsinformationen untereinander und/oder mit einem oder mehreren Parameterservern austauschen;
    • 5 veranschaulicht einen prozentualen Fehler im Vergleich zu einer Anzahl von Epochen eines Trainingsdatendiagramms eines neuronalen Netzes unter Verwendung eines als MNIST bezeichneten Vergleichswerts gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
    • 6 veranschaulicht einen prozentualen Fehler im Vergleich zu einer Anzahl von Epochen eines Trainingsdatendiagramms eines neuronalen Netzes unter Verwendung eines als Imagenet bezeichneten Vergleichswerts und einer als Alexnet bezeichneten Konfiguration eines neuronalen Netzes gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
    • 7 veranschaulicht eine Vergleichstabelle zwischen Testergebnissen eines ACDC-Verfahrens und anderen Verfahren nach dem Stand der Technik gegenüber der hierin beschriebenen bevorzugten Ausführungsform der vorliegenden Erfindung;
    • 8 veranschaulicht alternative Umsetzungen zum Ermöglichen eines Steigerns der Lerneffizienz auf der Grundlage von selektiven Bearbeitungsvorgängen von räumlichen Matrizen gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; und
    • 9 ist ein schematisches Schaubild einer beispielhaften Betriebsumgebung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende ausführliche Beschreibung ist lediglich veranschaulichend und soll Ausführungsformen und/oder das Anwenden oder den Gebrauch von Ausführungsformen nicht einschränken. Des Weiteren besteht nicht die Absicht, an irgendwelche in dem vorhergehenden Abschnitt „Kurzdarstellung“ oder in dem Abschnitt „Ausführliche Beschreibung“ dargestellten ausdrücklichen oder angedeuteten Informationen gebunden zu sein. Eine oder mehrere Ausführungsformen werden nun unter Bezugnahme auf die Zeichnungen beschrieben, wobei durchgehend gleichartige Bezugszahlen verwendet werden, um auf gleichartige Elemente zu verweisen. In der folgenden Beschreibung werden zur Erläuterung zahlreiche spezifische Details dargelegt, um ein vollständigeres Verständnis der einen oder mehreren Ausführungsformen bereitzustellen. Es ist jedoch in verschiedenen Fällen offensichtlich, dass die eine oder mehreren Ausführungsformen ohne diese spezifischen Details umgesetzt werden können.
  • Eine oder mehrere hierin beschriebene Ausführungsformen sehen eine Erzeugung und einen Einsatz von einem oder mehreren Modellen eines neuronalen Netzes vor, die ein Identifizieren und Verarbeiten von Daten ermöglichen, um ein beabsichtigtes Ergebnis des Verwendens des optimalen komprimierten Datensatzes mit vernachlässigbarem Datenverlust zu erreichen. Ein Einsetzen von neuronalen Netzen für verschiedene Berechnungsziele kann aufgrund von typischen Anforderungen, die zum Erfüllen derartiger Aufgaben erforderlich sind, schwierig sein. Intensive Dateninteraktion und CPU-Nutzung können beim Erzielen von Ergebnissen höchster Qualität einschränkend wirken. Hochauflösende Bilder oder Videos werden häufig als Eingabe für neuronale Netze für Erkennungs- und Folgerungsvorgänge verwendet. Große neuronale Netze können durch eine beträchtliche Anzahl von Eingabepixeln und Größen von versteckten Schichten entstehen. Nach dem derzeitigen Stand der Technik können diese Bilder enorme Datenmengen von bis zu und über 160 Milliarden Parametern enthalten. Die Zeitdauer und Datenverarbeitungsleistung zum Verarbeiten dieses Datenpegels kann für das Erledigen einer gewünschten Klassifikationsaufgabe hinderlich sein. Dementsprechend besteht ein Bedarf an einer hocheffizienten Datenverarbeitung an einem Rand, insbesondere für Bereiche wie zum Beispiel ein kognitives Internet der Dinge (loT, Internet of Things) und Datenfilterung (data mining) innerhalb des Speichers, die Exabytes bis einschließlich Yottabytes (10008 Bytes) nutzen können.
  • Nach dem derzeitigen Stand der Technik werden viele neuronale Netze mit dichten Bildern betrieben, die reduziert (z.B. komprimiert) sind. Diskrete Kosinus-Transformationen (DCTs, discrete cosine transforms) werden häufig bei der JPEG-Komprimierung (Joint Photographic Experts Group) eingesetzt. Hierin eingesetzte DCTs transformieren Bilder in einen Frequenzbereich. Echte Wortbilder weisen üblicherweise eine räumliche Lokalität auf, und relevante Informationen sind häufig in niederfrequenten Komponenten konzentriert. Die gegenständliche Innovation stellt eine Technik bereit, mit der man von einem Betreiben großer und komplexer neuronaler Netze (die üblicherweise beträchtliche(n) Leistung, Verarbeitungskapazitäten, Hauptspeicher und Bandbreite erfordern), die auf dichte Bilder mit signifikanten Daten wirken, zum Wirken auf immer kleinere Eingaben auf der Grundlage eines Frequenz-Transformationskomprimierungsverfahrens übergehen kann, das sich vom Stand der Technik unterscheidet und zu erheblichen Geschwindigkeits- und Leistungssteigerungen bei neuronalen Netzen führt. Es gibt eine inhärente Datenredundanz oder -ähnlichkeit aufgrund der Korrelation zwischen benachbarten Pixeln (z.B. angezeigt in Bildern oder Videoeingaben für diese neuronale Netze), die zum Verbessern eines Gesamtprozesses von aktuellen Datenberechnungsstrategien ausgenutzt werden kann. Hierbei handelt es sich um das Konzept der räumlichen Lokalität, das den gegenständlichen Komprimierungsprozess vorantreibt. An Stelle eines Initialisierens von Gewichten auf Zufallszahlen in Schichten jedes neuronalen Netzes wird Gewichtsmatrizen eine räumliche Lokalität (z.B. Gewichte in einer bestimmten Region, die einander ähnlich sind) auferlegt, um eine Frequenzkomprimierung zu ermöglichen und eine Größe von über ein verteiltes neuronales Netz übertragenen Daten zu verringern. Oftmals gibt es bei räumlicher Lokalität in bestimmten Regionen geringfügige Veränderungen von einem Gewicht zu einem anderen; mittels Frequenztransformation können derartige Daten in eine kleine Anzahl von niederfrequenten Komponenten aufgeteilt werden. In diesem Zusammenhang werden ,Deep-Learning-freundliche' Komprimierungstechniken ermöglicht, und zwar durch Verringern des Speicherbedarfs und des Bandbreitenbedarfs, die einem Transportieren von Gewichtsmatrizen zugehörig sind, wodurch Software- und Hardware-Frameworks für Deep Learning verbessert werden.
  • 1 veranschaulicht ein Blockschaubild eines beispielhaften, nicht einschränkenden Systems 100, das ein Analysieren von großen Datensätzen und ein Trainieren eines neuronalen Netzes ermöglicht, um in einem bestimmten Kontext ein optimales Ergebnis zu erzielen, gemäß einer oder mehreren hierin beschriebenen Ausführungsformen. Aspekte von Systemen (z.B. des Systems 100 und dergleichen), Vorrichtungen oder Prozessen, die in dieser Offenbarung erklärt werden, können eine oder mehrere durch eine Maschine ausführbare Komponenten darstellen, die in einer oder mehreren Maschinen enthalten sind, z.B. in einem oder mehreren durch einen Computer lesbaren Medien, die einer oder mehreren Maschinen zugehörig sind. (Eine) derartige Komponente(n) kann/können, wenn sie von der einen oder den mehreren Maschinen, z.B. einem oder mehreren Computern, Datenverarbeitungseinheiten, virtuellen Maschinen usw., ausgeführt werden, die Maschine(n) dazu veranlassen, die beschriebenen Arbeitsschritte durchzuführen. Eine wiederholte Beschreibung von gleichartigen Elementen, die in einer oder mehreren hierin beschriebenen Ausführungsformen verwendet werden, wird der Kürze halber weggelassen.
  • Das System 100 kann wahlweise eine Servereinheit, ein oder mehrere Netzwerke und eine oder mehrere Einheiten (nicht abgebildet) umfassen. Das System 100 kann auch mindestens einen Prozessor 102 umfassen oder ihm anderweitig zugehörig sein, der in dem Hauptspeicher 104 gespeicherte, durch einen Computer ausführbare Komponenten ausführt. Das System 100 kann darüber hinaus einen Systembus 106 enthalten, der verschiedene Komponenten miteinander verbinden kann, darunter eine Empfangskomponente 107, eine Segmentierungskomponente 108, eine Abtastkomponente 110, eine Transformationskomponente 112, eine Beschneidungskomponente 114 und eine Invers-Transformationskomponente 116, aber nicht auf diese beschränkt. Bei dem System 100 kann es sich um jede beliebige geeignete Datenverarbeitungseinheit oder jeden beliebigen Satz von Datenverarbeitungseinheiten handeln, die für den Datenaustausch mit Einheiten verbunden sein können, wobei zu nicht einschränkenden Beispielen für diese ein Server-Computer, ein Computer, ein mobiler Computer, ein Mainframe-Computer, ein automatisiertes Testsystem, eine Netzwerkspeichereinheit, eine Datenübertragungseinheit, eine Web-Server-Einheit, eine Netzwerk-Vermittlungseinheit, eine Netzwerk-Weiterleitungseinheit, eine Gateway-Einheit, eine Netzwerk-Hub-Einheit, eine Netzwerkbrückeneinheit, ein Steuersystem oder jede andere geeignete Datenverarbeitungseinheit gehören kann, ohne darauf beschränkt zu sein. Eine Einheit kann jede Einheit sein, die mit dem System 100 Informationen austauschen kann, und/oder jede beliebige andere geeignete Einheit, die von dem System 100 bereitgestellte Informationen einsetzen kann. Man sollte sich bewusst sein, dass das System 100, Komponenten, Modelle oder Einheiten mit Datenübertragungskomponenten (nicht gezeigt) ausgestattet sein können, die eine Datenübertragung zwischen dem System, den Komponenten, den Modellen, den Einheiten usw. über ein oder mehrere Netzwerke ermöglichen.
  • Gemäß dem System 100 können in dem Hauptspeicher 104 durch einen Computer ausführbare Komponenten gespeichert sein, die durch den Prozessor 102 ausführbar sind. Die Empfangskomponente 107 kann Eingangsgewichtsmatrizen empfangen und Daten zu einem jeweiligen Zielort transportieren. Die Segmentierungskomponente 108 kann die Ausgangsgewichtsmatrizen in die ursprünglichen Teilkomponenten segmentieren. Die Abtastkomponente 110 kann eine allgemeine Gewichtsverteilung auf die ursprünglichen Teilkomponenten anwenden. Die Transformationskomponente 112 kann eine Transformation (z.B. DCT) auf den Teilblock von räumlichen Gewichten anwenden, um das Gewicht mit relevanten Daten in einem niederfrequenten Abschnitt zu erzeugen. Die Beschneidungskomponente 114 kann hochfrequente Komponenten abschneiden, so dass ein niederfrequenter Datensatz mit konzentrierten Informationen übrig bleibt. Die Invers-Transformationskomponente 116 kann den komprimierten Datensatz von dem Frequenzbereich zurück in den räumlichen Bereich transformieren. Man sollte sich bewusst sein, dass die gegenständliche Innovation nicht auf ein Verwenden von DCT-Transformationen beschränkt ist, und jede beliebige geeignete Frequenztransformation (z.B. Fourier-Transformation, Laplace-Transformation, Wavelet-Transformation, Z-Transformation...) eingesetzt werden kann.
  • Die gegenständliche Innovation ermöglicht eine Verringerung der Menge an Daten, die zwischen einer Computer-Verarbeitungseinheit (CPU) und einem Hauptspeicher oder zwischen einem zentralisierten Parameter-Server und mehreren verteilten Datenverarbeitungsknoten im Zusammenhang mit einem Verbessern von Effizienz und Leistungsfähigkeit eines neuronalen Netzes übermittelt werden. An Stelle eines Initialisierens von Gewichten auf Zufallszahlen in Schichten jedes neuronalen Netzes wird in dem System 100 einer oder mehreren Gewichtsmatrizen eine räumliche Lokalität (z.B. sind Gewichte in einer bestimmten Region einander ähnlich) auferlegt, um eine Frequenzkomprimierung zu ermöglichen und eine Größe von über ein verteiltes neuronales Netz übertragenen Daten zu verringern. Oftmals gibt es bei räumlicher Lokalität in bestimmten Regionen geringfügige Veränderungen von einem Gewicht zu einem anderen; mittels Frequenztransformation können derartige Daten in eine kleine Anzahl von niederfrequenten Komponenten aufgeteilt werden. In diesem Zusammenhang werden ,Deep-Learning-freundliche' Komprimierungstechniken ermöglicht, und zwar durch Verringern des Speicherbedarfs und des Bandbreitenbedarfs, die einem Transportieren von Gewichtsmatrizen zugehörig sind, wodurch Software- und Hardware-Frameworks für Deep Learning verbessert werden.
  • In verschiedenen Ausführungen sollte man sich bewusst sein, dass ein Durchsetzen räumlicher Lokalität und eine Interpolation zu Beginn des Trainierens stattfinden, wenn die Gewichte initialisiert werden. Anstatt die gesamte Gewichtsmatrix nach dem Zufallsprinzip zu initialisieren, werden die Ecken jedes Teilblocks nach dem Zufallsprinzip initialisiert. Dann wird eine Interpolation durchgeführt, um die anderen Werte innerhalb jeder Teilkomponente aufzufüllen. Der Prozess des Trainierens umfasst ein Feinabstimmen der Gewichte über viele Beispiele und Epochen hinweg. Wenn Gewichte übermittelt werden müssen, z.B. von einem Sender an einen Empfänger, wobei es sich bei dem Sender um einen CPU/Parameter-Server/Lerner und bei dem Empfänger um einen Hauptspeicher/Lerner handelt, wird die Komprimierung auf Seiten des Senders durchgeführt. Ein Auffüllen und Dekomprimieren wird auf Seiten des Empfängers durchgeführt, so dass die auf dem Kanal übermittelten Daten minimiert werden. Allerdings werden anschließend keine Initialisierungs- und Interpolationsschritte durchgeführt.
  • Die verschiedenen Komponenten (z.B. die Empfangskomponente 107, die Segmentierungskomponente 108, die Abtastkomponente 110, die Transformationskomponente 112, die Beschneidungskomponente 114, die Invers-Transformationskomponente 116 und/oder andere Komponenten) des Systems 100 können entweder direkt oder über ein oder mehrere Netzwerke miteinander verbunden sein. Zu derartigen Netzwerken können kabelgebundene und drahtlose Netzwerke gehören, darunter, ohne darauf beschränkt zu sein, ein Mobilfunknetz, ein Weitverkehrsnetzwerk (WAN) (z.B. das Internet) oder ein lokales Netzwerk (LAN), wobei zu nicht einschränkenden Beispielen dafür zelluläre Netzwerke, WAN, Wireless Fidelity (Wi-Fi), Wi-Max, WLAN, Funk-Datenübertragung, Mikrowellen-Datenübertragung, Satelliten-Datenübertragung, optische Datenübertragung, akustische Datenübertragung oder jede beliebige andere geeignete Datenübertragungstechnologie gehören. Außerdem wurden die oben genannten Systeme und/oder Einheiten im Hinblick auf eine Interaktion zwischen mehreren Komponenten beschrieben. Man sollte sich bewusst sein, dass derartige Systeme und Komponenten die darin spezifizierten Komponenten oder Teilkomponenten, einige der spezifizierten Komponenten oder Teilkomponenten und/oder zusätzliche Komponenten enthalten können. Teilkomponenten könnten auch als Komponenten umgesetzt sein, die für den Datenaustausch mit anderen Komponenten verbunden sind und nicht innerhalb der übergeordneten Komponenten enthalten sind. Darüber hinaus können eine oder mehrere Komponenten und/oder Teilkomponenten zu einer einzelnen Komponente zusammengefasst werden, die eine Gesamtfunktionalität bereitstellt. Die Komponenten können auch mit einer oder mehreren anderen Komponenten interagieren, die hierin der Kürze halber nicht konkret beschrieben werden, die aber einem Fachmann bekannt sind.
  • Darüber hinaus können einige der durchgeführten Prozesse von spezialisierten Computern zum Ausführen von definierten Aufgaben im Zusammenhang mit verschiedenen Typen von neuronalen Netzen in ihrem jeweiligen Kontext durchgeführt werden. Die gegenständlichen Computerverarbeitungssysteme, Verfahrensvorrichtungen und/oder Computerprogrammprodukte können zum Lösen von neuen Problemen eingesetzt werden, die durch Fortschritte in der Technik, in Computernetzwerken, im Internet und dergleichen entstehen.
  • Bestimmte Ausführungsformen von hierin beschriebenen Einheiten können wahlweise Künstliche Intelligenz (KI) einsetzen, um ein Automatisieren einer oder mehrerer hierin beschriebener Funktionen zu ermöglichen. Die Komponenten können verschiedene, auf KI beruhende Schemata zum Ausführen von verschiedenen, hierin offengelegten Ausführungsformen/Beispielen einsetzen. Um die zahlreichen hierin beschriebenen Feststellungen (z.B. Feststellen, Ermitteln, Folgern, Berechnen, Vorhersagen, Prognostizieren, Schätzen, Ableiten, Voraussagen, Erkennen, Verarbeiten von Daten) bereitzustellen oder zu unterstützen, können hierin beschriebene Komponenten die Gesamtheit oder eine Teilmenge der Daten untersuchen, für die sie einen Zugriff gewährt bekommen, und können für ein Schlussfolgern oder Ermitteln von Zuständen des Systems, der Umgebung usw. aus einem Satz von Beobachtungen sorgen, die mittels Ereignissen und/oder Daten erfasst wurden. Feststellungen können dazu eingesetzt werden, einen konkreten Kontext oder eine konkrete Aktion zu erkennen, oder sie können zum Beispiel eine Wahrscheinlichkeitsverteilung für Zustände erzeugen. Die Feststellungen können probabilistisch sein - das heißt, die Berechnung einer Wahrscheinlichkeitsverteilung für Zustände von Interesse beruht auf einer Betrachtung von Daten und Ereignissen. Feststellungen können sich auch auf Techniken beziehen, die zum Zusammenstellen von übergeordneten Ereignissen aus einem Satz von Ereignissen und/oder Daten eingesetzt werden.
  • Derartige Feststellungen können dazu führen, dass aus einem Satz von beobachteten Ereignissen und/oder gespeicherten Ereignisdaten neue Ereignisse oder Aktionen konstruiert werden, unabhängig davon, ob die Ereignisse in enger zeitlicher Nähe korreliert sind und ob die Ereignisse und Daten aus einer oder mehreren Ereignis- und Datenquellen stammen. Hierin offengelegte Komponenten können verschiedene Klassifikationsschemata (explizit trainiert (z.B. über Trainingsdaten) sowie implizit trainiert (z.B. über ein Beobachten von Verhalten, Präferenzen, Verlaufsinformationen, ein Empfangen von extrinsischen Informationen usw.)) und/oder -systeme (z.B. Stützvektormaschinen, neuronale Netze, Expertensysteme, Bayessche Überzeugungsnetze, Fuzzy-Logik, Datenfusionssteuerungsroutinen usw.) in Verbindung mit einem Durchführen einer automatischen und/oder festgelegten Aktion im Zusammenhang mit dem beanspruchten Gegenstand einsetzen. So können Klassifikationsschemata und/oder - systeme verwendet werden, um automatisch zu lernen und eine Reihe von Funktionen, Aktionen und/oder Feststellungen durchzuführen.
  • Ein Klassifikationsmerkmal kann einen Eingabe-Attribut-Vektor z = (z1, z2, z3, z4, ..., zn) auf eine Zuversicht abbilden, dass die Eingabe zu einer Klasse gehört, wie durch f(z) = Zuversicht(Klasse). Eine derartige Klassifikation kann eine probabilistische und/oder auf Statistik beruhende Analyse (z.B. unter Berücksichtigung der Analysedienstprogramme und - kosten) verwenden, um eine automatisch durchzuführende Aktion festzulegen. Eine Stützvektormaschine (SVM, support vector machine) kann ein Beispiel für ein Klassifikationsmerkmal sein, das eingesetzt werden kann. Die SVM arbeitet, indem sie eine Hyperoberfläche in dem Raum von möglichen Eingaben findet, wobei die Hyperoberfläche versucht, die auslösenden Kriterien von den nicht auslösenden Ereignissen zu trennen. Intuitiv führt dies zu einer korrekten Klassifikation zum Prüfen von Daten, die ähnlich zu, aber nicht identisch mit Trainingsdaten sind. Zu anderen gerichteten und ungerichteten Modell-Klassifikationsansätzen gehören z.B. naive Bayes, Bayessche Netze, Entscheidungsbäume, neuronale Netze, Fuzzy-Logik-Modelle, und/oder es können probabilistische Klassifikationsmodelle, die verschiedene Muster der Unabhängigkeit bereitstellen, eingesetzt werden. In der Verwendung hierin umfasst eine Klassifizierung auch eine statistische Regression, die zum Entwickeln von Prioritätsmodellen genutzt wird.
  • 2 veranschaulicht eine Ausführungsform eines Prozesses zum Durchsetzen von räumlicher Lokalität in einer Frequenzkomponente / wiederkehrenden Schichten beim Initialisieren. Eine Ausgangsgewichtsmatrix 202 wird in kleinere Regionen (Teilblöcke) 204 aufgeteilt, wobei Parameter innerhalb dieser Region einen gewissen Grad an räumlicher Korrelation aufweisen. Die Eckgewichtswerte jedes Teilblocks können aus einer Verteilung von Zufallszahlen abgetastet werden. In einer Ausführungsform könnte diese Verteilung dieselbe Verteilung sein, die für eine zufällige Initialisierung der Gewichtsmatrix verwendet würde, wenn die Technik nicht angewendet würde. Eine bilineare Interpolation 206 kann verwendet werden, um verbleibende Werte aufzufüllen. Zu diesem Zeitpunkt enthält der Server einheitliche Ausfertigungen der Gewichte, und er transformiert jeweilige Teilkomponenten unter Verwendung von DCT oder einer anderen Transformation in den Frequenzbereich. Ein beispielhafter Teilblock 208 enthält signifikante relevante Daten in dem niederfrequenten Segment, während das Segment mit höherer Frequenz Daten mit geringem Wert oder Nullen enthält. Anschließend wird die Region der hochfrequenten Komponente des Datenblocks 208 abgeschnitten, so dass nur die niederfrequente Region (z.B. ein Dreieck) 210 verbleibt. Dies ist die komprimierte Frequenzdarstellung der Gewichte, die der Server an jeden Empfänger aussendet. Die verringerte Größe der komprimierten Frequenzbereichsdarstellung der Gewichte ermöglicht eine verbesserte Effizienz und Leistungsfähigkeit durch Verringerung der Größe von übermittelten Daten. An dem/den Empfänger(n) wird der leere Abschnitt der Region 210 mit Nullen aufgefüllt, und es wird eine inverse Transformation (z.B. inverse DCT-Transformation) durchgeführt, um einen Datenblock mit räumlichen Gewichten 212 zu erhalten, bei denen es sich um eine näherungsweise berechnete Darstellung des ursprünglichen Datenblocks 204 handelt. Man sollte sich bewusst sein, dass die gegenständlichen Innovationen nicht auf Ecken oder bestimmte Formen von relevanten Regionen beschränkt ist. Vielmehr soll die Innovation jede beliebige geeignete Technik zum Auferlegen von räumlicher Lokalität (z.B. sind Gewichte in einer bestimmten Region einander ähnlich) für Gewichtsmatrizen umfassen, um eine Frequenzkomprimierung zu ermöglichen und die Größe von über ein verteiltes neuronales Netz übertragenen Daten zu verringern.
  • 3 veranschaulicht einen Ablaufplan 300 gemäß einer Ausführung. Bei 302 wird eine Gewichtsmatrix mit räumlicher Korrelation initialisiert (z.B. unter Verwendung der Segmentierungskomponente 108 und der Abtastkomponente 110). Bei 304 wird eine Transformation (z.B. DCT-Transformation) für einen Teilblock von räumlichen Gewichten durchgeführt, um einen komprimierten Teildatenblock zu erzeugen, wobei die Daten in der niederfrequenten Zone konzentriert sind (z.B. unter Verwendung der Transformationskomponente 112). Bei 306 werden die verbleibenden hochfrequenten Segmente abgeschnitten, um weniger relevante Daten zu verringern (z.B. unter Verwendung der Beschneidungskomponente 114). Bei 308 wird eine inverse Transformation (z.B. inverse DCT) an den Daten niederfrequenten Daten durchgeführt (z.B. unter Verwendung der Invers-Transformationskomponente 116), und dann wird ein verbleibender Bereich mit Nullen aufgefüllt. Bei 310 wird eine näherungsweise berechnete Version der Gewichte an einem Empfänger erhalten und zum Trainieren des neuronalen Netzes verwendet. Durch Auswerten der Technik anhand von Vergleichswerten etablierter neuronaler Netze kann ermittelt werden, ob dieselbe Trainingsgenauigkeit erreicht wird wie bei einer Trainingsaufgabe, bei der keine Komprimierung angewendet wird. Wenn ja, wird bei 312 das Trainieren des neuronalen Netzes fortgesetzt. Wenn nein, wird die räumliche Lokalität bei 314 variiert und der Prozess bei 302 wiederholt. In Bezug auf die Schritte 310, 312 und 314 wird zum Bestätigen der Innovation in Bezug auf bestimmte Standard-Vergleichswerte optional eine Prüfung dahingehend durchgeführt, ob dieselbe Effizienz wie bei einer Bezugslinie ohne Komprimierung erreicht wird (z.B. ist es in einer realen Umsetzung unrealistisch, von vornherein zu wissen, welche Genauigkeit sich ohne Komprimierung ergeben sollte).
  • Der Einfachheit der Erklärung halber werden die auf einem Computer ausgeführten Methodiken als eine Reihe von Schritten dargestellt und beschrieben. Es sollte klar sein und man sollte sich bewusst sein, dass die gegenständliche Innovation nicht durch die veranschaulichten Schritte und/oder die Reihenfolge von Schritten eingeschränkt wird, zum Beispiel können Schritte in verschiedenen Reihenfolgen und/oder gleichzeitig und mit anderen hierin nicht dargestellten und beschriebenen Schritten stattfinden. Darüber hinaus können nicht alle veranschaulichte Schritte benötigt sein, um die auf einem Computer ausgeführten Methodiken entsprechend dem offengelegten Gegenstand umzusetzen. Zusätzlich wird ein Fachmann verstehen und sich dessen bewusst sein, dass die auf einem Computer ausgeführten Methodiken alternativ als eine Reihe von miteinander verbundenen Zuständen über ein Zustandsdiagramm oder eine Reihe von Ereignissen dargestellt werden könnten. Zusätzlich sollte es darüber hinaus klar sein, dass die nachstehend und in dieser Beschreibung offengelegten, auf einem Computer ausgeführten Methodiken auf einem Herstellungsprodukt gespeichert sein können, um das Transportieren und Übertragen derartiger auf einem Computer ausgeführter Methodiken auf Computer zu ermöglichen. Der Begriff „Herstellungsprodukt“ soll in seiner Verwendung hierin ein Computerprogramm umfassen, auf das von jeder/jedem beliebigen durch einen Computer lesbaren Einheit oder Speichermedium zugegriffen werden kann.
  • 4 veranschaulicht ein verteiltes Lerner-Modell gemäß der gegenständlichen Innovation. Ein Parameter-Server oder ein verteilter Lerner 402 wendet eine Transformation 407 auf eine Gewichtsmatrix mit einer räumlichen Korrelation 406 an, um die räumlichen Komponenten in einen Frequenzbereich zu transformieren. Bei 408 sind relevante Informationen mit einer niedrigen Frequenz konzentriert. Hochfrequente Komponenten werden bei 409 abgeschnitten, um einen Satz von abgeschnittenen DCT-Gewichten 410 zu ergeben, die relevante Informationen in einer komprimierten Art und Weise enthalten. Die komprimierten DCT-Gewichte werden bei 412 an einen verteilten Lerner 414 übermittelt, wobei eine inverse Transformation durchgeführt wird und jeder verbleibende Bereich bei 416 mit Nullen aufgefüllt wird, um einen Satz von näherungsweise berechneten räumlichen Gewichten 418 für ein Trainieren von jeweiligen neuronalen Netzen zu ergeben. Dieses Modell verteilt die Datenverarbeitung auf mehrere Lerner. Jeder Lerner verfügt über eine einzelne Ausfertigung des neuronalen Netzes und über Beispiele, mit denen er trainieren kann. Anschließend sendet jeder Lerner nach jedem Training Informationen an den Parameter-Server, der Gewichtsaktualisierungen über die mehreren Lerner hinweg synchronisiert und neue aktualisierte Gewichte an jeden Lerner überträgt. Dieses Modell ermöglicht die Fähigkeit, die Arbeitslast symmetrisch zu verteilen - zum Beispiel: ein zentralisierter Server benötigt lediglich „10 Stunden Zeit, um 10 Epochen auszuüben“. Mit dem verteilten Lerner-System ist es möglich, 10 Lerner einzusetzen, und die gesamte Arbeitslast kann lediglich eine Stunde dauern.
  • 5 veranschaulicht die Ergebnisse eines Komprimierungstestfalls. Es wird eine Komprimierung auf Schichten 1 (784 x 1008) und eine zweite Schicht (1008 x 1008) eines dreischichtigen neuronalen Netzes angewendet, und der Vergleichswert wird als MNIST bezeichnet - ein Datensatz mit handgeschriebenen Ziffern zwischen 0 und 9. Der Datensatz enthält 60000 Trainingsbilder, die zum Trainieren des neuronalen Netzes verwendet werden, und 10000 Testbilder, die zum Auswerten der Genauigkeit des neuronalen Netzes beim Erkennen von Bildern verwendet werden, an denen es nicht explizit trainiert wurde. Das Datendiagramm zeigt, dass eine Verwendung dieses gegenständlichen Komprimierungsverfahrens keine spürbaren Auswirkungen auf die Genauigkeit einer gelernten Aufgabe hat. Das Beispiel rechts (504) steht für Testdaten, die dem neuronalen Netz nach einer bestimmten, in Epochen gemessenen Trainingsdauer bereitgestellt werden, wobei jede Epoche einen vollständigen Durchlauf von 60000 Bildern des Trainingsdatensatzes darstellt. Das Diagramm zeigt, dass die Genauigkeit praktisch gleich ist wie der Fall mit Bezugslinie, bei dem keine Komprimierung eingesetzt wird. Bei einem Test mit 100 Epochen zeigen die Testergebnisse eine Genauigkeit von ∼98,4 % (~1,6 % Fehler) für die Bezugslinie und für eine 8-fache Komprimierung, und nur einen geringfügig höheren Fehler (∼1,7 %) für eine 16-fache Komprimierung.
  • 6 veranschaulicht zusätzliche Komprimierungsvergleichsdaten. Ein größerer Datensatz mit Vergleichswerten, der als ImageNet bezeichnet wird, wird unter Verwendung von Alexnet trainiert (eine spezielle Konfiguration eines neuronalen Netzes mit Millionen von Parametern (Gewichten)). Dieses Diagramm zeigt, dass es bei einer 7-fachen Komprimierung keinen messbaren Verlust und bei einer 9-fachen Komprimierung einen Datenverlust von lediglich 0,4 % gibt. Wenn man das Diagramm betrachtet, wird deutlich, dass sowohl die 7-fachen als auch die 9-fachen Datenergebnisse der Bezugslinie sehr gut folgen.
  • 7 zeigt Vergleichsergebnisse unter Verwendung der gegenständlichen Innovation im Vergleich zu anderen Konventionstechniken (z.B. ACDC, Cheng, Yang, Novikov...). Das Diagramm bei 702 zeigt, dass das ACDC-Verfahren bei 7-facher Komprimierung eine Fehlerzunahme von 0,7 % gegenüber der Bezugslinie aufwies, wobei die Komprimierungsrate dieselbe war wie bei der gegenständlichen Innovation, die eine Fehlerzunahme von lediglich 0,2 % gegenüber der Bezugslinie aufweist. Zusätzlich konnte das ACDC-Verfahren bei einer Fehlerzunahme von 0,6 % bis zu 6-fach komprimieren, während die gegenständliche Innovation eine 9-fache Komprimierung bereitstellt. Diese Daten zeigen, dass die gegenständliche Innovation im Vergleich zu herkömmlichen Techniken eine verbesserte Genauigkeit bei gleichem Komprimierungsverhältnis und ein größeres Komprimierungsverhältnis bei gleicher Genauigkeit bereitstellt.
  • 8 veranschaulicht mögliche weitere Fortschritte beim Steigern der Lerneffizienz auf der Grundlage von selektiven Bearbeitungsvorgängen räumlicher Matrizen - es werden verschiedene Alternativen gezeigt. Schaubild 802 zeigt ein Grundprinzip des Entfernens von hochfrequenten Komponenten, wie oben besprochen wurde. Schaubild 804 zeigt eine Technik, die an einigen Komponenten mit höherer Frequenz festhält, anstatt alles mit Nullen zu füllen, was den Verlust während einer Transformation weiter verringern kann. Schaubild 806 zeigt eine weitere Interpolation über hochfrequente Komponenten in schraffierten Zellen; anstatt diese Werte auf null zu belassen, könnte man sie möglicherweise auf der Grundlage benachbarter Werte weiter interpretieren.
  • Um einen Kontext für die verschiedenen Aspekte des offengelegten Gegenstandes bereitzustellen, sollen 9 sowie die folgende Erörterung eine allgemeine Beschreibung einer geeigneten Umgebung bereitstellen, in dem die verschiedenen Aspekte des offengelegten Gegenstandes umgesetzt werden können. 9 veranschaulicht ein Blockschaubild einer beispielhaften, nicht einschränkenden Betriebsumgebung, in der eine oder mehrere hierin beschriebene Ausführungsformen ermöglicht werden können. Eine wiederholte Beschreibung von gleichartigen Elementen, die in anderen hierin beschriebenen Ausführungsformen verwendet werden, wird der Kürze halber weggelassen.
  • Unter Bezugnahme auf 9 kann eine geeignete Betriebsumgebung 900 zum Umsetzen verschiedener Aspekte dieser Offenbarung auch einen Computer 912 beinhalten. Der Computer 912 kann auch eine Verarbeitungseinheit 914, einen Systemspeicher 916 und einen Systembus 918 enthalten. Der Systembus 918 verbindet Systemkomponenten miteinander, darunter den Systemspeicher 916 mit der Verarbeitungseinheit 914, aber nicht darauf beschränkt. Bei der Verarbeitungseinheit 914 kann es sich um einen beliebigen von verschiedenen verfügbaren Prozessoren handeln. Als Verarbeitungseinheit 914 können auch Dual-Mikroprozessoren und andere Multiprozessor-Architekturen eingesetzt werden. Bei dem Systembus 918 kann es sich um einen beliebigen von mehreren Typen von Busstrukturen handeln, darunter der Speicherbus oder die Speichersteuereinheit, ein Peripheriebus oder externer Bus und/oder ein lokaler Bus, der eine Vielfalt von verfügbaren Busarchitekturen verwendet, darunter Industrial Standard Architecture (ISA), Micro-Channel Architecture (MSA), Extended ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Kartenbus, Universal Serial Bus (USB), Advanced Graphics Port (AGP), Firewire (IEEE 1094) und Small Computer Systems Interface (SCSI), aber nicht darauf beschränkt. Der Systemspeicher 916 kann auch einen flüchtigen Speicher 920 und einen nichtflüchtigen Speicher 922 enthalten. Das Basic Input/Output System (BIOS), das die grundlegenden Routinen zum Übertragen von Informationen zwischen Elementen innerhalb des Computers 912, wie zum Beispiel während des Systemstarts, enthält, ist in dem nichtflüchtigen Speicher 922 gespeichert. Zur Veranschaulichung und nicht als Einschränkung kann der nichtflüchtige Speicher 922 einen Nur-Lese-Speicher (ROM), programmierbaren ROM (PROM), elektrisch programmierbaren ROM (EPROM), elektrisch löschbaren programmierbaren ROM (EEPROM), Flash-Speicher oder nichtflüchtigen Direktzugriffsspeicher (RAM) enthalten (z.B. ferroelektrischen RAM (FeRAM). Der flüchtige Speicher 920 kann auch einen Direktzugriffsspeicher (RAM) enthalten, der als externer Cachespeicher fungiert. Zur Veranschaulichung und nicht als Einschränkung ist RAM in vielen Formen erhältlich, wie zum Beispiel als statischer RAM (SRAM), dynamischer RAM (DRAM), synchroner DRAM (SDRAM), SDRAM mit doppelter Datenrate (DDR-SDRAM), Enhanced SDRAM (ESDRAM), SyncLink DRAM (SLDRAM), Direct Rambus RAM (DRRAM), Direct Rambus Dynamic RAM (DRDRAM) und Rambus Dynamic RAM.
  • Der Computer 912 kann auch austauschbare/nicht austauschbare, flüchtige/nichtflüchtige Computerspeichermedien enthalten. 9 veranschaulicht zum Beispiel einen Plattenspeicher 924. Zu dem Plattenspeicher 924 können auch Einheiten wie ein Magnetplattenlaufwerk, ein Diskettenlaufwerk, ein Bandlaufwerk, ein Jaz-Laufwerk, ein Zip-Laufwerk, ein LS-100-Laufwerk, eine Flash-Speicherkarte oder ein Memory Stick gehören, ohne darauf beschränkt zu sein. Der Plattenspeicher 924 kann auch Speichermedien getrennt oder in Kombination mit anderen Speichermedien enthalten, darunter ein optisches Plattenlaufwerk wie zum Beispiel eine Compact-Disk-ROM-Einheit (CD-ROM), ein Laufwerk für beschreibbare CDs (CD-R-Laufwerk), ein Laufwerk für wiederbeschreibbare CDs (CD-RW-Laufwerk) oder ein Digital Versatile Disk ROM-Laufwerk (DVD-ROM), ohne darauf beschränkt zu sein. Zum Ermöglichen des Anschlusses des Plattenspeichers 924 an den Systembus 918 wird üblicherweise eine austauschbare oder nicht austauschbare Schnittstelle verwendet, wie zum Beispiel eine Schnittstelle 926. 9 bildet auch Software ab, die als Vermittler zwischen Benutzern und den grundlegenden beschriebenen Computerressourcen in der geeigneten Betriebsumgebung 901 fungiert. Eine derartige Software kann zum Beispiel auch ein Betriebssystem 928 beinhalten. Das Betriebssystem 928, das auf dem Plattenspeicher 924 gespeichert sein kann, dient zum Steuern und Zuweisen von Ressourcen des Computers 912. Systemanwendungen 930 nutzen die Vorteile des Verwaltens von Ressourcen durch das Betriebssystem 928 durch Programmmodule 932 und Programmdaten 934, die zum Beispiel entweder in dem Systemspeicher 916 oder auf dem Plattenspeicher 924 gespeichert sind. Man sollte sich bewusst sein, dass diese Offenbarung mit verschiedenen Betriebssystemen oder Kombinationen von Betriebssystemen umgesetzt werden kann. Ein Benutzer gibt über (eine) Eingabeeinheit(en) 936 Befehle oder Informationen in den Computer 912 ein. Zu den Eingabeeinheiten 936 gehören eine Zeigeeinheit wie zum Beispiel eine Maus, ein Trackball, ein Stift, ein Touchpad, eine Tastatur, ein Mikrofon, ein Joystick, ein Gamepad, eine Satellitenschüssel, ein Scanner, eine TV-Tunerkarte, eine Digitalkamera, eine digitale Videokamera, eine Webkamera und dergleichen, ohne darauf beschränkt zu sein. Diese und andere Eingabeeinheiten werden durch den Systembus 918 mittels (eines) Schnittstellenanschlusses/-anschlüssen 938 mit der Verarbeitungseinheit 914 verbunden. Zu dem/den Schnittstellenanschluss/-schlüssen 938 gehören zum Beispiel ein serieller Anschluss, ein paralleler Anschluss, ein Spieleanschluss und ein Universal Serial Bus (USB). (Eine) Ausgabeeinheit(en) 940 verwendet/verwenden einige derselben Typen von Anschlüssen wie die Eingabeeinheit(en) 936. So kann zum Beispiel ein USB-Anschluss verwendet werden, um eine Eingabe in den Computer 912 bereitzustellen und Informationen von dem Computer 912 an eine Ausgabeeinheit 940 auszugeben. Ein Ausgabeadapter 942 wird bereitgestellt, um zu veranschaulichen, dass es einige Ausgabeeinheiten 940 wie Monitore, Lautsprecher und Drucker gibt, neben anderen Ausgabeeinheiten 940, die spezielle Adapter benötigen. Zu den Ausgabeadaptern 942 gehören, zur Veranschaulichung und nicht als Einschränkung, Video- und Soundkarten, die ein Mittel zur Verbindung zwischen der Ausgabeeinheit 940 und dem Systembus 918 bereitstellen. Es ist zu beachten, dass andere Einheiten und/oder Systeme von Einheiten sowohl Eingabe- als auch Ausgabefunktionen bereitstellen, wie zum Beispiel der/die entfernt angeordnete(n) Computer 944.
  • Der Computer 912 kann in einer vernetzten Umgebung unter Verwendung von logischen Verbindungen zu einem oder mehreren entfernt angeordneten Computern wie zum Beispiel (einem) entfernt angeordneten Computer(n) 944 betrieben werden. Bei dem/den entfernt angeordneten Computer(n) 944 kann es sich um einen Computer, einen Server, einen Leitwegrechner, einen Netzwerk-PC, eine Arbeitsstation, eine auf Mikroprozessoren beruhende Einheit, eine Peer-Einheit oder einen anderen üblichen Netzwerkknoten und dergleichen handeln, und er/sie kann/können üblicherweise auch viele oder alle der Elemente enthalten, die in Bezug auf den Computer 912 beschrieben sind. Der Kürze halber wird lediglich eine Hauptspeichereinheit 946 bei dem/den entfernt angeordneten Computer(n) 944 veranschaulicht. Der (die) entfernt angeordnete(n) Computer 944 ist/sind über eine Netzwerkschnittstelle 948 mit dem Computer 912 logisch verbunden und über die Datenübertragungsverbindung 950 physisch verbunden. Die Netzwerkschnittstelle 948 umfasst drahtgebundene und/oder drahtlose Datenübertragungsnetzwerke wie zum Beispiel lokale Netzwerke (LAN), Weitverkehrsnetzwerke (WAN), zellulare Netzwerke usw. Zu LAN-Technologien gehören Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ring und dergleichen. Zu WAN-Technologien gehören Punkt-zu-Punkt-Verbindungen, Leitungsvermittlungsnetze wie integriertes Sprach- und Datennetz (ISDN, Integrated Services Digital Networks) und Varianten davon, Paketvermittlungsnetze und digitale Teilnehmeranschlüsse (DSL, Digital Subscriber Lines), ohne darauf beschränkt zu sein. Datenübertragungsverbindung(en) 950 bezieht sich auf die Hardware/Software, die zum Verbinden der Netzwerkschnittstelle 948 mit dem Systembus 918 verwendet wird. Während die Datenübertragungsverbindung 950 zur Veranschaulichung innerhalb des Computers 912 gezeigt wird, kann sie auch außerhalb des Computers 912 sein. Die Hardware/Software für den Anschluss an die Netzschnittstelle 948 kann auch, lediglich für beispielhafte Zwecke, interne und externe Technologien umfassen, wie zum Beispiel Modems, darunter normale Modems der Telefonklasse, Kabelmodems und DSL-Modems, ISDN-Adapter und Ethernet-Karten.
  • Bei Ausführungsformen der vorliegenden Erfindung kann es sich um ein System, ein Verfahren, eine Vorrichtung und/oder ein Computerprogrammprodukt auf jeder möglichen Integrationsstufe technischer Details handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen. Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums können auch die Folgenden gehören: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter. Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten verschiedener Aspekte der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen anzupassen, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können. Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen. Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Obwohl der Gegenstand vorstehend im allgemeinen Kontext von durch einen Computer ausführbaren Anweisungen eines Computerprogrammprodukts beschrieben wurde, das auf einem Computer und/oder Computern läuft, werden Fachleute erkennen, dass diese Offenbarung auch in Kombination mit anderen Programmmodulen umgesetzt werden kann. Allgemein können zu Programmmodulen Routinen, Programme, Komponenten, Datenstrukturen usw. gehören, die bestimmte Aufgaben durchführen und/oder bestimmte abstrakte Datentypen umsetzen. Darüber hinaus werden Fachleute verstehen, dass die erfindungsgemäßen auf einem Computer ausgeführten Verfahren mit anderen Computersystemkonfigurationen ausgeführt werden können, darunter Einzelprozessor- oder Multiprozessor-Computersysteme, Mini-Datenverarbeitungseinheiten, Großrechner sowie Computer, Handheld-Datenverarbeitungseinheiten (z.B. PDA, Telefon), mikroprozessorbasierte oder programmierbare Unterhaltungs- oder Industrieelektronik und dergleichen. Die veranschaulichten Aspekte können auch in verteilten Datenverarbeitungsumgebungen ausgeführt werden, in denen Aufgaben durch entfernt angeordnete Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. Einige oder sogar alle Aspekte dieser Offenbarung können jedoch auf eigenständigen Computern ausgeführt werden. In einer verteilten Datenverarbeitungsumgebung können sich Programmmodule sowohl in lokalen als auch in entfernt angeordneten Hauptspeichereinheiten befinden.
  • Die in dieser Anwendung verwendeten Begriffe „Komponente“, „System“, „Plattform“, „Schnittstelle“ und dergleichen können sich auf eine computerbezogene Einheit oder eine Einheit, die sich auf eine sich in Betrieb befindliche Maschine mit einer oder mehreren spezifischen Funktionalitäten bezieht, beziehen und/oder diese einschließen. Die hierin offengelegten Einheiten können entweder Hardware, eine Kombination aus Hardware und Software, Software oder Software in Ausführung sein. Zum Beispiel kann es sich bei einer Komponente um einen Prozess, der auf einem Prozessor läuft, einen Prozessor, ein Objekt, eine ausführbare Datei, einen Ausführungsstrang, ein Programm und/oder einen Computer handeln, aber nicht darauf beschränkt. Zur Veranschaulichung kann es sich sowohl bei einer Anwendung, die auf einem Server läuft, als auch bei dem Server um eine Komponente handeln. Eine oder mehrere Komponenten können innerhalb eines Prozesses und/oder Ausführungsstrangs liegen, und eine Komponente kann sich auf einem Computer befinden und/oder zwischen zwei oder mehr Computern verteilt sein. In einem anderen Beispiel können jeweilige Komponenten von verschiedenen durch einen Computer lesbaren Medien ausgeführt werden, auf denen verschiedene Datenstrukturen gespeichert sind. Die Komponenten können über lokale und/oder Fernprozesse Daten austauschen, wie zum Beispiel als Reaktion auf ein Signal, das ein oder mehrere Datenpakete aufweist (z.B. Daten von einer Komponente, die mit einer anderen Komponente in einem lokalen System, einem verteilten System, und/oder über ein Netzwerk wie zum Beispiel das Internet mit anderen Systemen über das Signal interagieren). Als ein anderes Beispiel kann es sich bei einer Komponente um eine Vorrichtung mit einer spezifischen Funktionalität handeln, die durch mechanische Teile bereitgestellt wird, die durch elektrische oder elektronische Schaltungen betrieben werden, die durch eine von einem Prozessor ausgeführte Software- oder Firmware-Anwendung betrieben werden. In einem derartigen Fall kann sich der Prozessor innerhalb oder außerhalb der Vorrichtung befinden und zumindest einen Teil der Software- oder Firmware-Anwendung ausführen. Als noch ein anderes Beispiel kann es sich bei einer Komponente um eine Vorrichtung handeln, die eine bestimmte Funktionalität durch elektronische Komponenten ohne mechanische Teile bereitstellt, wobei die elektronischen Komponenten einen Prozessor oder ein anderes Mittel zum Ausführen von Software oder Firmware enthalten können, der bzw. das zumindest teilweise die Funktionalität der elektronischen Komponenten gewährt. In einem Aspekt kann eine Komponente eine elektronische Komponente mittels einer virtuellen Maschine emulieren, z.B. innerhalb eines Server-Datenverarbeitungssystems.
  • Darüber hinaus soll der Begriff „oder“ eher ein inklusives „oder“ als ein exklusives „oder“ bedeuten. Das heißt, „X setzt A oder B ein“ soll eine beliebige der natürlichen inklusiven Permutationen bedeuten, es sei denn, es ist anders angegeben oder wird aus dem Kontext klar. Das heißt, wenn X A einsetzt, X B einsetzt oder X sowohl A als auch B einsetzt, dann ist „X setzt A oder B ein“ in allen der vorgenannten Fälle erfüllt. Darüber hinaus sollten die Artikel „ein“ und „eine“, wie sie in der Beschreibung des Gegenstandes und den beigefügten Zeichnungen verwendet werden, im Allgemeinen so gedeutet werden, dass sie „ein/eine oder mehrere“ bedeuten, es sei denn, es ist anderweitig angegeben oder es wird aus dem Kontext klar, dass es sich auf eine Singularform bezieht. Die hier verwendeten Begriffe „Beispiel“ und/oder „beispielhaft“ werden verwendet, um auszudrücken, dass sie als Beispiel, als Einzelfall oder zur Veranschaulichung dienen. Um Zweifel auszuschließen, der hier offengelegte Gegenstand ist nicht durch derartige Beispiele begrenzt. Zusätzlich ist jeder Aspekt bzw. jede Ausgestaltung, der bzw. die hier als „Beispiel“ und/oder „beispielhaft“ beschrieben wird, nicht notwendigerweise als bevorzugt oder vorteilhaft gegenüber anderen Aspekten oder Ausgestaltungen auszulegen, noch soll er bzw. sie gleichwertige beispielhafte Strukturen und Techniken ausschließen, die Fachleuten bekannt sind.
  • Wie in der Beschreibung des Gegenstands verwendet, kann sich der Begriff „Prozessor“ im Wesentlichen auf jede Datenverarbeitungseinheit oder jede Einheit beziehen, die Einkernprozessoren, Einzelprozessoren mit Software-Multithread-Ausführungsfunktion, Mehrkernprozessoren, Mehrkernprozessoren mit Software-Multithread-Ausführungsfunktion, Mehrkernprozessoren mit Hardware-Multithread-Technologie, parallele Plattformen und parallele Plattformen mit verteiltem gemeinsam genutzten Hauptspeicher aufweist, aber nicht darauf beschränkt. Zusätzlich kann sich ein Prozessor auf eine integrierte Schaltung, eine anwendungsspezifische integrierte Schaltung (ASIC, Application Specific Integrated Circuit), einen digitalen Signalprozessor (DSP, Digital Signal Processor), eine im Feld programmierbare Gatter-Anordnung (FPGA, Field Programmable Gate Array), eine speicherprogrammierbare Steuerung (SPS), eine komplexe programmierbare Logikeinheit (CPLD, Complex Programmable Logic Device), eine diskrete Gate- oder Transistorlogik, diskrete Hardwarekomponenten oder eine beliebige Kombination daraus beziehen, die zum Ausführen der hierin beschriebenen Funktionen bestimmt sind. Darüber hinaus können Prozessoren Architekturen der Nanogröße wie zum Beispiel molekulare und auf Quantenpunkten beruhende Transistoren, Schalter und Gatter nutzen, um die Raumnutzung zu optimieren oder die Leistung der Benutzergeräte zu verbessern, ohne darauf beschränkt zu sein. Ein Prozessor kann auch als eine Kombination von Datenverarbeitungseinheiten umgesetzt werden. In dieser Offenbarung werden Begriffe wie zum Beispiel „Speicher“, „Speicherung“, „Datenspeicher“, „Datenspeicherung“, „Datenbank“ und im Wesentlichen jede andere Informationsspeicherkomponente, die für den Betrieb und die Funktionalität einer Komponente relevant ist, verwendet, um sich auf „Speicherkomponenten“, auf in einem „Hauptspeicher“ enthaltene Einheiten oder auf Komponenten, die einen Hauptspeicher aufweisen, zu beziehen. Man sollte sich bewusst sein, dass hierin beschriebener Hauptspeicher und/oder hierin beschriebene Speicherkomponenten entweder flüchtiger Speicher oder nichtflüchtiger Speicher sein können oder sowohl flüchtigen als auch nichtflüchtigen Speicher aufweisen können. Zur Veranschaulichung und nicht als Einschränkung kann der nichtflüchtige Speicher einen Nur-Lese-Speicher (ROM), programmierbaren ROM (PROM), elektrisch programmierbaren ROM (EPROM), elektrisch löschbaren ROM (EEPROM), Flash-Speicher oder nichtflüchtigen Direktzugriffsspeicher (RAM) enthalten (z.B. ferroelektrischen RAM (FeRAM). Der flüchtige Speicher kann einen RAM enthalten, der zum Beispiel als externer Cachespeicher fungieren kann. Zur Veranschaulichung und nicht als Einschränkung ist RAM in vielen Formen erhältlich, wie zum Beispiel als synchroner RAM (SRAM), dynamischer RAM (DRAM), synchroner DRAM (SDRAM), SDRAM mit doppelter Datenrate (DDR-SDRAM), Enhanced SDRAM (ESDRAM), SyncLink DRAM (SLDRAM), Direct Rambus RAM (DRRAM), Direct Rambus Dynamic RAM (DRDRAM) und Rambus Dynamic RAM (RDRAM). Zusätzlich sollen die hier offengelegten Speicherkomponenten von Systemen oder auf einem Computer ausgeführten Verfahren diese und alle anderen geeigneten Speichertypen beinhalten, ohne darauf beschränkt zu sein.
  • Das vorstehend Beschriebene enthält lediglich Beispiele für Systeme, Computerprogrammprodukte und auf einem Computer ausgeführte Verfahren. Natürlich ist es nicht möglich, jede erdenkliche Kombination von Komponenten, Produkten und/oder auf einem Computer ausgeführten Verfahren zum Zwecke des Beschreibens dieser Offenbarung zu beschreiben, aber Fachleute können erkennen, dass viele weitere Kombinationen und Umsetzungen dieser Offenbarung möglich sind. Soweit die Begriffe „enthält“, „weist auf“, „besitzt“ und dergleichen in der ausführlichen Beschreibung, in Ansprüchen, in Anhängen und in Zeichnungen verwendet werden, sollen derartige Begriffe in ähnlicher Weise wie der Begriff „aufweisend“ inklusiv wirken, wie „aufweisend“ ausgelegt wird, wenn es als Übergangswort in einem Anspruch verwendet wird. Die Beschreibungen der verschiedenen Ausführungsformen wurden zum Zwecke der Veranschaulichung aufgeführt, sollen jedoch nicht gesamthaft stehen für bzw. begrenzt sein auf die offenbarten Ausführungsformen. Für Fachleute werden viele Abänderungen und Abwandlungen ersichtlich sein, ohne von dem Umfang der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt vorgefundenen Technologien bestmöglich zu erläutern oder um es anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.

Claims (17)

  1. System zum Komprimieren von Daten während eines Trainierens eines neuronalen Netzes, aufweisend: einen Hauptspeicher, in dem durch einen Computer ausführbare Komponenten und Daten des neuronalen Netzes gespeichert sind; einen Prozessor, der in dem Hauptspeicher gespeicherte, durch einen Computer ausführbare Komponenten ausführt, wobei die durch einen Computer ausführbaren Komponenten aufweisen: eine Empfangskomponente, die Daten des neuronalen Netzes in Form einer Gewichtsmatrix empfängt; eine Segmentierungskomponente, welche die Gewichtsmatrix in ursprüngliche Teilkomponenten segmentiert, wobei jeweilige ursprüngliche Teilkomponenten räumliche Gewichte aufweisen; eine Abtastkomponente, die eine verallgemeinerte Gewichtsverteilung auf die jeweiligen ursprünglichen Teilkomponenten anwendet, um jeweilige normalisierte Teilkomponenten zu erzeugen; eine Transformationskomponente, die eine Transformation auf die jeweiligen normalisierten Teilkomponenten anwendet; und eine Beschneidungskomponente, die hochfrequente Gewichte der jeweiligen transformierten normalisierten Teilkomponenten abschneidet, um einen Satz von niederfrequenten normalisierten Teilkomponenten zu erzeugen, um eine komprimierte Darstellung der ursprünglichen Teilkomponenten zu erzeugen.
  2. System nach Anspruch 1, darüber hinaus aufweisend eine Invers-Transformationskomponente, die auf den Satz von niederfrequenten normalisierten Teilkomponenten eine inverse Transformation anwendet, um eine abgeänderte Version der ursprünglichen Teilkomponenten wiederherzustellen.
  3. System nach einem der vorhergehenden Ansprüche, wobei die Transformationskomponente eine diskrete Kosinus-Transformation anwendet.
  4. System nach einem der vorhergehenden Ansprüche, wobei die Segmentierungskomponente Eckwerte der ursprünglichen Teilkomponenten abtastet.
  5. System nach einem der vorhergehenden Ansprüche, wobei die Segmentierungskomponente eine Interpolation einsetzt, um die jeweiligen Werte für die jeweiligen normalisierten Teilkomponenten zu erzeugen.
  6. System nach Anspruch 5, wobei die Abtastkomponente entweder eine bilineare Interpolation, eine exponentielle Interpolation und/oder eine Spline-Interpolation anwendet.
  7. System nach einem der Ansprüche 2 bis 6, wobei die Invers-Transformationskomponente eine inverse diskrete Kosinus-Transformationsfunktion anwendet, um den Satz von niederfrequenten normalisierten Teilkomponenten in einen räumlichen Bereich zu transformieren.
  8. System nach einem der vorhergehenden Ansprüche, das darüber hinaus eine Datenübertragungskomponente aufweist, welche die komprimierte Darstellung der ursprünglichen Teilkomponenten übermittelt.
  9. Auf einem Computer ausgeführtes Verfahren, aufweisend ein Einsetzen eines Prozessors und eines Hauptspeichers zum Ausführen von durch einen Computer ausführbaren Komponenten zum Durchführen der folgenden Schritte: Empfangen von Daten eines neuronalen Netzes in Form einer Gewichtsmatrix; Segmentieren der Gewichtsmatrix in ursprüngliche Teilkomponenten, wobei jeweilige ursprüngliche Teilkomponenten räumliche Gewichte aufweisen; Anwenden einer verallgemeinerten Gewichtsverteilung auf die jeweiligen ursprünglichen Teilkomponenten, um jeweilige normalisierte Teilkomponenten zu erzeugen; Anwenden einer Transformation auf die jeweiligen normalisierten Teilkomponenten; und Abschneiden von hochfrequenten Gewichten der jeweiligen transformierten normalisierten Teilkomponenten, um einen Satz von niederfrequenten normalisierten Teilkomponenten zu erzeugen.
  10. Verfahren nach Anspruch 9, darüber hinaus aufweisend ein Anwenden einer inversen Transformation auf den Satz von niederfrequenten normalisierten Teilkomponenten, um eine näherungsweise berechnete Darstellung der ursprünglichen Teilkomponenten zu erzeugen.
  11. Verfahren nach einem der Ansprüche 9 oder 10, wobei das Anwenden einer Transformation ein Anwenden einer diskreten Kosinus-Transformation aufweist.
  12. Verfahren nach einem der Ansprüche 9 bis 11, wobei das Anwenden einer verallgemeinerten Gewichtsverteilung darüber hinaus ein Abtasten von Eckwerten der ursprünglichen Teilkomponenten und ein Einsetzen entweder einer bilinearen Interpolation, einer exponentiellen Interpolation und/oder einer Spline-Interpolation aufweist, um die jeweiligen Werte für die jeweiligen normalisierten Teilkomponenten zu erzeugen.
  13. Verfahren nach einem der Ansprüche 10 bis 12, wobei das Anwenden einer inversen Transformation ein Anwenden einer inversen diskreten Kosinus-Transformationsfunktion aufweist, um den Satz von niederfrequenten normalisierten Teilkomponenten in einen räumlichen Bereich zu transformieren.
  14. Verfahren nach Anspruch 13, das darüber hinaus ein Auffüllen des Satzes mit Nullen aufweist.
  15. Verfahren nach einem der Ansprüche 9 bis 14, das darüber hinaus ein Übermitteln der komprimierten Darstellung der ursprünglichen Teilkomponenten aufweist.
  16. Computerprogrammprodukt zum Komprimieren von Daten während eines Trainierens eines neuronalen Netzes, wobei das Computerprogrammprodukt aufweist: ein durch einen Computer lesbares Speichermedium, das durch einen Verarbeitungsschaltkreis lesbar ist und auf dem Anweisungen zur Ausführung durch den Verarbeitungsschaltkreis zur Durchführung eines Verfahrens nach einem der Ansprüche 9 bis 15 gespeichert sind.
  17. Auf einem durch einen Computer lesbaren Medium gespeichertes Computerprogramm, das in den internen Hauptspeicher eines digitalen Computers ladbar ist und Software-Code-Abschnitte zur Durchführung des Verfahrens nach einem der Ansprüche 9 bis 15, wenn das Programm auf einem Computer ausgeführt wird, aufweist.
DE112018005205.2T 2017-11-30 2018-11-30 Komprimierung von vollständig verbundenen / wiederkehrenden Schichten von einem oder mehreren tiefen Netzen durch Durchsetzen von räumlicher Lokalität für Gewichtsmatrizen und erwirken von Frequenzkomprimierung Pending DE112018005205T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/827,465 2017-11-30
US15/827,465 US11977974B2 (en) 2017-11-30 2017-11-30 Compression of fully connected / recurrent layers of deep network(s) through enforcing spatial locality to weight matrices and effecting frequency compression
PCT/IB2018/059500 WO2019106619A1 (en) 2017-11-30 2018-11-30 Compression of fully connected/recurrent layers of deep network(s) through enforcing spatial locality to weight matrices and effecting frequency compression

Publications (1)

Publication Number Publication Date
DE112018005205T5 true DE112018005205T5 (de) 2020-07-02

Family

ID=66633302

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018005205.2T Pending DE112018005205T5 (de) 2017-11-30 2018-11-30 Komprimierung von vollständig verbundenen / wiederkehrenden Schichten von einem oder mehreren tiefen Netzen durch Durchsetzen von räumlicher Lokalität für Gewichtsmatrizen und erwirken von Frequenzkomprimierung

Country Status (6)

Country Link
US (1) US11977974B2 (de)
JP (1) JP7300798B2 (de)
CN (1) CN111357019B (de)
DE (1) DE112018005205T5 (de)
GB (1) GB2582233A (de)
WO (1) WO2019106619A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10474458B2 (en) 2017-04-28 2019-11-12 Intel Corporation Instructions and logic to perform floating-point and integer operations for machine learning
US11934342B2 (en) 2019-03-15 2024-03-19 Intel Corporation Assistance for hardware prefetch in cache access
EP3938888A1 (de) 2019-03-15 2022-01-19 INTEL Corporation Systolische disaggregation innerhalb einer matrixbeschleunigerarchitektur
WO2020190802A1 (en) 2019-03-15 2020-09-24 Intel Corporation Compression techniques
CN110956262A (zh) * 2019-11-12 2020-04-03 北京小米智能科技有限公司 超网络训练方法及装置、电子设备、存储介质
US11663746B2 (en) * 2019-11-15 2023-05-30 Intel Corporation Systolic arithmetic on sparse data
US11687778B2 (en) 2020-01-06 2023-06-27 The Research Foundation For The State University Of New York Fakecatcher: detection of synthetic portrait videos using biological signals
KR20210113464A (ko) * 2020-03-05 2021-09-16 삼성전자주식회사 이미징 장치 및 이를 포함하는 전자 기기
CN112085195B (zh) * 2020-09-04 2022-09-23 西北工业大学 一种基于x-admm的深度学习模型环境自适应方法
CN112766456B (zh) * 2020-12-31 2023-12-26 平安科技(深圳)有限公司 浮点型深度神经网络的量化方法、装置、设备及存储介质
US11893094B1 (en) * 2023-06-05 2024-02-06 University Of Sharjah DCT-based watermarking scheme for deep neural networks

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6805668B1 (en) * 2001-06-26 2004-10-19 Cadwell Industries, Inc. System and method for processing patient polysomnograph data utilizing multiple neural network processing
US6954744B2 (en) 2001-08-29 2005-10-11 Honeywell International, Inc. Combinatorial approach for supervised neural network learning
US20070233477A1 (en) 2006-03-30 2007-10-04 Infima Ltd. Lossless Data Compression Using Adaptive Context Modeling
US9240184B1 (en) 2012-11-15 2016-01-19 Google Inc. Frame-level combination of deep neural network and gaussian mixture models
US9466292B1 (en) 2013-05-03 2016-10-11 Google Inc. Online incremental adaptation of deep neural networks using auxiliary Gaussian mixture models in speech recognition
US20150324690A1 (en) 2014-05-08 2015-11-12 Microsoft Corporation Deep Learning Training System
KR101844932B1 (ko) 2014-09-16 2018-04-03 한국전자통신연구원 신호처리 알고리즘이 통합된 심층 신경망 기반의 음성인식 장치 및 이의 학습방법
US10275719B2 (en) 2015-01-29 2019-04-30 Qualcomm Incorporated Hyper-parameter selection for deep convolutional networks
US11221990B2 (en) 2015-04-03 2022-01-11 The Mitre Corporation Ultra-high compression of images based on deep learning
CN106355248A (zh) 2016-08-26 2017-01-25 深圳先进技术研究院 一种深度卷积神经网络训练方法及装置
CN106485316B (zh) 2016-10-31 2019-04-02 北京百度网讯科技有限公司 神经网络模型压缩方法以及装置
US10599935B2 (en) * 2017-02-22 2020-03-24 Arm Limited Processing artificial neural network weights
US11037330B2 (en) * 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
US20190087729A1 (en) * 2017-09-18 2019-03-21 Intel Corporation Convolutional neural network tuning systems and methods

Also Published As

Publication number Publication date
JP2021504837A (ja) 2021-02-15
GB2582233A (en) 2020-09-16
JP7300798B2 (ja) 2023-06-30
WO2019106619A1 (en) 2019-06-06
CN111357019B (zh) 2023-12-29
US20190164050A1 (en) 2019-05-30
US11977974B2 (en) 2024-05-07
CN111357019A (zh) 2020-06-30
GB202009750D0 (en) 2020-08-12

Similar Documents

Publication Publication Date Title
DE112018005205T5 (de) Komprimierung von vollständig verbundenen / wiederkehrenden Schichten von einem oder mehreren tiefen Netzen durch Durchsetzen von räumlicher Lokalität für Gewichtsmatrizen und erwirken von Frequenzkomprimierung
DE112018005227T5 (de) Merkmalsextraktion mithilfe von multi-task-lernen
DE102018111905A1 (de) Domänenspezifische Sprache zur Erzeugung rekurrenter neuronaler Netzarchitekturen
DE112021004908T5 (de) Computerbasierte systeme, rechenkomponenten und rechenobjekte, die eingerichtet sind, dynamische ausreisser-verzerrungs-verringerung bei maschinenlernmodellen zu implementieren
DE112019000336T5 (de) Massiv parallele neuronale inferenz-datenverarbeitungselemente
DE112020000584T5 (de) Verfahren für unüberwachte bild-zu-bild-übersetzung mit wenigen aufnahmen
DE212020000731U1 (de) Kontrastives Vortraining für Sprachaufgaben
DE102017125256A1 (de) Suche nach einer neuronalen Architektur
DE112021006232T5 (de) Proaktive anomalieerkennung
DE102021107050A1 (de) Gradientenkomprimierung für verteiltes training
DE102012216029A1 (de) Ein skalierbares anpassungsfähiges map-reduce-rahmenwerk mit verteilten daten
DE112021001986T5 (de) Verfahren und System zum Verarbeiten von Datenaufzeichnungen
DE102021107586A1 (de) Spekulatives training unter verwendung der aktualisierung partieller gradienten
DE102021107509A1 (de) Multi-modell-trainingspipeline in verteilten systemen
DE112020002344T5 (de) Feature engineering zur optimierung von neuronalen netzwerken
DE112019000676T5 (de) Zentraler scheduler und anweisungszuteiler für einen neuronalen inferenzprozessor
DE112021002453T5 (de) Iteratives trainieren eines modells für maschinelles lernen
DE112020005789T5 (de) Hierarchische partitionierung von operatoren
DE102018206108A1 (de) Generieren von Validierungsdaten mit generativen kontradiktorischen Netzwerken
DE112021004559T5 (de) System zur robusten vorhersage bei unregelmässigen zeitreihen in dialysepatientenakten
DE112020003744T5 (de) Durch dienstqualitätskriterien vorgegebenes automatisiertes betriebsdatenmanagement
DE112020005732T5 (de) Erzeugen von trainingsdaten zur objekterkennung
DE112020003105T5 (de) Schicht für schicht-debugging von neuronalen netzwerken
DE112020002892T5 (de) Aktives lernen für den datenabgleich
DE112019004391T5 (de) Grossmodellunterstützung für deep learning

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R084 Declaration of willingness to licence