专利汇可以提供Netzwerk -Baustein und Architektur für die programmierbare Emulation künstlicher neuronaler Netze mit digitaler Arbeitsweise专利检索,专利查询,专利分析的服务。并且,下面是Netzwerk -Baustein und Architektur für die programmierbare Emulation künstlicher neuronaler Netze mit digitaler Arbeitsweise专利的具体信息内容。
Die vorliegende Erfindung betrifft einen Netzwerk Baustern und eine Netzwerk-Architektur für die programmierbare Emulation großer künstlicher neuronaler Netze KNN mit digitaler Arbeitsweise.
Künstliche neuronale Netze (im folgenden als KNN bezeichnet) sind prädestiniert für die parallele Verarbeitung sehr großer Datenmengen mit dem Ziel der Mustererkennung und -verarbeitung (beispielsweise von Sprache oder Bildern). Ein solches KNN besteht aus einer Vielzahl nichtlinearer Prozessorelemente (Neuronen), die über variable "Gewichtsfaktoren" miteinander vernetzt sind.
Für die Modellierung der Neuronen sind in der Literatur folgende nichtlineare Übertragungscharakteristiken vorgeschlagen worden, vergl. R. P. Lippmann: "An introduction to computing with neural nets" IEEE ASSP Magazine, April 1987, S. 4...′22:
Desweiteren existiert eine Vielzahl unterschiedlicher Strukturen für die Vernetzung der Neuronen (z.B. "Hopfield-Netz", "Hamming-Netz", "Perceptron", vergl. ebenfalls R.P. Lippmann. Eine unmittelbare digitale Realisierung großer derartiger Netze scheint mit den heutigen Technologien zur Herstellung integrierter Schaltungen wegen der erforderlichen Vielzahl von Neuronen ( > 1000) unmöglich zu sein. Das Hauptproblem dabei ist, daß die Zahl der Verbindungen und damit auch die Zahl der variablen Gewichtsfaktoren quadratisch mit der Zahl der Neuronen wächst. Beispielsweise sind bei 1000 Neuronen in einem vollständig vermaschten Netz 1 Millionen Gewichtungen erforderlich.
In der Literatur sind einige Realisierungen kleiner KNN mit beispielsweise 54 bzw. 256 Neuronen für ein programmierbares bzw. nicht-programmierbares Netz, vergl. H.P. Graf, P. de Vegvar: A CMOS associative memory chip based on neural networks. Proc. 1987 IEEE Int. Conf. an Solid-State Circuits, pp. 304, 305, 437;
H.P. Graf et al.: VLSI implementation of a neural network memory with several hundreds of neurons. AIP Conference Proceedings 151, "Neural Networks for Computing", S. 182-187, Snowbird, Utah, 1986;
W. Hubbard et. al.: Electronic neural networks. AIP Conference Proceedings 151, "Neural Networks for Computing", S. 227-234, Snowbird, Utah, 1986
und Realisierungsvorschläge, vergl. J.P. Sage, K. Thompson R.S. Withers: An artificial neural network integrated circuit based an MNOS/CCD principles. AIP Conference Proceedings 151, "Neural Networks for Computing", S. 381-384, Snowbird, Utah, 1986, beschrieben. Dabei handelt es sich durchwegs um analoge Realisierungen von analogen KNN. Gegenüber digitalen Realisierungen haben sie den Vorteil einer wesentlich kleineren Implementationsfläche. Nachteilig ist jedoch der hohe durch die erforderliche Widerstandsmatrix bedingte Stromverbrauch, der einer Realisierung von größeren, programmierbaren Netzen (mehr als einige hundert Neuronen) entgegensteht. Das Verhalten und die Eigenschaften der bisher vorgeschlagenen Modellierungen von KNN werden vornehmlich durch Simulation auf Vektorrechnern, Workstations oder speziellen Prozessorfeldern untersucht. Der grundsätzliche Nachteil dieses Weges besteht darin, daß die dem neuronalen Netz eigene (Raum-)Parallelität in der Verarbeitung der Information vollständig oder teilweise verloren geht und somit die Rechenzeit des simulierten Netzes insbesondere für große Neuronenverbände zu solchen Größenordnungen anwächst, daß eine zügige oder quasi-zeitechte Bearbeitung der zuvor genannten Aufgaben behindert oder unmöglich wird.
Eine wesentliche Verkürzung der Rechenzeit und einen sehr viel größeren Musterdurchsatz erhält man dagegen mit Hardware-Emulatoren. Im Gegensatz zu Hardware-Simulatoren enthalten sie ein künstliches neuronales Netz von kleiner Größe, mit dessen Hilfe ein größeres Netz emuliert werden kann.
Der Vorteil einer digitalen Realisierung eines KNN besteht neben einem höheren Durchsatz in der größeren Freiheit, mit der der Anwender netztypische Parameter (z.B. Diskriminatorfunktionen) auswählen und einstellen kann.
Da einerseits der Algorithmus eines neuronalen Netzes mit keiner Architektur schneller ausgeführt werden kann als mit der neuronalen und andererseits sich Netze mit nur wenigen 100 Neuronen wegen ihrer geringen Speicherkapazität einer sinnvollen Anwendung entziehen, sind bei dem Entwurf von digitalen Emulatoren für künstliche neuronale Netze (im folgenden als Neuro-Emulatoren bezeichnet) folgende Punkte besonders zu berücksichtigen:
Ein Neuro-Emulator sollte
1.1 Neuronale Algorithmen
Künstliche neuronale Netze zeichnen sich durch eine einfache algorithmische Struktur in der sog. Erkennungsphase aus:
Dabei beschreiben N die Zahl der allen Neuronen gemeinsamen Eingänge aj (im folgenden als verzweigende Eingänge bezeichnet; nicht vorhandene Verbindungen werden durch zu Null gesetzte Gewichte repräsentiert), M die Zahl der Neuronen des Netzes, die Matrix W die Gewichte für die verzweigenden Eingänge, wi das Gewicht des nicht-verzweigenden individuellen Eingangs des i-ten Neurons und ϑi seine Schaltschwelle. Schließlich bezeichnen f die Diskriminatorfunktion (d.h. den Kennlinientyp des Neurons) und yi den Ausgang des i-ten Neurons. Mit dem Parameter λ kann die Diskriminatorfunktion versteilert oder verflacht und außerdem eine Boltzmann-Verteilung unterstützt werden. Ferner kann dieser Parameter für Normierungszwecke ausgenützt werden. Zu der algorithmischen Spezifikation eines neuronalen Netzes kommt ggf. hinzu, daß es sich um ein rückgekoppeltes Netz handelt: die Ausgänge yi sind mit den Eingängen aj bzw. bi verbunden. Formel (1) ist allgemeiner gehalten als für ein bestimmtes Modell eines künstlichen neuronalen Netzes zwingend ist; dafür erschließt sie die Behandlung aller bekannten Modelle, vergl. "Workshop on ARTIFICIAL NEURAL SYSTEMS", Veranstalter "State of the art", München 1987, wenn man statt aj den Ausdruck
Beiden Realisierungsmoglichkeiten gemeinsam ist überdies das Bus- und/oder Pinproblem. Betrachtet man beispielsweise ein rückgekoppeltes Hopfield-Netz von 256 analog realisierten Neuronen, so ergäbe sich pro Eingang eine Bandbreite von ca. 3 MHz, vergleiche H.P. Graf et al: VLSI implementation of a neural network memory with several hundreds of neurons,
AIP Conf. Proceedings 151, "Neural Networks for Computing", S. 182 - 187, Snowbird, Utah, 1986 und H.P. Graf, P. de Vegvar: A CMOS associative memory chip based an neural networks. Proc. 1987 IEEE Int. Conf. on Solid-State Circuits, pp. 304, 305, 437. Da die nötige Zahl von Pins nur mit teuren Spezial-Gehäusen zur Verfügung steht, müßten spezielle Schnittstellen-Bausteine entwickelt werden, um den Geschwindigkeitsvorteil der massiven Parallelität überhaupt wahrnehmen zu können.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, eine Netzwerk-Architektur der eingangs genannten Art zum Aufbau großer digitaler neuronaler Netze zu schaffen, die es gestattet, kleine Neuron-Einheiten, die mittels der derzeit zur Verfügung stehenden technologischen Möglichkeiten realisiert werden können, zu verwenden.
Zur Lösung der Aufgabe wird ein digitaler Grundbaustein gemäß dem Patentanspruch 1 vorgeschlagen. Eine entsprechende Netzwerk architektur wird im Anspruch 5 vorgeschlagen.
Vorteilhafte Weiterbildungen der Erfindung sind durch die in den Unteransprüchen angegebenen Merkmale gekennzeichnet.
Erfindungsgemäß ist ein kleines neuronales Netz mit m Neuronen und m² Multiplizierern für die Gewichtung vorgesehen. Die gewählte Architektur gestattet eine schnelle Emulation beliebiger Netzstrukturen mit allen zuvor angegebenen nichtlinearen Übertragungscharakteristiken der künstlichen Neuronen.
Die erfindungsgemäße Hardware-Architektur ermöglicht es, große neuronale Netze mit kleineren solcher aufzubauen, für welche eine Hardware-Realisierung noch möglich ist. Mehrere dieser kleinen Netze können z.B. zu größeren zusammengefügt werden, oder es wird der Algorithmus (1) eines großen Netzes mit dem Algorithmus eines kleinen Netzes abgerastert. Letzteres bedeutet die Emulation eines großen Netzes mittels eines kleineren.
Die Dekomposition eines Netzes von M (z.B. 1000) Neuronen in kleineren Einheiten von m (z.B. = 4) Neuronen (m ist Teiler von N; N/m = : K) kann durch Umschreiben von (1) erreicht werden:
Im folgenden werden verschiedene Ausführungsbeispiele der Erfindung anhand mehrerer Figuren beschrieben.
Fig. 1 und Fig. 2 zeigen am Beispiel eines Netzes mit N Eingängen und M Ausgängen Aufbau und Arbeitsweise einer Neuroneinheit mit m = 4 Neuronen mittels derer eine Abarbeitung des Ausdrucks (2) digital realisiert werden kann.
Fig. 1 zeigt die Architektur der 4-Neuron-Einheit. Hier besteht ein Neuron aus vier Multiplizierern, zwei Addierern, einem Akkumulator, zwei Multiplexern und einem Diskriminator (binäre, "linear ramp"-, sigmoidale und tanh-Kennlinien stehen zur Auswahl). Außerdem ist ein Multiplizierer vorgesehen, der unter anderem die Kennlinie der Sigmoidalfunktion versteilern und dadurch auch eine Boltzmann-Verteilung unterstützen kann. Zu Beginn einer Berechnung von (2), n = 0, j = 1, werden parallel zu der Gewichtung der verzweigenden Eingänge die Ausdrücke "wibi+ϑi", i=1 bis 4 gebildet und der Akkumulator AKK im folgenden Takt mittels des auf den Addierer ADD folgenden Multiplexers auf diesen Wert voreingestellt. In den folgenden K-1 Takten (K = N/m) schließen die beiden Multiplexer den Akkumulationspfad, und es wird die Doppelsumme von (2) errechnet. Schließlich wird im (K + 1)-ten Takt der Akkumulator ausgelesen (das Argument von f ist berechnet für λ = 1) und dem Diskriminator zugeführt. An den vier Ausgängen erscheinen somit die ersten vier von M Ausgangsvektoren nach K Takten (Register sind nicht berücksichtigt) und nach weiteren K Takten die nächsten vier Ausgangsvektoren, usw.. Insgesamt ist dieser Vorgang M/m-mal durchzuführen.
Fig. 2 zeigt, in welchem zeitlichen Rhythmus Eingangsvektoren, Gewichte und Schwellwerte der 4-Neuron-Einheit zugeliefert werden müssen und Ausgangsvektoren erscheinen. Dies gilt für ein beliebig strukturiertes Netz ohne Rückkopplung. Für den Fall eines rückgekoppelten Netzes werden die Ausgangsvektoren zunächst in einem lokalen Speicher abgelegt. Dieser wird sodann auf die verzweigenden bzw. nicht-verzweigenden Eingänge (je nach Neuron-Modell) ausgelesen, und der zuvor erläuterte Ablauf wiederholt sich mit denselben Gewichten, Schwellwerten usw.. (Es sei angemerkt, daß analog realisierte Emulatoren rückgekoppelte größere Netze auch nicht anders als durch Iteration emulieren können).
Die Leitungen für Schwellwerte und nicht-verzweigende Eingänge können eingespart werden, wenn zusätzliche Takte aufgewendet werden. Legt man beispielsweise an die verzweigenden Eingänge zunächst b₁, b₂ b₃, b₄ und an die Gewichtseingänge (w₁000), (0w₂00), (00w₃0), (000w₄) und ersetzt im nächsten Takt bi bzw. wi durch 1 bzw. ϑi, so wird wibi + ϑi berechnet. Darauf folgt dann, wie beschrieben, die Gewichtung der verzweigenden Eingänge. Insgesamt erhöht sich die Rechenzeit um 2 M/m Takte. Auf diesem Wege können 64 Pads und vier Addierer eingespart werden, vergl. Fig. 3.
Um mit einer m-Neuron-Einheit alle M Ausgangsvektoren für ein "feedfordward"-Netz zu berechnen, bedarf es einer Anzahl von (N/m) · (M/m) Takten. Man erkennt, daß die Rechenzeit (entspricht dem Durchsatz bei Verwendung einer einzigen m/Neuron-Einheit) umgekehrt proportional ist zum Quadrat der in der Einheit befindlichen Neuronen. Es ist jedoch zu berücksichtigen, daß die Zahl der 8-bit-Eingänge für Gewichte, Schwellwerte, Eingangs- und Ausgangsvektoren proportional zu 4m + m² wächst.
Auf der Basis von in 1.5 »m-Technologie entworfenen Multiplizierern läßt sich abschätzen, daß eine Taktzeit von < 50 ns für eine 4-Neuron-Einheit erreichbar ist. Somit können mit der 4-Neuron-Einheit 10⁶ bzw. 10⁸ Verbindungen in 3 ms bzw. 0.3 s klassifiziert werden. Für rückgekoppelte Netze müssen die zuvor genannten Zeiten noch mit der Zahl der Iterationen multipliziert werden.
Die Matrix der Gewichte hat den Rang MxN, die Rechenzeit beträgt N·M/m² 50 ns, vergl. Fig. 4a.
Die Matrix der Gewichte hat den Rang MxN, die Rechenzeit beträgt N·M/m² 50 ns, vergl. Fig. 4b.
Es sind N Eingänge, H versteckte Neuronen und M Ausgänge vorgesehen, vergl. Fig. 4c. Bei Realisierung mit einer einzigen m-Neuron-Einheit wird zunächst ein Ausdruck
Die nullte Iterationsstufe wird beschrieben durch die sequentielle Abarbeitung der Ausdrücke (3), bi = ϑ, und (4). Für die erste Iteration werden die Größen bi durch yi ersetzt (an der Rückkopplung nicht teilnehmende Neuronen bekommen das Gewicht w = 0) und die Ausgangsvektoren y(1)i der ersten Iteration errechnet. Für die zweite Iteration werden die Größen yi durch die Größen y(1)i ersetzt und die Ausgangsvektoren y(2)i der zweiten Iteration errechnet, usf.. Die vollständige Iteration bzw. Rückkopplung wird beschrieben durch das rekursive System:
Dabei ist 1 ≦ t ≦ T der Iterationsindex.
Fig. 4d zeigt ein Beispiel für ein derartiges rückgekoppeltes Hopfield-Netz mit N = M = 4.
Während der nullten Iteration wird keine Gewichtung vorgenommen. Es wird ein Ausdruck
Um den zuvor beschriebenen Einsatz der m-Neuron-Einheit zu ermöglichen, muß der Grundbaustein mit entsprechenden Schnittstellen und Speichern ausgestattet sein. Fig. 5 zeigt die lokale Speicherperipherie des mit einer einzigen 4-Neuron-Einheit aufgebauten Neuro-Emulators "Typ 1". Sie ist ausgelegt für ein Netz mit maximal 100 000 Eingängen (begrenzt durch die Bitbreite des Akkumulators) und maximal 64 Millionen Gewichten (à 8 bit). Da das Produkt der Zahl der 8-bit-Eingänge und der Zahl der 8-bit-Ausgänge ≦ 64 · 10⁶ bleiben muß, ist noch eine "schnelle" Schnittstelle vorgesehen, über welche die Gewichte von außen eingelesen werden können. Nachteilig ist, daß die Schnittstelle 128 · 20 Mbit/s schnell sein muß. Der lokale Speicher erlaubt hingegen eine serielle Schnittstelle mit kleinerer Bandbreite.
Prinzipiell ist ein höherer sog. Pipeline-Grad für die m-Neuron-Einheit denkbar, und der Durchsatz könnte entsprechend gesteigert werden. Es ist jedoch zu beachten, daß die Übergabe der Gewichte entweder über eine sehr breite und schnelle Schnittstelle erfolgen muß oder durch Auslesen eines lokalen Speichers. Schon bei 50 ns Taktzeit ergibt sich pro Anschlußstift (Pin) und Bitleitung (bit-line) eine Datenrate von 20 Mbit/s.
Gemessen an dem zuvor aufgestellten Forderungskatalog für die Leistungsmerkmale eines Neuro-Emulators sind folgende Eigenschaften erreichbar:
Der Neuro-Emulator "Typ 1"
Der beschriebene Grundbaustein eignet sich gut für die Einbettung in eine lineare systolische Anordnung vergl. T. Noll: Systolische Zellenfelder. ITG Fachberichte, Bd. 98, "Großintegration", S. 203 - 207, Baden-Baden, 1987 und U. Ramacher: "A self testing WSI matrix-matrix multiplier", Proc. of the IFIP Workshop on Wafer Scale Integration, Brunel, UK, Sept. 1987. Schaltet man L m-Neuron-Einheiten hintereinander, vergl. Fig. 6, so müssen die Eingangsvektoren a1...aN nicht mehr M/m-mal, sondern nur M/(Lm)-mal wiederholt werden. Auf diese Weise können große Neuro-Emulatoren mit m*L Neuronen aufgebaut werden, welche ihrerseits sehr schnell noch größere neuronale Netze emulieren können.
Nach K = N/m Takten werden die Ausgangsvektoren yl...ym über den Multiplexer in das erste Ausgangs-Register der ersten m-Neuron-Einheit gelesen. Die zweite Einheit schickt einen Takt später über den Multiplexer ihre Ausgangsvektoren ym+1 ...y2m in ihr erstes Ausgangs-Register. Zu diesem Zeitpunkt befinden sich yl...ym im zweiten Ausgangs-Register der ersten m-Neuron-Einheit. Noch einen Takt später befinden sich yl...ym bzw. ym+1 ... y2m im ersten Ausgangs-Register (der Multiplexer hat umgeschaltet) bzw. im zweiten Ausgangs-Register der zweiten m-Neuron-Einheit. Man erkennt, daß die L-gliedrige Kette zuerst die Ausgangsvektoren y4L - 3 ... y4L und zuletzt y₁ ...y₄ ausgibt. Da im allgemeinen M ≠ 4L gilt, müssen die Eingangsvektoren M/4L-mal hintereinander in die Anordnung geschickt werden, bis alle Ausgangsvektoren yl...yM vorliegen. Den Datenfluß des systolischen Neuro-Emulators zeigt Fig. 7 (aus Platzgründen sind die nicht-verzweigenden Eingänge wibi und die Schwellwerte ϑi nicht aufgeführt und wird von der Abkürzung » = (M - l)/4L Gebrauch gemacht).
Da (N/m) + L - 1 Takte nötig sind, bis die ersten L M Ausgangsvektoren vorliegen, müssen noch weitere (N/m) ((M/mL) - 1 ) Takte abgewartet werden, bis auch der letzte Ausgangsvektor yM berechnet ist. Schließlich werden noch L Takte benötigt, um den letzten in der Anordnung befindlichen Ausgangsvektor an den Ausgang zu holen. Insgesamt ergibt sich für die Rechenzeit ein Ausdruck
Der Durchsatz ist durch den ersten Summanden in (9) bestimmt.
Mit Δ = 50 ns, L = 100 und m = 4 können somit 10⁶, 10⁸ bzw. 10¹⁰ Verbindungen in ca. 30 »s, 3 ms bzw. 300 ms gewichtet und diskriminiert werden.
Der Neuro-Emulator "Typ 2" besteht aus 250 4-Neuron-Einheiten. Pro 4-Neuron-Einheit werden N M/250 Gewichte benötigt. Werden 128 x 128 kbit pro Einheit als lokaler Speicher vorgesehen, so können 5.24 x 10⁸ Verbindungen realisiert werden. Da der Akkumulator der 4-Neuron-Einheit für maximal 100 000 Eingangsvektoren die gewünschte 8-bit-Genauigkeit der Ausgangsvektoren gewährleistet, ergeben sich die in Fig. 8 gezeigten Schnittstellen und die ebenfalls an dieser Stelle gezeigte Speicherperipherie.
Besonders hervorzuheben ist, daß der Neuro-Emulator "Typ 2" mit derselben Anschlußstiftzahl für die Datenleitungen auskommt, wie der Neuro-Emulator "Typ 1". Gleichzeitig wartet der Neuro-Emulator "Typ 2" aber mit gegenüber dem Neuro-Emulator "Typ 1" wesentlich verbesserten Leistungsmerkmalen auf, siehe weiter unten.
Die 32 32kbit-Speicher sind doppelt vorgesehen, um Lese/Schreib-Operationen simultan ausführen zu können. Der Vorteil des lokalen Speichers für die Gewichte liegt, wie erwähnt, darin, daß die 250 Gewichtsspeicher seriell geladen werden können. Dies bedingt ein Vielfaches der Rechenzeit und ist unkritisch, da die Gewichte in der Erkennungsphase sich über lange Sequenzen von Eingangsvektoren nicht ändern.
Da in der Lernphase eines neuronalen Netzes sich die Gewichte Wij nach jedem Satz von N Eingangsvektoren um ein δ(Wij) ändern, muß andererseits bei der Entwicklung der Architektur des Grundbausteins für die Lernphase darauf geachtet werden, daß diese Änderungen δ (Wij) mit den Gewichten Wij intern verrechnet und über die Dauer der Lernphase aufakkumuliert werden. Nach Beendigung der Lernphase können dann die gelernten Gewichte W′ij in die Gewichtsspeicher geladen werden.
Da der Neuro-Emulator "Typ 2" statt aus 4 aus 1000 Neuronen besteht, gelten die zuvor angestellten Betrachtungen. Darüberhinaus kann die Bidirektionalität der verzweigenden Eingänge des Emulators "Typ 1" (Fig. 1) und des Emulators "Typ 2" für eine vorteilhafte Realisierung einer eventuell nötigen Iteration mit dem Emulator "Typ 2" genutzt werden. Es ist, da die Ausgangsvektoren der systolischen Anordnung am anderen Anordnungsende als die Eingangsvektoren erscheinen, vorteilhaft, den vollständigen Satz der M Ausgangsvektoren an diesem Anordnungsende einspeisen zu können und in entgegengesetzter Richtung durch die Anordnung zu schicken. Der Datenfluß auf den verzweigenden Eingängen würde somit nach jeder Iteration die Richtung wechseln. Dies ist mit bidirektionalen Treibern und Registern zu erreichen.
Der Neuro-Emulator "Typ 2"
Für die parallele Verarbeitung von P verschiedenen Sätzen von Eingangsvektoren bietet sich die mehrfache Ausnutzung der Gewichte mit einer linearen systolischen Anordnung an, vergl. Fig. 9. Dieser Anwendungsfall tritt dann auf, wenn aus einer Vielzahl von hypothetischen Mustern das real existierende Muster erkannt werden soll (z.B. bei der Erkennung fließender Sprache).
Aus Fig. 9 ist ersichtlich, daß die Eingangsvektoren einer m-Neuron-Einheit um einen Takt gegenüber denen der vorangehenden Einheit verzögert werden müssen. Offensichtlich ist der Durchsatz der Anordnung P-mal höher als der mit einer einzigen (mit derselben Aufgabenstellung betrauten) m-Neuron-Einheit zu erzielende. Die Gestaltung der Schnittstellen und der Speicherperipherie sowie die Auswertung der Leistungsmerkmale dieser systolischen Anordnung kann jeweils dem Fachmann überlassen bleiben.
Aufgabe der Diskriminator-Einheit ist es, die nichtlineare Übertragungsfunktion des Neurons zu realisieren. Um ein Höchstmaß an Flexibität zu erzielen, sind in dieser Einheit alle für neuronale Netze wichtigen Übertragungscharakteristiken enthalten. Das Eingangssignal z des Diskriminators (Ausgang des Akkumulators AKK in Fig. 1) ist mit 32 Bit in Zweierkomplementdarstellung kodiert, wobei das niederstwertige Bit den Stellenwert 2⁻¹⁴ hat. In der Diskriminator-Einheit werden folgende nichtlineare Diskriminator-Funktionen realisiert:
Für diese Funktionen ist das Ausgangssignal y stets gleich oder größer als Null. Mit Hilfe der Transformation y→2y - 1 kann der Wertebereich (0, 1) auf (-1, 1) abgebildet werden. Aus der Sigmoidalfunktion (10c) wird dann
Durch Veränderung des Parameters λ(λ >0) kann die Steilheit der Rampenfunktion, der Sigmoidalfunktion und der Hyperbelfunktion verändert werden (vergl. Fig. 10b, c, d). Der Wertebereich von λ ist so gewählt, daß die Kurven sowohl steiler (λ>1) als auch flacher (λ<1) im Vergleich zu einer Bewertung mit 1 verlaufen können. Ferner kann mit Hilfe des Parameters der Wertebereich der Gewichtsfaktoren verändert werden. Der Wert von λ ist mit 32 Bit kodiert, wobei das kleinste Stellengewicht 2⁻¹⁶ beträgt, es gilt demnach
wobei die δ₁ die einzelnen Stellengewichte darstellen. Der Zahlenbereich erstreckt sich also von 0 bis + 32768 - 2⁻¹⁶.
Das Blockschaltbild der Diskriminator-Einheit ist in Fig. 11 gezeigt. Die Konstante λ und der Zahlenwert von z sind in Registern REG1 und REG2 gespeichert. REG1 wird seriell ausgelesen, und in der nachfolgenden seriellen Multiplikationseinheit wird die Multiplikation mit z ausgeführt. Es folgt eine Reduzierung des Zahlenformats auf die erforderliche Wortbreite mit Hilfe von Sättigungsmultiplexern. Im Falle des binären Entscheiders braucht nur das Vorzeichen-Bit weitergeleitet zu werden. Bei der Auswahl der Rampenfunktion wird das Ausgangssignal des Sättigungsmultiplexers unverändert weitergeleitet, während bei der Sigmoidalfunktion und der TANH-Funktion in einer weiteren Einheit eine Geradenapproximation durchgeführt wird. In dem letzten Block schließlich wird die lineare Zahltransformation für die Generierung von negativen Ausgangszahlenwerten durchgeführt.
Die Multiplikation des Signals z mit dem Parameter λ erfolgt in einer seriellen Multiplizierer-Einheit. Der in dem Register gespeicherte Zahlenwert wird seriell beginnend mit dem niederstwertigen Bit ausgelesen und der Multiplikations-Einheit zugeführt (vergl. Fig. 12).
Die Multiplikation erfolgt nach dem sog. Horner-Schema (vergleiche L. Gazsi: Hardware implementation of wave digital filters using programmable digital signal processors. Proc. 1981 Europ. Conf. on Circuit Theory and Design, S. 1052-1057. The Hague, Aug. 1981:
Die Multiplikation von z mit δi, i = 0 bis 31, wird mit einem UND-Glied realisiert (Fig. 12). Da die bei der Multiplikation entstehenden zusätzlichen niederwertigen Bits ("rear-bits") in der Weiterverarbeitung nicht benötigt werden, braucht die Akkumulator-Wortlänge zur Berechnung der Partialsummen nur um ein Frontbit erweitert zu werden. Vor der Berechnung von λ z muß das vorgesehene Akkumulatorregister REG3 rückgesetzt werden (Reset-Signal in Fig. 12). Im ersten Zyklus wird dann der erste Term, δ ₀ z, im Akkumulatorregister REG3 abgelegt. Die Rückführung zum Addierer erfolgt über einen fest verdrahteten "Rechts-Shift" um eine Position, wobei das Vorzeichen aufgedoppelt wird (arithmetischer Shift, Multiplikation der Partialsumme mit 2⁻¹). Im nächsten Zyklus wird das Ergebnis (2⁻¹ δ₀ z) zu δ₁ z hinzuaddiert. Dieser Vorgang wiederholt sich, bis nach 32 Zyklen die geschweifte Klammer in Gl. (11) berechnet ist. Die Multiplikation mit 2¹⁵ erfolgt ebenfalls mit einem festverdrahteten Shift.
Das Ergebnis liegt nun in einer Wortbreite von 33 Bit vor, der darstellbare Zahlenbereich reicht von -2²⁴ bis 2²⁴ - 2⁻⁷, das LSB hat eine Wertigkeit von 2⁻⁷. Das Ausgangssignal des Diskriminators soll aber auf 8 Bit Wortbreite beschränkt sein. Bei dem binären Entscheider genügt letztlich die Abfrage des Vorzeichens, hingegen muß bei der Rampenfunktion die Wortbreite unter Anwendung einer Sättigungscharakteristik auf 8 Bit beschränkt werden. Es sei z′ = λ z das Eingangssignal des betreffenden Sättigungsmultiplexers und zr′ das Ausgangssignal; dann läßt sich die Sättigungscharakteristik beschreiben durch
Die Berechnung der Sigmoidalfunktion erfolgt durch Geradenabschnitte. Anstelle von Gl. (10c) läßt sich schreiben:
Da der zweite Term in (13) eine ungerade Funktion in z′ ist, genügt es, diesen Term für positive Werte von z′ durch Geradenabschnitte zu approximieren. Bei der Approximation soll der Fehler kleiner als ein LSB, also kleiner als 2⁻⁷ sein. Eine Genauigkeitsabschätzung ergibt, daß der Zahlenbereich von z′ auf das Intervall (-8,8) beschränkt werden kann und daß die Wertigkeit des niederstwertigen Bits nicht größer als 2⁻⁵ sein darf. Daraus folgt, daß für die Zahlendarstellung von z′ mindestens 9 Bit erforderlich sind. Dementsprechend ist ein zweiter Sättigungsmultiplexer erforderlich, dessen Sättigungscharakteristik durch
gegeben ist. Die Größe zs′ bezeichnet dabei das Ausgangssignal dieses Sättigungsmultiplexers.
Eine gemeinsame Realisierung der beiden Funktionen ist in Fig. 13 gezeigt. Da das LSB von z′ die Wertigkeit 2⁻⁷ hat, müssen bei Anwendung der Rampenfunktion gerade die sieben niederwertigen Bits ausgewählt werden. Falls z′ ≧ 1 - 2⁻⁷, d.h., falls das Vorzeichen-Bit 0 ist und mindestens eins der übrigen 25 führenden Bits 1 ist, sollen alle Ausgangs-Bits mit Ausnahme des Vorzeichens auf 1 gesetzt werden. Dies erfolgt mit Hilfe von Multiplexern MUX(1) bis MUX(7). Die links gezeichneten Eingänge mit Ausnahme von MUX(3) werden in diesem Fall durch das invertierte Vorzeichen-Bit auf 1 gesetzt, während der entsprechende Eingang von MUX(3) von dem vorgesehenen PLA (programmierbare logische Anordnung) auf 1 gesetzt wird. Die Umschaltung der Multiplexer wird ebenfalls von diesem PLA gesteuert. Entsprechendes gilt für z′ < 0, d.h., falls das Vorzeichen-Bit gleich 1 ist und mindestens eins der übrigen 25 führenden Bits 0 ist. In diesem Fall sollen alle Ausgangs-Bits auf 0 gesetzt werden.
Für die Generierung der Sigmoidalfunktion und der TANH-Funktion müssen das MSB und die übrigen 22 Bits untersucht werden, um festzustellen, ob eine Wertebereichsüberschreitung vorliegt. Das Ausgangssignal wird nun mit Hilfe der Multiplexer MUX(3) bis MUX(10) gebildet, wobei das LSB bei Sättigung stets 1 ist (vergl. Gl. (14)), während die übrigen Bits in der gleichen Weise gebildet werden wie zuvor.
Wie schon zuvor erwähnt, soll der zweite Term in (13), g(z′) = 0.5 tanh(z′/2), für positive Werte von z′ durch Geradenabschnitte approximiert werden, wobei der Fehler kleiner als 2⁻⁷ sein soll. Für eine Berechnung bei negativen Werten von z′ ist eine Vorzeichen-Betrags-Zahlendarstellung erforderlich. Der Ausgangswert y ist dann gegeben durch
wobei sign(z′) die Signum-Funktion und die z₁′ die zugehörigen oberen Intervallgrenzen bezeichnen.
Dies läßt sich zusammenfassen in
wobei k die Gesamtanzahl der Intervalle ist. Für den Fall, daß alle Intervalle die gleiche Länge Δz′ = z₁′ - z ₁ - 1′ haben und außerdem gleich einer Zweierpotenz sind, gilt
Bei der Vorzeichen-Betrags-Zahlendarstellung von z′ enthalten die niederwertigen Bits bis einschließlich der Position 2L-1 gerade den Term (|z′| - ( i - 1) 2L), während die übrigen höherwertigen Bits (ohne Vorzeichen) das Segment kennzeichnen. Hierdurch wird eine schaltungstechnische Realisierung sehr vereinfacht. Die Zahlenwerte von zi und mi können in einem ROM abgespeichert werden, das direkt von diesen höherwertigen Bits addressiert wird. Die Multiplikation von mi mit dem Term |(z′| - (k - 1) 2L) und die Addition zu Ci kann seriell durchgeführt werden. Je nach Vorzeichen von z′ wird das Ergebnis zu 0.5 hinzuaddiert oder davon subtrahiert.
Im vorliegenden Fall genügen k = 8 Segmente mit einer Länge Δz′ = 1, um einen kleinen Fehler kleiner als 2⁻⁷ zu garantieren. Wegen dieser geringen Anzahl von Termen ist es schaltungstechnisch vorteilhafter, anstelle eines ROM ein PLA zu verwenden.
Eine schaltungstechnische Realisierung ist in Fig. 14 gezeigt. Zunächst wird die mit 9 Bits im Zweierkomplement kodierte Zahl z′ in eine Vorzeichen-Betrags-Darstellung gewandelt. Hierzu wird zunächst der Betrag von z′ gebildet, während das Vorzeichenbit unverändert bleibt. Der Betrag wird in dem 8-bitbreiten Register REG2 abgelegt. Die drei höherwertigen Bits dieses Registers (Segmentkennung) werden für den Aufruf von Ci und mi benötigt, Ci wird über den Multiplexer MUX2 in ein Akkumulator-Register REG4, mi in REG3 geladen. Die niederwertigen 5 Bits des Registers REG2 werden anschließend, beginnend bei dem LSB, seriell ausgelesen. Mit Hilfe des UND-Gliedes wird in jedem Zyklus ein Partialprodukt berechnet und zum Akkumulatorinhalt addiert. Das Ergebnis wird nach jedem Zyklus über einen festverdrahteten "Shift" um eine Stelle nach rechts geschoben und im Akkumulatorregister REG4 abgelegt. Nach 5 Zyklen steht das Ergebnis Ci + mi (z′ - (i -1) 2L) in einem Register REG5 zur Verfügung. In der nachfolgenden Stufe wird dieser Zahlenwert zu 0.5 hinzuaddiert, bzw. bei negativen z′, davon subtrahiert.
Mit den bisher beschriebenen Schaltungseinheiten können nur unipolare (nichtnegative) Ausgangssignale erzeugt werden. In manchen Fällen sind jedoch Diskriminator-Kennlinien erwünscht, die symmetrisch zum Koordinatenursprung liegen. Bei dem binären Entscheider und bei der Sigmoidal-Funktion genügt die Abbildung des Intervalls (0, 1) auf (-1, 1) durch eine lineare Transformation, bei der Rampenfunktion muß hingegen darauf geachtet werden, daß in der seriellen Multiplizierereinheit z′ = 0.5 + λz gerechnet wird. Dies läßt sich einfach dadurch erreichen, daß der Akkumulator mit dem "Reset"-Signal nicht auf 0, sondern auf den Wert 0.5 gesetzt wird.
Da das Diskriminator-Ausgangssignal mit 8 Bits in Zweierkomplement-Darstellung kodiert ist, ist die größte darstellbare Zahl 1 - 2⁻⁷. Es bestehen dabei 128 Quantisierungsstufen. Um eine symmetrische Kennlinie zu erhalten, muß daher der Zahlenbereich von 0 bis zu dieser Zahl auf den Bereich von -1 + 2⁻⁷ bis 1 - 2⁻⁷ abgebildet werden, wobei die Zahl der Quantisierungsstufen unverändert bleibt. Diese Abbildung geschieht durch die Transformation.
Die schaltungstechnische Realisierung (Fig. 15) besteht im wesentlichen aus einem Multiplexer. Die Multiplikation mit 2 wird sehr einfach durch einen festverdrahteten Links-Shift und die Addition von 2⁻⁷ durch eine 1 am niederstwertigen Multiplexereingang durchgeführt. Lediglich für die Addition von -1 ist eine Invertierung des höchstwertigen Bits erforderlich.
标题 | 发布/更新时间 | 阅读量 |
---|---|---|
一种基于手机数据的精细尺度城市人群数量预测方法 | 2020-05-13 | 668 |
用于求取车辆的车灯的状态的方法和设备 | 2020-05-08 | 170 |
片上网络处理系统和片上网络数据处理方法 | 2020-05-11 | 897 |
基于通信受限的神经网络系统远程状态估计方法及装置 | 2020-05-12 | 196 |
用于对图像数据的语义分割的方法、人工神经网络和设备 | 2020-05-14 | 872 |
一种稻米加工在线工艺检测方法 | 2020-05-14 | 793 |
片上网络处理系统和片上网络数据处理方法 | 2020-05-11 | 579 |
数据流重构方法及可重构数据流处理器 | 2020-05-08 | 793 |
考虑风电不确定性的配电网概率潮流获取方法、装置 | 2020-05-08 | 889 |
用计算机断层扫描系统的X射线管提供医学图像数据集 | 2020-05-11 | 505 |
高效检索全球专利专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。
我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。
专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。