DE112016005746T5 - Faltendes neuronales Netzwerk - Google Patents

Faltendes neuronales Netzwerk Download PDF

Info

Publication number
DE112016005746T5
DE112016005746T5 DE112016005746.6T DE112016005746T DE112016005746T5 DE 112016005746 T5 DE112016005746 T5 DE 112016005746T5 DE 112016005746 T DE112016005746 T DE 112016005746T DE 112016005746 T5 DE112016005746 T5 DE 112016005746T5
Authority
DE
Germany
Prior art keywords
analog
capacitors
output signal
convolution
neural network
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
DE112016005746.6T
Other languages
English (en)
Inventor
Eric G. Nestler
Mitra M. OSQUI
Jeffrey G. Bernstein
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.)
Analog Devices Inc
Original Assignee
Analog Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Analog Devices Inc filed Critical Analog Devices Inc
Publication of DE112016005746T5 publication Critical patent/DE112016005746T5/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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/66Digital/analogue converters
    • H03M1/74Simultaneous conversion
    • H03M1/80Simultaneous conversion using weighted impedances
    • H03M1/802Simultaneous conversion using weighted impedances using capacitors, e.g. neuron-mos transistors, charge coupled devices

Landscapes

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

Abstract

Systeme und Verfahren zur Ausgestaltung eines effizienteren und weniger ressourcenintensiven faltenden neuronalen Netzwerks, CNN, werden hier offenbart. Insbesondere werden Anwendungen von CNN im analogen Bereich unter Verwendung von abtastender analoger Technologie, SAT, Verfahren offenbart. Die Verwendung eines CNN-Designs mit SAT führt zu einem geringeren Stromverbrauch und einem schnelleren Betrieb im Vergleich zu einem CNN-Design mit digitaler Logik und Speicher. Der geringere Stromverbrauch eines CNN-Designs mit SAT kann Sensorgeräte ermöglichen, die auch Merkmale mit sehr geringer Leistung für den Inselbetrieb erkennen.

Description

  • QUERVERWEIS AUF VERWANDTE ANWENDUNGEN
  • Diese Anmeldung beansprucht die Priorität gemäß 35 U.S.C. §120 aus den U.S. Anmeldungen Nummer 62/267,847 vom 15. Dezember 2015 und 15/379,114 vom 14. Dezember 2016 mit dem Titel „Convolutional Neural Network“, die Eric Nestler und andere als Erfinder nennen. Die Offenbarung der früheren Anmeldungen gilt als Teil dieser Anmeldung und wird durch Verweis in die Offenbarung dieser Anmeldung aufgenommen.
  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung bezieht sich auf den Bereich der neuronalen Netze, insbesondere der faltenden neuronalen Netzwerke.
  • HINTERGRUND
  • Neuronale Netzwerke sind mathematische Modelle zur Abschätzung von Näherungsfunktionen, die von einer großen Anzahl von Eingangswerten abhängen können. Faltende neuronalen Netzwerke sind eine Art feed-forward neuronale Netzwerke, bei denen die künstlichen Neuronen (mathematische Funktionen) so gedeckt (tiled) sind, dass sie auf überlappende Bereiche im Eingabefeld reagieren. Neuronale Netzwerke sind rechen- und ressourcenintensiv.
  • ZUSAMMENFASSUNG DER OFFENBARUNG
  • Ein neuronales Netzwerk mit abtastender analoger Technologie wird offenbart. Faltende neuronale Netzwerke (convolution neural networks, CNNs) sind Algorithmen und Schaltungen zur Merkmalserkennung (feature detection). Bei einigen Ausgestaltungen kann die Erkennung oder Analyse von Merkmalen (features) für Bilddaten, Audiodaten oder andere komplexe Daten erfolgen, die eine ausgefeilte Analyse erfordern, um ein Merkmal davon zu erkennen. Bei verschiedenen Ausgestaltungen können CNNs hilfreich sein, wenn die Eingangsdaten in Form eines Arrays mit hoch korrelierten lokalen Variablen vorliegen und eine Verschiebungsinvarianz aufweisen. Der CNN-Algorithmus ist typischerweise mit digitaler Logik und Speicher implementiert. Die Ausgestaltung des CNN-Algorithmus mit digitaler Logik und Speicher ist jedoch ressourcenintensiv.
  • Systeme und Verfahren zur Ausgestaltung eines effizienteren und weniger ressourcenintensiven CNN werden hier offenbart. Insbesondere werden Anwendungen von CNN im analogen Bereich unter Verwendung von abtastender analoger Technologie (sampled analog technology, SAT) Verfahren offenbart. Die Verwendung eines CNN-Designs mit SAT führt zu einem wesentlich geringeren Stromverbrauch und einem schnelleren Betrieb im Vergleich zu einem CNN-Design mit digitaler Logik und Speicher. Bei einem Beispiel verbraucht die Verwendung eines CNN-Designs mit SAT zehnmal weniger als die Leistung eines typischen digitalen CNN-Designs. Bei einem Beispiel führt die Verwendung eines CNN-Designs mit SAT zu einem mehr als zehnmal schnelleren Betrieb. Ein Grund, warum der Betrieb eines CNN mit SAT schneller ist, ist, dass eine analoge Version in einem einzigen Taktzyklus eine Operation durchführen kann, die viele Taktzyklen in einer digitalen Version benötigt, aufgrund der gleichzeitigen Art der Ladungsteilung. Der geringere Stromverbrauch eines CNN-Designs mit SAT kann Sensorgeräte ermöglichen, die auch Merkmale mit sehr geringer Leistung für den Alleinbetrieb erkennen, wie z.B. bei IOT-Geräten (Internet of Things).
  • Bei einer Ausgestaltung weist ein faltendes neuronales Netzwerk mit abtastender analoger Technologie eine Eingangsquelle mit ersten und zweiten analogen Eingangsdatenpunkten, eine erste Gruppe Kondensatoren zur Analyse des ersten analogen Eingangsdatenpunkts und zur Ausgabe eines ersten analogen Faltungsausgangssignals und eine zweite Gruppe Kondensatoren zur Analyse des zweiten analogen Eingangsdatenpunkts und zur Ausgabe eines zweiten analogen Faltungsausgangssignals auf. Das erste und das zweite analoge Faltungsausgangssignal enthalten jeweils eine Vielzahl von Merkmalen.
  • Bei einigen Ausgestaltungen weist ein faltendes neuronales Netzwerk ferner ein Array von Strukturen mit variabler Kapazität auf, wobei das erste und das zweite Faltungsausgangssignal durch das Array von Strukturen mit variabler Kapazität gemultiplext werden, um ein gemultiplextes Faltungsausgangssignal zu erzeugen.
  • Bei einigen Ausgestaltungen weisen der erste und der zweite Kondensator feste Kondensatoren auf, und die festen Kondensatoren sind analoge Speicherzellen. Bei einigen Anwendungen sind die erste und die zweite Gruppe Kondensatoren variable Kapazitätszellen mit festen Gewichten. Bei einigen Beispielen werden die festen Gewichte mit einer Speicherkondensatorgröße realisiert und die Speicherkondensatorgröße entspricht einem Gewicht der festen Gewichte.
  • Bei einigen Ausgestaltungen werden die erste Gruppe Kondensatoren und die zweite Gruppe Kondensatoren von der Eingangsquelle angesteuert.
  • Bei einigen Ausgestaltungen weist das faltende neuronale Netzwerk ferner eine erste feste Spannungsquelle mit einer Ladung und einen ersten Kondensator-Digital-Analog-Wandler (capDAC) auf. Die Ladung der ersten festen Spannungsquelle wird vom ersten capDAC abgetastet, um einen ersten Vorspannungswert zu erzeugen, und der erste Vorspannungswert wird zum ersten Ausgangsignal addiert.
  • Bei einigen Ausgestaltungen weist das faltende neuronale Netzwerk ferner einen Unterabtaster (sub-sampler) auf, der mit dem ersten und dem zweiten analogen Faltungsausgangssignal gekoppelt ist, wobei der Unterabtaster das erste und das zweite analoge Faltungsausgangssignal mittelt, um ein gemitteltes Faltungsausgangssignal zu erzeugen, und wobei der Unterabtaster das gemittelte Faltungsausgangssignal mit einer nichtlinearen Übertragungsfunktion verarbeitet. Bei einigen Beispielen ist die nichtlineare Übertragungsfunktion eine analoge Gleichrichtungsfunktion.
  • Bei einigen Ausgestaltungen weist das faltende neuronale Netzwerk ferner einen Unterabtaster auf, der mit dem ersten analogen Faltungsausgang gekoppelt ist, wobei das erste analoge Faltungsausgangssignal ein Unterfenster (subwindow) von Werten aufweist, und wobei der Unterabtaster eine Vielzahl von analogen Spannungskomparatoren zum Bestimmen eines Maximalwertes des Unterfensters von Werten des ersten analogen Faltungsausgangssignals aufweist.
  • Bei einigen Beispielen weist die Eingangsquelle mehrere analoge Eingangsdatenpunkte auf, und es werden mehrere Gruppen von Kondensatoren verwendet, wobei jede Gruppe von Kondensatoren ein Unterfenster der analogen Eingangsdatenpunkte analysiert.
  • Bei einer Ausgestaltung weist ein Verfahren zum Ausgestalten eines neuronalen Netzwerks unter Verwendung abtastender analoger Technologie das Empfangen von analogen Eingangsdaten einschließlich eines ersten und eines zweiten analogen Eingangsdatenpunkts, das Analysieren des ersten analogen Eingangsdatenpunkts mit einer ersten Gruppe von Kondensatoren, um ein erstes analoges Faltungsausgangssignal zu erzeugen, und das Analysieren des zweiten analogen Eingangsdatenpunkts mit einer zweiten Gruppe von Kondensatoren, um ein zweites analoges Faltungsausgangssignal zu erzeugen, auf, wobei das Erzeugen des ersten und des zweiten analogen Faltungsausgangssignal die Durchführung einer analogen Faltungsoperation auf einer Vielzahl von Merkmalen aufweist. Bei einem Beispiel beinhaltet die Analyse das Durchführen einer Faltungsoperation.
  • Bei einigen Ausgestaltungen weist das Verfahren ferner das Multiplexen des ersten und des zweiten Faltungsausgangssignals durch ein Array von Strukturen mit variabler Kapazität auf, um ein analoges gemultiplextes Faltungsausgangssignal zu erzeugen.
  • Bei einigen Ausgestaltungen sind die erste und die zweite Gruppe Kondensatoren variable Kapazitätszellen, die erste Gruppe Kondensatoren hat ein erstes festes Gewicht, und die zweite Gruppe Kondensatoren hat ein zweites festes Gewicht, und das Erzeugen des ersten analogen Faltungsausgangssignal beinhaltet das Multiplizieren des ersten Eingangsdatenpunkts mit dem ersten festen Gewicht, und das Erzeugen des zweiten analogen Faltungsausgangssignal beinhaltet das Multiplizieren des zweiten Eingangsdatenpunkts mit dem zweiten festen Gewicht.
  • Bei einigen Ausgestaltungen beinhaltet das Verfahren die Erzeugung eines ersten Vorspannungswertes (bias value) durch Abtasten, unter Verwendung eines ersten Kondensator-Digital-Analog-Wandlers, einer skalierten Ladung von einer ersten festen Spannungsquelle und das Hinzufügen des ersten Vorspannungswertes zum ersten Ausgangssignal.
  • Bei einigen Ausgestaltungen beinhaltet das Verfahren die Mittelung des ersten analogen Faltungsausgangssignals mit dem zweiten analogen Faltungsausgangssignal an einem Unterabtaster. Bei einigen Ausgestaltungen weist das erste analoge Faltungsausgangssignal ein Unterfenster von Werten auf, und das Verfahren beinhaltet die Bestimmung eines maximalen Wertes des Unterfensters von Werten.
  • Bei einer Ausgestaltung weist ein faltendes neuronales Netzwerk unter Verwendung abtastender analoger Technologie einen Eingang mit analogen Eingangsdaten, eine Vielzahl von Gruppen von Kondensatoren, wobei jede Gruppe von Kondensatoren ausgebildet ist, um ein jeweiliges Unterfenster der analogen Eingangsdaten zu analysieren und ein analoges Faltungsausgangssignal für das jeweilige Unterfenster auszugeben, wobei das analoge Faltungsausgangssignal eine Vielzahl von Merkmalen aufweist, und einen analogen Unterabtaster auf, der mit dem analogen Faltungsausgang gekoppelt ist. Der analoge Unterabtaster ist so ausgebildet, dass er eine Größe von mindestens einem der vielen Merkmale des analogen Faltungsausgangssignals reduziert.
  • Bei einigen Ausgestaltungen geben die mehreren Kondensatorgruppen jeweils mehrere analoge Faltungsausgangssignale aus, und mehrere analoge Unterabtaster sind mit den mehreren analogen Faltungsausgängen gekoppelt. Die Vielzahl der analogen Faltungsausgänge weist jeweils eine Vielzahl von Merkmalen auf, und jeder der Vielzahl der analogen Faltungsausgänge basiert auf einer Faltung eines Ausgangssignals von einer entsprechenden Gruppe von Kondensatoren. Jeder der mehreren analogen Unterabtaster ist so ausgebildet, dass er eine Größe von mindestens einem der mehreren Merkmale eines jeweiligen analogen Faltungsausgangssignals reduziert.
  • Bei einigen Ausgestaltungen weisen die Kondensatorgruppen Festkondensatoren auf, und die Festkondensatoren sind analoge Speicherzellen. Bei einigen Anwendungen weisen die Kondensatorgruppen Zellen mit variabler Kapazität und festen Gewichten auf.
  • Bei einer Ausgestaltung weist das faltende neuronale Netzwerk eine feste Spannungsquelle mit einer Ladung und einen Kondensator-Digital-Analog-Wandler (capDAC) auf. Eine Ladung von der festen Spannungsquelle wird vom capDAC abgetastet, um einen Vorspannungswert zu erzeugen, und der Vorspannungswert wird zu einem Ausgangssignal von einer der mehreren Kondensatorgruppen addiert.
  • Figurenliste
  • Um ein vollständigeres Verständnis der vorliegenden Offenbarung und ihrer Merkmale und Vorteile zu ermöglichen, wird auf die folgende Beschreibung in Verbindung mit den zugehörigen Figuren verwiesen, wobei gleichartige Bezugsziffern einander entsprechende Elemente darstellen, in denen folgendes dargestellt ist:
    • 1 ist ein Diagramm, das ein faltendes neuronales Netzwerk darstellt;
    • 2 ist ein Diagramm, das eine faltende gemultiplexte Schaltungsimplementierung nach einigen Ausführungsformen der Offenbarung veranschaulicht;
    • 3 ist ein Diagramm, das eine weitere faltende gemultiplexte Schaltungsimplementierung nach einigen Ausführungsformen der Offenbarung darstellt;
    • 4 ist ein Diagramm, das eine Faltungsschaltung nach einigen Ausführungsformen der Offenbarung darstellt;
    • 5 ist ein Diagramm, das eine nicht überlappende Unterabtastung nach einigen Ausführungsformen der Offenbarung darstellt;
    • 6 ist ein Diagramm, das die Schaltung für eine Unterabtastung nach einigen Ausführungsformen der Offenbarung darstellt;
    • 7 ist ein Diagramm, das eine unsymmetrische Transformation nach einigen Ausgestaltungen der Offenbarung darstellt;
    • 8 ist ein Diagramm, das eine weitere unsymmetrische Transformation veranschaulicht, entsprechend einiger Ausgestaltungen der Offenbarung;
    • 9 ist ein Diagramm, das eine symmetrische nichtlineare Transformation nach einigen Ausgestaltungen der Offenbarung darstellt;
    • 10 ist ein Diagramm, das eine unsymmetrische Transformation nach einigen Ausgestaltungen der Offenbarung darstellt; und
    • 11 ist ein Flussdiagramm, das ein Verfahren zur Ausgestaltung eines neuronalen Netzes unter Verwendung von abtastender analoger Technologie veranschaulicht, entsprechend einiger Ausführungsformen der Offenbarung.
  • DETAILLIERTE BESCHREIBUNG
  • Es werden Systeme und Verfahren zur Reduzierung der Leistung und Latenz für die Berechnung von faltenden neuronale Netzwerken (CNNs) mittels abtastender analoger Technologie (SAT) bereitgestellt. CNNs werden für eine Vielzahl von Anwendungen eingesetzt. Beispielsweise werden CNNs zur Zeichenerkennung verwendet. CNNs sind ein sehr leistungsfähiges Verfahren zur Erkennung von Mustern oder Merkmalen in komplexen Daten.
  • Die Signalverarbeitung erfolgt im analogen Bereich durch Ladungsteilung zwischen den Kondensatoren, wobei nur elektronische Schalter und Kondensatorelemente verwendet werden. Ein abtastendes Analogfilter filtert eingehende Analogsignale, ohne diese vorher zu digitalisieren. Die abtastende analoge Technologie verwendet diskrete Zeitfilterarchitekturen in Kombination mit analoger Signalverarbeitung, wodurch jegliche Probleme bei der Quantisierung des Datenpfades und der Analog-Digital- und Digital-Analog-Wandlung eliminiert werden.
  • Faltende neuronale Netzwerke
  • Es gibt viele verschiedene Formen von CNN-Strukturen. 1 zeigt ein Blockschaltbild für eine tiefe neuronale Netzwerkstruktur mit sieben Schichten. Die Schichten beinhalten Faltungsschichten im Wechsel mit Unterabtastschichten. Jede Schicht ist rechenintensiv.
  • Jede Schicht in der in 1 gezeigten CNN weist eine Faltung eines NxN-Unterfensters der Eingangsbildpunktdaten 102 auf. In der ersten Schicht 104 von 1 ist das Unterfenster 5x5 Pixel mit einer Schrittweite (stride) von eins. So wird jedes Unterfenster um ein Pixel vom letzten Unterfenster verschoben, während die Bilddaten gescannt und gefaltet werden 120. Das Unterfenster kann überlappend oder nicht überlappend durch Wahl von N und der Schrittweite sein.
  • Die zweite Operation 122 in der zweiten Schicht 106 ist eine Unterabtastung. Es ist ein 2×2 Unterfenster gewichteter Mittelwert, gefolgt von einer nichtlinearen Funktion oder Squashing-Funktion bzw. zusammendrückenden Funktion, um die Ausgabedaten jedes Unterfensters zu erzeugen. Das Ergebnis der Unterabtastung ist ein 14×14 Array von verarbeiteten Pixeldaten, wenn die Unterabtastung ein 2×2-Fenster verwendet. Die resultierenden unterabgetasteten Daten 106 werden dann durch eine Faltungsoperation 124 verarbeitet, was zu einer dritten Schicht 108 führt, die eine Faltungsschicht ist. Die Daten der dritten Schicht 108 werden unterabgetastet 126, was zu einer vierten Schicht 110 führt, die eine Unterabtastschicht ist. Wie in 1 gezeigt, kann es viele Lagenpaare geben, die sich zwischen einer Faltungsschicht und einer Unterabtastschicht abwechseln. In 1 ergibt eine vollständige Verbindungsoperation 128 auf der vierten Schicht 110 eine fünfte Schicht 112, die eine Faltungsschicht ist. Bei einem Beispiel ist die vierte Schicht 110 vollständig mit der fünften Schicht 112 verbunden, so dass jeder Ausgang der vierten Schicht 110 mit jedem Eingang der fünften Schicht 112 verbunden ist. Jeder Ausgang der vierten Schicht 110 kann über Einzelgewichte und nichtlineare Funktionen mit einem Eingang der fünften Schicht verbunden werden. Es ist zu beachten, dass die einzelnen Gewichte gelernte (learned) Gewichte sind. Ebenso ergibt ein vollständiger Verbindungsvorgang auf der fünften Schicht 112 die sechste Schicht 114. Eine Gaussian-Verbindung wird auf der sechsten Schicht 114 durchgeführt, um die siebte Schicht 116 zu erhalten, die die Ausgabe ist.
  • Bei anderen Ausgestaltungen beginnt die zweite Operation mit der nichtlinearen Funktion, gefolgt von einem Unterfenster gewichteten Mittelwert. Bei anderen Ausgestaltungen ist die nichtlineare Funktion Teil der Faltungsschicht, so dass das Ausgangssignal der Faltungsschicht nichtlinear ist. Faltungs- und Unterabtastschichten werden im Folgenden näher beschrieben.
  • Faltungsschicht
  • Entsprechend einer Ausgestaltung nimmt jeder Faltungsschritt ein Unterfenster der Bilddaten ein und gewichtet jede Eingabe in die Faltung mit einem trainierbaren und unabhängigen Gewicht. Bei einem Beispiel werden 25 programmierbare Gewichte pro Summe verwendet. Bei jedem Unterfenster-Scan der Bilddaten werden für jedes Merkmal (feature) die gleichen Gewichte verwendet. Zusätzlich wird ein trainierbares Vorspannungsgewicht (bias weight) zu den Faltungssummen addiert.
  • Ein Merkmal ist eine individuell messbare Eigenschaft der Eingangsdaten. So können Merkmale z.B. Kantendetektoren (edge detectors) und Farb-Blob-Detektoren (color blob detectors) zum Einsatz kommen. Bei anderen Beispielen konzentrieren sich die Funktionen auf feinere Details, die spezifisch für den Eingangsdatensatz und die Beschriftung sind. Bei verschiedenen Anwendungen können die Merkmale numerisch oder strukturell sein. Das neuronale Netzwerk lernt die Merkmale aus den Eingangsdaten, und jede Schicht des neuronalen Netzes extrahiert einige Merkmale aus den Eingangsdaten. Bei einigen Ausgestaltungen werden dem neuronalen Netzwerk zusätzliche Informationen in Form von aus den Daten abgeleiteten Merkmalen zur Verfügung gestellt.
  • In 1 ist das Faltungsausgangssignal der ersten Faltungsoperation 120 als sechs Merkmale in der ersten Schicht 104 dargestellt. Die Anzahl der Merkmale ist anwendungsabhängig. Jedes Merkmal ist eine unabhängige Gruppe von programmierbaren Gewichten für Faltungsscans der Bilddaten. Die gleichen Gewichte werden für alle Faltungssummen der Daten eines bestimmten Merkmals verwendet und jedes Merkmal ist mit einem eindeutigen Gruppe von Gewichten verknüpft.
  • Jede Faltung eines jeden Merkmals ist als Summe von Produkten implementiert, wie in Gleichung 1.1 unten gezeigt. Im Beispiel von 1, unter Verwendung eines 5×5 Unterfensters, N=25: y [ n ] = i = 0 N w i x [ n i ] + b n
    Figure DE112016005746T5_0001
  • Die Gewichte wi und bn sind programmierbar und stellen das erlernte Verhalten dar. Mit SAT kann die gesamte Faltung über programmierbare Gewichte und Vorspannung passiv realisiert werden.
  • Bei dieser Anwendung können die mehrfachen Faltungen auf unterschiedliche Weise realisiert werden. Die Bilddaten werden mit einer bestimmten Bildrate (Frames pro Sekunde (fps)) aktualisiert. Um in Echtzeit arbeiten zu können, werden vor dem nächsten Bilddaten-Update (1/fps Sekunden) die Faltungen aller Merkmale einer einzelnen Schicht abgeschlossen. Im Folgenden werden zwei beispielhafte Verfahren zur Umsetzung der Faltungen in Echtzeit mittels SAT beschrieben. Andere Verfahren zur Ausgestaltung von CNNs mit SAT weisen Kombinationen der hier beschriebenen Verfahren auf.
  • Bei verschiedenen Ausgestaltungen können die Daten in vielen Formen vorliegen. Beispielsweise wird in einer Ausgestaltung CNN für das DNA-Mapping verwendet.
  • Unterabtastschicht
  • Die Eingabe in ein CNN erfolgt über mehrere Schichten. Bei einigen Ausgestaltungen, wie in 1 dargestellt, wechselt die Eingabe zwischen Faltungsschichten (convolutional layers) (z.B. erste 104, dritte 106 und fünfte 112 Schicht) und Unterabtastschichten (sub-sampling layers) (z.B. zweite 106 und vierte 110 Schicht). Bei anderen Ausgestaltungen sind die Faltungs- und Unterabtastschichten in nicht alternierender Reihenfolge. Eine Ausgestaltung weist beispielsweise mehrere aufeinanderfolgende Faltungsschichten auf. Eine weitere Ausgestaltung weist mehrere aufeinanderfolgende Unterabtastschichten auf.
  • Unterabtasten (sub-sampling) reduziert die Komplexität und die räumliche Auflösung der Bilddaten, was die Empfindlichkeit der Ausgabe auf Schwankungen reduziert. Unterabtasten reduziert auch die Größe der Merkmale um einen Faktor. Bei einem Beispiel wird die Reduzierung der Merkmalsgröße durch Summieren einer Gruppe von M×M Elementen der Ausgabe der vorherigen Faltungsschicht erreicht. Bei einem anderen Beispiel wird die Reduzierung der Merkmalsgröße durch Mittelung einer Gruppe von M×M Elementen und Multiplikation des Durchschnitts mit einer Konstanten erreicht.
  • Bei einigen Beschreibungen von CNNs wird das Unterabtasten als Pooling bezeichnet. Es gibt eine Reihe von Verfahren für das Pooling. Ein Verfahren für das Pooling ist die Ermittlung einer Summe von M×M Elementen. Ein weiteres Verfahren des Poolings ist die Bestimmung eines Maximums aus M×M Elementen. Bei anderen Ausgestaltungen kann sich ein Unterabtastbereich mit anderen Unterabtastbereichen überschneiden. Zum Beispiel, in einem 4×4 Raster von Zahlen (das kann die Ausgabe einer Schicht sein), mit nicht überlappenden 2×2 Regionen für Pooling-Ergebnisse in einer 2×2 Ausgabe. Bei einem anderen Beispiel, in einem 4×4-Raster von Zahlen, ergibt die Verwendung von überlappenden 2×2 Regionen für das Pooling eine 3×3-Ausgabe.
  • Nichtlinearität
  • Bei verschiedenen Ausgestaltungen können CNN-Strukturen Daten durch eine nichtlineare Funktion nach der Faltungssumme, nach der Unterabtastung oder dem Pooling oder nach der Faltungssumme und der Unterabtastung für jede Schicht geführt werden. Drei symmetrische Funktionen, die zur Verarbeitung der CNN-Daten verwendet werden können, sind: die Übertragungsfunktion erfc(-x)-1, die Sigmoid-Funktion und die Tanh-Funktion, jeweils entsprechend. Zusätzlich können die CNN-Daten durch eine nicht-symmetrische ReLU-Funktion verarbeitet werden, die einer Gleichrichtungsfunktion entspricht. Bei einigen Ausgestaltungen werden die einzelnen Summen einer Unterabtastschicht durch eine Squashing-Funktion geleitet, bevor sie in die nächste Faltungsschicht übergehen. Die Squashing-Funktion kann verschiedene Formen haben, und die Form der Squashing-Funktion kann symmetrisch oder unsymmetrisch sein.
  • Merkmale
  • Im CNN-Diagramm in 1 haben die erste Schicht 104 (eine Faltungsschicht) und die zweite Schicht 106 (eine Unterabtastschicht) die gleiche Anzahl von Merkmalen. Insbesondere in 1 haben die erste 104 und die zweite 106 Schicht jeweils sechs Merkmale. Die dritte Schicht 108 (eine zweite Faltungsschicht) hat 16 Merkmale. Die Anzahl der Merkmale wird erhöht, indem mehrere weitere Mappings der Bildpunkte der zweiten Schicht 106 Merkmale zu den Merkmalen der dritten Schicht 108 hinzugefügt werden. Daher kann die Anzahl der Merkmale der Faltungs- und Unterabtastschichten unterschiedlich sein. Die Erweiterung der Anzahl der Merkmale verdeutlicht einen Symmetriebruch im Netzwerk. Zusätzlich können Faltungs- und Unterabtastschichten unterschiedliche Eigenschaften haben. Insbesondere können Merkmale transformiert werden, wenn die Merkmalsdaten von einer Schicht zur nächsten verschoben werden. Nach einigen Beispielen werden die Gewichte während einer Trainingsphase ermittelt und nach Beendigung der Trainingsphase gespeichert. Bei einigen Beispielen werden in einer Faltungsschicht andere Merkmale gepflegt als in einer Unterabtastschicht.
  • Faltende vollständige Ausgestaltung
  • In der Faltungsschicht wird die Summe einer vorhergehenden Unterabtastschicht mit einem trainierbaren Gewicht multipliziert. Zusätzlich wird eine trainierbare Vorspannung hinzugefügt.
  • Bei einer faltenden vollständigen Ausgestaltung (convolutional full implementation) ist jedes Gewicht einer Schicht im Schaltkreis des Gerätes vorhanden. Zum Beispiel, bezogen auf 1, weist eine faltende vollständige Ausgestaltung unabhängige programmierbare Gewichte für die sechs Merkmale der ersten Schicht 104 und individuelle Gewichte für jedes Element der Faltungssumme auf (dargestellt in Gleichung 1 oben). Das sind 25 Gewichte für jede Summe. Bei einem Beispiel gibt es 28×28=784 Faltungen für jedes der sechs Merkmale der ersten Schicht 104, was zu 784 Unterfenstern im Ausgabearray aus der Faltungsoperation 120 für jedes der sechs Merkmale führt. Die Gesamtzahl der Faltungen in der ersten Schicht 104 beträgt also 6*28*28=4.704, und da es 25 Gewichte pro Faltung gibt, ergeben sich 25*4.704 = 117.600 gewichtete Summen.
  • Bei einigen Ausgestaltungen sind die Gewichte so gebunden, dass die Gewichte in jedem verschobenen Fenster den gleichen Wert haben. Bei der Ausgestaltung eines CNN mit SAT gibt es für jede gewichtete Summe einen separaten CapDAC (Kondensator-Digital-Analog-Wandler). Bei einem Beispiel, wenn die Gewichte gebunden sind, werden die CapDACs gebunden, und die gebundenen CapDACs werden in einer einzigen Operation programmiert. So können alle Gewichte, die gleich sind, in einer einzigen Operation programmiert werden, anstatt jedes der Gewichte einzeln zu programmieren. Dies trägt zur Verbesserung der Effizienz bei der Programmierung der Gewichte für den CNN bei.
  • Ein Verfahren, um die Anzahl der gewichteten Summen zu reduzieren, ist die Erhöhung der Schrittweite der Unterfenster. Eine Erhöhung der Schrittweite der Unterfenster bedeutet eine Verschiebung der Unterfenster um mehr als ein Pixel pro Unterfenster. Beispielsweise wird bei einer Schrittweite von zwei das Unterfenster um zwei Pixel horizontal und zwei Pixel vertikal verschoben, so dass die Anzahl der Unterfenster um vier reduziert wird und es viermal weniger gewichtete Summen gibt.
  • Bei einer Ausgestaltung hat eine vollständigen Faltungsimplementierung wie oben beschrieben 117.600 gewichtete Summen und somit 117.600 analoge Speicherkondensatoren, die an 117.600 Digital-Analog-Wandler (DACs) angeschlossen werden, die die Gewichte sind. Bei einem Beispiel sind die DACs hybride CapDACs. Diese Ausgestaltung ist schnell, da alle Faltungssummen innerhalb weniger Taktzyklen, die für die Skalierung durch die Gewichte benötigt werden, parallel ablaufen. Diese Ausgestaltung ist auch die größte bzgl. der Gerätefläche. Bei größeren Bilddatenarrays kann das vollständige Ausgestaltungsverfahren groß und kostenintensiv sein.
  • Faltende gemultiplexte Ausgestaltung
  • Für Bildaufnahmen mit einer ausgewählten Bildrate können mehrere Faltungs- und Unterabtastschichten pipelinieartig verbunden werden (pipelined), wobei jede Schicht unabhängig voneinander parallel arbeiten kann. Jede Schicht wird innerhalb der Framerate-Dauer abgeschlossen. Die Grenzen für das Multiplexing können auf verschiedene Weise realisiert werden.
  • 2 zeigt eine Faltungsmultiplexschaltung 200, entsprechend einiger Ausführungsformen der Offenbarung. Bei der Schaltung 200 hat jedes Pixel eine Gruppe von Kondensatoren, die an die Bildquelle angeschlossen oder von dieser angesteuert werden. Ein erstes Pixel 202 ist mit einer ersten Gruppe von Kondensatoren 212 und ein zweites Pixel 204 mit einer zweiten Gruppe von Kondensatoren 214 gekoppelt. Bei einem Beispiel sind die erste 212 und die zweite 214 Kondensatorgruppe jeweils ein 5×5 Unterfenster von Speicherzellen. Bei einigen Beispielen, wie in 2 gezeigt, wird ein 5×5-Unterfenster-Scan der Bildpunkte verwendet, und an jede Pixelquelle sind 5 Speicherzellen angeschlossen. Bei einem Beispiel sind die Speicherzellen analoge Speicherzellen.
  • In 2 sind die Speicherzellen feste Kondensatoren, wie in der ersten 212 und zweiten 214 Gruppe von Kondensatoren gezeigt. Die erste 212 und zweite 214 Gruppe von Kondensatoren werden zu einem Array von variablen Kapazitätsstrukturen 222a-222d gemultiplext (216, 218). Die variablen Kapazitätsstrukturen 222a-222d können in verschiedenen Formen vorliegen. Bei einem Beispiel sind die variablen Kapazitätsstrukturen 222a-222d die hybridCapDAC-Struktur 220. Die hybridCapDAC-Struktur 220 gibt ein Faltungsausgangssignal 224 aus.
  • Bei einem Beispiel bilden die variablen Kapazitätsstrukturen 222a-222d aus 2 ein einziges 5×5-Matrix-Unterfenster. Bei anderen Ausgestaltungen können beliebig viele Arrays oder Matrizen von Zellen mit variabler Kapazität gemultiplext werden, um die Faltungszeit zu reduzieren.
  • 3 zeigt eine Faltungsmultiplexschaltung 300, die eine Zelle mit variabler Kapazität direkt verwendet, entsprechend einigen Ausführungsformen der Offenbarung. Bei der Schaltung 300 hat jedes Pixel eine Gruppe variabler Kondensatoren, die mit der Bildquelle gekoppelt sind. Ein erstes Pixel 302 ist mit einer ersten Gruppe variabler Kondensatoren 312 und ein zweites Pixel 304 mit einer zweiten Gruppe variabler Kondensatoren 314 gekoppelt. Bei einem Beispiel sind die erste 312 und die zweite 314 Kondensatorgruppe jeweils ein 5×5 Unterfenster aus gewichteten Speicherzellen. Bei einigen Ausgestaltungen haben die Speicherzellen programmierbare Gewichte. Bei einigen Ausgestaltungen werden die Gewichte für jede der Speicherzellen nach der Lernphase des neuronalen Netzes, in der die Gewichte gelernt werden, festgelegt. Somit kann die Gewichtung direkt als Speicherkondensatorgröße, die dem Gewicht entspricht, übernommen werden. Die erste Gruppe Kondensatoren 312 hat ein erstes Unterfenster-Faltungsausgangssignal 322 und die zweite Gruppe Kondensatoren 314 ein zweites Unterfenster-Faltungsausgangsignal 324.
  • Bei verschiedenen Ausgestaltungen wird die in 3 gezeigte Architektur von den Anforderungen an die Gewichtsauflösung beeinflusst, so dass bei hohen Anforderungen an die Gewichtsauflösung (weight resolution) die variable Kondensatorstruktur möglicherweise zu groß ist, um sie als Arrays zu implementieren. Das in 2 dargestellte Multiplexing kann jedoch kleiner sein und auch bei hohen Anforderungen an die Gewichtsauflösung als Array realisiert werden.
  • Vorspannungs-Zufügung
  • Bei einigen Ausgestaltungen wird die Faltungssumme der gewichteten Werte um einen trainierbaren Vorspannungs-Wert (bias value) verschoben. 4 zeigt ein Diagramm einer Faltungsschaltung 400 mit einer gewichteten Vorspannung, entsprechend einiger Ausführungsformen der Offenbarung. Bei der Schaltung 400 hat jedes Pixel eine Gruppe von variablen Kondensatoren, die mit der Bildquelle gekoppelt sind, ähnlich der Schaltung 300 in 3. Ein erstes Pixel 402 ist mit einer ersten Gruppe variabler Kondensatoren 412 und ein zweites Pixel 404 ist mit einer zweiten Gruppe variabler Kondensatoren 414 gekoppelt. Bei einem Beispiel sind die erste 412 und die zweite 414 Kondensatorgruppe jeweils ein 5×5 Unterfenster aus gewichteten Speicherzellen. Die erste Gruppe Kondensatoren 412 hat ein erstes Ausgangssignal 416, und eine erste gewichtete Vorspannung 432 wird zum ersten Ausgangssignal addiert, um das erste Unterfenster-Faltungsausgangssignal 422 zu erhalten. Die zweite Gruppe Kondensatoren 414 hat ein zweitens Ausgangssignal 418, und eine zweite gewichtete Vorspannung 434 wird zum zweiten Ausgangssignal 418 addiert, um das zweite Unterfenster-Faltungsausgangssignal 424 zu erhalten. Eine erste 432 und eine zweite 434 gewichtete Vorspannung verschieben die Faltungssumme der gewichteten Werte.
  • Die erste gewichtete Vorspannung 432 wird mit einem skalierten Ladungswert aus einer festen Spannungsquelle 436 addiert, die von einer CapDAC-Struktur 426 abgetastet wird. Ebenso wird die zweite gewichtete Vorspannung 434 mit einem skalierten Ladungswert aus einer festen Spannungsquelle 438 addiert, die von einer CapDAC-Struktur 428 abgetastet wird. Bei verschiedenen Beispielen sind die CapDAC-Strukturen 426, 428 HybridCapDACs.
  • Unterabtastschicht-Ausgestaltung
  • Die Unterabtastschicht beinhaltet einen M×M-Mittelwert der Faltungsausgangssignale gefolgt von einer nichtlinearen Transformation. Bei einer Ausgestaltung ist der M×M-Mittelwert ein Mittelwert der nicht überlappenden M×M Unterfenster der Faltungsausgangssignale. Der M×M-Mittelwert dezimiert im Wesentlichen die räumliche Array-Ausgabe des Faltungsschrittes. Die Ladungsteilung einer M×M-Teilmenge von Kondensatorausgängen der Faltungsschicht kann jedoch direkt als Mittelwerts-Funktion wirken. Bei einigen Beispielen kann es zu Normalisierungsproblemen kommen, wenn die gemeinsame Nutzung einer M×M-Untergruppe von Kondensatorausgängen der Faltungsschicht direkt als Mittelwerts-Funktion wirkt.
  • Bei einigen Ausgestaltungen überschneidet sich die Unterabtastung. Bei anderen Ausgestaltungen ist die Unterabtastung nicht überlappend. 5 zeigt eine Faltungsmultiplexschaltung 500, in der die Unterabtastung nicht überlappend ist, entsprechend einigen Ausführungsformen der Offenbarung. Die Schaltung 500 weist ein erstes Unterfenster von dem variablen capDACs 502 und ein zweites Unterfenster von dem variablen capDACs 504 auf. Die capDACs in dem ersten 502 und dem zweiten 504 Unterfenster können hybridCapDACs sein. Das erste Teilfenster 502 gibt ein erstes Faltungsausgangssignal 506 und das zweite Teilfenster 504 ein zweites Faltungsausgangssignal 508 aus. Das erste 506 und das zweite 508 Ausgangssignal werden in einen Unterabtastung-Summierer 510 aufweisend ein Schaltelement eingespeist. Der Unterabtastungs-Summierer 510 beinhaltet einen ersten Schalter 526, der mit dem ersten Ausgang 506 gekoppelt ist, und einen zweiten Schalter 528, der mit dem zweiten Ausgang 508 gekoppelt ist. Bei einer Ausgestaltung verhindern die ersten 526 und zweiten 528 Schalter eine Überlappung der Teilabtastung.
  • Das Unterabtastausgangssignal 512 des Unterabtastschaltelements 510 wird in einen variablen capDAC 514 eingegeben. Der variable capDAC 514 dient als trainierbares Gewicht. Bei einigen Beispielen ist der variable capDAC 514 ein hybridCapDAC. Eine Vorspannung 516 wird zum Ausgangssignal von dem variablen capDAC 514 addiert, um den Unterfenster-Unterabtastausgang 522 zu erhalten. Die Vorspannung 516 wird mit einem skalierten Ladungswert aus einer festen Spannungsquelle 520 addiert, die von einer CapDAC-Struktur 518 abgetastet wird.
  • Wenn die Unterabtastung nicht überlappende Unterfenster ist, dann ist die Ausgestaltung einfach und passiv. Wenn die Überlappung verwendet wird, treibt jedes Ausgangssignal der Faltungssumme mehrere Eingänge der nachfolgenden Unterabtastschicht an.
  • Maximale Pooling-Ausgestaltung
  • Bei einer Ausgestaltung wird ein anderes Verfahren der Unterabtastung als MAX-Pooling bezeichnet. MAX-Pooling verwendet den Maximalwert eines M×M-Unterfensters von Werten für die Ausgabe. Die Ausgestaltung einer MAX-Funktion in einer Schaltung mit geschalteten Kondensatoren (switchcap) impliziert ein Vergleichsereignis zwischen allen M×M Elementen.
  • 6 zeigt eine Schaltung 600 für Unterabtasten, insbesondere für MAX-Pooling, nach einigen Ausführungsformen der Offenbarung. Die MAX-Pooling-Schaltung 600 weist eine Gruppe von sechs analogen Spannungskomparatoren 602a-602f zum Vergleich von vier Elementen 604a-604d eines 2×2-Unterfensters 606 eines Fensters 620 mit den anderen Elementen 604a-604d im Unterfenster 606 auf. Wie in 6 dargestellt, wird das erste Element 604a mit dem zweiten Element 604b am Vergleicher 602b, das erste Element 604a mit dem dritten Element 604c am Vergleicher 602a und das erste Element 604a mit dem vierten Element 604d am Vergleicher 602c verglichen. Ebenso wird das zweite Element 604b mit dem ersten 604a, dem dritten 604c und dem vierten 604d Element an den Komparatoren 602b, 602d und 602e verglichen, jeweils entsprechend. Das dritte Element 604c wird mit dem ersten 604a, dem zweiten 604b und dem vierten 604d Element an den Komparatoren 602a, 602d und 602f verglichen, jeweils entsprechend. Das vierte Element 604d wird mit den ersten 604a, zweiten 604b und dritten 604c Elementen an den Komparatoren 602c, 602e und 602f verglichen. Bei verschiedenen Ausführungen können die analogen Spannungskomparatoren zeitkontinuierliche Komparatoren oder getaktete Komparatoren sein.
  • Die Ausgangssignale der Komparatoren 602a-602f werden an einem Decoder 608 dekodiert, um das größte Element zu bestimmen. Bei einem Beispiel ist der Decoder 608 ein kombinatorischer Logikblock. Der Decoder 608 gibt eine digitale Entscheidung 610 aus, die auswählt, welcher der vier Schalter 612a-612d zu schließen ist, um den MAX-Ausgang zu aktivieren, wobei die Schalter 612a-612d Leitungen von jedem der Unterfenster 604a-604d mit der Ausgangsleitung 614 verbinden. Bei geschlossenem Schalter werden Daten aus dem jeweiligen Unterfenster in die Ausgangsleitung 614 ausgegeben.
  • Nichtlineare-Funktion-Ausgestaltung
  • Wie oben beschrieben, können verschiedene Übertragungsfunktionen in den Unterabtastschichten eines CNN verwendet werden. Wenn eine nichtlineare Übertragungsfunktion in den Unterabtastschichten eines CNN verwendet wird, hat die Form der nichtlinearen Übertragungsfunktion eine breite Palette von Möglichkeiten. Nach einem Aspekt beinhaltet die Ausgestaltung der CNN-Schichten mit SAT die Auswahl einer nichtlinearen Übertragungsfunktion, die klein und stromsparend ist. Bei verschiedenen Ausgestaltungen wird eine analoge Gleichrichtungsfunktion für die Unterabtastschichten eines CNN verwendet, und die Gleichrichtung ist entweder größer als Null oder kleiner als Null. Insbesondere ist die analoge Gleichrichtung ein konstanter Offset im Ein- und Ausgang der idealen Funktion. Die trainierbaren Vorspannungs-Bedingungen können den konstanten Offset kompensieren.
  • Die 7, 8 und 9 zeigen drei Möglichkeiten, nichtlineare Transformationen zu erzeugen. 7 zeigt eine unsymmetrische Transformation 700 einschließlich einer Diodengleichrichterschaltung 702, entsprechend einigen Ausführungsformen der Offenbarung. Die unsymmetrische Transformation 700 führt zu einer Gleichrichtungsübertragungsfunktion 704. 8 zeigt eine unsymmetrische Transformation 800 inklusive MOSFET-Gleichrichtung 802, entsprechend einiger Ausführungsformen der Offenbarung. Die unsymmetrische Transformation 800 führt zu einer Gleichrichtungsübertragungsfunktion 804. 9 zeigt eine symmetrische nichtlineare Transformation 900 mit MOSFET-Begrenzung (clamping) 902. Die symmetrische nichtlineare Transformation 900 führt zu einer Übertragungsfunktion 904.
  • Die 7, 8 und 9 enthalten Shunt-Elemente (shunting elements), die an kapazitiätsbasierende Ladungsausgänge angeschlossen werden. Ein Beispiel für einen kapazitiätsbasierenden Ladungsausgang ist ein Unterfenster-Summenausgang, der durch die Transformation geführt wird. Die Transformationen 700, 800 und 900 können verwendet werden, um die Ladung auf einer Unterabtastschicht zu ändern, indem ein Charge-Sharing(CS) -Ereignis implementiert wird.
  • Bei einigen Ausgestaltungen kann die Prozess-, Temperatur- und Spannungsvariabilität eingestellt werden. Bei verschiedenen Beispielen kann der Erkennungserfolg empfindlich auf Prozess-, Temperatur- und Spannungsschwankungen reagieren.
  • 10 zeigt eine unsymmetrische Transformation 1000 mit MOSFET-Gleichrichtung 1002 und einen ersten 1006 und einen zweiten 1008 Schalter. Der erste 1006 und der zweite 1008 Schalter schließen entsprechend dem ersten 1016 bzw. dem zweiten 1018 Zeitdiagramm. 10 zeigt eine Ausgestaltung der Gleichrichtung unter Verwendung eines Ladungsteilungsereignisses zur Entladung der Ladung auf die Unterfenster-Summe während der Taktphase 2, wenn die Spannung negativ ist. Andere Funktionen können auf ähnliche Weise implementiert werden. Die unsymmetrische Transformation 1000 führt zu einer Gleichrichtungsübertragungsfunktion 1004.
  • Bei einigen Ausgestaltungen wird die nichtlineare Übertragungsfunktion oder Squashing-Funktion sowohl am Faltungsvorgang als auch am Ausgang des Pooling-Vorgangs implementiert.
  • Anwendungen
  • Faltende neuronale Netzwerke (convolutional neural networks, CNNs) nutzen die räumliche und zeitliche Struktur, indem sie die Gewichte zwischen den Merkmalen teilen. Die Architektur der CNNs ermöglicht eine Äquivarianz bei der Aktivierung der Merkmale und macht die CNNs somit ideal für Bild- und Videoanwendungen. Zum Beispiel die Zeichenerkennung wie die handschriftliche Ziffernerkennung und im weiteren Sinne die Bilderkennung/-klassifizierung und die Videoerkennung/-klassifizierung. Bei verschiedenen Ausgestaltungen werden CNNs verwendet, wenn die Eingangsdaten in Form eines Arrays mit hoch korrelierten lokalen Variablen vorliegen und eine Verschiebungsinvarianz aufweisen.
  • Sprache und natürliche Sprachverarbeitung sind zwei weitere Bereiche, in denen CNNs verwendet werden können, um die dem Problem innewohnende Struktur zu nutzen. Automatische Spracherkennung (ASR) ist eine Anwendung, die in der Vergangenheit mit Hilfe von Hidden Markov-Modellen (HMMs) oder Gaussian Mixture Models (GMMs) das Problem gelöst hat. Der Stand der Technik ist es nun aber, tiefe neuronale Netzwerke und insbesondere CNNs für die ASR zu nutzen. CNNs, die für ASR trainiert wurden, können auch zur Identifizierung von Sprachen in lauten Umgebungen verwendet werden.
  • CNNs haben sehr weitreichende Anwendungen, einschließlich der Entdeckung von Medikamenten und der chemischen Analyse. Bei einer Anwendung wird ein CNN trainiert, um die Bioaktivität und chemische Wechselwirkungen von Molekülen vorherzusagen. Biologische Systeme arbeiten über Wechselwirkungen auf molekularer Schicht, so dass die Vorhersage molekularer Wechselwirkungen mit Hilfe von CNNs eine große Hilfe bei der Medikamentenentwicklung sein kann.
  • Bei anderen Anwendungen können CNNs für das DNA-Mapping verwendet werden. DNA-Mapping wird verwendet, um die Positionen von Genen auf Chromosomen zu beschreiben und den Abstand zwischen den Genen zu bestimmen.
  • 11 zeigt ein Verfahren 1100 für die Ausgestaltung eines neuronalen Netzwerks unter Verwendung von abtastender analoger Technologie, entsprechend einiger Ausführungsformen der Offenbarung. In Schritt 1102 werden analoge Eingangsdaten einschließlich des ersten und zweiten analogen Eingangsdatenpunkts empfangen. In Schritt 1104 wird der erste analoge Eingangsdatenpunkt mit einer ersten Gruppe Kondensatoren analysiert, um ein erstes Ausgangssignal zu erzeugen. In Schritt 1106 wird der zweite analoge Eingangsdatenpunkt mit einer zweiten Gruppe Kondensatoren analysiert, um ein zweites Ausgangssignal zu erzeugen. In Schritt 1108 wird ein analoges Faltungsausgangssignal basierend auf dem ersten und zweiten Ausgangssignal erzeugt. Der analoge Faltungsausgang weist eine Vielzahl von Merkmalen auf, wie oben beschrieben.
  • Bei einigen Beispielen beinhaltet das Verfahren das Multiplexen des ersten und zweiten Ausgangsssignals durch ein Array von variablen Kapazitätsstrukturen, um das analogen Faltungsausgangssignal zu erzeugen. Bei manchen Anwendungen sind die ersten und zweiten Kondensatorgruppen variable Kapazitätszellen, und die ersten und zweiten Kondensatorgruppen haben jeweils ein festes Gewicht. Das Erzeugen des ersten Ausgangssignals beinhaltet das Multiplizieren des ersten Eingangsdatenpunkts mit dem ersten festen Gewicht und das Erzeugen des zweiten Ausgangssignals das Multiplizieren des zweiten Eingangsdatenpunkts mit dem zweiten festen Gewicht.
  • Bei einigen Ausgestaltungen wird ein erster Vorspannungswert erzeugt, indem eine skalierte Ladung von einer ersten festen Spannungsquelle abgetastet und der erste Vorspannungswert zum ersten Ausgangssignal addiert wird. Die skalierte Ladung wird von einem ersten Kondensator-Digital-Analog-Wandler abgetastet. Bei einigen Beispielen wird das analoge Faltungsausgangssignal mit einem zweiten analogen Faltungsausgangssignal an einem Unterabtaster gemittelt. Bei einigen Beispielen weist das analoge Faltungsausgangssignal ein Unterfenster von Werten auf, und es wird ein Maximalwert des Unterfensters von Werten ermittelt.
  • Varianten und Ausführungen
  • Bei verschiedenen Ausgestaltungen kann SAT, wie hier beschrieben, in jeder Art von CNN verwendet werden. Nach einigen Ausgestaltungen wird SAT in dichten Faltungsnetzwerken (dense convolutional networks) eingesetzt. Bei dichten faltenden neuronalen Netzwerken ist jede Schicht mit jeder anderen Schicht im Feed-Forward-Verfahren verbunden. Für jede Schicht sind die Eingaben mit den Merkmalen aller vorhergehenden Schichten versehen. Ebenso werden für jede Schicht die Eigenschaften der Schicht in alle nachfolgenden Schichten eingegeben.
  • Bei den obigen Ausführungen können die Kondensatoren, Taktgeber, DFFs, Teiler, Induktivitäten, Widerstände, Verstärker, Schalter, Digitalkern, Transistoren und/oder andere Komponenten leicht ausgetauscht, ersetzt oder anderweitig modifiziert werden, um besonderen Schaltungsanforderungen gerecht zu werden. Darüber hinaus ist darauf hinzuweisen, dass die Verwendung von komplementären elektronischen Geräten, Hardware, Software usw. eine ebenso praktikable Option für die Umsetzung der Lehren aus der vorliegenden Offenbarung darstellen.
  • Bei einer Beispielausführung können beliebig viele Stromkreise der Figuren auf einer Platine eines zugehörigen elektronischen Gerätes realisiert werden. Die Platine kann eine allgemeine Leiterplatte sein, die verschiedene Komponenten des internen elektronischen Systems des elektronischen Geräts aufnehmen und darüber hinaus Anschlüsse für andere Peripheriegeräte bereitstellen kann. Genauer gesagt, kann die Platine die elektrischen Anschlüsse bereitstellen, über die die anderen Komponenten des Systems elektrisch kommunizieren können. Alle geeigneten Prozessoren (einschließlich digitaler Signalprozessoren, Mikroprozessoren, unterstützender Chipsätze usw.), computerlesbare nichtflüchtige Speicherelemente usw. können je nach Konfigurationsbedarf, Verarbeitungsanforderungen, Computerdesign usw. mit der Platine gekoppelt werden. Weitere Komponenten wie externe Speicher, zusätzliche Sensoren, Controller für Audio/Video-Display und Peripheriegeräte können als Steckplatinen, über Kabel oder in das Board selbst integriert werden. Bei verschiedenen Ausführungen können die hier beschriebenen Funktionalitäten in Emulationsform als Software oder Firmware innerhalb eines oder mehrerer konfigurierbarer (z.B. programmierbarer) Elemente implementiert werden, die in einer Struktur angeordnet sind, die diese Funktionen unterstützt. Die Software oder Firmware, die die Emulation bereitstellt, kann auf einem nicht-flüchtigen, computerlesbaren Speichermedium bereitgestellt werden, das Anweisungen aufweist, die es einem Prozessor ermöglichen, diese Funktionen auszuführen.
  • Bei einem anderen Beispiel können die elektrischen Schaltungen der Figuren als eigenständige Module (z.B. ein Gerät mit zugehörigen Komponenten und Schaltungen, die für eine bestimmte Anwendung oder Funktion ausgebildet sind) oder als Steckmodule in anwendungsspezifische Hardware von elektronischen Geräten implementiert werden. Es ist zu beachten, dass bestimmte Ausführungsformen der vorliegenden Offenbarung leicht in ein System on Chip (SOC)-Paket aufgenommen werden können, entweder teilweise oder ganz. Ein SOC stellt einen IC dar, der Komponenten eines Computers oder eines anderen elektronischen Systems in einen einzigen Chip integriert. Es kann digitale, analoge, Mixed-Signal- und oft auch Hochfrequenzfunktionen enthalten, die alle auf einem einzigen Chip-Substrat bereitgestellt werden können. Andere Ausführungsformen können ein Multi-Chip-Modul (MCM) mit einer Vielzahl von separaten ICs sein, die sich in einem einzigen elektronischen Gehäuse befinden und so ausgebildet sind, dass sie über das elektronische Gehäuse eng miteinander kommunizieren. Bei verschiedenen anderen Ausführungen können die CNN-Funktionalitäten in einem oder mehreren Siliziumkernen in anwendungsspezifischen integrierten Schaltungen (ASICs), Field Programmable Gate Arrays (FPGAs) und anderen Halbleiterchips implementiert werden.
  • Bei einem anderen Beispiel können die elektrischen Schaltungen der Figuren als Teil der Ausbildung der CNN-Schaltung implementiert werden. Das Training ist ein Feedbackpfad, der das Ausgangssignal des CNN-Blocks verarbeitet, um die verschiedenen Gewichte zu ermitteln.
  • Zu beachten ist auch, dass alle hier beschriebenen Spezifikationen, Dimensionen und Beziehungen (z.B. die Anzahl der Prozessoren, logischen Verknüpfungen usw.) nur zu Lehrzwecken angeboten werden. Diese Informationen können erheblich variiert werden, ohne vom Geist der vorliegenden Offenbarung oder dem Umfang der beigefügten Ansprüche abzuweichen. Die Angaben gelten nur für ein nicht einschränkendes Beispiel und sind daher als solche zu verstehen. In der vorstehenden Beschreibung sind Beispielausführungen mit Bezug auf bestimmte Prozessor- und/oder Komponentenanordnungen beschrieben. An solchen Ausführungsformen können verschiedene Änderungen und Ergänzungen vorgenommen werden, ohne vom Umfang der angehängten Ansprüche abzuweichen. Die Beschreibung und die Zeichnungen sind daher eher erläuternd und nicht als beschränkend zu betrachten.
  • Es ist zu beachten, dass die oben beschriebenen Aktivitäten in Bezug auf die Figuren auf alle integrierten Schaltungen anwendbar sind, die Signalverarbeitung beinhalten, insbesondere solche, die spezielle Softwareprogramme oder Algorithmen ausführen können, von denen einige mit der Verarbeitung von digitalisierten Echtzeitdaten verbunden sein können. Bestimmte Ausführungen können sich auf Multi-DSP-Signalverarbeitung, Gleitkomma-Verarbeitung, Signal-/Steuerungsverarbeitung, Festfunktionsverarbeitung, Mikrocontroller-Anwendungen usw. beziehen.
  • In bestimmten Zusammenhängen können die hier beschriebenen Merkmale auf medizinische Systeme, wissenschaftliche Instrumente, drahtlose und drahtgebundene Kommunikation, Radar, industrielle Prozesskontrolle, Audio- und Videogeräte, Strommessung, Instrumente (die hochpräzise sein können) und andere auf digitaler Verarbeitung basierende Systeme anwendbar sein.
  • Darüber hinaus können bestimmte oben beschriebene Ausführungsformen in digitalen Signalverarbeitungstechnologien für die medizinische Bildgebung, Patientenüberwachung, medizinische Instrumente und die häusliche Gesundheitsversorgung bereitgestellt werden. Dazu können Lungenmonitore, Beschleunigungsmesser, Herzfrequenzmesser, Herzschrittmacher usw. gehören. Weitere Anwendungen können Automobiltechnologien für Sicherheitssysteme sein (z.B. Stabilitätskontrollsysteme, Fahrerassistenzsysteme, Bremssysteme, Infotainment und Innenraumanwendungen aller Art). Darüber hinaus können Antriebsstrangsysteme (z.B. in Hybrid- und Elektrofahrzeugen) hochpräzise Datenumwandlungsprodukte für Batterieüberwachung, Steuerungssysteme, Meldekontrollen, Wartungsarbeiten usw. einsetzen.
  • Bei weiteren Beispielszenarien können die Lehren der vorliegenden Offenbarung in den industriellen Märkten angewendet werden, die Prozessleitsysteme beinhalten, die zur Steigerung der Produktivität, Energieeffizienz und Zuverlässigkeit beitragen. Bei Consumer-Anwendungen kann die Lehre der oben beschriebenen Signalverarbeitungsschaltungen für Bildverarbeitung, Autofokus und Bildstabilisierung (z.B. für Digitalkameras, Camcorder, etc.) verwendet werden. Andere Verbraucheranwendungen können Audio- und Videoprozessoren für Heimkinosysteme, DVD-Recorder und hochauflösende Fernseher sein. Nochmals andere Verbraucheranwendungen können fortschrittliche Touchscreen-Controller (z.B. für alle Arten von tragbaren Mediengeräten) beinhalten. Daher könnten solche Technologien leicht Teil von Smartphones, Tablets, Sicherheitssystemen, PCs, Spieltechnologien, Virtual Reality, Simulationstraining usw. sein.
  • Es ist zu beachten, dass mit den zahlreichen hier offenbarten Beispielen die Interaktion in Form von zwei, drei, vier oder mehr elektrischen Komponenten beschrieben werden kann. Dies geschah jedoch nur aus Gründen der Klarheit und des Beispiels. Es ist offensichtlich, dass das System in jeder geeigneten Weise konsolidiert werden kann. Neben ähnlichen Design-Alternativen können alle abgebildeten Komponenten, Module und Elemente der Figuren in verschiedenen möglichen Konfigurationen kombiniert werden, die alle eindeutig in den breiten Anwendungsbereich dieser Spezifikation fallen. In bestimmten Fällen kann es einfacher sein, eine oder mehrere Funktionalitäten einer bestimmten Menge von Strömungen zu beschreiben, indem nur eine begrenzte Anzahl von elektrischen Elementen referenziert wird. Es ist zu beachten, dass die elektrischen Schaltungen der Figuren und ihrer Lehren leicht skalierbar sind und eine große Anzahl von Komponenten sowie kompliziertere und anspruchsvollere Anordnungen und Konfigurationen aufnehmen können. Dementsprechend sollten die Beispiele nicht den Anwendungsbereich einschränken oder die breite Lehre der elektrischen Schaltungen, wie sie möglicherweise auf eine Vielzahl anderer Architekturen angewandt wird, behindern.
  • Es ist zu beachten, dass in dieser Spezifikation Verweise auf verschiedene Merkmale (z.B, Elemente, Strukturen, Module, Komponenten, Schritte, Operationen, Merkmale usw.), die in „einer Ausgestaltung“, „Beispielverkörperung“, „einer Ausgestaltung“, „einer anderen Ausgestaltung“, „einigen Ausgestaltungen“, „verschiedenen Ausgestaltungen“, „anderen Ausgestaltungen“, „alternativen Ausgestaltungen“ und dergleichen enthalten sind, sollen bedeuten, dass solche Merkmale in einer oder mehreren Ausgestaltungen der vorliegenden Offenbarung enthalten sind, müssen aber nicht unbedingt in denselben Ausgestaltungen kombiniert werden.
  • Es ist auch wichtig zu beachten, dass die Funktionen im Zusammenhang mit CNNs nur einige der möglichen CNN-Funktionen darstellen, die von oder innerhalb der in den Figuren dargestellten Systeme ausgeführt werden können. Einige dieser Vorgänge können gegSchichtenfalls gelöscht oder entfernt werden, oder diese Vorgänge können erheblich geändert oder geändert werden, ohne vom Umfang der vorliegenden Offenbarung abzuweichen. Darüber hinaus kann der Zeitpunkt dieser Vorgänge erheblich verändert werden. Die vorangegangenen operativen Abläufe wurden als Beispiel und Diskussionsgrundlage angeboten. Erhebliche Flexibilität wird durch die hier beschriebenen Ausführungsformen erreicht, indem alle geeigneten Arrangements, Chronologien, Konfigurationen und Timing-Mechanismen bereitgestellt werden können, ohne von den Lehren der vorliegenden Offenbarung abzuweichen.
  • Zahlreiche andere Änderungen, Substitutionen, Variationen, Änderungen und Modifikationen können von einem Fachmann erkannt werden, und es ist beabsichtigt, dass die vorliegende Offenbarung alle diese Änderungen, Substitutionen, Variationen, Änderungen und Modifikationen aufweist, die in den Anwendungsbereich der beigefügten Ansprüche fallen. Um das United States Patent and Trademark Office (USPTO) und darüber hinaus alle Leser eines auf diese Anmeldung erteilten Patents bei der Auslegung der hierin enthaltenen Ansprüche zu unterstützen, möchte der Anmelder darauf hinweisen, dass der Anmelder: (a) nicht beabsichtigt, sich auf Paragraph 6 (6) von 35 U.S.C. Section 112, wie sie zum Zeitpunkt der Einreichung dieses Antrags besteht, zu berufen, es sei denn, die Wörter „Mittel für“ oder „Schritt für“ werden ausdrücklich in den jeweiligen Ansprüchen verwendet; und (b) nicht beabsichtigt, diese Offenbarung durch eine Aussage in der Spezifikation in irgendeiner Weise einzuschränken, die nicht anderweitig in den beigefügten Ansprüchen zum Ausdruck kommt.
  • WEITERE HINWEISE, BEISPIELE UND IMPLEMENTIERUNGEN
  • Man beachte, dass alle optionalen Funktionen des oben beschriebenen Geräts auch in Bezug auf das hier beschriebene Verfahren oder den hier beschriebenen Prozess implementiert werden können und die Besonderheiten in den Beispielen überall in einer oder mehreren Ausführungsformen verwendet werden können.
  • Bei einem ersten Beispiel wird ein System bereitgestellt (das alle geeigneten Schaltungen, Teiler, Kondensatoren, Widerstände, Induktivitäten, ADCs, DFFs, Logikgatter, Software, Hardware, Links usw. aufweisen kann), das Teil eines jeden Computertyps sein kann, der außerdem eine Leiterplatte enthalten kann, die mit einer Vielzahl von elektronischen Komponenten gekoppelt ist. Das System kann Mittel zum Takten von Daten aus dem digitalen Kern auf einen ersten Datenausgang eines Makros unter Verwendung eines ersten Takts, wobei der erste Takt ein Makrotakt ist; Mittel zum Takten der Daten aus dem ersten Datenausgang des Makros in die physikalische Schnittstelle unter Verwendung eines zweiten Takts, wobei der zweite Takt ein physikalischer Schnittstellentakt ist; Mittel zum Takten eines ersten Reset-Signals von dem digitalen Kern auf einen Reset-Ausgang des Makros unter Verwendung des Makrotaktes, wobei der erste Reset-Signalausgang als zweites Reset-Signal verwendet wird; Mittel zum Abtasten des zweiten Reset-Signals unter Verwendung eines dritten Taktes, der eine Taktrate liefert, die größer als die Rate des zweiten Taktes ist, um ein abtastendes Reset-Signal zu erzeugen; und Mittel zum Zurücksetzen des zweiten Taktes auf einen vorbestimmten Zustand in der physikalischen Schnittstelle als Reaktion auf einen Übergang des abgetasteten Reset-Signals.
  • Die „Mittel für“ in diesen Fällen (oben) können (sind aber nicht beschränkt auf) die Verwendung einer geeigneten Komponente, zusammen mit einer geeigneten Software, Schaltung, Hub, Computercode, Logik, Algorithmen, Hardware, Controller, Schnittstelle, Link, Bus, Kommunikationspfad, etc. umfassen. Bei einem zweiten Beispiel weist das System einen Speicher auf, der außerdem maschinenlesbare Anweisungen aufweist, die bei ihrer Ausführung dazu führen, dass das System eine der oben genannten Aktivitäten ausführt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62267847 [0001]

Claims (20)

  1. Faltendes neuronales Netzwerk mit abtastender analoger Technologie, aufweisend: eine Eingangsquelle mit einem ersten und einem zweiten analogen Eingangsdatenpunkt, eine erste Gruppe Kondensatoren zur Analyse des ersten analogen Eingangsdatenpunkts und zur Ausgabe eines ersten analogen Faltungsausgangssignals, und eine zweite Gruppe Kondensatoren zur Analyse des zweiten analogen Eingangsdatenpunkts und zur Ausgabe eines zweiten analogen Faltungsausgangssignals, wobei das erste und das zweite analoge Faltungsausgangssignal jeweils eine Vielzahl von Merkmalen aufweisen.
  2. Faltendes neuronales Netzwerk nach Anspruch 1, das ferner ein Array von Strukturen mit variabler Kapazität aufweist, wobei das erste und das zweite Ausgangsignal durch das Array von Strukturen mit variabler Kapazität gemultiplext werden, um ein gemultiplextes Faltungsausgangssignal zu erzeugen.
  3. Faltendes neuronales Netzwerk nach Anspruch 1, wobei die erste und die zweite Gruppe von Kondensatoren feste Kondensatoren aufweisen und wobei die festen Kondensatoren analoge Speicherzellen sind.
  4. Faltendes neuronales Netzwerk nach Anspruch 1, wobei der erste und die zweite Gruppe von Kondensatoren variable Kapazitätszellen mit festen Gewichten sind.
  5. Faltendes neuronales Netzwerk nach Anspruch 4, wobei die festen Gewichte unter Verwendung einer Speicherkondensatorgröße implementiert sind und wobei die Speicherkondensatorgröße gleich einem Gewicht der festen Gewichte ist.
  6. Faltendes neuronales Netzwerk nach Anspruch 1, wobei die erste Gruppe von Kondensatoren und die zweite Gruppe von Kondensatoren von der Eingangsquelle angesteuert werden.
  7. Faltendes neuronales Netzwerk nach Anspruch 1, ferner aufweisend: eine erste feste Spannungsquelle mit einer Ladung, und einen ersten Kondensator-Digital-Analog-Wandler, wobei eine Ladung von der ersten festen Spannungsquelle durch den ersten Kondensator-Digital-Analog-Wandler abgetastet wird, um einen ersten Vorspannungswert zu erzeugen, und wobei der erste Vorspannungswert zum ersten Ausgangssignal addiert wird.
  8. Faltendes neuronales Netzwerk nach Anspruch 1, das ferner einen mit dem ersten und dem zweiten analogen Faltungsausgangssignal gekoppelten Unterabtaster aufweist, wobei der Unterabtaster das erste und das zweite analoge Faltungsausgangssignal mittelt, um ein gemitteltes Faltungsausgangssignal zu erzeugen, und wobei der Unterabtaster das gemittelte Faltungsausgangssignal mit einer nichtlinearen Übertragungsfunktion verarbeitet.
  9. Faltendes neuronales Netzwerk nach Anspruch 8, wobei die nichtlineare Übertragungsfunktion eine analoge Gleichrichtungsfunktion ist.
  10. Faltendes neuronales Netzwerk nach Anspruch 1, ferner mit einem Unterabtaster, der mit dem ersten analogen Faltungsausgang gekoppelt ist, wobei das erste analoge Faltungsausgangssignal ein Unterfenster von Werten aufweist, und wobei der Unterabtaster eine Vielzahl von analogen Spannungskomparatoren zum Bestimmen eines Maximalwertes des Unterfensters von Werten des ersten analogen Faltungsausgangssignals aufweist.
  11. Verfahren zur Ausgestaltung eines neuronalen Netzwerks unter Verwendung abtastender analoger Technologie, aufweisend: Empfangen von analogen Eingangsdaten einschließlich eines ersten und eines zweiten analogen Eingangsdatenpunkts, Analysieren des ersten analogen Eingangsdatenpunkts mit einer ersten Gruppe Kondensatoren, um ein erstes analoges Faltungsausgangssignal zu erzeugen, und Analysieren des zweiten analogen Eingangsdatenpunkts mit einer zweiten Gruppe Kondensatoren, um ein zweites analoges Faltungsausgangssignal zu erzeugen, wobei das Erzeugen des ersten und des zweiten analogen Faltungsausgangssignals ein Durchführen einer analogen Faltungsoperation auf einer Vielzahl von Merkmalen aufweist.
  12. Verfahren nach Anspruch 11, aufweisend ferner das Multiplexen des ersten und des zweiten analogen Faltungsausgangssignals durch eine Anordnung von Strukturen mit variabler Kapazität, um ein analoges gemultiplextes Faltungsausgangssignal zu erzeugen.
  13. Verfahren nach Anspruch 11, wobei die erste und die zweite Gruppe von Kondensatoren variable Kapazitätszellen sind, die erste Gruppe von Kondensatoren ein erstes festes Gewicht hat und die zweite Gruppe von Kondensatoren ein zweites festes Gewicht hat, und wobei das Erzeugen des ersten analogen Faltungsausgangssignals das Multiplizieren des ersten Eingangsdatenpunkts mit dem ersten festen Gewicht aufweist, und das Erzeugen des zweiten analogen Faltungsausgangssignals das Multiplizieren des zweiten Eingangsdatenpunkts mit dem zweiten festen Gewicht aufweist.
  14. Verfahren nach Anspruch 11, ferner aufweisend: Erzeugen eines ersten Vorspannungswertes durch Abtasten, unter Verwendung eines ersten Kondensator-Digital-Analog-Wandlers, einer skalierten Ladung von einer ersten festen Spannungsquelle, und Hinzufügen des ersten Vorspannungswertes zum ersten Faltungsausgangssignal.
  15. Verfahren nach Anspruch 11, aufweisend ferner das Mitteln des ersten analogen Faltungsausgangssignals mit dem zweiten analogen Faltungsausgangssignal an einem Unterabtaster.
  16. Verfahren nach Anspruch 11, wobei das erste analoge Faltungsausgangssignal ein Unterfenster von Werten aufweist und ferner das Bestimmen eines Maximalwertes des Unterfensters von Werten aufweist.
  17. Faltendes neuronales Netzwerk mit abtastender analoger Technologie, aufweisend einen Eingang mit analogen Eingangsdaten, eine Vielzahl von Gruppen von Kondensatoren, wobei jede Gruppe von Kondensatoren ausgebildet ist, um ein entsprechendes Unterfenster der analogen Eingangsdaten zu analysieren und ein analoges Faltungsausgangssignal für das entsprechende Unterfenster auszugeben, wobei das analoge Faltungsausgangssignal eine Vielzahl von Merkmalen aufweist, und einen analogen Unterabtaster, der mit dem analogen Faltungsausgang gekoppelt ist, wobei der analoge Unterabtaster so ausgebildet ist, dass er eine Größe von mindestens einem der mehreren Merkmale des analogen Faltungsausgangs reduziert.
  18. Faltendes neuronales Netzwerk nach Anspruch 17, wobei die Vielzahl von Kondensatorgruppen feste Kondensatoren aufweist und wobei die festen Kondensatoren analoge Speicherzellen sind.
  19. Faltendes neuronales Netzwerk nach Anspruch 17, wobei die Vielzahl von Kondensatorgruppen variable Kapazitätszellen mit festen Gewichten aufweist.
  20. Faltendes neuronales Netzwerk nach Anspruch 17, ferner aufweisend: eine feste Spannungsquelle mit einer Ladung, und einem Kondensator-Digital-Analog-Wandler, wobei eine Ladung von der festen Spannungsquelle durch den Kondensator-Digital-Analog-Wandler abgetastet wird, um einen Vorspannungswert zu erzeugen, und wobei der Vorspannungswert zu einem Ausgangssignal von einem der mehreren Kondensatorgruppen addiert wird.
DE112016005746.6T 2015-12-15 2016-12-15 Faltendes neuronales Netzwerk Pending DE112016005746T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562267847P 2015-12-15 2015-12-15
US62/267,847 2015-12-15
US15/379,114 2016-12-14
US15/379,114 US11475269B2 (en) 2015-12-15 2016-12-14 Convolutional neural network
PCT/US2016/066869 WO2017106464A1 (en) 2015-12-15 2016-12-15 Convolutional neural network

Publications (1)

Publication Number Publication Date
DE112016005746T5 true DE112016005746T5 (de) 2018-08-23

Family

ID=59019841

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016005746.6T Pending DE112016005746T5 (de) 2015-12-15 2016-12-15 Faltendes neuronales Netzwerk

Country Status (5)

Country Link
US (1) US11475269B2 (de)
JP (1) JP6637602B2 (de)
CN (1) CN108475348B (de)
DE (1) DE112016005746T5 (de)
WO (1) WO2017106464A1 (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3050855B1 (fr) * 2016-04-27 2019-05-03 Commissariat A L'energie Atomique Et Aux Energies Alternatives Dispositif et procede de calcul de convolution d'un reseau de neurones convolutionnel
US20180114109A1 (en) * 2016-10-20 2018-04-26 Nokia Technologies Oy Deep convolutional neural networks with squashed filters
TWI607389B (zh) * 2017-02-10 2017-12-01 耐能股份有限公司 卷積神經網路的池化運算裝置及方法
CN107124609A (zh) * 2017-04-27 2017-09-01 京东方科技集团股份有限公司 一种视频图像的处理系统、其处理方法及显示装置
DE112018003051T5 (de) 2017-06-14 2020-02-27 Semiconductor Energy Laboratory Co., Ltd. Abbildungsvorrichtung und elektronisches Gerät
WO2018234919A1 (ja) * 2017-06-21 2018-12-27 株式会社半導体エネルギー研究所 ニューラルネットワークを有する半導体装置
JP6957365B2 (ja) * 2017-09-22 2021-11-02 株式会社東芝 演算装置
US10847137B1 (en) * 2017-12-12 2020-11-24 Amazon Technologies, Inc. Trigger word detection using neural network waveform processing
US11138505B2 (en) * 2017-12-21 2021-10-05 Fujitsu Limited Quantization of neural network parameters
US10872291B2 (en) * 2017-12-22 2020-12-22 Alibaba Group Holding Limited On-chip communication system for neural network processors
JP7240657B2 (ja) * 2018-05-15 2023-03-16 Tokyo Artisan Intelligence株式会社 ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム
US11562208B2 (en) 2018-05-17 2023-01-24 Qualcomm Incorporated Continuous relaxation of quantization for discretized deep neural networks
CN109035779B (zh) * 2018-08-30 2021-01-19 南京邮电大学 基于DenseNet的高速公路交通流预测方法
KR102633139B1 (ko) 2018-09-07 2024-02-02 삼성전자주식회사 데이터를 추출하는 집적 회로, 그것을 포함하는 뉴럴 네트워크 프로세서 및 뉴럴 네트워크 장치
US11574694B2 (en) 2018-10-11 2023-02-07 International Business Machines Corporation Kernel sets normalization with capacitor charge sharing
CN109407067B (zh) * 2018-10-13 2023-06-27 中国人民解放军海军航空大学 基于时频图卷积神经网络的雷达动目标检测与分类一体化方法
CN109633588A (zh) * 2018-12-29 2019-04-16 杭州电子科技大学 基于深度卷积神经网络的雷达辐射源识别方法
US11556763B2 (en) 2019-02-19 2023-01-17 International Business Machines Corporation Multi-kernel configuration for convolutional neural networks
CN109965858B (zh) * 2019-03-28 2020-10-30 北京邮电大学 基于超宽带雷达人体生命体征检测方法和装置
CN110311676B (zh) * 2019-06-24 2020-10-16 清华大学 一种采用开关电流技术的物联网视觉系统和数据处理方法
US11537863B2 (en) 2019-09-12 2022-12-27 International Business Machines Corporation Resistive processing unit cell having multiple weight update and read circuits for parallel processing of data using shared weight value
US11562240B2 (en) 2020-05-27 2023-01-24 International Business Machines Corporation Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference
US11885271B2 (en) 2020-06-25 2024-01-30 PolyN Technology Limited Systems and methods for detonation control in spark ignition engines using analog neuromorphic computing hardware
CN111901541B (zh) * 2020-07-14 2021-07-09 清华大学 一种直接光电流计算单元电路
US11847847B2 (en) 2021-03-26 2023-12-19 Analog Devices International Unlimited Company Learning system for convolutional neural networks to improve accuracy of object detection in new environments

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4727505A (en) * 1984-03-29 1988-02-23 Kabushiki Kaisha Toshiba Convolution arithmetic circuit for digital signal processing
FR2575308B1 (fr) * 1984-12-21 1989-03-31 Bendix Electronics Sa Procede et chaine de traitement du signal analogique de sortie d'un capteur
US4931674A (en) * 1988-11-16 1990-06-05 United States Of America As Represented By The Secretary Of The Navy Programmable analog voltage multiplier circuit means
US4954963A (en) * 1989-03-02 1990-09-04 Texas Instruments Incorporated Neural network and system
US5343555A (en) * 1992-07-06 1994-08-30 The Regents Of The University Of California Artificial neuron with switched-capacitor synapses using analog storage of synaptic weights
US5485416A (en) 1994-05-05 1996-01-16 Ward; Calvin B. Computational circuit based on capacitor arrays
US6940445B2 (en) 2002-12-27 2005-09-06 Analog Devices, Inc. Programmable input range ADC
JP4272967B2 (ja) * 2003-10-16 2009-06-03 キヤノン株式会社 演算回路およびその動作制御方法
US7286075B2 (en) * 2005-11-14 2007-10-23 Analog Devices, Inc. Analog to digital converter with dither
US8717094B2 (en) * 2011-06-06 2014-05-06 Analog Devices, Inc. Charge sharing time domain filter
US8442927B2 (en) * 2009-07-30 2013-05-14 Nec Laboratories America, Inc. Dynamically configurable, multi-ported co-processor for convolutional neural networks
US9129220B2 (en) * 2010-07-07 2015-09-08 Qualcomm Incorporated Methods and systems for digital neural processing with discrete-level synapes and probabilistic STDP
CN102610274B (zh) * 2012-04-06 2014-10-15 电子科技大学 一种阻变突触权值调整电路
US10217045B2 (en) * 2012-07-16 2019-02-26 Cornell University Computation devices and artificial neurons based on nanoelectromechanical systems
US9613001B2 (en) 2013-12-20 2017-04-04 Intel Corporation Processing device for performing convolution operations
JP6314628B2 (ja) * 2014-04-28 2018-04-25 株式会社デンソー 演算処理装置
US9346167B2 (en) * 2014-04-29 2016-05-24 Brain Corporation Trainable convolutional network apparatus and methods for operating a robotic vehicle
CN104281858B (zh) * 2014-09-15 2018-07-10 中安消技术有限公司 三维卷积神经网络训练方法、视频异常事件检测方法及装置
DE102015104814B4 (de) * 2015-03-27 2018-02-08 Intel IP Corporation Eine Digital-Analog-Wandler-Schaltung, eine Vorrichtung zum Bereitstellen eines Radiofrequenz-Sendesignals und eines Verfahrens einer Digital-Analog-Wandlung

Also Published As

Publication number Publication date
CN108475348B (zh) 2023-07-18
WO2017106464A1 (en) 2017-06-22
JP2019504400A (ja) 2019-02-14
JP6637602B2 (ja) 2020-01-29
US20170169327A1 (en) 2017-06-15
US11475269B2 (en) 2022-10-18
CN108475348A (zh) 2018-08-31

Similar Documents

Publication Publication Date Title
DE112016005746T5 (de) Faltendes neuronales Netzwerk
Linsley et al. Learning long-range spatial dependencies with horizontal gated recurrent units
DE102019122818A1 (de) Neuronale Netzwerkvorrichtung für eine neuronale Netzwerkoperation, Verfahren zum Betreiben einer neuronalen Netzwerkvorrichtung und Anwendungsprozessor, der die neuronale Netzwerkvorrichtung beinhaltet
DE102015101411B4 (de) Verbesserter Analog-Digital-Wandler und Verfahren zum Betreiben eines Analog-Digital-Wandlers
DE112009003725T5 (de) Rauschunterdrückende Bildsensoren
DE102016106973A1 (de) Fingerabdrucksensor, elektronische Vorrichtung mit demselben und Verfahren zum Betreiben eines Fingerabdrucksensors
US9014416B1 (en) Sensory processing apparatus and methods
DE112011101695T5 (de) System und Verfahren zur Verarbeitung von Bilddaten in Bezug zu einer Konzentration innerhalb des gesamten Bildes
DE112014005109T5 (de) Support-Vector-Maschine-Basiertes Objekterkennungsystem und assoziiertes Verfahren
DE112018001207T5 (de) IC, Treiber-IC, Anzeigesystem und Elektronisches Gerät
DE102018123112A1 (de) Bildverarbeitungsvorrichtung und Programm
CN107122828A (zh) 电路结构及其驱动方法、神经网络
DE112017007724T5 (de) System und Verfahren zur Verfolgung von Objekten in einer zeitlichen Sequenz von digitalen Bildern
DE102018127802A1 (de) Hybrider klassifikator eines gepulsten neuronalen netzwerks und einer support-vektor-maschine
CN109564633B (zh) 人工神经网络
US11436432B2 (en) Method and apparatus for artificial neural network
DE69629604T2 (de) Halbleiteranordnung, Halbleiterschaltung, in der die Anordnung angewandt wird und Korrelationsrechner, Signalwandler und Signalverarbeitungssystem, in dem die Schaltung angewandt wird
DE112020006326T5 (de) Laufzeitsensor, laufzeitsystem und system
DE102020126380A1 (de) Neuronale Netzwerkvorrichtung, Betriebsverfahren derselben und dieselbe enthaltendes neuronales Netzwerksystem
CN117055726A (zh) 一种脑机交互的微运动控制方法
DE102018100315A1 (de) Erzeugen von Eingabedaten für ein konvolutionelles neuronales Netzwerk
JP6489295B1 (ja) ニューロモルフィック素子を含むアレイ装置およびニューラルネットワークシステム
CN113688783B (zh) 人脸特征提取方法、低分辨率人脸识别方法及设备
DE102021121299A1 (de) NPU-Vorrichtung, die eine Faltungsoperation basierend auf der Anzahl an Kanälen durchführt, und Betriebsverfahren derselben
DE102021108527A1 (de) Neuronennetzvorrichtung für den betrieb eines neuronalen netzes, verfahren zum betreiben einer neuronennetzvorrichtung und anwendungsprozessor, der eine neuronennetzvorrichtung umfasst

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: ANALOG DEVICES, INC., WILMINGTON, US

Free format text: FORMER OWNER: ANALOG DEVICES, INC., NORWOOD, MA, US

R082 Change of representative

Representative=s name: WITTE, WELLER & PARTNER PATENTANWAELTE MBB, DE

R016 Response to examination communication